2.8 KiB

Contribution guidelines

Dev Setup

Setup

Connection strings

Create a secrets.json in the root of this repo with the following structure (values to be replaces by desired config):

   {
  "postgres": {
    "username": "postgres",
    "password": "postgres",
    "host": "localhost",
    "database": "postgres",
    "port": 5432
  },
  "mongo": {
    "username": "username",
    "password": "password",
    "host": "localhost",
    "database": "transparenzregister",
    "port": 27017
  }
}

Example usage see connector.py

Code style

We defined to use the following formats:

  • Whitespace Formatting by Black
  • Docstrings Style see the examples provided by sphinx napoleon Types in the docstrings are optional but should be consistent per module.
  • Import Order by isort
  • Strict Typing of function headers see the examples provided by the mypy documentation.

Language

We decided to use english on everything close to code but will write longer texts that are not close to the code in german.

Pre-Commit Usage

  • the following code format rules are so enforced:
    • Whitespace formatting:
      • Python-Black
      • leading whitespace in all files
      • Auto format: yaml, toml, ini
    • Import norm by:
      • isort
      • absolut module path
    • Validation:
      • yaml, toml, json, xml
      • Secret detection
      • python norms (pep8) with ruff
      • type checking with (mypy)
  • for more information read Python Pre-Commit