[project] name = "guardrails-ai" version = "0.10.0" description = "Adding guardrails to large language models." authors = [ {name = "Guardrails AI", email = "contact@guardrailsai.com"} ] license = "Apache License 2.0" license-files = [ "LICENSE" ] homepage = "https://www.guardrailsai.com/" documentation = "https://www.guardrailsai.com/guardrails/docs" readme = "README.md" requires-python = ">=3.10,<4.0" dependencies = [ "lxml>=4.9.3,<7.0.0", "openai>=1.30.1,<3.0.0", "rich>=13.6.0,<15.0.0", "pydantic>=2.0.0, <3.0", "typer>=0.9.0,<0.20", "click<=8.2.0", "tenacity>=8.1.0,<10.0.0", "rstr>=3.2.2,<4.0.0", "typing-extensions>=4.8.0,<5.0.0", "python-dateutil>=2.8.2,<3.0.0", "tiktoken>=0.5.1,<1.0.0", "litellm>=1.37.14,<1.82.6", "pydash>=7.0.6,<9.0.0", "langchain-core>=1.0.0,<2.0", "requests>=2.31.0,<3.0.0", "faker>=25.2.0,<38.0.0", "jsonref>=1.1.0,<2.0.0", "jsonschema[format-nongpl]>=4.22.0,<5.0.0", # TODO - drop this! "pip>=22", "pyjwt>=2.8.0,<3.0.0", "opentelemetry-sdk>=1.24.0,<2.0.0", "opentelemetry-exporter-otlp-proto-grpc>=1.24.0,<2.0.0", "opentelemetry-exporter-otlp-proto-http>=1.24.0,<2.0.0", "guardrails-hub-types>=0.0.4,<0.1.0", "guardrails-ai-types>=0.4.0", "diff-match-patch>=20230430,<20241101", "semver>=3.0.2,<4.0.0" ] [project.optional-dependencies] dev = [ "pytest>=7.4.3", "pytest-asyncio>=0.21.1", "docformatter>=1.4", "pytest-cov>=2.10.1", "pre-commit>=2.9.3", "twine>=4.0.2", "pytest-mock>=3.12.0", "pypdfium2>=4.23.1", "pyright==1.1.334", "lxml-stubs>=0.4.0", "ruff>=0.4.1", "liccheck>=0.9.2" ] sql = [ "sqlvalidator>=0.0.20,<0.1.0", "sqlalchemy>=2.0.9,<3.0.0", "sqlglot>=19.0.3,<20.0.0", ] vectordb = [ "faiss-cpu>=1.7.4,<2.0.0", "numpy>=1.25, <3.0" ] manifest = [ "manifest-ml>=0.1.8,<0.2.0" ] anthropic = [ "anthropic>=0.7.2,<1.0.0" ] docs-build = [ "docspec_python==2.2.1", "pydoc-markdown==4.8.2" ] huggingface = [ "transformers>=4.38.0,<5.0.0", "torch>=2.1.1,<3.0.0", "guardrails-jsonformer>=0.13.1,<1.0.0" ] api = [ "guardrails-api>=0.4.0,<0.5.0", ] databricks = [ "mlflow>=2.0.1,<4.0.0" ] uv = [ "uvloop>=0.20.0,<1.0.0" ] llama = [ "llama-index>=0.11.0,<1.0.0" ] [project.scripts] guardrails = "guardrails.cli:cli" [build-system] requires = ["poetry-core>=2.0.0"] build-backend = "poetry.core.masonry.api" [tool.poetry] package-mode = true packages = [ { include = "guardrails", from = "." } ] [[tool.poetry.source]] name = "PyPI" [tool.ruff.lint] select = ["E4", "E7", "E9", "F", "E501"] ignore = ["E731", "E203", "E741"] [tool.ruff.lint.per-file-ignores] "*.ipynb" = ["E501"] [tool.pytest.ini_options] python_classes = ["Test"] python_functions = ["test_"] python_files = ["test_*.py"] testpaths = ["tests"] markers = [ "no_hub_telemetry_mock" ] [pytest] log_cli = "True" log_cli_level = "DEBUG" [tool.liccheck] authorized_licenses = [ "3-clause bsd", "bsd", "bsd3", "bsd-3-clause", "new bsd", "bsd license", "new bsd license", "simplified bsd", "academic free license (afl)", "apache", "apache 2.0", "apache-2.0", "apache license 2.0", "apache software", "apache software license", "apache-2.0 and cnri-python", "gnu lgpl", "lgpl with exceptions or zpl", "gnu library or lesser general public license (lgpl)", "isc", "isc license", "isc license (iscl)", "mit", "mit license", "mozilla public license 2.0 (mpl 2.0)", "the unlicense (unlicense)", "python software foundation", "python software foundation license", "psf-2.0", "zpl 2.1", "mit and python-2.0", "apache-2.0 and mit", " Apache" ] unauthorized_licenses = [ "gpl v3", ] level = "Paranoid" dependencies = true # to load [tool.poetry.dependencies] [tool.liccheck.authorized_packages] aiocache = "0.12.3" # BSD 3-Clause aiohappyeyeballs = "2.4.3" # Python Software Foundation guardrails-api = "*" # Modified ELSSTIC pondpond = "1.4.1" # Apache 2.0