# Generally describe the project [metadata] # See https://packaging.python.org/guides/distributing-packages-using-setuptools/#name # for requiremnts of a valid project name. name = zero-knowledge-access-pass-authorizer version = attr: _zkapauthorizer.__version__ description = A `Tahoe-LAFS`_ storage-system plugin which authorizes storage operations based on privacy-respecting tokens. long_description = file: README.rst, CHANGELOG.rst, LICENSE-2.0.txt keywords = tahoe-lafs, storage, privacy, cryptography license = Apache 2.0 classifiers = Framework :: Twisted Programming Language :: Python :: 3 Programming Language :: Python :: 3.9 author = PrivateStorage.io, LLC maintainer = PrivateStorage.io, LLC home-page = https://privatestorage.io/ author-email = support@privatestorage.io platform = POSIX [options] # All of the source is in the src directory. The weird syntax is defining a # dict with a key "" and a value "src". package_dir = =src # Explicitly list our packages because the automatic finder can't deal with # the plugins package we want to ship. packages = _zkapauthorizer _zkapauthorizer.server _zkapauthorizer.tests twisted.plugins install_requires = attrs zope.interface eliot >= 1.11,<2 aniso8601 python-challenge-bypass-ristretto # The pip resolver sometimes finds treq's dependencies first and these are # incompatible with Tahoe-LAFS'. So duplicate them here (the ones that # have been observed to cause problems). Twisted[tls,conch] >= 19.10.0 # Tahoe has no stable Python API but we use its Python API so there's # basically no wiggle room here. We still use a (really tiny) range # because our Nix packaging provides a Tahoe-LAFS with a .postNNN version. tahoe-lafs >=1.17.1,<1.17.2 treq pyutil prometheus-client # Include colorama as a dependency to help pip-compile deal with multiple # platforms. In particular, tqdm depends on colorama only on Windows. By # including it here, pip-compile will generate hashes (and install it) on # all platforms. colorama and pywin32 are our only depdencies that are only # required on some platforms; we can't include pywin32 here as it does not # install cross-platform. colorama [options.extras_require] test = coverage; fixtures; testtools; hypothesis; openapi_spec_validator [flake8] # Enforce all pyflakes constraints, and also prohibit tabs for indentation. # Reference: # https://flake8.pycqa.org/en/latest/user/error-codes.html # https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes select = F, W191