Skip to main content

Checker of __init__.py files in Python projects

Project description

__init__ file checker

Build, lint and test

Tool that ensures that __init__.py files are not missing. Various Python tools needs these files, most notably pylint.

Installation

pip install init-file-checker

Installation requires Python 3.8.5 or higher.

Usage

A sample command that checks presence of __init__.py files is:

init-file-checker my_project/

If you want to create missing __init__.py files, use --add-missing command line option:

init-file-checker --add-missing my_project/

The created files will have zero size.

License

MIT

Development setup

  1. Make sure you have brew package manager installed.

  2. Install pyenv, pyenv-virtualenv and poetry:

    brew install pyenv
    brew install pyenv-virtualenv
    brew install poetry
    
  3. Add the following lines to .zshrc or .bash_profile and restart the terminal:

    # Pyenv settings
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv virtualenv-init -)"
    
  4. Create Python virtual environment with the correct Python version:

    make install-python
    make create-environment
    
  5. Install all dependencies

    make install-dependencies
    

If you need to delete the Python virtual environment, you can do so with the command make delete-environment.

Running unit tests and code checks

If you make code change, run unit tests and code checks with the command:

make clean whitespace-format-check isort-check black-check flake8 pydocstyle pylint ruff mypy test coverage

or, equivalently, with the command:

make clean lint test coverage

Each make target runs different checks:

  • clean deletes temporary files
  • whitespace-format-check runs whitespace-format checker on all files
  • isort-check runs isort checker of imports in *.py files
  • black-check runs black code format checker on *.py files
  • flake8 runs flake8 code style checker on *.py files
  • pydocstyle runs pydocstyle docstring checker on *.py files
  • pylint runs pylint code checker on *.py files
  • ruff runs ruff code checker on *.py files
  • mypy runs mypy type checker on *.py files
  • test runs unit tests
  • coverage generates code coverage report
  • lint runs all code checks

You can automatically format code with the command:

make isort-format black-format whitespace-format

Modifying dependencies

The list of Python packages that this project depends on is specified in pyproject.toml and in poetry.lock files. The file pyproject.toml can be edited by humans. The file poetry.lock is automatically generated by poetry.

Install a development dependency with the command:

poetry add --dev <some_new_python_tool>

Install a new production dependency with the command:

poetry add <some_python_library>

Manual modification of pyproject.toml

Instead of using poetry add command, you can edit pyproject.toml file. Then, regenerate poetry.lock file with the command:

poetry lock

or the command:

poetry lock --no-update

The latter command does not update already locked packages.

Fixing broken Python environment

If your Python virtual environment becomes broken or polluted with unnecessary packages, delete it, recreate it from scratch and install dependencies a fresh with the following commands:

make delete-environment
make create-environment
make install-dependencies

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

init_file_checker-0.0.2.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

init_file_checker-0.0.2-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file init_file_checker-0.0.2.tar.gz.

File metadata

  • Download URL: init_file_checker-0.0.2.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.5.0-14-generic

File hashes

Hashes for init_file_checker-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d46d472159407aad6d730be35414fb16a6266a00be270ed50a43bccfa6d3419e
MD5 e2af2d4bdc2f640b8c4901bb57c0d957
BLAKE2b-256 9333040f9031af19227cef69f61601669772e8accfe51b1a4be0aca30b272c50

See more details on using hashes here.

File details

Details for the file init_file_checker-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: init_file_checker-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.12 Linux/6.5.0-14-generic

File hashes

Hashes for init_file_checker-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7355ac9968749e65b91b9900e4ed7ed38eda667ad8f8890825eb26cb7966bc84
MD5 5d6865ec1ba6a2c77b8f0333cafeec8e
BLAKE2b-256 212145fc0ff1dc641ed26bf0f47bcc7f1a6bc46c8efcc7e71bc13975784b480c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page