Commit graph

20 commits

Author SHA1 Message Date
Jennifer Taylor
f9ff50047e Bump hypothesis/hypothesmith version now that https://github.com/Zac-HD/hypothesmith/issues/3 is resolved. 2019-09-10 16:57:16 -07:00
Jennifer Taylor
38d220d224 Bump version number to 0.1.2. 2019-08-29 14:25:37 -07:00
Zac Hatfield-Dodds
2c27c0862c Fuzz with Hypothesmith 2019-08-21 17:55:28 -07:00
Jennifer Taylor
941dee9977 Bump revision number to release 0.1.1 which corrects dependencies. 2019-08-20 15:53:16 -07:00
jimmylai
71ba5cc51d
update dependent package version in setup.py 2019-08-19 13:39:02 -07:00
jimmylai
d4dca1db5e
[CI] add test coverage run and codecov integration 2019-08-19 11:31:55 -07:00
Jennifer Taylor
5d1514e416 Bump version number for 0.1.dev8 release. 2019-08-12 17:27:22 -07:00
jimmylai
6138e74542
[document] add jupyter based tutorial page
* [document] add jupyter based tutorial page

* add return type and fix typos
2019-08-06 16:34:03 -07:00
jimmylai
04804d03af
improve setup.py to be ready for publishing package to pypi
* improve setup.py to be ready for publishing package to pypi

* remove dev from version
2019-08-06 16:09:47 -07:00
jimmylai
88064092af
[document] Use ReadTheDot Theme 2019-08-01 12:09:32 -07:00
jimmylai
c621875c81 use rst format for README 2019-07-23 16:10:03 -07:00
jimmylai
120cfa9229 add sphinx autodoc templates and docs CI job 2019-07-22 20:05:27 -07:00
jimmylai
4e14e66aa6 add missing flake8 dependency in requirements-dev.txt to fix lint CI job 2019-07-22 20:04:37 -07:00
Jimmy Lai
1a55071f47 remove unused import sys 2019-07-22 19:59:57 -07:00
Benjamin Woodruff
8fba418f2c Add runtime type validation support
This ports `CSTNode.validate_types_shallow` and
`CSTNode.validate_types_deep`, as well as `libcst._type_enforce` to the
open-source release.

These are useful if someone wants to use LibCST without a static type
checker.

These weren't originally included because `libcst._type_enforce` wasn't
3.7 compatible.
2019-07-22 19:53:49 -07:00
Benjamin Woodruff
76b5ac0de2 Add config files to make tools easier to use
- `pyproject.toml` is supported by isort and black, and lets us call
  those tools without supplying a ton of arguments.
- `.editorconfig` is supported by a wide range of editors, and can
  automatically set per-project configuration.
- `.pyre_configuration` is used by pyre.
- I added test discovery to the `setup.py` file, which required some
  extra `__init__.py` files.
2019-07-22 19:53:49 -07:00
Benjamin Woodruff
c5f24f35a4 Improve the way dependencies are declared
@jreese had some suggestions in my previous pull request after it got
merged, so this addresses some of those suggestions:

- Uses the PEP 508 `python_version` environment marker instead of
  conditional logic inside `setup.py`. I've updated `requirements.txt`
  to use this too.
- Split dev requirements into a separate `requirements-dev.txt`, and
  updated the README to include instructions for it.

This PR does not use pyup, because it looks like it's free for
non-commercial use only (I don't know that that means in this context),
and because this project isn't public yet.

It also does not include a makefile yet, because Jennifer and I need to
talk through where we'd stick the virtualenv in that case.

I tested these changes on 3.6 and 3.7.
2019-07-22 19:53:49 -07:00
Benjamin Woodruff
a45bf3ac2e Improve the reproducibility of setting up a dev environment
- Reorganized the docs a bit to separate "getting started" from
  "development".

- Added a section about setting up a virtualenv (and tested that
  workflow on my machine).

- Added isort, pyre-check, and black to the `requirements.txt`, and
  updated the `requirements.txt` to include exact versions so that we
  can be sure that our tools will behave the same (e.g. there are
  frequently breaking changes between releases of pyre).

- Added a `dev` section to `setup.py`'s `extras_require`. This allows
  you to `pip install -e '.[dev]'` to get a set of development packages
  installed. I used this to help build the updated `requirements.txt`.
  This appears to be a pattern that other projects use.
2019-07-22 19:53:49 -07:00
Benjamin Woodruff
d4551da477 Improve setup.py compatibility
- Add `libcst/__init__.py` back which I accidentally deleted in another
  commit.
- Add `*.egg-info/` to the gitignore, because `libcst.egg-info` is it's
  created by pip/setuptools when locally installing libcst, and it's
  annoying.
- Changed the version number from `0.1.dev` to `0.1.dev0`, since pip was
  warning that it was normalizing the version number from the former to
  the later.
- Add a `python_requires` field, since we know that libcst only works on
  3.6+.
- Add an `install_requires`. Pip uses this to find dependencies, and
  ignores `requirements.txt` (since `requirements.txt` is really only
  intended to be a freeze file).
- Add the dataclasses backport as a dependency for Python 3.6. I
  validated that installing and using libcst works in both 3.6 and 3.7.

**Test Plan:**

```
$ python3 -m venv libcst-install-test  # my system python is 3.7

$ libcst-install-test/bin/pip install --upgrade pip ipython
Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached
  be401c0032/pip-19.1.1-py2.py3-none-any.whl
Collecting ipython
...  # lots of output

$ ~/libcst-install-test/bin/pip install ~/libcst/
Processing ./libcst
Requirement already satisfied: parso in
./libcst-install-test/lib/python3.7/site-packages (from
libcst==0.1.dev0) (0.4.0)
Collecting typing_extensions (from libcst==0.1.dev0)
  Using cached
  c66e553258/typing_extensions-3.7.2-py3-none-any.whl
Installing collected packages: typing-extensions, libcst
  Running setup.py install for libcst ... done
  Successfully installed libcst-0.1.dev0 typing-extensions-3.7.2

$ ~/libcst-install-test/bin/ipython
Python 3.7.3 (default, Apr  3 2019, 05:39:12)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from libcst import parser

In [2]: parser.parse_expression("None")
Out[2]:
Name(
    value='None',
    lpar=[],
    rpar=[],
)

In [3]:
```

I then repeated the same with a copy of CPython 3.6 that I built from
source.
2019-06-06 15:37:27 -07:00
Jennifer Taylor
0719faa198 Initial export of LibCST to github. 2019-05-31 14:16:53 -07:00