Skip to content
  1. Sep 10, 2024
    • Alexander Hess's avatar
      Set up a test suite · b8ceee39
      Alexander Hess authored
      - use pytest as the test suite and
        measure test coverage with coverage.py
      - add package for the test suite under tests/
      - add nox session "test" to run the test suite
        for all supported Python versions
      - use flake8 to lint pytest for consistent style
      b8ceee39
    • Alexander Hess's avatar
      Set up code linting tools · ecf14207
      Alexander Hess authored
      - use flake8 as the main linting tool with the following plug-ins:
        + flake8-annotations
        + flake8-bandit
        + flake8-black
        + flake8-broken-line
        + flake8-bugbear
        + flake8-commas
        + flake8-comprehensions
        + flake8-debugger
        + flake8-docstrings
        + flake8-eradicate
        + flake8-isort
        + flake8-quotes
        + flake8-string-format
        + flake8-pyproject
        + pep8-naming
        + pydoclint
      - use mypy for static type checking
      - use ruff for linting for future compatibility
      - add nox session "lint" to run these tools
      - add `ruff check --fix ...` in nox session "format"
      - lint all source files => no errors found
      ecf14207
    • Alexander Hess's avatar
      Set up code formatting tools · fb407631
      Alexander Hess authored
      - auto-format code with:
        + autoflake => * remove unused imports and variables
                       * remove duplicate dict keys
                       * expand star imports
        + black => enforce an uncompromising code style
        + isort => enforce a consistent import style
                   compliant with Google's Python style guide
      - add nox session "format" to run these tools
      fb407631
    • Alexander Hess's avatar
      Set up nox as the task runner · ceabb00b
      Alexander Hess authored
      - base configuration for all nox sessions to come
      - add infos about nox in the README file
      - ignore [py]cache folders in git
      ceabb00b
    • Alexander Hess's avatar
      Initialize the project · e832333e
      Alexander Hess authored
      - describe how a local develop environment can be set up
      - we use poetry to manage the project
        => add pyproject.toml and poetry.lock files
      - add a package for the source code
        => "src" layout structure to ensure that pytest runs the tests
           against a packaged version installed in a virtual environment
           and not the *.py files in the project directory
           (Source: https://hynek.me/articles/testing-packaging/)
      - ignore poetry's artifacts in git
      e832333e
    • Alexander Hess's avatar
      Add README file · c7d8b7f2
      Alexander Hess authored
      - describe the project's goals
      - contributions are welcome
      - mention the GitFlow branching model
      c7d8b7f2
Loading