mirror of
https://github.com/Instagram/LibCST.git
synced 2025-12-23 10:35:53 +00:00
895 lines
42 KiB
Markdown
895 lines
42 KiB
Markdown
# 1.4.0 - 2024-05-22
|
|
|
|
## Fixed
|
|
* Fix Literal parse error in RemoveImportsVisitor by @camillol in https://github.com/Instagram/LibCST/pull/1130
|
|
* Don't reset context.scratch between files by @zsol in https://github.com/Instagram/LibCST/pull/1151
|
|
* Various documentation fixes
|
|
* Typo fix FullRepoManager by @kit1980 in https://github.com/Instagram/LibCST/pull/1138
|
|
* ✏️ Fix tiny typo in `docs/source/metadata.rst` by @tiangolo in https://github.com/Instagram/LibCST/pull/1134
|
|
* ✏️ Fix typo in `docs/source/scope_tutorial.ipynb` by @tiangolo in https://github.com/Instagram/LibCST/pull/1135
|
|
* Update CONTRIBUTING.md by @zaicruvoir1rominet in https://github.com/Instagram/LibCST/pull/1142
|
|
|
|
## Added
|
|
|
|
* Add helper functions for common ways of filtering nodes by @zaicruvoir1rominet in https://github.com/Instagram/LibCST/pull/1137
|
|
* Dump CST to .dot (graphviz) files by @zaicruvoir1rominet in https://github.com/Instagram/LibCST/pull/1147
|
|
* Implement PEP-696 by @thereversiblewheel in https://github.com/Instagram/LibCST/pull/1141
|
|
|
|
## New Contributors
|
|
* @tiangolo made their first contribution in https://github.com/Instagram/LibCST/pull/1134
|
|
* @camillol made their first contribution in https://github.com/Instagram/LibCST/pull/1130
|
|
* @zaicruvoir1rominet made their first contribution in https://github.com/Instagram/LibCST/pull/1142
|
|
* @thereversiblewheel made their first contribution in https://github.com/Instagram/LibCST/pull/1141
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v1.3.1...v1.4.0
|
|
|
|
# 1.3.1 - 2024-04-03
|
|
|
|
## Fixed
|
|
* ImportError due to missing `mypy_extensions` dependency by @zsol in https://github.com/Instagram/LibCST/pull/1128
|
|
|
|
# 1.3.0 - 2024-04-03
|
|
|
|
## Updated
|
|
* Removed dependencies on `typing_extensions` and `typing_inspect` by @zsol in https://github.com/Instagram/LibCST/pull/1126
|
|
|
|
# 1.2.0 - 2024-02-19
|
|
|
|
## Updated
|
|
* Support running LibCST on Python 3.12 and drop support for running it on 3.8
|
|
* remove 3.8 support by @zsol in https://github.com/Instagram/LibCST/pull/1073
|
|
* Remove reference to distutils by @zsol in https://github.com/Instagram/LibCST/pull/1099
|
|
* Update pyproject.toml for Python 3.12 support by @itamaro in https://github.com/Instagram/LibCST/pull/1038
|
|
|
|
## Added
|
|
* Allow `Element::codegen` to be used by external users by @Wilfred in https://github.com/Instagram/LibCST/pull/1071
|
|
|
|
## Fixed
|
|
* Fix parsing list matchers without explicit brackets by @zsol in https://github.com/Instagram/LibCST/pull/1097
|
|
* installing rustc/cargo for mybinder demo by @aleivag in https://github.com/Instagram/LibCST/pull/1083
|
|
* fix filepathprovider generic type by @kinto0 in https://github.com/Instagram/LibCST/pull/1036
|
|
|
|
## New Contributors
|
|
* @itamaro made their first contribution in https://github.com/Instagram/LibCST/pull/1039
|
|
* @kinto0 made their first contribution in https://github.com/Instagram/LibCST/pull/1036
|
|
* @dtolnay made their first contribution in https://github.com/Instagram/LibCST/pull/1063
|
|
* @anonymousdouble made their first contribution in https://github.com/Instagram/LibCST/pull/1082
|
|
* @aleivag made their first contribution in https://github.com/Instagram/LibCST/pull/1083
|
|
* @Wilfred made their first contribution in https://github.com/Instagram/LibCST/pull/1071
|
|
* @diliop made their first contribution in https://github.com/Instagram/LibCST/pull/1106
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v1.1.0...v1.2.0
|
|
|
|
# 1.1.0 - 2023-10-05
|
|
|
|
## Added
|
|
* PEP 695 support
|
|
* parser: PEP 695 - Type Parameter Syntax #1004
|
|
* Scope provider: support for type annotations #1014
|
|
* PEP 701 support
|
|
* parser: support arbitrarily nested f-strings #1026
|
|
* parser: Parse multiline expressions in f-strings #1027
|
|
* parser: Support files with mixed newlines #1007
|
|
* [libcst](https://crates.io/crates/libcst) is now published to crates.io
|
|
|
|
## Fixed
|
|
* codemod/ApplyTypeAnnotationsVisitor: Do not annotate the same variable multiple times #956
|
|
* parser: Don't swallow trailing whitespace #976
|
|
* codemod/rename: Avoid duplicating import statements when the module name doesn't change #981
|
|
|
|
## Updated
|
|
* cli: Don't gather dirs ending .py #994
|
|
* drop support for Python 3.7 #997
|
|
* A few parser performance improvements:
|
|
* Switch to using thread_local regular expressions to stop mutext contention #996
|
|
* Remove need for regex in TextPosition::matches #1002
|
|
* Remove Regexes from whitespace parser #1008
|
|
|
|
# 1.0.1 - 2023-06-07
|
|
|
|
## Fixed
|
|
* Fix type of `evaluated_value` on string to allow bytes by @ljodal in https://github.com/Instagram/LibCST/pull/721
|
|
* Fix Sentinal typo by @kit1980 in https://github.com/Instagram/LibCST/pull/948
|
|
* Allow no whitespace after lambda body in certain cases by @zsol in https://github.com/Instagram/LibCST/pull/939
|
|
* Fix whitespace, fstring, walrus related parse errors (#939, #938, #937,
|
|
#936, #935, #934, #933, #932, #931) by @zsol in https://github.com/Instagram/LibCST/pull/940
|
|
* Codemod CLI: Print diff only when there is a change by @kit1980 in https://github.com/Instagram/LibCST/pull/945
|
|
|
|
## New Contributors
|
|
* @ljodal made their first contribution in https://github.com/Instagram/LibCST/pull/721
|
|
* @kit1980 made their first contribution in https://github.com/Instagram/LibCST/pull/948
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v1.0.0...v1.0.1
|
|
|
|
# 1.0.0 - 2023-05-25
|
|
|
|
The first major release of LibCST is essentially the same as 0.4.10, but using the
|
|
newer, Rust-based parser implementation by default. The old, pure Python parser is
|
|
scheduled for removal in the next (non-patch) release. Until then, it is available with
|
|
the `LIBCST_PARSER_TYPE` environment variable set to `pure`.
|
|
|
|
## Updated
|
|
|
|
* Switch the default parser implementation to native by @zsol in https://github.com/Instagram/LibCST/pull/929
|
|
|
|
# 0.4.10 - 2023-05-23
|
|
|
|
## New Contributors
|
|
* @and-semakin made their first contribution in https://github.com/Instagram/LibCST/pull/816
|
|
* @carljm made their first contribution in https://github.com/Instagram/LibCST/pull/828
|
|
* @sagarbadiyani made their first contribution in https://github.com/Instagram/LibCST/pull/841
|
|
* @podtserkovskiy made their first contribution in https://github.com/Instagram/LibCST/pull/894
|
|
* @rchen152 made their first contribution in https://github.com/Instagram/LibCST/pull/903
|
|
* @Kludex made their first contribution in https://github.com/Instagram/LibCST/pull/913
|
|
* @jakkdl made their first contribution in https://github.com/Instagram/LibCST/pull/921
|
|
|
|
## Added
|
|
* Add py3.11 classifier by @and-semakin in https://github.com/Instagram/LibCST/pull/816
|
|
* Script to regenerate test fixtures, upgrade to Pyre 0.9.10 by @amyreese in https://github.com/Instagram/LibCST/pull/872
|
|
* Allow FullyQualifiedNameProvider to work with absolute paths by @amyreese in https://github.com/Instagram/LibCST/pull/867
|
|
* Allow running codemods without configuring in YAML by @akx in https://github.com/Instagram/LibCST/pull/879
|
|
* Support PEP 604 in ApplyTypeAnnotationsVisitor by @hauntsaninja in https://github.com/Instagram/LibCST/pull/868
|
|
|
|
## Fixed
|
|
* fix PEP 604 union annotations in decorators by @carljm in https://github.com/Instagram/LibCST/pull/828
|
|
* [AddImportsVisitor] Docstring Check Only for the Top Element of the Body by @sagarbadiyani in https://github.com/Instagram/LibCST/pull/841
|
|
* Fix [#855](https://github.com/Instagram/LibCST/issues/855) - fail to parse with statement by @stroxler in https://github.com/Instagram/LibCST/pull/861
|
|
* Add setuptools-rust to build requirements in setup.py by @amyreese in https://github.com/Instagram/LibCST/pull/873
|
|
* Relative imports from '' package are not allowed by @podtserkovskiy in https://github.com/Instagram/LibCST/pull/894
|
|
* Use subprocess.DEVNULL instead of opening os.devnull by hand by @akx in https://github.com/Instagram/LibCST/pull/897
|
|
* Ensure current Python interpreter is used for subprocesses by @akx in https://github.com/Instagram/LibCST/pull/898
|
|
* Fix ApplyTypeAnnotationsVisitor behavior on attribute assignments. by @rchen152 in https://github.com/Instagram/LibCST/pull/903
|
|
* Fix spelling and grammar in some comments by @stroxler in https://github.com/Instagram/LibCST/pull/908
|
|
* skip escaped backslash in rf-string by @jakkdl in https://github.com/Instagram/LibCST/pull/921
|
|
* relax validation rules on decorators by @jakkdl in https://github.com/Instagram/LibCST/pull/926
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v0.4.9...v0.4.10
|
|
|
|
# 0.4.9 - 2022-11-10
|
|
|
|
## Updated
|
|
* Bump setuptools-rust version by @zsol in https://github.com/Instagram/LibCST/pull/809
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v0.4.8...v0.4.9
|
|
|
|
# 0.4.8 - 2022-11-10
|
|
|
|
## New Contributors
|
|
* @dhruvmanila made their first contribution in https://github.com/Instagram/LibCST/pull/728
|
|
* @vfazio made their first contribution in https://github.com/Instagram/LibCST/pull/801
|
|
* @matthewshaer made their first contribution in https://github.com/Instagram/LibCST/pull/807
|
|
|
|
|
|
## Fixed
|
|
* Fix parse error message for number parsing by @zzl0 in https://github.com/Instagram/LibCST/pull/724
|
|
* Fix problematic doc build, due to the new builder image provided by readthedocs doesn't has the `graphviz-dev` package pre-installed any more by @MapleCCC in https://github.com/Instagram/LibCST/pull/751
|
|
* Fix docstring of `FullRepoManager` by @MapleCCC in https://github.com/Instagram/LibCST/pull/750
|
|
* Fix bug when `TypeOf` is one of options in `OneOf` / `AllOf` by @MapleCCC in https://github.com/Instagram/LibCST/pull/756
|
|
* Tighten the metadata type of `ExpressionContextProvider` by @MapleCCC in https://github.com/Instagram/LibCST/pull/760
|
|
* Fix the bug that the use of formatter in codemods has undetermined target Python version, resulting in hard-to-reason-with behavior by @MapleCCC in https://github.com/Instagram/LibCST/pull/771
|
|
|
|
|
|
## Added
|
|
* Python 3.11 rutime support
|
|
* test using python 3.11 beta versions by @zsol in https://github.com/Instagram/LibCST/pull/723
|
|
* Python 3.11 wheels by @vfazio in https://github.com/Instagram/LibCST/pull/801
|
|
* Raise informative exception when metadata is unresolved in a metadata-based match by @MapleCCC in https://github.com/Instagram/LibCST/pull/757
|
|
* Add AccessorProvider by @matthewshaer in https://github.com/Instagram/LibCST/pull/807
|
|
|
|
**Full Changelog**: https://github.com/Instagram/LibCST/compare/v0.4.7...v0.4.8
|
|
|
|
# 0.4.7 - 2022-07-12
|
|
|
|
## New Contributors
|
|
* @Chenguang-Zhu made their first contribution in https://github.com/Instagram/LibCST/pull/720
|
|
|
|
## Fixed
|
|
* Fix get_qualified_names_for matching on prefixes of the given name by @lpetre in https://github.com/Instagram/LibCST/pull/719
|
|
|
|
## Added
|
|
* Implement lazy loading mechanism for expensive metadata providers by @Chenguang-Zhu in https://github.com/Instagram/LibCST/pull/720
|
|
|
|
# 0.4.6 - 2022-07-04
|
|
|
|
## New Contributors
|
|
- @superbobry made their first contribution in https://github.com/Instagram/LibCST/pull/702
|
|
|
|
## Fixed
|
|
- convert_type_comments now preserves comments following type comments by @superbobry in https://github.com/Instagram/LibCST/pull/702
|
|
- QualifiedNameProvider optimizations
|
|
- Cache the scope name prefix to prevent scope traversal in a tight loop by @lpetre in https://github.com/Instagram/LibCST/pull/708
|
|
- Faster qualified name formatting by @lpetre in https://github.com/Instagram/LibCST/pull/710
|
|
- Prevent unnecessary work in Scope.get_qualified_names_for_ by @lpetre in https://github.com/Instagram/LibCST/pull/709
|
|
- Fix parsing of parenthesized empty tuples by @zsol in https://github.com/Instagram/LibCST/pull/712
|
|
- Support whitespace after ParamSlash by @zsol in https://github.com/Instagram/LibCST/pull/713
|
|
- [parser] bail on deeply nested expressions by @zsol in https://github.com/Instagram/LibCST/pull/718
|
|
|
|
# 0.4.5 - 2022-06-17
|
|
|
|
## New Contributors
|
|
|
|
- @zzl0 made their first contribution in https://github.com/Instagram/LibCST/pull/704
|
|
|
|
## Fixed
|
|
|
|
- Only skip supported escaped characters in f-strings by @zsol in https://github.com/Instagram/LibCST/pull/700
|
|
- Escaping quote characters in raw string literals causes a tokenizer error by @zsol in https://github.com/Instagram/LibCST/issues/668
|
|
- Corrected a code example in the documentation by @zzl0 in https://github.com/Instagram/LibCST/pull/703
|
|
- Handle multiline strings that start with quotes by @zzl0 in https://github.com/Instagram/LibCST/pull/704
|
|
- Fixed a performance regression in libcst.metadata.ScopeProvider by @lpetre in https://github.com/Instagram/LibCST/pull/698
|
|
|
|
# 0.4.4 - 2022-06-13
|
|
|
|
## New Contributors
|
|
|
|
- @adamchainz made their first contribution in https://github.com/Instagram/LibCST/pull/688
|
|
|
|
## Added
|
|
|
|
- Add package links to PyPI by @adamchainz in https://github.com/Instagram/LibCST/pull/688
|
|
- native: add overall benchmark by @zsol in https://github.com/Instagram/LibCST/pull/692
|
|
- Add support for PEP-646 by @zsol in https://github.com/Instagram/LibCST/pull/696
|
|
|
|
## Updated
|
|
|
|
- parser: use references instead of smart pointers for Tokens by @zsol in https://github.com/Instagram/LibCST/pull/691
|
|
|
|
# 0.4.3 - 2022-05-11
|
|
|
|
## Fixed
|
|
|
|
- Restore the 0.4.1 behavior for libcst.helpers.get_absolute_module by @lpetre in https://github.com/Instagram/LibCST/pull/684
|
|
|
|
# 0.4.2 - 2022-05-04
|
|
|
|
## New Contributors
|
|
|
|
- @stanislavlevin made their first contribution in https://github.com/Instagram/LibCST/pull/650
|
|
- @dmitryvinn made their first contribution in https://github.com/Instagram/LibCST/pull/655
|
|
- @wiyr made their first contribution in https://github.com/Instagram/LibCST/pull/669
|
|
- @toofar made their first contribution in https://github.com/Instagram/LibCST/pull/675
|
|
|
|
## Fixed
|
|
|
|
- native: Avoid crashing by making IntoPy conversion fallible by @zsol in https://github.com/Instagram/LibCST/pull/639
|
|
- native: make sure ParserError's line is zero-indexed by @zsol in https://github.com/Instagram/LibCST/pull/681
|
|
- Fix space validation for AsName and Await by @zsol in https://github.com/Instagram/LibCST/pull/641
|
|
- Qualified Name Provider: Fix returned qname for symbols that are prefixes of each other by @wiyr in https://github.com/Instagram/LibCST/pull/669
|
|
- Rename Codemod: Correct last renamed import from by @toofar in https://github.com/Instagram/LibCST/pull/675
|
|
- Many changes to the Apply Type Comments codemod:
|
|
- Allow for skipping quotes when applying type comments by @stroxler in https://github.com/Instagram/LibCST/pull/644
|
|
- Port pyre fixes by @stroxler in https://github.com/Instagram/LibCST/pull/651
|
|
- Preserve as-imports when merging type annotations. by @martindemello in https://github.com/Instagram/LibCST/pull/664
|
|
- Qualify imported symbols when the dequalified form would cause a conflict by @martindemello in https://github.com/Instagram/LibCST/pull/674
|
|
- Add an argument to always qualify imported type annotations. by @martindemello in https://github.com/Instagram/LibCST/pull/676
|
|
|
|
## Added
|
|
|
|
- Create an AddTrailingCommas codemod by @stroxler in https://github.com/Instagram/LibCST/pull/643
|
|
- Define gather global names visitor by @shannonzhu in https://github.com/Instagram/LibCST/pull/657
|
|
|
|
## Updated
|
|
|
|
- Support module and package names in the codemod context by @lpetre in https://github.com/Instagram/LibCST/pull/662
|
|
- Drop support for running libcst using a python 3.6 interpreter by @lpetre in https://github.com/Instagram/LibCST/pull/663
|
|
- Update relative import logic to match cpython by @lpetre in https://github.com/Instagram/LibCST/pull/660
|
|
- Scope Provider: Consider access information when computing qualified names for nodes by @lpetre in https://github.com/Instagram/LibCST/pull/682
|
|
|
|
# 0.4.1 - 2022-01-28
|
|
|
|
## New Contributors
|
|
|
|
- @ariebovenberg made their first contribution in https://github.com/Instagram/LibCST/pull/605
|
|
- @sehz made their first contribution in https://github.com/Instagram/LibCST/pull/598
|
|
|
|
## Added
|
|
|
|
- Add docs about the native parts by @zsol in https://github.com/Instagram/LibCST/pull/601
|
|
- Specify minimum rust toolchain version by @zsol in https://github.com/Instagram/LibCST/pull/614
|
|
- build wheels on main branch for linux/arm64 by @zsol in https://github.com/Instagram/LibCST/pull/630
|
|
|
|
## Updated
|
|
|
|
- ApplyTypeAnnotationVisitor changes
|
|
- Add support for methods with func type comment excluding self/cls by @stroxler in https://github.com/Instagram/LibCST/pull/622
|
|
- Merge in TypeVars and Generic base classes in ApplyTypeAnnotationVisitor by @martindemello in https://github.com/Instagram/LibCST/pull/596
|
|
- Full handling for applying type comments to Assign by @stroxler in https://github.com/Instagram/LibCST/pull/599
|
|
- Add support for For and With by @stroxler in https://github.com/Instagram/LibCST/pull/607
|
|
- Support FunctionDef transformations by @stroxler in https://github.com/Instagram/LibCST/pull/610
|
|
- change pyo3 as optional dependency in native Python Parser by @sehz in https://github.com/Instagram/LibCST/pull/598
|
|
- add slots to base classes, @add_slots takes bases into account by @ariebovenberg in https://github.com/Instagram/LibCST/pull/605
|
|
- [native] Box most enums by @zsol in https://github.com/Instagram/LibCST/pull/632
|
|
- [native] Return tuples instead of lists in CST nodes by @zsol in https://github.com/Instagram/LibCST/pull/631
|
|
|
|
## Fixed
|
|
|
|
- Allow trailing whitespace without newline at EOF by @zsol in https://github.com/Instagram/LibCST/pull/611
|
|
- Handle ast.parse failures when converting function type comments by @stroxler in https://github.com/Instagram/LibCST/pull/616
|
|
- [native] Don't redundantly nest StarredElement inside another Element by @isidentical in https://github.com/Instagram/LibCST/pull/624
|
|
- [native] Allow unparenthesized tuples inside f-strings by @isidentical in https://github.com/Instagram/LibCST/pull/621
|
|
- Don't require whitespace right after match by @isidentical in https://github.com/Instagram/LibCST/pull/628
|
|
- Proxy both parentheses in some pattern matching nodes by @isidentical in https://github.com/Instagram/LibCST/pull/626
|
|
|
|
# 0.4.0 - 2022-01-12
|
|
|
|
This release contains a new parsing infrastructure that is turned off by default. You
|
|
can enable it by setting the `LIBCST_PARSER_TYPE` environment variable to `native`
|
|
before parsing an input with the usual LibCST APIs. Parsing Python 3.10 documents is
|
|
only supported in this new mode.
|
|
|
|
Note: the new parser is built as a native extension, so LibCST will ship with binary
|
|
wheels from now on.
|
|
|
|
## Added
|
|
|
|
- Implement a Python PEG parser in Rust by @zsol in [#566](https://github.com/Instagram/LibCST/pull/566)
|
|
- implement PEP-654: except\* by @zsol in [#571](https://github.com/Instagram/LibCST/pull/571)
|
|
- Implement PEP-634 - Match statement by @zsol in [#568](https://github.com/Instagram/LibCST/pull/568)
|
|
- Add instructions to codegen test failures by @stroxler in [#582](https://github.com/Instagram/LibCST/pull/582)
|
|
- Support Parenthesized With Statements by @stroxler in [#584](https://github.com/Instagram/LibCST/pull/584)
|
|
- Support relative imports in AddImportsVisitor by @martindemello in [#585](https://github.com/Instagram/LibCST/pull/585)
|
|
- Codemod for PEP 484 Assign w / type comments -> PEP 526 AnnAssign by @stroxler in [#594](https://github.com/Instagram/LibCST/pull/594)
|
|
|
|
## Updated
|
|
|
|
- Update license headers by @zsol in [#560](https://github.com/Instagram/LibCST/pull/560)
|
|
- Use precise signature matching when inserting function type annotations by @martindemello in [#591](https://github.com/Instagram/LibCST/pull/591)
|
|
|
|
# 0.3.23 - 2021-11-23
|
|
|
|
## Fixed
|
|
|
|
- Fix missing string annotation references [#561](https://github.com/Instagram/LibCST/pull/561)
|
|
|
|
# 0.3.22 - 2021-11-22
|
|
|
|
## Added
|
|
|
|
- Add --indent-string option to `libcst.tool print` [#525](https://github.com/Instagram/LibCST/pull/525)
|
|
- Publish pre-release packages to test.pypi.org [#550](https://github.com/Instagram/LibCST/pull/550)
|
|
- Add ImportAssignment class extending Assignment to record assignments for import statements [#554](https://github.com/Instagram/LibCST/pull/554)
|
|
|
|
## Fixed
|
|
|
|
- Various documentation fixes [#527](https://github.com/Instagram/LibCST/pull/527), [#529](https://github.com/Instagram/LibCST/pull/529)
|
|
- Do not add imports if we added no type info in ApplyTypeAnnotationVisitor [(commit)](https://github.com/Instagram/LibCST/commit/87625d02b6cb321c9c29ba1c67d81ce954a1a396)
|
|
- Support relative imports in ApplyTypeAnnotationVisitor qualifier handling [#538](https://github.com/Instagram/LibCST/pull/538)
|
|
- Don't gather metadata if the wrapper already contains it [#545](https://github.com/Instagram/LibCST/pull/545)
|
|
- Swallow parsing errors in string annotations [#548](https://github.com/Instagram/LibCST/pull/548)
|
|
- Stop parsing string annotations when no longer in a typing call [#546](https://github.com/Instagram/LibCST/pull/546)
|
|
|
|
## Updated
|
|
|
|
- Move find_qualified_names_for in the Assignment class [#557](https://github.com/Instagram/LibCST/pull/557)
|
|
|
|
# 0.3.21 - 2021-09-21
|
|
|
|
## Fixed
|
|
|
|
- Fix pyre command for type inference provider [#523](https://github.com/Instagram/LibCST/pull/523)
|
|
|
|
## Updated
|
|
|
|
- Change codegen to treat typing.Union[Foo, NoneType] and typing.Optional[Foo] as the same [#508]((https://github.com/Instagram/LibCST/pull/508)
|
|
- Rewrite the MatchIfTrue type to be generic on \_MatchIfTrueT [#512](https://github.com/Instagram/LibCST/pull/512)
|
|
- Add python3.9 to the CI [#506](https://github.com/Instagram/LibCST/pull/506)
|
|
- Various CI changes [#471](https://github.com/Instagram/LibCST/pull/471) [#510](https://github.com/Instagram/LibCST/pull/510) [#505](https://github.com/Instagram/LibCST/pull/505) [#515](https://github.com/Instagram/LibCST/pull/515) [#516](https://github.com/Instagram/LibCST/pull/516)
|
|
|
|
# 0.3.20 - 2021-08-09
|
|
|
|
## Fixed
|
|
|
|
- Don't reset subprocess environment to fix codemodding on windows [#495](https://github.com/Instagram/LibCST/pull/495)
|
|
- TypeAnnotationsVisitor: don't truncate function return type [#499](https://github.com/Instagram/LibCST/pull/499)
|
|
- Docs: Fix typo [#492](https://github.com/Instagram/LibCST/pull/492)
|
|
|
|
# 0.3.19 - 2021-05-12
|
|
|
|
# Updated
|
|
|
|
- Return more specific QNames for assignments [#477](https://github.com/Instagram/LibCST/pull/477)
|
|
- Tie accesses from string annotation to the string node [#483](https://github.com/Instagram/LibCST/pull/483)
|
|
|
|
## Fixed
|
|
|
|
- Fix leaking processes from TypeInferenceProvider [#474](https://github.com/Instagram/LibCST/pull/474)
|
|
- Fix TypeInferenceProvider breakage with empty cache [#476](https://github.com/Instagram/LibCST/pull/476)
|
|
- Fix formatting for link to QualifiedName class in docs [#480](https://github.com/Instagram/LibCST/pull/480)
|
|
|
|
# 0.3.18 - 2021-03-29
|
|
|
|
## Added
|
|
|
|
- Add FlattenSentinel to support replacing a statement with multiple statements [#455](https://github.com/Instagram/LibCST/pull/455)
|
|
- Add BuiltinScope [#469](https://github.com/Instagram/LibCST/pull/469)
|
|
- Add FullyQualifiedNameProvider [#465](https://github.com/Instagram/LibCST/pull/465)
|
|
|
|
## Updated
|
|
|
|
- Split QualifiedNameProvider out from libcst.metadata.scope_provider [#464](https://github.com/Instagram/LibCST/pull/464)
|
|
|
|
## Fixed
|
|
|
|
- Exception while parsing escape character in raw f-strings [#462](https://github.com/Instagram/LibCST/issues/462)
|
|
|
|
# 0.3.17 - 2021-02-08
|
|
|
|
## Updated
|
|
|
|
- Optimization: reduce the number of unused parallel processes [#440](https://github.com/Instagram/LibCST/pull/440)
|
|
|
|
## Fixed
|
|
|
|
- Walrus operator's left hand side now has STORE expression context [#443](https://github.com/Instagram/LibCST/pull/433)
|
|
- ApplyTypeAnnotationsVisitor applies parameter annotations even if no return type is declared [#445](https://github.com/Instagram/LibCST/pull/445)
|
|
- Work around Windows problem by using dummy pool for `jobs=1` [#436](https://github.com/Instagram/LibCST/pull/436)
|
|
- Remove extra unused imports added in other files [#453](https://github.com/Instagram/LibCST/pull/453)
|
|
|
|
# 0.3.16 - 2020-12-16
|
|
|
|
## Added
|
|
|
|
- Support PEP-604 style unions in decorator annotations [#429](https://github.com/Instagram/LibCST/pull/429)
|
|
- Gathering exports in augmented assignment statements [#426](https://github.com/Instagram/LibCST/pull/426)
|
|
|
|
## Fixed
|
|
|
|
- Don't allow out of order accesses in the global scope [#431](https://github.com/Instagram/LibCST/pull/431)
|
|
- Handle scope ordering in For statements [#430](https://github.com/Instagram/LibCST/pull/430)
|
|
- Fix for not parsing subscripts such as `cast()["from"]` [#428](https://github.com/Instagram/LibCST/pull/428)
|
|
- Walrus operator's left hand side now has STORE expression context [#433](https://github.com/Instagram/LibCST/pull/433)
|
|
|
|
# 0.3.15 - 2020-12-01
|
|
|
|
## Added
|
|
|
|
- Support Named Unicode Characters and yield in f-strings [#424](https://github.com/Instagram/LibCST/pull/424)
|
|
|
|
## Fixed
|
|
|
|
- Assignment/access ordering in comprehensions [#423](https://github.com/Instagram/LibCST/pull/423)
|
|
- Referencing of remaining objects in cast() [#422](https://github.com/Instagram/LibCST/pull/422)
|
|
|
|
# 0.3.14 - 2020-11-18
|
|
|
|
## Fixed
|
|
|
|
- Fix is_annotation for types used in classdef base and assign value [#406](https://github.com/Instagram/LibCST/pull/406)
|
|
- Visit concatenated f-strings during scope analysis [#411](https://github.com/Instagram/LibCST/pull/411)
|
|
- Correct handling of walrus operator in function args [#417](https://github.com/Instagram/LibCST/pull/417)
|
|
- Allow generator expressions in f-strings [#419](https://github.com/Instagram/LibCST/pull/419)
|
|
- Keep track of assignment/access ordering during scope analysis [#413](https://github.com/Instagram/LibCST/pull/413)
|
|
- Handle string type references in cast() during scope analysis [#418](https://github.com/Instagram/LibCST/pull/418)
|
|
|
|
# 0.3.13 - 2020-10-12
|
|
|
|
## Fixed
|
|
|
|
- Use correct type for AugAssign and AnnAssign target [#396](https://github.com/Instagram/LibCST/pull/396)
|
|
- Support string annotations for type aliases [#401](https://github.com/Instagram/LibCST/pull/401)
|
|
|
|
# 0.3.12 - 2020-10-01
|
|
|
|
## Fixed
|
|
|
|
- fix RemoveImportsVisitor crash when ImportAlias is inserted without comma [#397](https://github.com/Instagram/LibCST/pull/397)
|
|
- Provide STORE for {Class,Function}Def.name in ExpressionContextProvider [#394](https://github.com/Instagram/LibCST/pull/394)
|
|
|
|
# 0.3.11 - 2020-09-29
|
|
|
|
## Added
|
|
|
|
- Implement TypeOf matcher [#384](https://github.com/Instagram/LibCST/pull/384)
|
|
|
|
## Updated
|
|
|
|
- Update return type of ParentNodeProvider to be CSTNode [#377](https://github.com/Instagram/LibCST/pull/377)
|
|
- Add source code links to each class/function [#378](https://github.com/Instagram/LibCST/pull/378)
|
|
|
|
## Fixed
|
|
|
|
- Removing an import alias with a trailing standalone comment should preserve the comment [#392](https://github.com/Instagram/LibCST/pull/392)
|
|
|
|
# 0.3.10 - 2020-09-17
|
|
|
|
## Added
|
|
|
|
- Handle string annotations in ScopeProvider [#373](https://github.com/Instagram/LibCST/pull/373)
|
|
- Add is_annotation subtype for Access inreferences. [#372](https://github.com/Instagram/LibCST/pull/372)
|
|
|
|
## Updated
|
|
|
|
- Call pyre query with noninteractive logging [#371](https://github.com/Instagram/LibCST/pull/371)
|
|
- Replace matchers with explicit visitation in gatherers [#366](https://github.com/Instagram/LibCST/pull/366)
|
|
- Include missing test data in install [#365](https://github.com/Instagram/LibCST/pull/365)
|
|
|
|
## Fixed
|
|
|
|
- Spaces around walrus operator are not required [#368](https://github.com/Instagram/LibCST/pull/368)
|
|
- SaveMachedNode now matches with trailing empty wildcards [#356](https://github.com/Instagram/LibCST/pull/356)
|
|
- Correctly extract wildcard matchers [#355](https://github.com/Instagram/LibCST/pull/355)
|
|
|
|
# 0.3.9 - 2020-09-07
|
|
|
|
## Added
|
|
|
|
- Support string type annotations in RemoveUnusedImports [#353](https://github.com/Instagram/LibCST/pull/353)
|
|
- Add scope to ImportAlias [#350](https://github.com/Instagram/LibCST/pull/350)
|
|
- Add scope to ClassDef [#349](https://github.com/Instagram/LibCST/pull/349)
|
|
|
|
## Fixed
|
|
|
|
- Fixed all pyre related errors [#360](https://github.com/Instagram/LibCST/pull/360)
|
|
- Fixed enclosing attribute for attributes in call arguments [#362](https://github.com/Instagram/LibCST/pull/362)
|
|
|
|
# 0.3.8 - 2020-07-22
|
|
|
|
## Added
|
|
|
|
- Handle type subscripts when applying annotations. [#335](https://github.com/Instagram/LibCST/pull/335)
|
|
- Added FullRepoManager `cache` property [#330](https://github.com/Instagram/LibCST/pull/330)
|
|
- Added optional args for tox commands [#327](https://github.com/Instagram/LibCST/pull/327)
|
|
|
|
## Updated
|
|
|
|
- Only remove trailing comma if the last alias is removed [#334](https://github.com/Instagram/LibCST/pull/334)
|
|
|
|
## Fixed
|
|
|
|
- Fixed inserting imports after module docstring [#343](https://github.com/Instagram/LibCST/pull/343)
|
|
- Fixed ParenthesizedWhitespace before params in FuncDef [#342](https://github.com/Instagram/LibCST/pull/342)
|
|
- Fixed validation for ImportAlias and Try statements [#340](https://github.com/Instagram/LibCST/pull/340)
|
|
- Fixed NotEqual position issue [#325](https://github.com/Instagram/LibCST/pull/325)
|
|
- Fixed minor typo in scope_provider.py [#324](https://github.com/Instagram/LibCST/pull/324)
|
|
|
|
# 0.3.7 - 2020-06-24
|
|
|
|
## Added
|
|
|
|
- Added `RenameCommand` to rename all instances of a local or imported object to a specified new name. [#308](https://github.com/Instagram/LibCST/pull/308)
|
|
|
|
## Updated
|
|
|
|
- Upgraded Codecov dev dependency to 2.1.4. [#311](https://github.com/Instagram/LibCST/pull/311)
|
|
- Enabled Pyre `strict` mode by default. [#313](https://github.com/Instagram/LibCST/pull/313)
|
|
|
|
## Fixed
|
|
|
|
- Fixed `ImportError` under Python 3.9. [#306](https://github.com/Instagram/LibCST/pull/306)
|
|
- Fixed `stdout` being plugged into successfully codemod-ed files. [#309](https://github.com/Instagram/LibCST/pull/309)
|
|
- Fixed `QualifiedName` retrieval for names with repeated substrings. [#312](https://github.com/Instagram/LibCST/pull/312)
|
|
- Fixed default values of keyword-only and positional-only arguments in `ApplyTypeAnnotationsVisitor`. [#314](https://github.com/Instagram/LibCST/pull/314)
|
|
- Fixed `ExpressionContextProvider` by giving subscript values a `LOAD`context. [#319](https://github.com/Instagram/LibCST/pull/319)
|
|
|
|
# 0.3.6 - 2020-05-27
|
|
|
|
## Added
|
|
|
|
- Added `ConvertNamedTupleToDataclassCommand` to convert `NamedTuple` class declarations to Python 3.7 `dataclasses` using the `@dataclass(frozen=True)` decorator. [#299](https://github.com/Instagram/LibCST/pull/299)
|
|
|
|
## Fixed
|
|
|
|
- Fixed typo in file name `libcst/codemod/commands/convert_percent_format_to_fstring.py`. [#301](https://github.com/Instagram/LibCST/pull/301)
|
|
- Fixed `StopIteration` exception during scope analysis matching on import names. [#302](https://github.com/Instagram/LibCST/pull/302)
|
|
|
|
# 0.3.5 - 2020-05-12
|
|
|
|
## Updated
|
|
|
|
- Expose more granular `Assignments` and `Accesses` for dotted imports in `ScopeProvider`. [#284](https://github.com/Instagram/LibCST/pull/284)
|
|
- `get_qualified_names_for` returns the most appropriate qualified name. [#290](https://github.com/Instagram/LibCST/pull/290)
|
|
- Surface `SyntaxError` raised by formatter in codemod run. [#288](https://github.com/Instagram/LibCST/pull/288) [#289](https://github.com/Instagram/LibCST/pull/289)
|
|
- Rename `ApplyTypeAnnotationsVisitor.add_stub_to_context` as `ApplyTypeAnnotationsVisitor.store_stub_in_context` and add `overwrite_existing_annotations` to allow overwrite existing type annotations. [#289](https://github.com/Instagram/LibCST/pull/291)
|
|
|
|
## Fixed
|
|
|
|
- Close opened file handles on finishing codemod to avoid `Too many open files` on OSX. [#283](https://github.com/Instagram/LibCST/pull/283)
|
|
|
|
## Deprecated
|
|
|
|
- `ApplyTypeAnnotationsVisitor.add_stub_to_context` is renamed as `ApplyTypeAnnotationsVisitor.store_stub_in_context`.
|
|
|
|
# 0.3.4 - 2020-03-27
|
|
|
|
## Added
|
|
|
|
- Supported CST parsing for Python 3.0, 3.1 and 3.3. [#261](https://github.com/Instagram/LibCST/pull/261)
|
|
- Added `RemoveUnusedImportsCommand` for removing unused import codemod. [#266](https://github.com/Instagram/LibCST/pull/266)
|
|
- Added `ApplyTypeAnnotationsVisitor.add_stub_to_context` for apply type annotations from stub modules. [#265](https://github.com/Instagram/LibCST/pull/265)
|
|
|
|
## Updated
|
|
|
|
- Improved exception message of `get_metadata` when MetadataWrapper is not used. [#257](https://github.com/Instagram/LibCST/pull/257)
|
|
- New steps for Pyre type check in README.rst which analyzes installed Python sources for better type checking. [#262](https://github.com/Instagram/LibCST/pull/262)
|
|
|
|
## Fixed
|
|
|
|
- Parsed `except(Exception):` correctly while there is no space after except syntax. [#256](https://github.com/Instagram/LibCST/pull/256)
|
|
- Fixed `RemoveImportsVisitor` to not remove imports when references still exist. [#264](https://github.com/Instagram/LibCST/pull/264)
|
|
- Fixed missing type annotations. [#271](https://github.com/Instagram/LibCST/pull/271)
|
|
- `AddImportsVisitor` generates deterministic order for added imports. [#274](https://github.com/Instagram/LibCST/pull/274)
|
|
|
|
# 0.3.3 - 2020-03-05
|
|
|
|
## Added
|
|
|
|
- `ByteSpanPositionProvider` provides start offset and length of CSTNode as metadata.
|
|
- `get_docstring` helper provides docstring from `Module`, `ClassDef` and `FunctionDef` node types.
|
|
|
|
## Updated
|
|
|
|
- Optimized `ScopeProvider` performance to run faster and use less memory:
|
|
- remove unnecessary `Assignment` of keyword `Arg`.
|
|
- don't provide scope object for formatting information nodes.
|
|
- batch set union updates in `infer_accesses` step.
|
|
|
|
## Fixed
|
|
|
|
- Fixed `_assignments` mutation when calling read-only `Scope.get_qualified_names_for` and `__contains__`.
|
|
|
|
# 0.3.2 - 2020-02-24
|
|
|
|
## Added
|
|
|
|
- Added `RemoveImportsVisitor` to remove an import if it's not used in a module.
|
|
- Added `GatherExportsVisitor` to gather exports specified in `__all__`.
|
|
- Added property helpers `evaluated_name` and `evaluated_name` in `ImportAlias`.
|
|
- Added helper to get full module name: `get_absolute_module_for_import` and `get_absolute_module_for_import_or_raise`.
|
|
- Added `CodemodContext.full_module_name` for full dotted module name.
|
|
- Added format specifiers f-string conversion support to `ConvertFormatStringCommand`.
|
|
|
|
## Updated
|
|
|
|
- Moved LibCST version to `_version.py` and can print it by `python -m libcst.tool --version`.
|
|
- Improved `EnsureImportPresentCommand` with `--alias` option.
|
|
- Improved `ConvertFormatStringCommand` with `--allow-strip-comments` and `--allow-await` options.
|
|
|
|
# 0.3.1 - 2020-02-06
|
|
|
|
## Added
|
|
|
|
- Added helpers to get both the raw and evaluated value of a SimpleString.
|
|
- Added helpers to get the quoting and prefix of SimpleString and FormattedString.
|
|
- Added a helper to get the evaluated value of number types.
|
|
- Added templated parsers for statement/expression/module to make constructing updated nodes in transforms easier.
|
|
- FullRepoManager is now integrated into codemods, so metadata requiring full repo analysis can now be used.
|
|
- Added `get_full_name_for_node_or_raise` helper to remove boilerplate of checking against `None`.
|
|
|
|
## Updated
|
|
|
|
- Upgraded Pyre dependency to 0.0.41.
|
|
- Added additional status to `libcst codemod` command.
|
|
- `get_full_name_for_node` now supports decorators.
|
|
|
|
## Fixed
|
|
|
|
- Clarified documentation around f-strings, fixed indentation.
|
|
- Fixed `libcst list` crashing if a codemod does unsafe work on import.
|
|
- Fixed deploy-time dependencies so pyyaml won't have to be manually installed to execute codemods.
|
|
- QualifiedNameProvider no longer erroneously claims names inside attributes are built-ins.
|
|
|
|
# 0.3.0 - 2020-01-16
|
|
|
|
## Added
|
|
|
|
- Added support for parsing and rendering Python 3.8 source code.
|
|
- Added more documentation for codemods.
|
|
- Added `get_full_name_for_expression` helper method.
|
|
- Added `has_name` helper to `QualifiedNameProvider`.
|
|
- Added a `--python-version` flag to `libcst.tool print` utility.
|
|
|
|
## Updated
|
|
|
|
- Codemod command can now discover codemods in subdirectories of configured modules.
|
|
- Updgraded Pyre dependency to 0.0.39.
|
|
|
|
## Fixed
|
|
|
|
- Cleaned up some typos and formatting issues in comments and documentation.
|
|
- Cleaned up a few redundant typevars.
|
|
- Fixed callable typing in matchers implementation.
|
|
- Fixed incorrect base class references in matcher decorator attribute visitors.
|
|
- Fixed codemod test assertion failing for some whitespace edge cases.
|
|
- Fixed scope analysis to track variable usage on `del` statements.
|
|
|
|
## Deprecated
|
|
|
|
- Deprecated exporting `ensure_type` from `libcst` in favor of `libcst.helpers`.
|
|
|
|
## Removed
|
|
|
|
- Removed `ExtSlice` and helper code in favor of `SubscriptElement`.
|
|
- Removed `default_params` attribute on `Parameters`.
|
|
- Removed `SyntacticPositionProvider` and `BasicPositionProvider`.
|
|
- Removed `CodePosition` and `CodeRange` exports on `libcst` in favor of `libcst.metadata`.
|
|
|
|
# 0.2.7 - 2020-01-07
|
|
|
|
## Updated
|
|
|
|
- Command-line interface now shows rough estimate of time remaining while executing a codemod.
|
|
- Add needed import now supports import aliases.
|
|
|
|
# 0.2.6 - 2020-01-01
|
|
|
|
## Added
|
|
|
|
- Added Codemod framework for running code transform over a codebase in parallel.
|
|
- Codemod for code transform logic.
|
|
- CodemodContext for preserving states across transforms.
|
|
- CodemodCommand for CLI interface.
|
|
- CodemodTest for testing codemod easily.
|
|
- yaml codemod config.
|
|
- Pre-build commands in codemod/commands/.
|
|
- Added TypeInferenceProvider for inferred type info from Pyre. A regression test suite was included.
|
|
- Added FullRepoManager for metadata inter-process cache handing.
|
|
|
|
## Fixed
|
|
|
|
- Fixed usage link in README.
|
|
- Fixed type annotation for Mypy compatibility.
|
|
|
|
## Updated
|
|
|
|
- Upgraded Pyre to 0.0.38
|
|
|
|
# 0.2.5 - 2019-12-05
|
|
|
|
## Added
|
|
|
|
- Added `extract`, `extractall` and `replace` functions to Matchers API.
|
|
|
|
## Fixed
|
|
|
|
- Fixed length restrictions for `AllOf` and `OneOf` so that they can be used with sequence expansion operators.
|
|
- Fixed batchable visitors not calling attribute visit functions.
|
|
- Fixed typos in docstrings.
|
|
- Fixed matcher type exception not being pickleable.
|
|
|
|
## Deprecated
|
|
|
|
- Deprecated parsing function parameters with defaults into `default_params` attribute. They can be found in the `params` attribute instead.
|
|
|
|
# 0.2.4 - 2019-11-13
|
|
|
|
## Fixed
|
|
|
|
- Fixed broken types for sequence matchers.
|
|
|
|
# 0.2.3 - 2019-11-11
|
|
|
|
## Added
|
|
|
|
- Preliminary support for 3.8 walrus operator.
|
|
- CI config and fuzz tests for 3.8.
|
|
- Experimental re-entrant codegen API.
|
|
- Added `unsafe_skip_copy` optimization to `MetadataWrapper`.
|
|
- Matchers API now includes a `findall` function.
|
|
- Matchers now have a `MatchMetadataIfTrue` special matcher.
|
|
|
|
## Updated
|
|
|
|
- Updated to latest Black release.
|
|
- Better type documentation for generated matchers.
|
|
|
|
## Fixed
|
|
|
|
- Clarified matchers documentation in several confusing areas.
|
|
- Drastically sped up codegen and tests.
|
|
- `QualifiedName` now supports imported attributtes.
|
|
- `ExpressionContext` properly marks loop variables as `STORE`.
|
|
- Various typos in documentation are fixed.
|
|
|
|
## Deprecated
|
|
|
|
- Deprecated `BasicPositionProvider` and `SyntacticPositionProvider` in favor of `WhitespaceInclusivePositionProvider` and `PositionProvider`.
|
|
|
|
# 0.2.2 - 2019-10-24
|
|
|
|
## Added
|
|
|
|
- Added `deep_with_changes` helper method on CSTNode.
|
|
- Added metadata support to matchers.
|
|
- Added ability to get the defining node from a `LocalScope` (`FunctionScope`, `ClassScope` or `ComprehensionScope`).
|
|
|
|
## Updated
|
|
|
|
- Many changes to LibCST documentation including a new best practices page and updated scope tutorial.
|
|
- Exported `CodePosition` and `CodeRange` from `libcst.metadata` instead of `libcst`.
|
|
|
|
## Fixed
|
|
|
|
- Disallowed decorating a concrete visit or leave method with `@visit` or `@leave` decorators.
|
|
- Renamed position provider classes to be more self-explanatory.
|
|
- Fixed trailing newline detection when the last character in a file was from a continuation.
|
|
- Fixed `deep_clone` potentially blowing the stack with large LibCST trees.
|
|
|
|
## Deprecated
|
|
|
|
- Deprecated `ExtSlice` in favor of `SubscriptElement`.
|
|
- Deprecated parsing `Subscript` slices directly into `Index` or `Slice` nodes.
|
|
|
|
# 0.2.1 - 2019-10-14
|
|
|
|
## Added
|
|
|
|
- `Scope.assignments` and `Scope.accesses` APIs to access all references in a scope.
|
|
- Scope analysis tutorial.
|
|
|
|
## Updated
|
|
|
|
- Supported `<comprehension>` in `Scope.get_qualified_names_for` and `QualifiedName`.
|
|
- Enforced identity equality for matchers and immutability of non-dataclass matchers.
|
|
- Generalize codegen cleanup steps for all codegen.
|
|
|
|
## Fixed
|
|
|
|
- Made `BatchableMetadataProvider` typing covariant over its typevar.
|
|
- Fixed LICENSE header on generated matcher file.
|
|
- Cleanup unused internal noqa and on-call specification.
|
|
|
|
# 0.2.0 - 2019-10-04
|
|
|
|
## Added
|
|
|
|
- Added matchers which allow comparing LibCST trees against arbitrary patterns.
|
|
- Improved tree manipulation with `deep_remove` and `deep_replace` helper methods on CSTNode.
|
|
- Added new metadata providers: parent node and qualified name.
|
|
|
|
## Updated
|
|
|
|
- Updated Pyre to latest release.
|
|
- Updated scope metadata to provide additional helpers.
|
|
- Updated preferred method of removing a node from its parent in a visitor.
|
|
|
|
## Fixed
|
|
|
|
- Metadata classes and methods are now exported from "libcst.metadata" instead of several submodules.
|
|
- Fixed LICENSE file to explicitly reference individual files in the repo with different licenses.
|
|
- Fixed `deep_clone` to correctly clone leaf nodes.
|
|
- Fixed all parse entrypoints to always return a tree with no duplicated leaf nodes.
|
|
|
|
# 0.1.3 - 2019-09-18
|
|
|
|
## Added
|
|
|
|
- Added preliminary support for parsing Python 3.5 and Python 3.6 source.
|
|
- Added scope analysis metadata provider.
|
|
- Added mypy type support for built package.
|
|
|
|
## Fixed
|
|
|
|
- Several typos in documentation are fixed.
|
|
|
|
# 0.1.2 - 2019-08-29
|
|
|
|
## Added
|
|
|
|
- Added attribute visitor hooks.
|
|
- Added base visit/leave methods which can be subclassed.
|
|
- Hypothesis fuzz testing suite, courtesy of Zac Hatfield-Dodds.
|
|
|
|
## Fixed
|
|
|
|
- Metadata documentation is much more complete.
|
|
- Fixed several whitespace validation issues caught by Hypothesis.
|
|
- Parser syntax errors are now used inside parser.
|
|
|
|
# 0.1.1 - 2019-08-20
|
|
|
|
## Added
|
|
|
|
- Metadata interface is now exported.
|
|
|
|
## Fixed
|
|
|
|
- Dependencies are now specified with minimum revisions.
|
|
- Lots of documentation fixes.
|
|
|
|
# 0.1 - 2019-07-23
|
|
|
|
## Added
|
|
|
|
- First public release of LibCST.
|
|
- Complete, fully typed syntax tree for Python 3.6.
|
|
- Full suite of tests for each defined node type.
|