|
| 1 | +[project] |
| 2 | + |
| 3 | +name = "DockerContext" |
| 4 | +version = "0.1.0" |
| 5 | +description = "Implementation of DockerContext" |
| 6 | +readme = "README.md" |
| 7 | +requires-python = ">=3.10, <3.13" |
| 8 | +dependencies = [ |
| 9 | + "annotated-types>=0.7.0", |
| 10 | + "click>=8.1.8", |
| 11 | + "datarobot-drum>=1.16.22", |
| 12 | + "datarobot-mlops>=11.1.0", |
| 13 | + "datarobot-predict>=1.13.2", |
| 14 | + "dotenv>=0.9.9", |
| 15 | + "langchain-community>=0.3.27", |
| 16 | + "langchain-mcp-adapters>=0.1.9", |
| 17 | + "langchain>=0.3.23", |
| 18 | + "legacy-cgi>=2.6.3", |
| 19 | + "litellm>=1.72.1", |
| 20 | + "mcp>=1.11.0", |
| 21 | + "multidict>=6.5.0", |
| 22 | + "onnxruntime>=1.22.0,<1.23.0", |
| 23 | + "openai>=1.76.2", |
| 24 | + "opentelemetry-api>=1.33.0,<2.0.0", |
| 25 | + "opentelemetry-instrumentation-aiohttp-client>=0.54b0", |
| 26 | + "opentelemetry-instrumentation-httpx>=0.54b0", |
| 27 | + "opentelemetry-instrumentation-langchain>=0.40.5", |
| 28 | + "opentelemetry-instrumentation-openai>=0.40.5", |
| 29 | + "opentelemetry-instrumentation-requests>=0.54b0", |
| 30 | + "opentelemetry-sdk>=1.33.0", |
| 31 | + "python-dotenv>=1.1.0", |
| 32 | + "ragas @ git+https://github.com/explodinggradients/ragas@5d59549ad5ef511f621502c563bc55ac5aeb9188#subdirectory=ragas", |
| 33 | + # pyarrow==21.0.0 breaks the current ragas version https://github.com/apache/arrow/issues/47155 |
| 34 | + "pyarrow<21.0.0", |
| 35 | + "requests>=2.32.4", |
| 36 | + "traceloop-sdk>=0.40.2", |
| 37 | + "uvicorn>=0.32.0", |
| 38 | + "datarobot[auth]>=3.8.2", |
| 39 | + "datarobot-moderations>=11.2.3", |
| 40 | + |
| 41 | + # Docker image requirements (These MUST be included to avoid docker conflicts) |
| 42 | + "ecs-logging>=2.2.0", |
| 43 | + "fastapi[all]==0.115.14", |
| 44 | + "ipykernel<6.29.0", |
| 45 | + "jupyter-client>=8.6.3", |
| 46 | + "jupyter-core>=5.8.1", |
| 47 | + "jupyter-kernel-gateway>=3.0.1", |
| 48 | + "mistune>=3.1.4", |
| 49 | + "numpy>=1.26.4", |
| 50 | + "pandas>=2.2.3", |
| 51 | + "psutil==5.9.8", |
| 52 | + "setuptools>=80.9.0", |
| 53 | + "ujson<5.8.0", |
| 54 | + "uwsgi>=2.0.30", |
| 55 | + |
| 56 | + # Agent framework requirements |
| 57 | + "crewai>=0.177.0", |
| 58 | + "crewai-tools>=0.69.0", |
| 59 | + "opentelemetry-instrumentation-crewai>=0.40.5", |
| 60 | + "pybase64>=1.4.2", |
| 61 | + "langgraph>=0.4.10", |
| 62 | + "langgraph-prebuilt>=0.2.3", |
| 63 | + "llama-index<14.0", |
| 64 | + "llama-index-core<14.0", |
| 65 | + "llama-index-llms-langchain>=0.6.1", |
| 66 | + "llama-index-llms-litellm>=0.4.1", |
| 67 | + "llama-index-llms-openai>=0.3.38", |
| 68 | + "opentelemetry-instrumentation-llamaindex>=0.40.5", |
| 69 | + "pypdf>=6.0.0", |
| 70 | + "logfire>=4.6.0", |
| 71 | + "pydantic-ai>=1.0.5", |
| 72 | +] |
| 73 | + |
| 74 | +[project.optional-dependencies] |
| 75 | +dev = [ |
| 76 | + "mypy>=1.15.0", |
| 77 | + "pre-commit>=4.2.0", |
| 78 | + "pydantic>=2.6.1", |
| 79 | + "pytest-cov>=6.1.1", |
| 80 | + "pytest>=7.4.0", |
| 81 | + "requests-mock>=1.12.1", |
| 82 | + "ruff>=0.12.0", |
| 83 | + "types-requests>=2.32.4.20250913", |
| 84 | + "yamlfix>=1.17.0", |
| 85 | +] |
| 86 | + |
| 87 | +[tool.pytest.ini_options] |
| 88 | +testpaths = ["tests"] |
| 89 | +python_files = ["test_*.py"] |
| 90 | +python_functions = ["test_*"] |
| 91 | +pythonpath = ["custom_model"] |
| 92 | + |
| 93 | +[tool.ruff] |
| 94 | +# Exclude a variety of commonly ignored directories. |
| 95 | +exclude = [ |
| 96 | + ".bzr", |
| 97 | + ".direnv", |
| 98 | + ".eggs", |
| 99 | + ".git", |
| 100 | + ".git-rewrite", |
| 101 | + ".hg", |
| 102 | + ".ipynb_checkpoints", |
| 103 | + ".mypy_cache", |
| 104 | + ".nox", |
| 105 | + ".pants.d", |
| 106 | + ".pyenv", |
| 107 | + ".pytest_cache", |
| 108 | + ".pytype", |
| 109 | + ".ruff_cache", |
| 110 | + ".svn", |
| 111 | + ".tox", |
| 112 | + ".venv", |
| 113 | + ".vscode", |
| 114 | + "__pycache__", |
| 115 | + "__pypackages__", |
| 116 | + "_build", |
| 117 | + "buck-out", |
| 118 | + "build", |
| 119 | + "docker_context", |
| 120 | + "dist", |
| 121 | + "node_modules", |
| 122 | + "site-packages", |
| 123 | + "venv", |
| 124 | +] |
| 125 | + |
| 126 | +# Same as Black. |
| 127 | +line-length = 88 |
| 128 | +indent-width = 4 |
| 129 | + |
| 130 | +target-version = "py311" |
| 131 | + |
| 132 | +[tool.ruff.lint] |
| 133 | +# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. |
| 134 | +# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or |
| 135 | +# McCabe complexity (`C901`) by default. |
| 136 | +select = ["E4", "E7", "E9", "F", "I"] |
| 137 | +ignore = [] |
| 138 | + |
| 139 | +# Allow fix for all enabled rules (when `--fix`) is provided. |
| 140 | +fixable = ["ALL"] |
| 141 | +unfixable = [] |
| 142 | + |
| 143 | +# Allow unused variables when underscore-prefixed. |
| 144 | +dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" |
| 145 | + |
| 146 | +[tool.ruff.format] |
| 147 | +# Like Black, use double quotes for strings. |
| 148 | +quote-style = "double" |
| 149 | + |
| 150 | +# Like Black, indent with spaces, rather than tabs. |
| 151 | +indent-style = "space" |
| 152 | + |
| 153 | +# Like Black, respect magic trailing commas. |
| 154 | +skip-magic-trailing-comma = false |
| 155 | + |
| 156 | +# Like Black, automatically detect the appropriate line ending. |
| 157 | +line-ending = "auto" |
| 158 | + |
| 159 | +# Enable auto-formatting of code examples in docstrings. Markdown, |
| 160 | +# reStructuredText code/literal blocks and doctests are all supported. |
| 161 | +# |
| 162 | +# This is currently disabled by default, but it is planned for this |
| 163 | +# to be opt-out in the future. |
| 164 | +docstring-code-format = false |
| 165 | + |
| 166 | +# Set the line length limit used when formatting code snippets in |
| 167 | +# docstrings. |
| 168 | +# |
| 169 | +# This only has an effect when the `docstring-code-format` setting is |
| 170 | +# enabled. |
| 171 | +docstring-code-line-length = "dynamic" |
| 172 | + |
| 173 | +[tool.yamlfix] |
| 174 | +allow_duplicate_keys = true |
| 175 | +line_length = 120 |
| 176 | + |
| 177 | +# Pydantic plugin must be disabled with llamaindex, see https://github.com/python/mypy/issues/15927 |
| 178 | +[tool.mypy] |
| 179 | +strict = true |
| 180 | +python_version = "3.11" |
| 181 | + |
| 182 | +plugins = "pydantic.mypy" |
| 183 | + |
| 184 | +exclude = """(?x)( |
| 185 | + output/ # exclude files starting with "output" |
| 186 | + | deployment_.*/ |
| 187 | + | docker_context/ |
| 188 | + | include/ # or files starting with "include." |
| 189 | + | venv/ |
| 190 | + | .venv/ |
| 191 | + | .cache |
| 192 | + | e2e/ |
| 193 | + | tests/ |
| 194 | + )""" |
| 195 | +check_untyped_defs = true |
| 196 | +disallow_any_generics = true |
| 197 | +disallow_incomplete_defs = true |
| 198 | +disallow_subclassing_any = true |
| 199 | +disallow_untyped_calls = true |
| 200 | +disallow_untyped_decorators = true |
| 201 | +disallow_untyped_defs = true |
| 202 | +enable_error_code = "ignore-without-code" |
| 203 | +implicit_reexport = true |
| 204 | +ignore_missing_imports = true |
| 205 | +no_implicit_optional = true |
| 206 | +show_column_numbers = true |
| 207 | +warn_redundant_casts = true |
| 208 | +warn_return_any = true |
| 209 | +warn_unused_configs = true |
| 210 | +warn_unused_ignores = true |
| 211 | + |
| 212 | +[[tool.mypy.overrides]] |
| 213 | +module = "datarobot.*" |
| 214 | +implicit_reexport = true |
0 commit comments