General
- Always note accepted edits in CHANGELOG.md
- Always use double quotes unless already inside a quoted string
- Always use pathlib rather than os.path as long as possible
- Always import logger from .logging and frequently log as INFO level internal actions.
Documentation - docstrings
- Always use Google style docstrings formatted for markdown (not restructuredtext)
- Always include information on exceptions explicitly raised in the code
- Consider executable code examples in docstrings when appropriate and concise
Testing
- Always write tests in a "given-when-then" style: given this scenario, when I call this function, then I expect this result
- Always add a docstring to tests explaining the purpose of the test and the implications of failure(s)
- Always comment on inconsistencies or ambiguities in functions being tested
- Always run new tests to verify implementation before considering implementation as complete