- #476 Fix rope.contrib.autoimport package missing from release (@bageljrkhanofemus)
Date: 2022-05-25
- #464 Add new autoimport implementation that uses a sqllite3 database, cache all available modules quickly, search for names and produce import statements, sort import statements. (@bageljrkhanofemus)
- #419 Fix bug while moving decorated function (@dryobates)
- #439 Fix bug while moving decorated class (@dryobates)
- #461 Fix bug while extracting method with list comprehension in class method (@dryobates)
- #440 Fix bug while inlining function with type hints in signature (@dryobates)
- The pickle-based autoimport implementation is still the default, but will be deprecated sometime in the future.
Date: 2022-04-08
- #400 Drop Python 2.7 support
- #459 Fix bug while extracting method with augmented assignment to subscript in try block (@dryobates)
- #451, $456 Implement structural pattern matching (PEP634) (@lieryan)
- #458 Improve the heuristic for joining lines when extracting one line expression (@lieryan)
- #134, #453 Preserve newline format when writing files (@lieryan)
- #457 Fix extract info collection for list comprehension with multiple targets (@lieryan)
- #455 Fix typo (@Jasha10)
Date: 2021-11-23
- #443 Implement
yield from
syntax support to patchedast.py
- #445, #446 Improve empty tuple and handling of parentheses around tuple
- #270, #432 Fix rename import statement with dots and as keyword (@climbus)
- #447 Add Python 3.10 to tests
Date: 2021-11-11
- #441. Start publishing wheel packages to allow offline installs
Date: 2021-10-18
- #392, #316 Handle
global
keyword when extracting method (@climbus) - context manager:
- #387, #433 Implement extract refactoring for code containing
async with
(@lieryan) - #398, #104 Fix parsing of nested
with
statement/context manager (@climbus)
- #387, #433 Implement extract refactoring for code containing
- list/set/dict/generator comprehension scope issues:
- #422 Added scopes for comprehension expressions as part of #293 (@climbus)
- #426, #429 Added support for checking scopes by offset as part of #293 (@climbus)
- #293, #430 Fix renaming global var affects list comprehension (@climbus)
- #395, #315 Reuse of variable in comprehensions confuses method extraction (@climbus)
- #436 Fix error
TypeError: 'PyDefinedObject' object is not subscriptable
(@lieryan)
- f-string:
- #303, #420 Fix inlining into f-string containing quote characters (@lieryan)
- inline assignment/walrus operator:
- #423 Fix
AttributeError: '_ExpressionVisitor' object has no attribute 'defineds'
(@lieryan)
- #423 Fix
- #391, #376 Fix improper replacement when extracting attribute access expression with
similar=True
(@climbus) - #396 Fix improper replacement when extracting index access expression with
similar=True
(@lieryan)
- #434 Move read() to FileSystemCommands (@lieryan)
- #410 Setup all-contributors bot (@lieryan)
- #404 Blacken source code, rope now follows black code style (@climbus)
- #399 Add Github Actions to enforce black code style (@lieryan)
- #403 Remove plain 'unittest' only runner (@lieryan)
Date: 2021-09-18
- Fix caller of
_namedexpr_last()
throwing exception due to returning unexpected list instead of boolean
Date: 2021-09-18
- #377 Added the ability to extract method to @staticmethod/@classmethod (@climbus)
- #374 Changed Organize import to keep variables listed in
__all__
- Change default .ropeproject/config.py to ignore code in folders named .venv and venv (@0x1e02)
- #372 Add extract method refactoring of code containing
exec
(@ceridwen) - #389 Add extract method refactoring of code containing
async def
,async for
, andawait
- #365, #386 Support extract method of expressions containing inline assignment (walrus operator)
- #380 Fix list of variables that are returned and/or turned into argument when extracting method in a loop