[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "cyntrisec" dynamic = ["version"] description = "Historical AWS analysis CLI; not a current Cyntrisec product" readme = "README.md" license = { file = "LICENSE" } license-files = ["LICENSE", "NOTICE"] requires-python = ">=3.11" authors = [{ name = "Borys Tsyrulnikov" }] keywords = ["aws", "security", "attack-path", "cli", "cost-optimization", "mcp", "mcp-server"] classifiers = [ "Development Status :: 7 - Inactive", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Security", ] dependencies = [ "typer>=0.9.0", "rich>=13.0", "boto3>=1.34", "pydantic>=2.6.3", "PyYAML>=6.0", "mcp>=1.0.0", ] [project.urls] Homepage = "https://github.com/cyntrisec/cyntrisec-cli" Repository = "https://github.com/cyntrisec/cyntrisec-cli" "MCP Registry" = "https://registry.modelcontextprotocol.io" [project.optional-dependencies] dev = [ "pytest>=7.0", "pytest-cov>=4.0", "hypothesis>=6.0", "mypy>=1.0", "ruff>=0.1", "moto>=5.0", "types-PyYAML", ] [project.scripts] cyntrisec = "cyntrisec.cli.main:app" [tool.hatch.version] path = "src/cyntrisec/__init__.py" [tool.hatch.build.targets.sdist] include = [ "src/cyntrisec", "README.md", "LICENSE", "NOTICE", "CHANGELOG.md", "pyproject.toml", ] [tool.hatch.build.targets.wheel] packages = ["src/cyntrisec"] [tool.ruff] target-version = "py311" line-length = 100 [tool.ruff.lint] select = ["E", "F", "W", "I", "UP"] ignore = [ "E501", # Line too long - too many existing violations "E402", # Module level import not at top of file - existing code "E701", # Multiple statements on one line - existing code "F841", # Local variable assigned but never used - existing code "W291", # Trailing whitespace - existing code "W293", # Blank line contains whitespace - existing code ] [tool.mypy] python_version = "3.11" ignore_missing_imports = true # Disable strict checks that have too many existing violations disallow_untyped_defs = false disallow_incomplete_defs = false disallow_untyped_decorators = false no_implicit_optional = false check_untyped_defs = false warn_return_any = false warn_unused_ignores = false # Keep some basic checks enabled warn_unused_configs = true show_error_codes = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] addopts = "-v --tb=short" [tool.mcp] # MCP Registry name - must match server.json "name" field name = "io.github.cyntrisec/cyntrisec"