[project] name = "achlens" version = "0.1.7" description = "Local-first MCP server and CLI that validates ACH files and explains which field failed" readme = "README.md" requires-python = ">=3.11,<3.14" license = { file = "LICENSE" } authors = [{ name = "achlens contributors" }] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Financial and Insurance Industry", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Office/Business :: Financial", "Topic :: Software Development", ] dependencies = [ "mcp>=2.2,<3.0", "pyyaml>=6.0,<7.0", "typer>=0.12,<1.0", ] [project.urls] Homepage = "https://github.com/mscott9160-web/achlens" Repository = "https://github.com/mscott9160-web/achlens" Issues = "https://github.com/mscott9160-web/achlens/issues" Changelog = "https://github.com/mscott9160-web/achlens/blob/master/CHANGELOG.md" [project.scripts] achlens = "achlens.cli:main" [dependency-groups] dev = [ "mypy>=1.11,<3.0", "pip-audit>=2.7,<3.0", "pytest>=9.0.3,<10.0", "pytest-cov>=5.0,<8.0", "ruff>=0.6,<1.0", "types-PyYAML>=6.0,<7.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/achlens"] [tool.ruff] line-length = 88 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I"] [tool.mypy] strict = true mypy_path = "src" # Existing rule modules use dynamic registry construction and gradual typing. # Keep strict checking enabled while these legacy diagnostics are migrated. disable_error_code = [ "arg-type", "assignment", "attr-defined", "call-overload", "import-untyped", "no-any-return", "no-redef", "no-untyped-call", "no-untyped-def", "operator", "unused-ignore", ] [tool.pytest.ini_options] testpaths = ["tests"]