A skeleton for a python project I use whenever working on a new project. Feel free to use for your own projects.
.github directory:
dependabot.yml
- Make sure GitHub actions and Python packages are up-to-date.
workflows:
codeql.yml
- Searching the code for vulnerabilities and bugs.guarddog.yml
- Scan used Python packages to secure the security of the Supply chain.lint.yml
- Prevent code smells and make the Python code easy to read.
app_name directory:
- cli / common / core / db Python local packages - Pretty self-explanatory. More packages can be added based on the purpose of the project.
__init__.py
- Treat it as a package.__main__.py
- Main CLI entrypoint.config.py
- Loads secrets / app configuration from environment files etc.exceptions.py
- Defining custom exceptions for the project.
Environment files
.env
- Shared environment file..env.dev
- Environment file for dev purposes.
Requirements files
requirements.txt
- Requirements for the actual project.requirements-dev.txt
- Requirements for test / dev purposes.
GitHub miscellaneous
.gitignore
- Exclude files from working repository.README.md
- Describe what the project actually does.LICENSE
- License for the project.
Other
ruff.toml
- Configuration for Ruff.Dockerfile
- Project build instructions for Docker.