We know you take quality and security as seriously as we do. That's why the Aignostics Python SDK is built following best practices and with full transparency. This includes (1) making the complete source code of the SDK available on GitHub, maintaining a (2) A-grade code quality with high test coverage in all releases, (3) achieving A-grade security with active scanning of dependencies, and (4) providing extensive documentation. Read more about how we handle security.
馃 This project was scaffolded using the template oe-python-template with copier, thereby applying the following toolchain:
- Linting with Ruff
- Static type checking with mypy and pyright
- Complete set of pre-commit hooks including detect-secrets and pygrep
- Unit and E2E testing with pytest including parallel test execution
- Matrix testing in multiple environments with nox
- Test coverage reported with Codecov and published as release artifact
- CI/CD pipeline automated with GitHub Actions with parallel and reusable workflows, including scheduled testing, release automation, and multiple reporting channels and formats
- CI/CD pipeline can be run locally with act
- Code quality and security checks with SonarQube and GitHub CodeQL
- Dependency monitoring and vulnerability scanning with pip-audit, trivy, Renovate, GitHub Dependabot and Ketryx
- Error monitoring and profiling with Sentry (optional)
- Logging and metrics with Logfire (optional)
- Prepared for uptime monitoring and scheduled tests with betterstack or alternatives
- Licenses of dependencies extracted with pip-licenses, matched with allow list, and published as release artifacts in CSV and JSON format for further compliance checks
- Generation of attributions from extracted licenses
- Software Bill of Materials (SBOM) generated in CycloneDX and SPDX formats with cyclonedx-python resp. trivy, published as release artifacts
- Version and release management with bump-my-version
- Changelog and release notes generated with git-cliff
- Documentation generated with Sphinx including reference documentation for the library, CLI, and API
- Documentation published to Read The Docs including generation of PDF and single page HTML versions
- Documentation including dynamic badges, setup instructions, contribution guide and security policy
- Interactive OpenAPI specification with Swagger
- Python package published to PyPI
- Multi-stage build of fat (all extras) and slim (no extras) multi-arch (arm64 and amd64) Docker images, running non-root within immutable container
- Docker images published to Docker.io and GitHub Container Registry with artifact attestations
- One-click development environments with Dev Containers and GitHub Codespaces
- Settings for use with VSCode
- Settings and custom instructions for use with GitHub Copilot
- Automated Pull Request Reviews with Claude Code
- ISO compliant Application Lifecycle Management (ALM) with Ketryx
See oe-python-template for how to bootstrap multi-headed applications with the template. Example code generated applies the modulith software architecture pattern with dependency injection, enabling auto-discovery of domain services, CLI commands, API operations and GUI pages.