[tool.poetry] name = "kittycad" version = "0.3.8" description = "A client library for accessing KittyCAD" authors = [] readme = "README.md" packages = [ {include = "kittycad"}, ] include = ["CHANGELOG.md", "kittycad/py.typed"] [tool.poetry.dependencies] attrs = ">=20.1.0,<24.0.0" httpx = ">=0.15.4,<0.25.0" python = "^3.8" python-dateutil = "^2.8.0" [tool.poetry.dev-dependencies] autoclasstoc = "^1.6.0" black = "^22.0.0" isort = "^5.12.0" jsonpatch = "^1.32" mypy = "^1.2.0" openapi-parser = "^0.2.6" openapi-spec-validator = "^0.4.0" prance = "^0.22.11" pyenchant = "^3.2.2" pytest = "^7.0.1" pytest-asyncio = "^0.21.0" pytest-cov = "^4.0.0" ruff = "^0.0.264" Sphinx = "^4.3.1" sphinx-autoapi = "^0.5.0" sphinx-autodoc-typehints = "^1.12.0" sphinxcontrib-spelling = "^8.0.0" sphinx-copybutton = "^0.5.2" sphinxext-opengraph = "^0.4.0" sphinx-rtd-theme = "^1.0.0" toml = "^0.10.2" types-python-dateutil = "^2.8.0" types-toml = "^0.10.1" [build-system] requires = ["poetry>=1.0"] build-backend = "poetry.masonry.api" [tool.black] line-length = 88 target_version = ['py36', 'py37', 'py38'] exclude = ''' ( /( | \.git | \.venv | \.mypy_cache | kittycad/__pycache__ | docs/html )/ ) ''' include = ''' ( /( | generate/generate.py | kittycad | docs/*.py )/ ) ''' [tool.isort] line_length = 88 profile = "black" src_paths = ["generate", "kittycad", "docs"] float_to_top = true combine_as_imports = true [tool.ruff] line-length = 88 # Since we auto fix these, we don't want to warn about them. Since some doc strings are too long. ignore = ["E501"] # Allow autofix for all enabled rules (when `--fix`) is provided. fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"] unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.per-file-ignores] # We exclude init files since otherwise ruff will delete all the unused imports. # This code comes from here: https://beta.ruff.rs/docs/rules/#pyflakes-f "__init__.py" = ["F401"] [tool.mypy] exclude = [] show_error_codes = true ignore_missing_imports = true [tool.pytest.ini_options] addopts = "--doctest-modules"