# 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.