# Project : AIR — Accounting Intermediate Representation # Author : Simon-Pierre Boucher # Contact : contact@spboucher.ai [build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "air-accounting" version = "0.1.0" description = "AIR — Accounting Intermediate Representation. LLVM-style compiler infrastructure for accounting: LLMs produce economic events (AIR), a deterministic compiler (AIC) produces journal entries." authors = [{ name = "Simon-Pierre Boucher", email = "contact@spboucher.ai" }] readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" keywords = ["accounting", "compiler", "double-entry", "ledger", "llm", "ir", "gst", "qst", "erp"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Office/Business :: Financial :: Accounting", "Topic :: Software Development :: Compilers", ] dependencies = [ "pydantic>=2.7", "pyyaml>=6.0", ] [project.urls] Homepage = "https://github.com/spboucher-ai/air" Documentation = "https://github.com/spboucher-ai/air/tree/main/docs" Issues = "https://github.com/spboucher-ai/air/issues" [project.scripts] air = "sdk.cli:main" [project.optional-dependencies] dev = [ "pytest>=8.0", "hypothesis>=6.100", "mypy>=1.10", ] # Optional: real LLM extraction (ingestion works offline without it via the mock extractor) llm = [ "anthropic>=0.40", ] [tool.setuptools.packages.find] include = ["core*", "aic*", "alsl*", "backends*", "kernel*", "sdk*", "ingestion*"] [tool.setuptools.package-data] alsl = ["policies/*.yaml"] [tool.pytest.ini_options] testpaths = ["tests"] pythonpath = ["."] [tool.mypy] python_version = "3.11" strict = true