All checks were successful
Deploy Quartz site to GitHub Pages / build (push) Successful in 2m12s
1.7 KiB
1.7 KiB
Markdown
Use Obsidian-flavored Markdown. Use fenced code blocks for code snippets, indicating the language when appropriate. Avoid extra new lines, prefer fewer new lines and compact formatting.
Coding
The rest of this document describes coding conventions to follow when writing code.
General
- Do not create comments nor docstrings when updating code unless asked.
- Do not create a summary .md file unless asked.
- Do not create a README.md file unless asked.
- When installing a new dependency, prefer to use the latest version.
Python
- Use uv for handling python installations
- Use pyproject.toml to handle dependencies
- Avoid exceptions if possible
- When exceptions are necessary, use specific exception types, provide meaningful messages, and handle them appropriately.
- Exceptions try/except blocks should be as narrow as possible, try extra hard to avoid catching exceptions you did not intend to catch.
- Use type hints for all functions and methods.
Python unit testing:
- Use pytest framework, version 9 or higher.
- Configure using pyproject.toml, avoid pytest.ini to be able to have all configuration in one place.
- Prefer parametrized tests for functions that need to be tested with multiple sets of inputs and expected outputs.
- Use the new `with pytest.test(...)´ for that purpose:
import pytest
def test_parametrized(subtests: pytest.Subtests) -> None:
# ... setup code ...
parameters = [...]
for ... in parameters:
with subtests.test(x=...):
assert ...
# ... tear down ...
Django
- Prefer function based views over class based views
- Use django-stubs for type hints
- Use pytest-django for testing django applications