| # |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| [build-system] |
| requires = ["hatchling", "hatch-fancy-pypi-readme"] |
| build-backend = "hatchling.build" |
| |
| [project] |
| name="apache-dubbo" |
| requires-python = ">=3.9" |
| authors = [ |
| {name = "Apache Dubbo Community", email = "dev@dubbo.apache.org"} |
| ] |
| maintainers = [ |
| {name = "Apache Dubbo Community", email = "dev@dubbo.apache.org"} |
| ] |
| description = "Python Implementation For Apache Dubbo." |
| license = "Apache-2.0" |
| license-files = ["LICEN[CS]E.*"] |
| keywords=["dubbo", "rpc","grpc", "dubbo-python", "http2", "network"] |
| classifiers=[ |
| "Development Status :: 4 - Beta", |
| "Intended Audience :: Developers", |
| "License :: OSI Approved :: Apache Software License", |
| "Operating System :: OS Independent", |
| "Programming Language :: Python :: 3", |
| "Programming Language :: Python :: 3 :: Only", |
| "Programming Language :: Python :: 3.9", |
| "Programming Language :: Python :: 3.10", |
| "Programming Language :: Python :: 3.11", |
| "Programming Language :: Python :: 3.12", |
| "Programming Language :: Python :: 3.13", |
| "Framework :: AsyncIO", |
| "Topic :: Internet", |
| "Topic :: Internet :: WWW/HTTP", |
| "Topic :: Internet :: WWW/HTTP :: HTTP Servers", |
| "Topic :: Software Development :: Libraries", |
| "Topic :: Software Development :: Libraries :: Python Modules", |
| "Topic :: System :: Networking", |
| ] |
| |
| dependencies = [ |
| "h2>=4.1.0", |
| "uvloop>=0.19.0; platform_system!='Windows'", |
| "psutil>=6.0.0", |
| ] |
| dynamic = ["version", "readme"] |
| |
| |
| [project.urls] |
| Homepage = "https://cn.dubbo.apache.org" |
| Documentation = "https://cn.dubbo.apache.org/en/overview/mannual/python-sdk/" |
| Repository = "https://github.com/apache/dubbo-python" |
| Issues = "https://github.com/apache/dubbo/issues" |
| |
| [project.optional-dependencies] |
| zookeeper = [ |
| "kazoo>=2.10.0", |
| ] |
| |
| ### Hatch settings ### |
| [tool.hatch.version] |
| path = "src/dubbo/__about__.py" |
| |
| [tool.hatch.build.targets.sdist] |
| include = [ |
| "/src", |
| "/tests", |
| "/README.md", |
| ] |
| |
| [tool.hatch.build.targets.wheel] |
| packages = ["src/dubbo"] |
| |
| |
| [tool.hatch.metadata.hooks.fancy-pypi-readme] |
| content-type = "text/markdown" |
| |
| [[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] |
| path = "README.md" |
| |
| |
| |
| ### Ruff settings ### |
| |
| # Top-level |
| [tool.ruff] |
| target-version = "py39" |
| line-length = 120 |
| extend-exclude = ["samples/proto"] |
| |
| # Format |
| [tool.ruff.format] |
| docstring-code-format = true |
| |
| # Lint |
| [tool.ruff.lint] |
| select = [ |
| "E", # pycodestyle errors |
| "W", # pycodestyle warnings |
| "F", # pyflakes |
| "I", # Check for missing imports (auto-fixable) |
| "UP", # pyupgrade |
| "ASYNC", # flake8-async |
| "ISC", # Checks for implicit literal string concatenation (auto-fixable) |
| "LOG", # Checking the use of logging objects |
| "G", # Check for logging format issues (auto-fixable) |
| ] |
| ignore = [ |
| "ISC001" # may casue conflict with ruff |
| ] |
| |
| |
| [tool.ruff.lint.isort] |
| combine-as-imports = true |
| |
| section-order = [ |
| "future", |
| "standard-library", |
| "third-party", |
| "first-party", |
| "local-folder" |
| ] |
| |
| ### Coverage settings ### |
| [tool.coverage.run] |
| branch = true |
| relative_files = true |
| include = ["src/dubbo/*"] |
| |
| [tool.coverage.report] |
| # Skip coverage report for 100% covered files |
| skip_covered = true |
| exclude_also = [ |
| "def __repr__", |
| "raise AssertionError", |
| "raise NotImplementedError", |
| "if __name__ == .__main__.:", |
| "@(abc\\.)?abstractmethod", |
| "@(typing(_extensions)?\\.)?overload", |
| "if (typing(_extensions)?\\.)?TYPE_CHECKING:" |
| ] |
| |
| |
| ### Mypy settings ### |
| [tool.mypy] |
| ignore_missing_imports = true |
| |
| [[tool.mypy.overrides]] |
| module = "tests.*" |
| disallow_untyped_defs = false |
| check_untyped_defs = true |
| |
| ### Pytest settings ### |
| [tool.pytest] |
| addopts = "-rxXs" |
| testpaths = ["tests"] |
| python_files = [ |
| "test_*.py" |
| ] |