[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "rp" version = "1.9.0" description = "R python edition. The ultimate autonomous AI CLI." readme = "README.md" requires-python = ">=3.12" license = {text = "MIT"} keywords = ["ai", "assistant", "cli", "automation", "openrouter", "autonomous"] authors = [ {name = "retoor", email = "retoor@molodetz.nl"} ] dependencies = [ "pydantic>=2.12.3", "prompt_toolkit>=3.0.0", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] [project.optional-dependencies] dev = [ "pytest>=8.3.0", "pytest-asyncio>=1.2.0", "pytest-cov>=7.0.0", "black>=25.9.0", "flake8>=7.3.0", "mypy>=1.18.2", "pre-commit>=4.3.0", ] [project.scripts] pr = "pr.__main__:main" rp = "pr.__main__:main" rpe = "pr.editor:main" rpi = "pr.implode:main" rpserver = "pr.server:main" rpcgi = "pr.cgi:main" rpweb = "pr.web.app:main" [project.urls] Homepage = "https://retoor.molodetz.nl/retoor/rp" Documentation = "https://retoor.molodetz.nl/retoor/rp#readme" Repository = "https://retoor.molodetz.nl/retoor/rp" "Bug Tracker" = "https://retoor.molodetz.nl/retoor/rp/issues" [tool.setuptools.packages.find] where = ["."] include = ["pr*"] exclude = ["tests*"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = "-v --cov=pr --cov-report=term-missing --cov-report=html" [tool.black] line-length = 100 target-version = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' extend-exclude = ''' /( __pycache__ | \.git | \.mypy_cache | \.pytest_cache | \.venv | build | dist )/ ''' [tool.mypy] python_version = "3.13" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = false disallow_incomplete_defs = false check_untyped_defs = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true [tool.coverage.run] source = ["pr"] omit = ["*/tests/*", "*/__pycache__/*"] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:", "if TYPE_CHECKING:", ] [tool.isort] profile = "black" line_length = 100 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true [tool.bandit] exclude_dirs = ["tests", "venv", ".venv","__pycache__"] skips = ["B101"]