/ pyproject.toml
pyproject.toml
  1  [build-system]
  2  requires = ["hatchling"]
  3  build-backend = "hatchling.build"
  4  
  5  [tool.hatch.version]
  6  source = "code"
  7  path = "src/evidently/_version.py"
  8  
  9  [project]
 10  name = "evidently"
 11  dynamic = ["version"]
 12  description = "Open-source tools to analyze, monitor, and debug machine learning model in production."
 13  readme = "README.md"
 14  requires-python = ">=3.10"
 15  license = {text = "Apache License 2.0"}
 16  authors = [
 17      {name = "Emeli Dral", email = "emeli.dral@gmail.com"}
 18  ]
 19  classifiers = [
 20      "Development Status :: 4 - Beta",
 21      "Intended Audience :: Developers",
 22      "License :: OSI Approved :: Apache Software License",
 23      "Operating System :: OS Independent",
 24      "Programming Language :: Python :: 3",
 25      "Programming Language :: Python :: 3.10",
 26      "Programming Language :: Python :: 3.11",
 27      "Programming Language :: Python :: 3.12",
 28      "Programming Language :: Python :: 3.13",
 29  ]
 30  dependencies = [
 31      "plotly>=5.10.0,<6",
 32      "statsmodels>=0.14.0",
 33      "scikit-learn>=1.1.1",
 34      "pandas[parquet]>=1.3.5",
 35      "numpy>=1.23.0",
 36      "nltk>=3.6.7",
 37      "scipy>=1.10.0",
 38      "requests>=2.32.0",
 39      "PyYAML>=6.0.1",
 40      "pydantic>=1.10.16",
 41      "litestar>=2.19.0",
 42      "typing-inspect>=0.9.0",
 43      "uvicorn[standard]>=0.22.0",
 44      "watchdog>=3.0.0",
 45      "typer>=0.3",
 46      "rich>=13",
 47      "iterative-telemetry>=0.0.5",
 48      "dynaconf>=3.2.4",
 49      "certifi>=2024.7.4",
 50      "urllib3>=1.26.19",
 51      "fsspec>=2024.9.0",
 52      "ujson>=5.4.0",
 53      "deprecation>=2.1.0",
 54      "uuid6>=2024.7.10",
 55      "cryptography>=43.0.1",
 56      "opentelemetry-proto>=1.25.0",
 57  ]
 58  
 59  [project.optional-dependencies]
 60  dev = [
 61      "pip-audit>=2.7.2",
 62      "wheel==0.38.1",
 63      "setuptools==65.5.1; python_version < '3.12'",
 64      "setuptools==68.2.2; python_version >= '3.12'",
 65      "jupyter==1.0.0",
 66      "mypy==1.1.1",
 67      "pandas-stubs>=1.3.5,<3",
 68      "pytest==7.4.4",
 69      "tracely>=0.2.11",
 70      "types-PyYAML==6.0.1",
 71      "types-requests==2.26.0",
 72      "types-dataclasses==0.6",
 73      "types-python-dateutil==2.8.19",
 74      "types-ujson>=5.4.0",
 75      "pillow>=11.3.0",
 76      "httpx==0.27.0",
 77      "ruff==0.3.7",
 78      "pre-commit==3.5.0",
 79      "pytest-asyncio==0.23.7",
 80      "pytest-mock==3.14.0",
 81      "pytest-html>=4.2.0",
 82  ]
 83  llm = [
 84      "openai>=1.16.2",
 85      "evaluate>=0.4.1",
 86      "transformers[torch]>=4.39.3",
 87      "sentence-transformers>=2.7.0",
 88      "sqlvalidator>=0.0.20",
 89      "litellm>=1.74.3",
 90      "llama-index>=0.10",
 91      "faiss-cpu>=1.8.0",
 92  ]
 93  spark = [
 94      "pyspark>=3.4.0,<4",
 95  ]
 96  fsspec = [
 97      "s3fs>=2024.9.0",
 98      "gcsfs>=2024.9.0",
 99  ]
100  s3 = [
101      "s3fs>=2024.9.0",
102  ]
103  gcs = [
104      "gcsfs>=2024.9.0",
105  ]
106  sql = [
107      "sqlalchemy>=2.0.0",
108      "psycopg2-binary>=2.9.0",
109      "alembic>=1.13.0",
110  ]
111  
112  [project.scripts]
113  evidently = "evidently.cli:app"
114  
115  [project.urls]
116  Homepage = "https://github.com/evidentlyai/evidently"
117  
118  [tool.hatch.build.targets.wheel]
119  packages = ["src/evidently"]
120  
121  [tool.hatch.build.targets.wheel.shared-data]
122  "src/evidently/nbextension/static" = "evidently/nbextension/static"
123  "src/evidently/legacy/ui/assets" = "evidently/legacy/ui/assets"
124  "src/evidently/ui/service/assets" = "evidently/ui/service/assets"
125  "src/evidently/ui/service/storage/sql/migrations" = "evidently/ui/service/storage/sql/migrations"
126  
127  [tool.hatch.build.targets.sdist]
128  include = [
129      "/README.md",
130      "/MANIFEST.in",
131      "/src",
132  ]
133  
134  [tool.mypy]
135  show_error_codes = true
136  files = ["src/evidently"]
137  python_version = "3.10"
138  disable_error_code = "misc"
139  namespace_packages = true
140  no_implicit_optional = false
141  plugins = ["pydantic.mypy", "numpy.typing.mypy_plugin"]
142  
143  [[tool.mypy.overrides]]
144  module = [
145      "nltk.*",
146      "torch.*",
147      "evaluate.*",
148      "transformers.*",
149      "openai.*",
150      "sentence_transformers.*",
151      "scipy.*",
152      "sklearn.*",
153      "plotly.*",
154      "umap.*",
155      "IPython.*",
156      "iterative_telemetry.*",
157      "fastapi_restful.*",
158      "watchdog.*",
159      "pydantic.v1.*",
160      "pyspark.*",
161      "idna.*",
162      "fsspec.*",
163      "dynaconf.*",
164      "litestar.*",
165      "typing_inspect.*",
166      "ujson.*",
167      "deprecation.*",
168      "litellm.*",
169      "sqlvalidator.*",
170      "llama_index.*",
171      "pypdf.*",
172      "faiss.*",
173      "tracely.*",
174      "sqlalchemy.*",
175      "alembic.*",
176  ]
177  ignore_missing_imports = true
178  
179  
180  [tool.pytest.ini_options]
181  testpaths = ["tests"]
182  python_classes = "*Test"
183  markers = [
184      "slow: slow tests",
185      "asyncio: async tests",
186  ]