Minor updates to Subscribe.js, updated LLM_DEV_PROMPTS to latest version
This commit is contained in:
54
LLM_DEV_PROMPTS/PYTHON PROJECTS/CODE_STYLEGUIDE_PYTHON.md
Normal file
54
LLM_DEV_PROMPTS/PYTHON PROJECTS/CODE_STYLEGUIDE_PYTHON.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Code Styleguide — Python
|
||||
last_modified: 2026-02-22
|
||||
---
|
||||
|
||||
1. Standard Project Layout. Use the src/ layout to prevent accidental imports from the root and ensure your project behaves like an installed package:
|
||||
|
||||
my_project/
|
||||
├── pyproject.toml # Modern tool & dependency configuration
|
||||
├── README.md # Instructions for humans
|
||||
├── LICENSE # Usage rights
|
||||
├── .gitignore # Exclude venv/, __pycache__/, .env
|
||||
├── src/
|
||||
│ └── my_project/ # Main package
|
||||
│ ├── __init__.py
|
||||
│ ├── main.py # Minimal entry point logic
|
||||
│ └── core.py # Business logic
|
||||
├── tests/ # Mirror src structure for testing
|
||||
└── docs/ # Technical documentation
|
||||
|
||||
2. Virtual Environments: Always isolate project dependencies using venv or pyenv to avoid conflicts with system-wide packages.
|
||||
|
||||
3. Adhere to PEP 8: Use 4 spaces for indentation (no tabs), limit lines to 79 characters, and use two blank lines between top-level functions.
|
||||
|
||||
4. Put code in functions. If you are writing a script, put the script in a
|
||||
function called `main` and call `main()` at the end of the script using the
|
||||
standard invocation:
|
||||
|
||||
```python
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
5. Keep main.py Boring: The entry point should only orchestrate (load config, start app). Heavy business logic should live in specialized modules.
|
||||
|
||||
6. Config Isolation: Never hardcode secrets or database URLs. Use a .env file with libraries like python-dotenv or Pydantic Settings.
|
||||
|
||||
7. Logging over Printing: Use Python’s built-in logging module to track errors and application state in production.
|
||||
|
||||
8. Test-First: Treat your tests/ directory as first-class code. Use pytest for its powerful features and simple syntax.
|
||||
|
||||
9. Naming Conventions: Use snake_case for functions and variables, PascalCase for classes, and UPPER_CASE for constants.
|
||||
|
||||
10. pyproject.toml: Use this as the single source of truth for project metadata and tool configurations (replaces setup.py).
|
||||
|
||||
11. Modular Design: Group code by domain (e.g., /users, /payments) rather than function (e.g., utils.py) to maintain separation of concerns.
|
||||
|
||||
# Author
|
||||
|
||||
[@sjdev](https://sjdev.co)
|
||||
<[sj@sjdev.co](mailto:sj@sjdev.berlin)>
|
||||
|
||||
# License
|
||||
|
||||
MIT. See [LICENSE](../LICENSE).
|
||||
Reference in New Issue
Block a user