- ship OpenAPI-first health check template as package data - add CLI to copy scaffold into new project directories - include OpenAPI spec, routes, and bootstrap example - enable fast startup for OpenAPI-first services
99 lines
2.1 KiB
TOML
99 lines
2.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
[project]
|
|
name = "openapi-first"
|
|
version = "0.0.1"
|
|
description = "Strict OpenAPI-first application bootstrap for FastAPI."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { text = "MIT" }
|
|
|
|
authors = [
|
|
{ name = "Aetos Skia", email = "dev@aetoskia.com" }
|
|
]
|
|
maintainers = [
|
|
{ name = "Aetos Skia", email = "dev@aetoskia.com" }
|
|
]
|
|
|
|
|
|
keywords = [
|
|
"fastapi",
|
|
"openapi",
|
|
"openapi-first",
|
|
"contract-first",
|
|
"api",
|
|
"asgi",
|
|
"microservices",
|
|
]
|
|
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Framework :: FastAPI",
|
|
"Topic :: Software Development :: Libraries",
|
|
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
|
|
]
|
|
|
|
|
|
dependencies = [
|
|
# Core framework
|
|
"fastapi>=0.110.0",
|
|
|
|
# OpenAPI validation
|
|
"openapi-spec-validator>=0.7.1",
|
|
|
|
# YAML support (optional but recommended)
|
|
"pyyaml>=6.0.1",
|
|
]
|
|
|
|
[project.scripts]
|
|
openapi-first = "openapi_first.cli:main"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0.0",
|
|
"pytest-cov>=4.1.0",
|
|
"ruff>=0.3.0",
|
|
"mypy>=1.8.0",
|
|
]
|
|
|
|
docs = [
|
|
"mkdocs>=1.5.0",
|
|
"mkdocs-material>=9.5.0",
|
|
"mkdocstrings[python]>=0.24.0",
|
|
]
|
|
|
|
|
|
[project.urls]
|
|
Homepage = "https://git.aetoskia.com/aetos/openapi-first"
|
|
Documentation = "https://git.aetoskia.com/aetos/openapi-first#readme"
|
|
Repository = "https://git.aetoskia.com/aetos/openapi-first.git"
|
|
Issues = "https://git.aetoskia.com/aetos/openapi-first/issues"
|
|
Versions = "https://git.aetoskia.com/aetos/openapi-first/tags"
|
|
|
|
|
|
[tool.setuptools]
|
|
packages = { find = { include = ["openapi_first*"] } }
|
|
|
|
[tool.setuptools.package-data]
|
|
fastapi_openapi_first = ["templates/**/*"]
|
|
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
strict = true
|
|
ignore_missing_imports = true
|