Skip to content

codingjerk/python-project-checklist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

Python Project Checklist

Steps to check when starting on a python project

Version Control

Optionally you can use mercurial (hg), bazaar, darcs, etc.

Dependency Management

  • Use poetry and pyproject.toml (see PEP621)

Optionally, you can stick with setuptools or hatchling

Documentation

  • Add README.md
    • Have an intro
    • Have an installation/deploy section
    • Have a usage section
    • Have a live demo made with termtosvg
  • Use OpenAPI for API documentation
  • Create a documentation page with mkdocs, mkdocs-material and mkdocstrings
  • Add badges
    • CI pipeline status
    • Code quality: code coverage, maintainability indexes
    • Package status: package health (see Snyk), vulnerabilities, out of date dependencies
    • General status: maintenance status, uptime (for web)
    • Package info: size, lines of code, license, version
    • Popularity: stars, downloads
    • Discord server
    • Funding via Open Collective
    • Find more at shields.io and badgen.net

License

Tests

  • Use pytest
  • Add unit tests
    • Use faker / mimesis for fake data
    • Use hypothesis for property testing
  • Add e2e tests
    • Use tavern for API testing
    • Use playwright for UI testing
  • Add smoke tests
  • Add benchmarks with pytest-benchmark
    • Use pytest-memray to control memory usage
  • Add test coverage with pytest-cov

Linting

  • Use ruff
  • Use mypy
  • Use .editorconfig (see .editorconfig)
  • Use specific linters
    • Use cspell to check spelling
    • Use shellcheck for shell scripts
    • Use sqlfluff for sql files
    • Use yamllint for yml files
    • Use hadolint for Dockerfiles
    • Use dotenv-linter for env files

Logging

  • Use loguru
  • Consider change default LOGURU_LEVEL to INFO

Continuous integration

  • Use github actions
  • Add lint, test, build and publish pipeline stages
  • Add badges to README.md

Contribution

  • Have CONTRIBUTING.md file (see example and another one)
  • Have "Contribution" section in your README.md
  • Have CODE_OF_CONDUCT.md file (see example)

About

Steps to check when starting on a python project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published