Skip to content
Snippets Groups Projects
setup.cfg 2.56 KiB
# 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