[tool.poetry] name = "betterproto" version = "2.0.0b3" description = "A better Protobuf / gRPC generator & library" authors = ["Daniel G. Taylor "] readme = "README.md" repository = "https://github.com/danielgtaylor/python-betterproto" keywords = ["protobuf", "gRPC"] license = "MIT" packages = [ { include = "betterproto", from = "src" } ] [tool.poetry.dependencies] python = ">=3.6.2,<4.0" black = { version = ">=19.3b0", optional = true } dataclasses = { version = "^0.7", python = ">=3.6, <3.7" } grpclib = "^0.4.1" jinja2 = { version = "^2.11.2", optional = true } python-dateutil = "^2.8" [tool.poetry.dev-dependencies] asv = "^0.4.2" black = "^21.11b0" bpython = "^0.19" grpcio-tools = "^1.30.0" jinja2 = "^2.11.2" mypy = "^0.770" poethepoet = ">=0.9.0" protobuf = "^3.12.2" pytest = "^5.4.2" pytest-asyncio = "^0.12.0" pytest-cov = "^2.9.0" pytest-mock = "^3.1.1" sphinx = "3.1.2" sphinx-rtd-theme = "0.5.0" tomlkit = "^0.7.0" tox = "^3.15.1" [tool.poetry.scripts] protoc-gen-python_betterproto = "betterproto.plugin:main" [tool.poetry.extras] compiler = ["black", "jinja2"] # Dev workflow tasks [tool.poe.tasks.generate] script = "tests.generate:main" help = "Generate test cases (do this once before running test)" [tool.poe.tasks.test] cmd = "pytest" help = "Run tests" [tool.poe.tasks.types] cmd = "mypy src --ignore-missing-imports" help = "Check types with mypy" [tool.poe.tasks.format] cmd = "black . --exclude tests/output_" help = "Apply black formatting to source code" [tool.poe.tasks.docs] cmd = "sphinx-build docs docs/build" help = "Build the sphinx docs" [tool.poe.tasks.bench] shell = "asv run master^! && asv run HEAD^! && asv compare master HEAD" help = "Benchmark current commit vs. master branch" [tool.poe.tasks.clean] cmd = """ rm -rf .asv .coverage .mypy_cache .pytest_cache dist betterproto.egg-info **/__pycache__ testsoutput_* """ help = "Clean out generated files from the workspace" [tool.poe.tasks.generate_lib] cmd = """ protoc --plugin=protoc-gen-custom=src/betterproto/plugin/main.py --custom_opt=INCLUDE_GOOGLE --custom_out=src/betterproto/lib -I /usr/local/include/ /usr/local/include/google/protobuf/**/*.proto """ help = "Regenerate the types in betterproto.lib.google" # CI tasks [tool.poe.tasks.full-test] shell = "poe generate && tox" help = "Run tests with multiple pythons" [tool.poe.tasks.check-style] cmd = "black . --check --diff --exclude tests/output_" help = "Check if code style is correct" [tool.black] target-version = ['py36'] [tool.coverage.run] omit = ["betterproto/tests/*"] [tool.tox] legacy_tox_ini = """ [tox] isolated_build = true envlist = py36, py37, py38 [testenv] whitelist_externals = poetry commands = poetry install -v --extras compiler poetry run pytest --cov betterproto """ [build-system] requires = ["poetry-core>=1.0.0,<2"] build-backend = "poetry.core.masonry.api"