All notable changes to this project will be documented in this file.
- Python 3.12 support added
- Python 3.6 support dropped
- Python 3.7 support dropped
-
Improved Type Comment Analysis
To ensure accurate type comment analysis, a crucial fix was implemented in the code. The update involves refining the process by adding a check within ast.AnnAssign and ast.arg types. Specifically, the code now includes a verification that visit_Constant occurs under an annotation, addressing unnecessary name discovery issues for better accuracy in type_comment assessment.
import sys from typing import ( List, ) test_list: List[str] = ["spam", "eggs"] # it thought spam and eggs were a ast.Name object.
- Support for Python version 3.11.
- Implement
strtobool
function (and remove distutils dependency) #297
-
Automatically pick up config options from setup.cfg if it is present in the project root else check and if it exists use pyproject.toml. #256
If you want you can disable this feature by passing
--disable-auto-discovery-config
-
Add github-action #229
-
Add support like command line commands in configuration files. #287
- ignore-init setting is not working from command line call #263
- Running without options or a config file #281
- Attribute as import refactor #284
- Raise more human-readable exceptions when the key is mistyped in the configuration #286
- Fix: ignore-init setting is not working from command line call #263
- Add support like command line commands in configuration files. #287
- Raise more human-readable exceptions when the key is mistyped in the configuration. #286
- Fix: attribute as import refactor #284
- Running without options or a config file #281.
-
Automatically pick up config options from setup.cfg if it is present in the project root else check and if it exists use pyproject.toml. #256
If you want you can disable this feature by passing
--disable-auto-discovery-config
- The remove command is set to the default behavior. #273
- pre-commit autoupdate yields a weird result #275
- Multiple versions of the docs
--color=never
is now respected when showing the diffs
- Changelog url PR #250
- Name Error PR #250
-
Add if condition analysis and 🧪 Refactor PR #247
For example;
import sys if sys.version_info >= (3, 8): from typing import Literal else: from typing_extensions import Literal
-
setup.py remove and pyproject.toml was added. PR #245
- Fix main.py to run unimport
- Re complile fail mentioning 'ps_d' when using --gitignore PR #241
For Python 3.7 and above
- Drop support for patspec, 0.5.0 above and below 0.10.0 versions.
- Only 0.10.0 and above versions are supported, in these versions the gitignore parameter works more accurately.
- For more accurate results when using --gitignore parameter, please do not use Python 3.6 and Windows.
- Docs update
- Refactor main.py and add tests PR #238
- Setup
- Update docs
- Remove requirements feature PR #234
This feature alone is not enough and can be developed as a new project using unimport, it should not be a feature of unimport.
- Configurations flow PR #230
- Exit code behavior PR #225
- 🔥 Support Github action PR #231
- 3.10+ Support 🔥 PR #26
- Refactor: tests using pytest, fix check method PR #208
- i199 Refactor options & commands & Option color output PR #205
- 🔥 Build an Docker image PR #202
- setup.py
- EOLs not being respected in modified files per PR #193
- Respect the file's current EOL (LF/CRLF) instead of the platform default
- Add unit and integration tests that EOLs are respected
- Scope analyzer PR #189
- Scope analyzer
- Duplicate import feature has been enabled again.
- Adding unnecessary rpar in vertical style PR #191
İnput
import sys
from typing import (
List,
)
test_list: List[str] = ["spam", "eggs"]
Output
from typing import (
List,
)
test_list: List[str] = ["spam", "eggs"]
- Emoji issues PR #185
- 👎 Temporarily drop support for duplicate imports. Commit -> 35fa7239019fc4b4a68c98d3bde64f0302c367f6
- list_paths in utils PR #172
- Add
--ignore-init
flag PR #169
- Python3.9 Support PR #166
- Fix PR #161
- Star import more accurate suggestion PR #158
- %15 performance increase & remove show-error flag PR #159
- Fix: scanner PR #157
- PR #155
- Configuration Bug Fix ( Configuration priority, reading and merge )
- %136 - %150 performance increase
- Extra type check on
utils.is_std
, Commit b9e226ef18984189b4154b739b9b186a2c7a2418 - Import skip PR #147
- Support multiline skip import only py3.8 and plus PR #138
- Support type variable PR #128
- Support Windows OS coloring and encoding PR #116
- Call attribute scanner PR #145
- Requirements feature & star import suggestion PR #142
- Initial imports from sys.modules PR #136
- Import and name matcher PR #133
- Type comment PR #130
- Same line duplicates PR #125
- Configuration extend and refactoring PR #111
- General refactoring PR #108
- Support append and extend
__all__
list - Star import suggestions improved
- Support append and extend
- Support .gitignore exclude patterns PR #102
- Support async def Issue #92
- Improve: Names, Imports and star suggestion PR #112
- Unnecessary refactoring PR #107
- Optimize Python >=3.8 type comments support method PR #95
- Improve test coverage PR #93
- Getting rid of some bad practice & Fix: pre-commit bug bd93a0cf6b1d5d27bf6a669f2a029faaf225ae5f
- Vertical style issue PR #86
from foo import (
Foo,
Bar,
FooBar,
)
Foo, Bar
- More than one star import exist on the same file. Commit 46e585044f690413c198ac7f356f9a5ef21597bc
- Support for exit code and add some enhancement PR #81
- Double underscore in builtins imports PR #82
- Incorrect matching import and name PR #78
- Support: file-wide skips PR #77
- Now, you can skip a file by typing
# unimport: skip_file
anywhere in that file.
- Now, you can skip a file by typing
- Support: requirements.txt file PR #75
- Now, You can automatically delete unused modules from the requirements.txt file (
unimport --requirements --remove
), see the difference (unimport --requirements --diff
), delete it by requesting permission (unimport --requirements --permission
), or just check (unimport --requirements
).
- Now, You can automatically delete unused modules from the requirements.txt file (
- Support for type hints (#58) & string typing PR #71
from typing import List, TYPE_TEST
test: 'List[TYPE_TEST]'
from typing import List, TYPE_TEST
test: "List['TYPE_TEST']"
- Preserve import styles PR #76
- Match error between import name and name PR #74
- get_suggestion_modules function fix for
__all__
name when import is star PR #64