This commit was automatically generated by [a script](https://gitfub.space/Jmaa/repo-manager)
33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# Conventions
|
|
|
|
When contributing code to this project, you MUST follow the requirements
|
|
specified here.
|
|
|
|
## Code Conventions
|
|
|
|
When contributing code to this project, you MUST follow these principles:
|
|
|
|
- Code should be easy to read and understand.
|
|
- Keep the code as simple as possible. Avoid unnecessary complexity.
|
|
- Use meaningful names for variables, functions, etc. Names should reveal intent.
|
|
- Functions should be small and do one thing well. They should not exceed a few lines.
|
|
- Function names should describe the action being performed.
|
|
- Only use comments when necessary, as they can become outdated. Instead, strive to make the code self-explanatory.
|
|
- When comments are used, they should add useful information that is not readily apparent from the code itself.
|
|
- Properly handle errors and exceptions to ensure the software's robustness.
|
|
- Use exceptions rather than error codes for handling errors.
|
|
- Consider security implications of the code. Implement security best practices to protect against vulnerabilities and attacks.
|
|
- Documentation should document semantics, not syntax.
|
|
- Prefer importing modules, not individual items from modules.
|
|
- Do not use f-strings in logging statements.
|
|
- Loop variables and walrus-expression-variables should be deleted when
|
|
unneeded to keep scope clean, and to avoid accidental use.
|
|
|
|
## Testing
|
|
|
|
When contributing test to this project, you MUST follow these principles:
|
|
|
|
- Do not use any testing libraries other than `pytest`.
|
|
- Mocking is the root of all evil. Writing your own stubs is much more
|
|
preferable.
|