5.0.0 - 2023-10-08
π This release is powered by Gert van Dijk, thank you for your contribution!
π¨ Breaking Changes
-
Move from a single-file/module to an βsrc-based layoutβ package.
The layout of the source repository has changed from single file
crc.py
in the root into a package wherecrc.py
is now a private module_crc.py
of packagecrc
.src/ βββ crc/ βββ _crc.py βββ __init__.py
__init__.py
re-exports all the public entities from the private module, so that typical imports likefrom crc import Calculator
remain working as-is.The need and choice for this new layout is discussed in Issue #110.
-
The shebang line on the main
src/crc/_crc.py
file (formerlycrc.py
) has been removed.This shouldn't affect anyone installing
crc
as package. Both the entrypointcrc
and the package-level__main__
remain in place.However, in case you were to obtain the
src/crc/_crc.py
file (formerlycrc.py
) and mark it as executable afterwards to run it directly, then this change may affect you. Running themain()
function can then still be achieved by either:python path/to/crc.py
python -m crc
(if the module is on yourPYTHON_PATH
)
β¨ Added
- Add
py.typed
marker to indicate thecrc
package ships with type information. The type information was added inline since 2.0.0, but the marker file was missing in the package, so type checkers did not consider the type information. This eliminates the use ofignore_missing_imports
(mypy) orreportMissingTypeStubs
(Pylance/Pyright) in downstream projects.
π Documentation
- Add contributors page
π© Internal / Development
- Several improvements to type annotations:
- Remove unnecessary parentheses and
start
argument inrange()
. - Remove unused imports.
- Update lockfile.