Dependency management Link to heading
uv Link to heading
# create a project
uv init
# add dependency
uv add boto3
uv add "boto3>=@2.38.1" # in specific version
uv add pytest --dev # as developer dependency, short for: 'uv add --group dev pytest'
# install dependencies
uv sync # includes dev group
poetry Link to heading
# add dependency
poetry add boto3
poetry add boto3@2.38.1 # in specific version
poetry add moto[dynamodb] --group dev # as developer dependency
# update dependency
poetry update aiohttp
poetry update aiohttp --dry-run
# update (transitive) dependency to newest version and write lock file
poetry update aiohttp --lock
# remove dependency
poetry remove checkov --group dev
pyenv Link to heading
pyenv virtualenvs # list all virtual environments
pyenv virtualenv <python version> <environment name> # e.g. pyenv virtualenv 3.12 my-venv
pyenv activate <env_name> # activate environment
pyenv virtualenv-delete <env_name> # delete environment
Linter / Formatter Link to heading
ruff Link to heading
…
pylint Link to heading
…
black Link to heading
…
Logging Link to heading
…
Testing Link to heading
pytest Link to heading
# executing specific test in a specific folder
pytest ./path/to/folder -k 'name_of_test'
# with coverage (depends on pytest-cov)
pytest --cov=. --cov-report=xml:coverage.xml
# combining multiple coverage files
COVERAGE_FILE=.coverage.file1 pytest --cov=. --cov-append path/to/test_folder_1 && \
COVERAGE_FILE=.coverage.file2 pytest --cov=. --cov-append path/to/test_folder_2 && \
coverage combine && \
coverage xml -o coverage.xml