[tool.poetry] name = "betterproto" version = "2.0.0b6" 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.7" black = { version = ">=23.1.0", optional = true } grpclib = "^0.4.1" importlib-metadata = { version = ">=1.6.0", python = "<3.8" } jinja2 = { version = ">=3.0.3", optional = true } python-dateutil = "^2.8" isort = {version = "^5.11.5", optional = true} [tool.poetry.dev-dependencies] asv = "^0.4.2" bpython = "^0.19" grpcio-tools = "^1.54.2" jinja2 = ">=3.0.3" mypy = "^0.930" poethepoet = ">=0.9.0" protobuf = "^4.21.6" pytest = "^6.2.5" 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" pre-commit = "^2.17.0" pydantic = ">=1.8.0" [tool.poetry.scripts] protoc-gen-python_betterproto = "betterproto.plugin:main" [tool.poetry.extras] compiler = ["black", "isort", "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_ --target-version py310" 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 C:\\work\\include C:\\work\\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" help = "Check if code style is correct" [tool.isort] py_version = 37 profile = "black" force_single_line = false combine_as_imports = true lines_after_imports = 2 include_trailing_comma = true force_grid_wrap = 2 src_paths = ["src", "tests"] [tool.black] target-version = ['py37'] [tool.doc8] paths = ["docs"] max_line_length = 88 [tool.doc8.ignore_path_errors] "docs/migrating.rst" = [ "D001", # contains table which is longer than 88 characters long ] [tool.coverage.run] omit = ["betterproto/tests/*"] [tool.tox] legacy_tox_ini = """ [tox] isolated_build = true envlist = py37, py38, py310 [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"