Changelog
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.5.0] - 2026-10-02¶
Added¶
- Support Python3.14, including PEP 750 template strings and PEP 758 unparenthesized
exceptexpressions - Support Python3.13, including PEP 696 type parameter defaults
- Support Python3.12, including PEP 695
typestatements and generic functions/classes
Changed¶
- Remove usage of
ast.Str, which is deprecated since Python3.12 - Useful features documented
- Drop support for Python3.8 and Python3.9; Python3.10+ is now required
- Development status is now Beta
TypeVar,ParamSpecandTypeVarTupledefinitions are no longer added to__all__- Refactoring replaces only the value of an existing
__all__, so comments and other code on the same lines are kept - Refactoring keeps the type of an existing
__all__(list, tuple or set) and writes one name per line when__all__was already multi-line or would be longer than 88 characters
Fixed¶
- Comments after
__all__were removed while refactoring - A name defined both as a class/function and a variable is listed once in
__all__#43 - Names already listed in
__all__that the module still binds (re-exported imports, dunders, lowercase variables) or that a star import may provide are kept instead of being removed #39 - A stale
__all__is rewritten to be empty when nothing is public anymore, and “Refactoring” is only printed when the file changed #45 - A new
__all__is inserted after the module docstring (and after a leading shebang or encoding line) instead of above it #42 - Syntax errors and files that can’t be read or decoded are reported with their path and make the exit code 1, instead of being skipped silently or crashing the run #44
- Names that don’t exist when the module is imported are no longer added to
__all__: names deleted withdel, defined only underif TYPE_CHECKING:,if __name__ == "__main__":orif False:, comprehension variables, walrus targets in lambdas and annotations without a value (X: int) #40 __all__ +=, annotated__all__,extendwith a tuple and__all__inside functions are handled correctly; an__all__built from several statements is reported but not rewritten, and a dynamic__all__(e.g.["a"] + sub.__all__) is left alone #41- Crash on modules whose
__all__is a set - An
__all__with comments inside the literal is reported but not rewritten, so the comments are not lost;# unexport:markers inside string literals are ignored - Names bound in only one branch of an
ifthat can’t be decided statically (e.g.if sys.platform == "win32":) are no longer added to__all__ TypeVars bound by tuple unpacking (T, U = TypeVar("T"), TypeVar("U")) are no longer added to__all__# unexport: not-publicworks on imports, also on one name of a multi-line import- Listed names that exist at runtime without a visible binding are kept: submodules of a package listed in its
__init__.py, names served by a module__getattr__, and names added throughglobals()or@enum.global_enum;matchcaptures count as bindings - An
__all__bound by an import (from io import __all__) or by unpacking is treated as dynamic instead of being overridden by a new one - Crash when the new
__all__was inserted after an import that ends the file - An emptied set
__all__is written asset()instead of{}(an empty dict) - Files with null bytes are reported as errors instead of crashing the run on Python 3.10 and 3.11
- Refactoring keeps the file’s newline style (CRLF files were rewritten to LF)
- The
LICENSEfile is included in the built package
[0.4.0] - 2022-11-05¶
Changed¶
- Change project name to
unexportfrompyall
[0.3.5] - 2022-10-28¶
Added¶
- Support Python3.11
- Support Python3.10
- Add py.typed
- Github Action
Changed¶
- Single quotes to double quotes when refactoring
- Apply src layout
- Support tuple all
[0.2.0] - 2021-04-11¶
Changed¶
- Docs update by @hakancelikdev
Fixed¶
- pyall: public by @hakancelikdev
[0.1.0] - 2021-04-11¶
Added¶
- pyall: not-public ( feature ) by @hakancelikdev
- pyall: public ( feature ) by @hakancelikdev
- refactor flag ( feature ) by @hakancelikdev
- diff flag ( feature ) by @hakancelikdev
- include flag ( feature ) by @hakancelikdev
- exclude flag ( feature ) by @hakancelikdev