Skip to content

5.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 08 Oct 16:35
· 59 commits to master since this release

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 where crc.py is now a private module _crc.py of package
    crc.

    src/
    └── crc/
        β”œβ”€β”€ _crc.py
        └── __init__.py
    

    __init__.py re-exports all the public entities from the private module, so that
    typical imports like from 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 (formerly crc.py) has been
    removed.

    This shouldn't affect anyone installing crc as package. Both the entrypoint crc
    and the package-level __main__ remain in place.

    However, in case you were to obtain the src/crc/_crc.py file (formerly crc.py)
    and mark it as executable afterwards to run it directly, then this change may affect
    you. Running the main() function can then still be achieved by either:

    • python path/to/crc.py
    • python -m crc (if the module is on your PYTHON_PATH)

✨ Added

  • Add py.typed marker to indicate the crc 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 of ignore_missing_imports (mypy) or reportMissingTypeStubs
    (Pylance/Pyright) in downstream projects.

πŸ“š Documentation

  • Add contributors page

πŸ”© Internal / Development

  • Several improvements to type annotations:
    • Conform to mypy in strict mode.
    • Type information now follows a more modern syntax by implementing recommendations
      from PEPs 563, 585, 604 while maintaining
      support for Python 3.8.
    • Declare all instance variables on classes.
    • Create a Type Alias for a complex Union used repetitively.
  • Remove unnecessary parentheses and start argument in range().
  • Remove unused imports.
  • Update lockfile.