A concrete syntax tree parser and serializer library for Python that preserves many aspects of Python's abstract syntax tree https://libcst.readthedocs.io/
Find a file
Venkat Subramaniam 0b08682f3e AtomTest fixes
Currently, a lot of libcst node tests use data providers that use tuples
instead of dictionaries. This just makes the tests unreadable, so this
is one of several diffs aiming to solve this issue.
2019-07-22 20:04:37 -07:00
.circleci add pyre CI job 2019-07-22 20:04:29 -07:00
.github add initial PULL_REQUEST_TEMPLATE.md 2019-07-22 19:59:57 -07:00
libcst AtomTest fixes 2019-07-22 20:04:37 -07:00
stubs Add runtime type validation support 2019-07-22 19:53:49 -07:00
.editorconfig Add config files to make tools easier to use 2019-07-22 19:53:49 -07:00
.flake8 add flake8 and config 2019-07-22 19:59:57 -07:00
.gitignore add .tox/ to gitignore 2019-07-22 19:53:49 -07:00
.pyre_configuration add pyre CI job 2019-07-22 20:04:29 -07:00
CODE_OF_CONDUCT.md add Code Of Conduct file 2019-07-22 19:59:50 -07:00
CONTRIBUTING.md add test command and rephrase coding style. 2019-07-22 19:59:57 -07:00
LICENSE first commit 2019-05-29 11:32:49 -07:00
pyproject.toml Add config files to make tools easier to use 2019-07-22 19:53:49 -07:00
README.md add license section in README 2019-07-22 19:53:49 -07:00
requirements-dev.txt add missing flake8 dependency in requirements-dev.txt to fix lint CI job 2019-07-22 20:04:37 -07:00
requirements.txt Add runtime type validation support 2019-07-22 19:53:49 -07:00
setup.py add missing flake8 dependency in requirements-dev.txt to fix lint CI job 2019-07-22 20:04:37 -07:00
tox.ini add pyre CI job 2019-07-22 20:04:29 -07:00

LibCST

TODO: Add documentation.

Getting Started

Examining a sample tree

To examine the tree that is parsed from a particular file, do the following:

python -m libcst.tool print <some_py_file.py>

Development

Start by setting up and activating a virtualenv:

git clone git@github.com:Instagram/LibCST.git libcst
cd libcst
python3 -m venv ../libcst-env/  # just an example, put this wherever you want
source ../libcst-env/bin/activate
pip install --upgrade pip  # optional, if you have an old system version of pip
pip install -r requirements.txt -r requirements-dev.txt
# If you're done with the virtualenv, you can leave it by running:
deactivate

Auto-formatting code with isort and Black

We use isort and black to format code. To format changes to be conformant, run the following in the root:

isort -q -y && black libcst/

Running tests

To run all tests, do the following in the root:

python3 setup.py test

Verifying types with Pyre

To verify types for the library, do the following in the root:

pyre check

License

LibCST is MIT licensed, as found in the LICENSE file.