[metadata]
name = grpclib
version = attr: grpclib.__version__
license = BSD-3-Clause
license_file = LICENSE.txt
description = Pure-Python gRPC implementation for asyncio
long_description = file: README.rst
long_description_content_type = text/x-rst
author = Vladimir Magamedov
author_email = vladimir@magamedov.com
url = https://github.com/vmagamedov/grpclib
classifiers =
    Development Status :: 5 - Production/Stable
    Intended Audience :: Developers
    License :: OSI Approved :: BSD License
    Operating System :: OS Independent
    Programming Language :: Python
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    Programming Language :: Python :: 3 :: Only
    Topic :: Internet :: WWW/HTTP :: HTTP Servers
    Topic :: Software Development :: Libraries :: Python Modules

[options]
packages = find:
python_requires = >=3.7
install_requires=
    h2<5,>=3.1.0
    multidict

[options.extras_require]
protobuf =
    protobuf>=3.20.0

[options.entry_points]
console_scripts =
    protoc-gen-python_grpc=grpclib.plugin.main:main
    protoc-gen-grpclib_python=grpclib.plugin.main:main

[options.package_data]
* = *.pyi
grpclib =
    py.typed

[tool:pytest]
addopts = -q --tb=native
testpaths = tests
asyncio_mode = auto
filterwarnings =
    error
    ignore:.*pkg_resources.*:DeprecationWarning
    ignore:.*google.*:DeprecationWarning
    ignore:.*utcfromtimestamp.*:DeprecationWarning
    ignore::ResourceWarning

[coverage:run]
source = grpclib
omit =
    grpclib/plugin/main.py
    *_pb2.py
    *_grpc.py

[coverage:report]
skip_covered = true
sort = miss

[flake8]
exclude = .git,.tox,env,*_pb2.py,*_grpc.py
max_line_length = 80

[mypy]
follow_imports = silent
; strict mode:
warn_unused_configs = true
disallow_subclassing_any = true
disallow_any_generics = true
disallow_untyped_calls = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true

[mypy-helloworld.helloworld_pb2_grpc]
ignore_errors = true

[mypy-_reference.*]
ignore_errors = true

[mypy-h2.*]
ignore_missing_imports = true

[mypy-google.rpc.*]
ignore_missing_imports = true
