144 lines
3.2 KiB
TOML
144 lines
3.2 KiB
TOML
[tool.poetry]
|
|
name = "betterproto"
|
|
version = "2.0.0b5"
|
|
description = "A better Protobuf / gRPC generator & library"
|
|
authors = ["Daniel G. Taylor <danielgtaylor@gmail.com>"]
|
|
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 = ">=19.3b0", optional = true }
|
|
grpclib = "^0.4.1"
|
|
jinja2 = { version = ">=3.0.3", optional = true }
|
|
python-dateutil = "^2.8"
|
|
isort = {version = "^5.10.1", optional = true}
|
|
|
|
[tool.poetry.dev-dependencies]
|
|
asv = "^0.4.2"
|
|
bpython = "^0.19"
|
|
grpcio-tools = "^1.40.0"
|
|
jinja2 = ">=3.0.3"
|
|
mypy = "^0.930"
|
|
poethepoet = ">=0.9.0"
|
|
protobuf = "^3.12.2"
|
|
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"
|
|
|
|
|
|
[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_"
|
|
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"
|
|
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"
|