# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. [build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [project] name = "openenv-cloudenv" version = "0.1.0" description = "A environment for OpenEnv" requires-python = ">=3.10" dependencies = [ "boto3>=1.42.78", "duckdb>=1.5.1", "ministack[full]>=1.1.25", "openenv-core[core]>=0.2.2", "httpx>=0.28.1", ] [project.optional-dependencies] dev = ["pytest>=8.0.0", "pytest-cov>=4.0.0"] [project.scripts] # Server entry point - enables running via: uv run --project . server # or: python -m cloudenv.server.app server = "cloudenv.server.app:main" [dependency-groups] dev = [ "colorlog>=6.9.0", "datamodel-code-generator>=0.31.2", "pydantic>=2.11.7", "pytest>=8.4.1", "pytest-asyncio>=0.25.0", "pytest-cov>=6.2.1", "ruff>=0.12.1", "locust>=2.43.3", "pyyaml>=6.0", ] [tool.setuptools] include-package-data = true packages = ["cloudenv", "cloudenv.server"] package-dir = { "cloudenv" = ".", "cloudenv.server" = "server" } [tool.ruff] exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", "*_pb2*.py*", # gRPC auto-generated files ] line-length = 80 indent-width = 4 target-version = "py312" [tool.ruff.lint] exclude = ["*_pb2*.py"] select = ["E4", "E7", "E9", "F"] fixable = ["ALL"] unfixable = [] [tool.ruff.lint.pycodestyle] ignore-overlong-task-comments = false max-doc-length = 80 [tool.ruff.format] exclude = ["*_pb2*.py"] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.coverage.run] branch = true omit = ["*_pb2*.py", "tests/*", "*/tests/*", "*_test.py", "test_*.py"] [tool.coverage.report] skip_covered = true show_missing = true exclude_lines = [ "pragma: no cover", "if __name__ == .__main__.:", "if TYPE_CHECKING:", ]