[project] name = "nova" version = "1.29.0" description = "Nova — consumers declare intent; the platform delivers safe production deployment." requires-python = ">=3.12" dependencies = [ "boto3>=1.34", "jsonschema>=4.20", "pyyaml>=6.0", ] [project.scripts] nova = "nova.cli:main" [project.optional-dependencies] test = [ "pytest>=8.0", "pytest-cov>=4.0", "pytest-json-report>=1.5", "moto[dynamodb]>=5.0", "hypothesis>=6.100.0", ] identity = [ "argon2-cffi>=23.1.0", "cryptography>=42.0.0", "pyjwt>=2.8.0", ] slides = ["python-pptx>=0.6.23"] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "offline: tests that run without AWS/Checkov/DynamoDB", "slow: tests that invoke the full platform pipeline (long-running)", "live_aws: tests that hit live AWS resources (KMS key alias/nova-oidc-signing, real DynamoDB). Skipped in acdl CI; runs in nova-platform-ops CI (REQ-362, covered-reference).", ] addopts = "-v --tb=short --junitxml=metrics/test-results.xml --json-report --cov=core --cov=adapters --cov-report=json:metrics/coverage.json --json-report-file=metrics/test-report.json" filterwarnings = [ "ignore::DeprecationWarning:botocore.*", ] [tool.coverage] run.source = ["core", "adapters"] [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] include = ["nova", "nova.*", "core", "core.*", "adapters.*"]