[project] name = "temporalio-samples" version = "0.1a1" description = "Temporal.io Python SDK samples" authors = [{ name = "Temporal Technologies Inc", email = "sdk@temporal.io" }] requires-python = ">=3.10" readme = "README.md" license = "MIT" dependencies = ["temporalio>=1.23.0,<2"] [project.urls] Homepage = "https://github.com/temporalio/samples-python" Repository = "https://github.com/temporalio/samples-python" Documentation = "https://docs.temporal.io/docs/python" "Bug Tracker" = "https://github.com/temporalio/samples-python/issues" [dependency-groups] dev = [ "ruff>=0.5.0,<0.6", "mypy>=1.4.1,<2", "pytest>=7.1.2,<8", "pytest-asyncio>=0.18.3,<0.19", "frozenlist>=1.4.0,<2", "pyright>=1.1.394", "types-pyyaml>=6.0.12.20241230,<7", "pytest-pretty>=1.3.0", "poethepoet>=0.36.0", ] bedrock = ["boto3>=1.34.92,<2"] dsl = ["pyyaml>=6.0.1,<7", "types-pyyaml>=6.0.12,<7", "dacite>=1.8.1,<2"] encryption = ["cryptography>=38.0.1,<39", "aiohttp>=3.8.1,<4"] gevent = ["gevent>=25.4.2 ; python_version >= '3.8'"] langchain = [ "langchain>=0.1.7,<0.2 ; python_version >= '3.8.1' and python_version < '4.0'", "langchain-openai>=0.0.6,<0.0.7 ; python_version >= '3.8.1' and python_version < '4.0'", "langsmith>=0.1.22,<0.2 ; python_version >= '3.8.1' and python_version < '4.0'", "openai>=1.4.0,<2", "fastapi>=0.115.12", "tqdm>=4.62.0,<5", "uvicorn[standard]>=0.24.0.post1,<0.25", ] nexus = ["nexus-rpc>=1.1.0,<2"] open-telemetry = [ "temporalio[opentelemetry]", "opentelemetry-exporter-otlp-proto-grpc", ] openai-agents = [ "openai-agents[litellm] == 0.3.2", "temporalio[openai-agents] >= 1.18.0", "requests>=2.32.0,<3", ] pydantic-converter = ["pydantic>=2.10.6,<3"] sentry = ["sentry-sdk>=2.13.0"] trio-async = ["trio>=0.28.0,<0.29", "trio-asyncio>=0.15.0,<0.16"] lambda-worker = [ "temporalio[lambda-worker-otel]", ] cloud-export-to-parquet = [ "pandas>=2.2.2,<3 ; python_version >= '3.10' and python_version < '4.0'", "numpy>=1.26.0,<2 ; python_version >= '3.10' and python_version < '3.13'", "boto3>=1.34.89,<2", "pyarrow>=19.0.1", ] [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.sdist] include = ["./**/*.py"] [tool.hatch.build.targets.wheel] include = ["./**/*.py"] packages = [ "activity_worker", "bedrock", "cloud_export_to_parquet", "context_propagation", "custom_converter", "custom_decorator", "custom_metric", "dsl", "encryption", "gevent_async", "hello", "langchain", "message_passing", "nexus", "open_telemetry", "patching", "polling", "prometheus", "pydantic_converter", "pydantic_converter_v1", "pyproject.toml", "replay", "schedules", "sentry", "sleep_for_days", "tests", "trio_async", "updatable_timer", "worker_specific_task_queues", "worker_versioning", ] [tool.hatch.build.targets.wheel.sources] "./**/*.py" = "**/*.py" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.poe.tasks] format = [ { cmd = "uv run ruff check --select I --fix" }, { cmd = "uv run ruff format" }, ] lint = [ { cmd = "uv run ruff check --select I" }, { cmd = "uv run ruff format --check" }, { ref = "lint-types" }, ] lint-types = "uv run --all-groups mypy --check-untyped-defs --namespace-packages ." test = "uv run --all-groups pytest" [tool.pytest.ini_options] asyncio_mode = "auto" log_cli = true log_cli_level = "INFO" log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" [tool.ruff] target-version = "py310" [tool.mypy] ignore_missing_imports = true namespace_packages = true [[tool.mypy.overrides]] module = "aiohttp.*" ignore_errors = true [[tool.mypy.overrides]] module = "opentelemetry.*" ignore_errors = true