[build-system] requires = ["pbr>=6.1.1"] build-backend = "pbr.build" [project] name = "tooz" description = "Coordination library for distributed systems." authors = [ {name = "OpenStack", email = "openstack-discuss@lists.openstack.org"}, ] readme = {file = "README.rst", content-type = "text/x-rst"} license = {text = "Apache-2.0"} dynamic = ["version", "dependencies"] requires-python = ">=3.10" classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: System :: Distributed Computing", "Typing :: Typed", ] [project.urls] Homepage = "https://docs.openstack.org/tooz" Repository = "https://opendev.org/openstack/tooz" [project.entry-points."tooz.backends"] "etcd3+http" = "tooz.drivers.etcd3gw:Etcd3Driver" "etcd3+https" = "tooz.drivers.etcd3gw:Etcd3Driver" "kazoo" = "tooz.drivers.zookeeper:KazooDriver" "memcached" = "tooz.drivers.memcached:MemcachedDriver" "ipc" = "tooz.drivers.ipc:IPCDriver" "redis" = "tooz.drivers.redis:RedisDriver" "postgresql" = "tooz.drivers.pgsql:PostgresDriver" "mysql" = "tooz.drivers.mysql:MySQLDriver" "file" = "tooz.drivers.file:FileDriver" "zookeeper" = "tooz.drivers.zookeeper:KazooDriver" "consul" = "tooz.drivers.consul:ConsulDriver" "kubernetes" = "tooz.drivers.kubernetes:SherlockDriver" [project.optional-dependencies] consul = [ "python-consul2>=0.0.16", # MIT License ] etcd3gw = [ "etcd3gw>=2.3.0", # Apache-2.0 ] redis = [ "redis>=4.0.0", # MIT ] postgresql = [ "psycopg2>=2.5", # LGPL/ZPL ] mysql = [ "PyMySQL>=0.6.2", # MIT License ] zookeeper = [ "kazoo>=2.6", # Apache-2.0 ] memcached = [ "pymemcache>=1.2.9", # Apache 2.0 License ] ipc = [ "sysv-ipc>=0.6.8", # BSD License ] kubernetes = [ "kubernetes>=2.8.1", # Apache-2.0 "sherlock>=0.4.1", # MIT License ] [tool.setuptools] packages = [ "tooz" ] [tool.mypy] python_version = "3.10" show_column_numbers = true show_error_context = true strict = true disable_error_code = ["import-untyped"] exclude = "(?x)(doc | examples | releasenotes | tools)" # Vendored stubs for packages pending upstream type annotation merges. # Remove stubs/sysv_ipc when [1] has merged. # # [1] https://github.com/osvenskan/sysv_ipc/pull/78 mypy_path = ["stubs"] [[tool.mypy.overrides]] module = ["tooz.tests.*"] disallow_untyped_calls = false disallow_untyped_defs = false disallow_subclassing_any = false [[tool.mypy.overrides]] module = [ "tooz.drivers.consul", "tooz.drivers.etcd", "tooz.tests.drivers.test_etcd", ] ignore_errors = true [tool.ruff] line-length = 79 [tool.ruff.format] quote-style = "preserve" docstring-code-format = true [tool.ruff.lint] select = ["E4", "E5", "E7", "E9", "F", "G", "LOG", "S", "UP"] external = ["H"] ignore = [ # asserts are only used for type narrowing "S101", ]