ourobori is a python-package (conda-package) to be used to create simple REST-services based on aiohttp with input- output-schemata definitions in pydantic. These schemata are defined in seperate packages to be used by the clients calling an ourobori-service. Ourobori-services are developed using a defined ruleset:

  • tests are written using pytest
  • documention is created using sphinx and swagger
  • input- and output-definitions of the apis of the service is defined using pydantic in a seperate project / conda-package
  • logging is done using loguru for structured logging and also the possibility to log to a central logger like logstash
  • type-annotations are used were possible
  • the services are developed inside conda-environments using cenv
  • the napoleon google documentation style is used
  • additional features are developed inside git feature branches and merged after rebasing to the master
  • the semantic-versioning-style is used
  • a detailed changelog and readme is used for each service
  • errors occuring inside the service are handles by the error-middleware and specified errors