@@ -17,16 +17,16 @@ keywords = [
1717 " workflow"
1818]
1919classifiers = [
20- " Development Status :: 3 - Alpha" ,
21- " Programming Language :: Python :: 3" ,
22- " License :: OSI Approved :: MIT License" ,
20+ " Development Status :: 3 - Alpha" ,
21+ " Programming Language :: Python :: 3" ,
22+ " License :: OSI Approved :: MIT License" ,
2323]
2424requires-python = " >=3.9"
2525license = {file = " LICENSE" }
2626readme = " README.md"
2727dependencies = [
2828 " grpcio" ,
29- " protobuf>=6.31.1,<7.0.0" , # follows grpcio generation version https://github.com/grpc/grpc/blob/v1.74.0 /tools/distrib/python/grpcio_tools/setup.py
29+ " protobuf>=6.31.1,<7.0.0" , # follows grpcio generation version https://github.com/grpc/grpc/blob/v1.75.1 /tools/distrib/python/grpcio_tools/setup.py
3030 " asyncio"
3131]
3232
@@ -48,3 +48,36 @@ pythonpath = ["."]
4848markers = [
4949 " e2e: mark a test as an end-to-end test that requires a running sidecar"
5050]
51+
52+ [project .optional-dependencies ]
53+ dev = [
54+ " pytest" ,
55+ " pytest-asyncio>=0.23" ,
56+ " tox>=4.0.0" ,
57+ " pytest-cov" ,
58+ " ruff" ,
59+
60+ # grpc gen
61+ " grpcio-tools==1.75.1" ,
62+ ]
63+
64+ [tool .ruff ]
65+ target-version = " py310" # TODO: update to py310 when we drop support for py39
66+ line-length = 100
67+ extend-exclude = [" .github" , " durabletask/internal/orchestrator_service_*.*" ]
68+
69+ [tool .ruff .lint ]
70+ select = [
71+ " I" , # isort
72+ " W" , # pycodestyle warnings
73+ " F" , # pyflakes
74+
75+ # TODO: Add those back progressively as we fix the issues
76+ # "E", # pycodestyle errors
77+ # "C", # flake8-comprehensions
78+ # "B", # flake8-bugbear
79+ # "UP", # pyupgrade
80+ ]
81+
82+ [tool .ruff .format ]
83+ quote-style = " double"
0 commit comments