[tool.poetry] name = "kittycad" version = "0.6.20" description = "A client library for accessing KittyCAD" authors = [] readme = "README.md" packages = [ {include = "kittycad"}, ] include = ["CHANGELOG.md", "kittycad/py.typed"] [[tool.poetry.source]] name = "pypi-public" url = "https://pypi.org/simple/" [tool.poetry.dependencies] attrs = ">=20.1.0,<24.0.0" httpx = ">=0.15.4,<0.28.0" python = ">=3.9,<4.0" python-dateutil = "^2.8.0" websockets = "^11.0.3" pymongo = "^4.6.0" pydantic = "^2.5.2" pydantic-extra-types = "^2.1.0" [tool.poetry.dev-dependencies] autoclasstoc = "^1.6.0" black = "^24.2.0" isort = "^5.12.0" jinja2 = "^3.1.3" jsonpatch = "^1.33" mypy = "^1.5.0" openapi-parser = "^0.2.6" openapi-spec-validator = "^0.6.0" prance = "^23.6.21" pyenchant = "^3.2.2" pytest = "^8.0.2" pytest-asyncio = "^0.23.8" pytest-cov = "^4.1.0" ruff = "^0.3.0" Sphinx = "^7.1.2" sphinx-autoapi = "^3.2.1" sphinx-autodoc-typehints = "^1.24.0" sphinxcontrib-spelling = "^8.0.0" sphinx-copybutton = "^0.5.2" sphinxext-opengraph = "^0.8.2" sphinx-rtd-theme = "^1.0.0" toml = "^0.10.2" types-python-dateutil = "^2.8.19" types-toml = "^0.10.8" [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 [tool.ruff.lint] # 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.lint.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"] "examples_test.py" = ["F841"] [tool.mypy] exclude = [] show_error_codes = true ignore_missing_imports = true check_untyped_defs = true [tool.pytest.ini_options] addopts = "--doctest-modules"