Metadata-Version: 2.1
Name: lemur
Version: 1.7.0
Summary: Certificate management and orchestration service
Home-page: https://github.com/Netflix/lemur
Author: The Lemur developers
Author-email: security@netflix.com
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: acme ==2.8.0
Requires-Dist: alembic ==1.12.0
Requires-Dist: alembic-autogenerate-enums ==0.1.2
Requires-Dist: amqp ==5.1.1
Requires-Dist: aniso8601 ==9.0.1
Requires-Dist: arrow ==1.3.0
Requires-Dist: async-timeout ==4.0.3
Requires-Dist: asyncpool ==1.0
Requires-Dist: attrs ==23.1.0
Requires-Dist: bcrypt ==4.0.1
Requires-Dist: billiard ==4.2.0
Requires-Dist: blinker ==1.6.3
Requires-Dist: boto3 ==1.34.19
Requires-Dist: botocore ==1.34.19
Requires-Dist: celery[redis] ==5.3.5
Requires-Dist: certbot ==2.8.0
Requires-Dist: certifi ==2023.11.17
Requires-Dist: certsrv[ntlm] ==2.1.1
Requires-Dist: cffi ==1.16.0
Requires-Dist: charset-normalizer ==3.3.0
Requires-Dist: click ==8.1.7
Requires-Dist: click-didyoumean ==0.3.0
Requires-Dist: click-plugins ==1.1.1
Requires-Dist: click-repl ==0.3.0
Requires-Dist: cloudflare ==2.16.0
Requires-Dist: configargparse ==1.7
Requires-Dist: configobj ==5.0.8
Requires-Dist: cryptography ==41.0.7
Requires-Dist: deprecated ==1.2.14
Requires-Dist: distro ==1.8.0
Requires-Dist: dnspython ==1.15.0
Requires-Dist: dnspython3 ==1.15.0
Requires-Dist: dyn ==1.8.6
Requires-Dist: flask ==2.3.3
Requires-Dist: flask-bcrypt ==1.0.1
Requires-Dist: flask-cors ==4.0.0
Requires-Dist: flask-limiter ==3.5.0
Requires-Dist: flask-mail ==0.9.1
Requires-Dist: flask-migrate ==4.0.5
Requires-Dist: flask-principal ==0.4.0
Requires-Dist: flask-replicated ==2.1
Requires-Dist: flask-restful ==0.3.10
Requires-Dist: flask-sqlalchemy ==2.5.1
Requires-Dist: future ==0.18.3
Requires-Dist: gunicorn ==21.2.0
Requires-Dist: hvac ==2.0.0
Requires-Dist: idna ==3.4
Requires-Dist: importlib-metadata ==6.8.0
Requires-Dist: importlib-resources ==6.1.0
Requires-Dist: inflection ==0.5.1
Requires-Dist: itsdangerous ==2.1.2
Requires-Dist: javaobj-py3 ==0.4.3
Requires-Dist: jinja2 ==3.1.3
Requires-Dist: jmespath ==1.0.1
Requires-Dist: josepy ==1.14.0
Requires-Dist: jsonlines ==4.0.0
Requires-Dist: kombu ==5.3.3
Requires-Dist: limits ==3.6.0
Requires-Dist: lockfile ==0.12.2
Requires-Dist: logmatic-python ==0.1.7
Requires-Dist: mako ==1.2.4
Requires-Dist: markdown-it-py ==3.0.0
Requires-Dist: markupsafe ==2.1.3
Requires-Dist: marshmallow ==2.21.0
Requires-Dist: marshmallow-sqlalchemy ==0.23.1
Requires-Dist: mdurl ==0.1.2
Requires-Dist: ndg-httpsclient ==0.5.1
Requires-Dist: ordered-set ==4.1.0
Requires-Dist: packaging ==23.2
Requires-Dist: paramiko ==3.4.0
Requires-Dist: parsedatetime ==2.6
Requires-Dist: pem ==23.1.0
Requires-Dist: prompt-toolkit ==3.0.39
Requires-Dist: psycopg2 ==2.9.9
Requires-Dist: pyasn1 ==0.5.0
Requires-Dist: pyasn1-modules ==0.3.0
Requires-Dist: pycparser ==2.21
Requires-Dist: pycryptodomex ==3.19.1
Requires-Dist: pygments ==2.16.1
Requires-Dist: pyjks ==20.0.0
Requires-Dist: pyjwt ==2.8.0
Requires-Dist: pynacl ==1.5.0
Requires-Dist: pyopenssl ==23.3.0
Requires-Dist: pyrfc3339 ==1.1
Requires-Dist: pyspnego ==0.10.2
Requires-Dist: python-dateutil ==2.8.2
Requires-Dist: python-json-logger ==2.0.7
Requires-Dist: python-ldap ==3.4.4
Requires-Dist: pytz ==2023.3.post1
Requires-Dist: pyyaml ==6.0.1
Requires-Dist: redis ==5.0.1
Requires-Dist: requests ==2.31.0
Requires-Dist: requests-ntlm ==1.2.0
Requires-Dist: retrying ==1.3.4
Requires-Dist: rich ==13.6.0
Requires-Dist: s3transfer ==0.10.0
Requires-Dist: sentry-sdk ==1.37.1
Requires-Dist: six ==1.16.0
Requires-Dist: sqlalchemy ==1.3.24
Requires-Dist: sqlalchemy-utils ==0.41.1
Requires-Dist: tabulate ==0.9.0
Requires-Dist: twofish ==0.3.0
Requires-Dist: types-python-dateutil ==2.8.19.14
Requires-Dist: typing-extensions ==4.8.0
Requires-Dist: tzdata ==2023.3
Requires-Dist: urllib3 ==1.26.18
Requires-Dist: validators ==0.22.0
Requires-Dist: vine ==5.1.0
Requires-Dist: wcwidth ==0.2.8
Requires-Dist: werkzeug ==3.0.1
Requires-Dist: wrapt ==1.15.0
Requires-Dist: xmltodict ==0.13.0
Requires-Dist: zipp ==3.17.0
Provides-Extra: dev
Requires-Dist: acme ==2.8.0 ; extra == 'dev'
Requires-Dist: alembic ==1.12.0 ; extra == 'dev'
Requires-Dist: alembic-autogenerate-enums ==0.1.2 ; extra == 'dev'
Requires-Dist: amqp ==5.1.1 ; extra == 'dev'
Requires-Dist: aniso8601 ==9.0.1 ; extra == 'dev'
Requires-Dist: annotated-types ==0.6.0 ; extra == 'dev'
Requires-Dist: arrow ==1.3.0 ; extra == 'dev'
Requires-Dist: async-timeout ==4.0.3 ; extra == 'dev'
Requires-Dist: asyncpool ==1.0 ; extra == 'dev'
Requires-Dist: attrs ==23.1.0 ; extra == 'dev'
Requires-Dist: aws-sam-translator ==1.78.0 ; extra == 'dev'
Requires-Dist: aws-xray-sdk ==2.12.1 ; extra == 'dev'
Requires-Dist: bandit ==1.7.6 ; extra == 'dev'
Requires-Dist: bcrypt ==4.0.1 ; extra == 'dev'
Requires-Dist: billiard ==4.2.0 ; extra == 'dev'
Requires-Dist: black ==23.12.1 ; extra == 'dev'
Requires-Dist: blinker ==1.6.3 ; extra == 'dev'
Requires-Dist: boto3 ==1.34.19 ; extra == 'dev'
Requires-Dist: botocore ==1.34.19 ; extra == 'dev'
Requires-Dist: celery[redis] ==5.3.5 ; extra == 'dev'
Requires-Dist: certbot ==2.8.0 ; extra == 'dev'
Requires-Dist: certifi ==2023.11.17 ; extra == 'dev'
Requires-Dist: certsrv[ntlm] ==2.1.1 ; extra == 'dev'
Requires-Dist: cffi ==1.16.0 ; extra == 'dev'
Requires-Dist: cfgv ==3.4.0 ; extra == 'dev'
Requires-Dist: cfn-lint ==0.82.2 ; extra == 'dev'
Requires-Dist: charset-normalizer ==3.3.0 ; extra == 'dev'
Requires-Dist: click ==8.1.7 ; extra == 'dev'
Requires-Dist: click-didyoumean ==0.3.0 ; extra == 'dev'
Requires-Dist: click-plugins ==1.1.1 ; extra == 'dev'
Requires-Dist: click-repl ==0.3.0 ; extra == 'dev'
Requires-Dist: cloudflare ==2.16.0 ; extra == 'dev'
Requires-Dist: configargparse ==1.7 ; extra == 'dev'
Requires-Dist: configobj ==5.0.8 ; extra == 'dev'
Requires-Dist: coverage ==7.4.0 ; extra == 'dev'
Requires-Dist: cryptography ==41.0.7 ; extra == 'dev'
Requires-Dist: deprecated ==1.2.14 ; extra == 'dev'
Requires-Dist: distlib ==0.3.7 ; extra == 'dev'
Requires-Dist: distro ==1.8.0 ; extra == 'dev'
Requires-Dist: dnspython ==1.15.0 ; extra == 'dev'
Requires-Dist: dnspython3 ==1.15.0 ; extra == 'dev'
Requires-Dist: docker ==6.1.3 ; extra == 'dev'
Requires-Dist: docutils ==0.20.1 ; extra == 'dev'
Requires-Dist: dyn ==1.8.6 ; extra == 'dev'
Requires-Dist: ecdsa ==0.18.0 ; extra == 'dev'
Requires-Dist: exceptiongroup ==1.1.3 ; extra == 'dev'
Requires-Dist: factory-boy ==3.3.0 ; extra == 'dev'
Requires-Dist: faker ==22.2.0 ; extra == 'dev'
Requires-Dist: fakeredis ==2.20.1 ; extra == 'dev'
Requires-Dist: filelock ==3.12.4 ; extra == 'dev'
Requires-Dist: flake8 ==6.1.0 ; extra == 'dev'
Requires-Dist: flask ==2.3.3 ; extra == 'dev'
Requires-Dist: flask-bcrypt ==1.0.1 ; extra == 'dev'
Requires-Dist: flask-cors ==4.0.0 ; extra == 'dev'
Requires-Dist: flask-limiter ==3.5.0 ; extra == 'dev'
Requires-Dist: flask-mail ==0.9.1 ; extra == 'dev'
Requires-Dist: flask-migrate ==4.0.5 ; extra == 'dev'
Requires-Dist: flask-principal ==0.4.0 ; extra == 'dev'
Requires-Dist: flask-replicated ==2.1 ; extra == 'dev'
Requires-Dist: flask-restful ==0.3.10 ; extra == 'dev'
Requires-Dist: flask-sqlalchemy ==2.5.1 ; extra == 'dev'
Requires-Dist: freezegun ==1.3.1 ; extra == 'dev'
Requires-Dist: future ==0.18.3 ; extra == 'dev'
Requires-Dist: gitdb ==4.0.10 ; extra == 'dev'
Requires-Dist: gitpython ==3.1.41 ; extra == 'dev'
Requires-Dist: graphql-core ==3.2.3 ; extra == 'dev'
Requires-Dist: gunicorn ==21.2.0 ; extra == 'dev'
Requires-Dist: hvac ==2.0.0 ; extra == 'dev'
Requires-Dist: identify ==2.5.30 ; extra == 'dev'
Requires-Dist: idna ==3.4 ; extra == 'dev'
Requires-Dist: importlib-metadata ==6.8.0 ; extra == 'dev'
Requires-Dist: importlib-resources ==6.1.0 ; extra == 'dev'
Requires-Dist: inflection ==0.5.1 ; extra == 'dev'
Requires-Dist: iniconfig ==2.0.0 ; extra == 'dev'
Requires-Dist: invoke ==2.2.0 ; extra == 'dev'
Requires-Dist: itsdangerous ==2.1.2 ; extra == 'dev'
Requires-Dist: jaraco-classes ==3.3.0 ; extra == 'dev'
Requires-Dist: javaobj-py3 ==0.4.3 ; extra == 'dev'
Requires-Dist: jeepney ==0.8.0 ; extra == 'dev'
Requires-Dist: jinja2 ==3.1.3 ; extra == 'dev'
Requires-Dist: jmespath ==1.0.1 ; extra == 'dev'
Requires-Dist: josepy ==1.14.0 ; extra == 'dev'
Requires-Dist: jschema-to-python ==1.2.3 ; extra == 'dev'
Requires-Dist: jsondiff ==2.0.0 ; extra == 'dev'
Requires-Dist: jsonlines ==4.0.0 ; extra == 'dev'
Requires-Dist: jsonpatch ==1.33 ; extra == 'dev'
Requires-Dist: jsonpickle ==3.0.2 ; extra == 'dev'
Requires-Dist: jsonpointer ==2.4 ; extra == 'dev'
Requires-Dist: jsonschema ==4.19.1 ; extra == 'dev'
Requires-Dist: jsonschema-path ==0.3.1 ; extra == 'dev'
Requires-Dist: jsonschema-specifications ==2023.7.1 ; extra == 'dev'
Requires-Dist: junit-xml ==1.9 ; extra == 'dev'
Requires-Dist: keyring ==24.2.0 ; extra == 'dev'
Requires-Dist: kombu ==5.3.3 ; extra == 'dev'
Requires-Dist: lazy-object-proxy ==1.9.0 ; extra == 'dev'
Requires-Dist: limits ==3.6.0 ; extra == 'dev'
Requires-Dist: lockfile ==0.12.2 ; extra == 'dev'
Requires-Dist: logmatic-python ==0.1.7 ; extra == 'dev'
Requires-Dist: mako ==1.2.4 ; extra == 'dev'
Requires-Dist: markdown-it-py ==3.0.0 ; extra == 'dev'
Requires-Dist: markupsafe ==2.1.3 ; extra == 'dev'
Requires-Dist: marshmallow ==2.21.0 ; extra == 'dev'
Requires-Dist: marshmallow-sqlalchemy ==0.23.1 ; extra == 'dev'
Requires-Dist: mccabe ==0.7.0 ; extra == 'dev'
Requires-Dist: mdurl ==0.1.2 ; extra == 'dev'
Requires-Dist: more-itertools ==10.1.0 ; extra == 'dev'
Requires-Dist: moto[all] ==4.2.10 ; extra == 'dev'
Requires-Dist: mpmath ==1.3.0 ; extra == 'dev'
Requires-Dist: multipart ==0.2.4 ; extra == 'dev'
Requires-Dist: mypy ==1.8.0 ; extra == 'dev'
Requires-Dist: mypy-extensions ==1.0.0 ; extra == 'dev'
Requires-Dist: ndg-httpsclient ==0.5.1 ; extra == 'dev'
Requires-Dist: networkx ==3.1 ; extra == 'dev'
Requires-Dist: nh3 ==0.2.14 ; extra == 'dev'
Requires-Dist: nodeenv ==1.8.0 ; extra == 'dev'
Requires-Dist: nose ==1.3.7 ; extra == 'dev'
Requires-Dist: openapi-schema-validator ==0.6.2 ; extra == 'dev'
Requires-Dist: openapi-spec-validator ==0.7.1 ; extra == 'dev'
Requires-Dist: ordered-set ==4.1.0 ; extra == 'dev'
Requires-Dist: packaging ==23.2 ; extra == 'dev'
Requires-Dist: paramiko ==3.4.0 ; extra == 'dev'
Requires-Dist: parsedatetime ==2.6 ; extra == 'dev'
Requires-Dist: pathable ==0.4.3 ; extra == 'dev'
Requires-Dist: pathspec ==0.11.2 ; extra == 'dev'
Requires-Dist: pbr ==5.11.1 ; extra == 'dev'
Requires-Dist: pem ==23.1.0 ; extra == 'dev'
Requires-Dist: pkginfo ==1.9.6 ; extra == 'dev'
Requires-Dist: platformdirs ==3.11.0 ; extra == 'dev'
Requires-Dist: pluggy ==1.3.0 ; extra == 'dev'
Requires-Dist: pre-commit ==3.5.0 ; extra == 'dev'
Requires-Dist: prompt-toolkit ==3.0.39 ; extra == 'dev'
Requires-Dist: psycopg2 ==2.9.9 ; extra == 'dev'
Requires-Dist: py-partiql-parser ==0.4.2 ; extra == 'dev'
Requires-Dist: pyasn1 ==0.5.0 ; extra == 'dev'
Requires-Dist: pyasn1-modules ==0.3.0 ; extra == 'dev'
Requires-Dist: pycodestyle ==2.11.1 ; extra == 'dev'
Requires-Dist: pycparser ==2.21 ; extra == 'dev'
Requires-Dist: pycryptodomex ==3.19.1 ; extra == 'dev'
Requires-Dist: pydantic ==2.4.2 ; extra == 'dev'
Requires-Dist: pydantic-core ==2.10.1 ; extra == 'dev'
Requires-Dist: pyflakes ==3.1.0 ; extra == 'dev'
Requires-Dist: pygments ==2.16.1 ; extra == 'dev'
Requires-Dist: pyjks ==20.0.0 ; extra == 'dev'
Requires-Dist: pyjwt ==2.8.0 ; extra == 'dev'
Requires-Dist: pynacl ==1.5.0 ; extra == 'dev'
Requires-Dist: pyopenssl ==23.3.0 ; extra == 'dev'
Requires-Dist: pyparsing ==3.1.1 ; extra == 'dev'
Requires-Dist: pyrfc3339 ==1.1 ; extra == 'dev'
Requires-Dist: pyspnego ==0.10.2 ; extra == 'dev'
Requires-Dist: pytest ==7.4.4 ; extra == 'dev'
Requires-Dist: pytest-flask ==1.3.0 ; extra == 'dev'
Requires-Dist: pytest-mock ==3.12.0 ; extra == 'dev'
Requires-Dist: python-dateutil ==2.8.2 ; extra == 'dev'
Requires-Dist: python-jose[cryptography] ==3.3.0 ; extra == 'dev'
Requires-Dist: python-json-logger ==2.0.7 ; extra == 'dev'
Requires-Dist: python-ldap ==3.4.4 ; extra == 'dev'
Requires-Dist: pytz ==2023.3.post1 ; extra == 'dev'
Requires-Dist: pyyaml ==6.0.1 ; extra == 'dev'
Requires-Dist: readme-renderer ==42.0 ; extra == 'dev'
Requires-Dist: redis ==5.0.1 ; extra == 'dev'
Requires-Dist: referencing ==0.30.2 ; extra == 'dev'
Requires-Dist: regex ==2023.10.3 ; extra == 'dev'
Requires-Dist: requests ==2.31.0 ; extra == 'dev'
Requires-Dist: requests-mock ==1.11.0 ; extra == 'dev'
Requires-Dist: requests-ntlm ==1.2.0 ; extra == 'dev'
Requires-Dist: requests-toolbelt ==1.0.0 ; extra == 'dev'
Requires-Dist: responses ==0.23.3 ; extra == 'dev'
Requires-Dist: retrying ==1.3.4 ; extra == 'dev'
Requires-Dist: rfc3339-validator ==0.1.4 ; extra == 'dev'
Requires-Dist: rfc3986 ==2.0.0 ; extra == 'dev'
Requires-Dist: rich ==13.6.0 ; extra == 'dev'
Requires-Dist: rpds-py ==0.10.6 ; extra == 'dev'
Requires-Dist: rsa ==4.9 ; extra == 'dev'
Requires-Dist: s3transfer ==0.10.0 ; extra == 'dev'
Requires-Dist: sarif-om ==1.0.4 ; extra == 'dev'
Requires-Dist: secretstorage ==3.3.3 ; extra == 'dev'
Requires-Dist: sentry-sdk ==1.37.1 ; extra == 'dev'
Requires-Dist: six ==1.16.0 ; extra == 'dev'
Requires-Dist: smmap ==5.0.1 ; extra == 'dev'
Requires-Dist: sortedcontainers ==2.4.0 ; extra == 'dev'
Requires-Dist: sqlalchemy ==1.3.24 ; extra == 'dev'
Requires-Dist: sqlalchemy-utils ==0.41.1 ; extra == 'dev'
Requires-Dist: sshpubkeys ==3.3.1 ; extra == 'dev'
Requires-Dist: stevedore ==5.1.0 ; extra == 'dev'
Requires-Dist: sympy ==1.12 ; extra == 'dev'
Requires-Dist: tabulate ==0.9.0 ; extra == 'dev'
Requires-Dist: tomli ==2.0.1 ; extra == 'dev'
Requires-Dist: twine ==4.0.2 ; extra == 'dev'
Requires-Dist: twofish ==0.3.0 ; extra == 'dev'
Requires-Dist: types-deprecated ==1.2.9.3 ; extra == 'dev'
Requires-Dist: types-paramiko ==3.4.0.20240106 ; extra == 'dev'
Requires-Dist: types-pyopenssl ==23.3.0.20240106 ; extra == 'dev'
Requires-Dist: types-pyrfc3339 ==1.1.1.5 ; extra == 'dev'
Requires-Dist: types-python-dateutil ==2.8.19.14 ; extra == 'dev'
Requires-Dist: types-pytz ==2023.3.1.1 ; extra == 'dev'
Requires-Dist: types-pyyaml ==6.0.12.12 ; extra == 'dev'
Requires-Dist: types-redis ==4.6.0.11 ; extra == 'dev'
Requires-Dist: types-requests ==2.31.0.6 ; extra == 'dev'
Requires-Dist: types-setuptools ==69.0.0.0 ; extra == 'dev'
Requires-Dist: types-six ==1.16.21.9 ; extra == 'dev'
Requires-Dist: types-tabulate ==0.9.0.20240106 ; extra == 'dev'
Requires-Dist: types-urllib3 ==1.26.25.14 ; extra == 'dev'
Requires-Dist: typing-extensions ==4.8.0 ; extra == 'dev'
Requires-Dist: tzdata ==2023.3 ; extra == 'dev'
Requires-Dist: urllib3 ==1.26.18 ; extra == 'dev'
Requires-Dist: validators ==0.22.0 ; extra == 'dev'
Requires-Dist: vine ==5.1.0 ; extra == 'dev'
Requires-Dist: virtualenv ==20.24.5 ; extra == 'dev'
Requires-Dist: wcwidth ==0.2.8 ; extra == 'dev'
Requires-Dist: websocket-client ==1.6.4 ; extra == 'dev'
Requires-Dist: werkzeug ==3.0.1 ; extra == 'dev'
Requires-Dist: wrapt ==1.15.0 ; extra == 'dev'
Requires-Dist: xmltodict ==0.13.0 ; extra == 'dev'
Requires-Dist: zipp ==3.17.0 ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: acme ==2.8.0 ; extra == 'docs'
Requires-Dist: alabaster ==0.7.13 ; extra == 'docs'
Requires-Dist: alembic ==1.12.0 ; extra == 'docs'
Requires-Dist: alembic-autogenerate-enums ==0.1.2 ; extra == 'docs'
Requires-Dist: amqp ==5.1.1 ; extra == 'docs'
Requires-Dist: aniso8601 ==9.0.1 ; extra == 'docs'
Requires-Dist: annotated-types ==0.6.0 ; extra == 'docs'
Requires-Dist: arrow ==1.3.0 ; extra == 'docs'
Requires-Dist: async-timeout ==4.0.3 ; extra == 'docs'
Requires-Dist: asyncpool ==1.0 ; extra == 'docs'
Requires-Dist: attrs ==23.1.0 ; extra == 'docs'
Requires-Dist: aws-sam-translator ==1.78.0 ; extra == 'docs'
Requires-Dist: aws-xray-sdk ==2.12.1 ; extra == 'docs'
Requires-Dist: babel ==2.13.0 ; extra == 'docs'
Requires-Dist: bandit ==1.7.6 ; extra == 'docs'
Requires-Dist: bcrypt ==4.0.1 ; extra == 'docs'
Requires-Dist: billiard ==4.2.0 ; extra == 'docs'
Requires-Dist: black ==23.12.1 ; extra == 'docs'
Requires-Dist: blinker ==1.6.3 ; extra == 'docs'
Requires-Dist: boto3 ==1.34.19 ; extra == 'docs'
Requires-Dist: botocore ==1.34.19 ; extra == 'docs'
Requires-Dist: celery[redis] ==5.3.5 ; extra == 'docs'
Requires-Dist: certbot ==2.8.0 ; extra == 'docs'
Requires-Dist: certifi ==2023.11.17 ; extra == 'docs'
Requires-Dist: certsrv[ntlm] ==2.1.1 ; extra == 'docs'
Requires-Dist: cffi ==1.16.0 ; extra == 'docs'
Requires-Dist: cfn-lint ==0.82.2 ; extra == 'docs'
Requires-Dist: charset-normalizer ==3.3.0 ; extra == 'docs'
Requires-Dist: click ==8.1.7 ; extra == 'docs'
Requires-Dist: click-didyoumean ==0.3.0 ; extra == 'docs'
Requires-Dist: click-plugins ==1.1.1 ; extra == 'docs'
Requires-Dist: click-repl ==0.3.0 ; extra == 'docs'
Requires-Dist: cloudflare ==2.16.0 ; extra == 'docs'
Requires-Dist: configargparse ==1.7 ; extra == 'docs'
Requires-Dist: configobj ==5.0.8 ; extra == 'docs'
Requires-Dist: coverage ==7.4.0 ; extra == 'docs'
Requires-Dist: cryptography ==41.0.7 ; extra == 'docs'
Requires-Dist: deprecated ==1.2.14 ; extra == 'docs'
Requires-Dist: distro ==1.8.0 ; extra == 'docs'
Requires-Dist: dnspython ==1.15.0 ; extra == 'docs'
Requires-Dist: dnspython3 ==1.15.0 ; extra == 'docs'
Requires-Dist: docker ==6.1.3 ; extra == 'docs'
Requires-Dist: docutils ==0.18.1 ; extra == 'docs'
Requires-Dist: dyn ==1.8.6 ; extra == 'docs'
Requires-Dist: ecdsa ==0.18.0 ; extra == 'docs'
Requires-Dist: exceptiongroup ==1.1.3 ; extra == 'docs'
Requires-Dist: factory-boy ==3.3.0 ; extra == 'docs'
Requires-Dist: faker ==22.2.0 ; extra == 'docs'
Requires-Dist: fakeredis ==2.20.1 ; extra == 'docs'
Requires-Dist: flask ==2.3.3 ; extra == 'docs'
Requires-Dist: flask-bcrypt ==1.0.1 ; extra == 'docs'
Requires-Dist: flask-cors ==4.0.0 ; extra == 'docs'
Requires-Dist: flask-limiter ==3.5.0 ; extra == 'docs'
Requires-Dist: flask-mail ==0.9.1 ; extra == 'docs'
Requires-Dist: flask-migrate ==4.0.5 ; extra == 'docs'
Requires-Dist: flask-principal ==0.4.0 ; extra == 'docs'
Requires-Dist: flask-replicated ==2.1 ; extra == 'docs'
Requires-Dist: flask-restful ==0.3.10 ; extra == 'docs'
Requires-Dist: flask-sqlalchemy ==2.5.1 ; extra == 'docs'
Requires-Dist: freezegun ==1.3.1 ; extra == 'docs'
Requires-Dist: future ==0.18.3 ; extra == 'docs'
Requires-Dist: gitdb ==4.0.10 ; extra == 'docs'
Requires-Dist: gitpython ==3.1.41 ; extra == 'docs'
Requires-Dist: graphql-core ==3.2.3 ; extra == 'docs'
Requires-Dist: gunicorn ==21.2.0 ; extra == 'docs'
Requires-Dist: hvac ==2.0.0 ; extra == 'docs'
Requires-Dist: idna ==3.4 ; extra == 'docs'
Requires-Dist: imagesize ==1.4.1 ; extra == 'docs'
Requires-Dist: importlib-metadata ==6.8.0 ; extra == 'docs'
Requires-Dist: importlib-resources ==6.1.0 ; extra == 'docs'
Requires-Dist: inflection ==0.5.1 ; extra == 'docs'
Requires-Dist: iniconfig ==2.0.0 ; extra == 'docs'
Requires-Dist: itsdangerous ==2.1.2 ; extra == 'docs'
Requires-Dist: javaobj-py3 ==0.4.3 ; extra == 'docs'
Requires-Dist: jinja2 ==3.1.3 ; extra == 'docs'
Requires-Dist: jmespath ==1.0.1 ; extra == 'docs'
Requires-Dist: josepy ==1.14.0 ; extra == 'docs'
Requires-Dist: jschema-to-python ==1.2.3 ; extra == 'docs'
Requires-Dist: jsondiff ==2.0.0 ; extra == 'docs'
Requires-Dist: jsonlines ==4.0.0 ; extra == 'docs'
Requires-Dist: jsonpatch ==1.33 ; extra == 'docs'
Requires-Dist: jsonpickle ==3.0.2 ; extra == 'docs'
Requires-Dist: jsonpointer ==2.4 ; extra == 'docs'
Requires-Dist: jsonschema ==4.19.1 ; extra == 'docs'
Requires-Dist: jsonschema-path ==0.3.1 ; extra == 'docs'
Requires-Dist: jsonschema-specifications ==2023.7.1 ; extra == 'docs'
Requires-Dist: junit-xml ==1.9 ; extra == 'docs'
Requires-Dist: kombu ==5.3.3 ; extra == 'docs'
Requires-Dist: lazy-object-proxy ==1.9.0 ; extra == 'docs'
Requires-Dist: limits ==3.6.0 ; extra == 'docs'
Requires-Dist: lockfile ==0.12.2 ; extra == 'docs'
Requires-Dist: logmatic-python ==0.1.7 ; extra == 'docs'
Requires-Dist: mako ==1.2.4 ; extra == 'docs'
Requires-Dist: markdown-it-py ==3.0.0 ; extra == 'docs'
Requires-Dist: markupsafe ==2.1.3 ; extra == 'docs'
Requires-Dist: marshmallow ==2.21.0 ; extra == 'docs'
Requires-Dist: marshmallow-sqlalchemy ==0.23.1 ; extra == 'docs'
Requires-Dist: mdurl ==0.1.2 ; extra == 'docs'
Requires-Dist: moto[all] ==4.2.10 ; extra == 'docs'
Requires-Dist: mpmath ==1.3.0 ; extra == 'docs'
Requires-Dist: multipart ==0.2.4 ; extra == 'docs'
Requires-Dist: mypy ==1.8.0 ; extra == 'docs'
Requires-Dist: mypy-extensions ==1.0.0 ; extra == 'docs'
Requires-Dist: ndg-httpsclient ==0.5.1 ; extra == 'docs'
Requires-Dist: networkx ==3.1 ; extra == 'docs'
Requires-Dist: nose ==1.3.7 ; extra == 'docs'
Requires-Dist: openapi-schema-validator ==0.6.2 ; extra == 'docs'
Requires-Dist: openapi-spec-validator ==0.7.1 ; extra == 'docs'
Requires-Dist: ordered-set ==4.1.0 ; extra == 'docs'
Requires-Dist: packaging ==23.2 ; extra == 'docs'
Requires-Dist: paramiko ==3.4.0 ; extra == 'docs'
Requires-Dist: parsedatetime ==2.6 ; extra == 'docs'
Requires-Dist: pathable ==0.4.3 ; extra == 'docs'
Requires-Dist: pathspec ==0.11.2 ; extra == 'docs'
Requires-Dist: pbr ==5.11.1 ; extra == 'docs'
Requires-Dist: pem ==23.1.0 ; extra == 'docs'
Requires-Dist: platformdirs ==3.11.0 ; extra == 'docs'
Requires-Dist: pluggy ==1.3.0 ; extra == 'docs'
Requires-Dist: prompt-toolkit ==3.0.39 ; extra == 'docs'
Requires-Dist: psycopg2 ==2.9.9 ; extra == 'docs'
Requires-Dist: py-partiql-parser ==0.4.2 ; extra == 'docs'
Requires-Dist: pyasn1 ==0.5.0 ; extra == 'docs'
Requires-Dist: pyasn1-modules ==0.3.0 ; extra == 'docs'
Requires-Dist: pycparser ==2.21 ; extra == 'docs'
Requires-Dist: pycryptodomex ==3.19.1 ; extra == 'docs'
Requires-Dist: pydantic ==2.4.2 ; extra == 'docs'
Requires-Dist: pydantic-core ==2.10.1 ; extra == 'docs'
Requires-Dist: pyflakes ==3.1.0 ; extra == 'docs'
Requires-Dist: pygments ==2.16.1 ; extra == 'docs'
Requires-Dist: pyjks ==20.0.0 ; extra == 'docs'
Requires-Dist: pyjwt ==2.8.0 ; extra == 'docs'
Requires-Dist: pynacl ==1.5.0 ; extra == 'docs'
Requires-Dist: pyopenssl ==23.3.0 ; extra == 'docs'
Requires-Dist: pyparsing ==3.1.1 ; extra == 'docs'
Requires-Dist: pyrfc3339 ==1.1 ; extra == 'docs'
Requires-Dist: pyspnego ==0.10.2 ; extra == 'docs'
Requires-Dist: pytest ==7.4.4 ; extra == 'docs'
Requires-Dist: pytest-flask ==1.3.0 ; extra == 'docs'
Requires-Dist: pytest-mock ==3.12.0 ; extra == 'docs'
Requires-Dist: python-dateutil ==2.8.2 ; extra == 'docs'
Requires-Dist: python-jose[cryptography] ==3.3.0 ; extra == 'docs'
Requires-Dist: python-json-logger ==2.0.7 ; extra == 'docs'
Requires-Dist: python-ldap ==3.4.4 ; extra == 'docs'
Requires-Dist: pytz ==2023.3.post1 ; extra == 'docs'
Requires-Dist: pyyaml ==6.0.1 ; extra == 'docs'
Requires-Dist: redis ==5.0.1 ; extra == 'docs'
Requires-Dist: referencing ==0.30.2 ; extra == 'docs'
Requires-Dist: regex ==2023.10.3 ; extra == 'docs'
Requires-Dist: requests ==2.31.0 ; extra == 'docs'
Requires-Dist: requests-mock ==1.11.0 ; extra == 'docs'
Requires-Dist: requests-ntlm ==1.2.0 ; extra == 'docs'
Requires-Dist: responses ==0.23.3 ; extra == 'docs'
Requires-Dist: retrying ==1.3.4 ; extra == 'docs'
Requires-Dist: rfc3339-validator ==0.1.4 ; extra == 'docs'
Requires-Dist: rich ==13.6.0 ; extra == 'docs'
Requires-Dist: rpds-py ==0.10.6 ; extra == 'docs'
Requires-Dist: rsa ==4.9 ; extra == 'docs'
Requires-Dist: s3transfer ==0.10.0 ; extra == 'docs'
Requires-Dist: sarif-om ==1.0.4 ; extra == 'docs'
Requires-Dist: sentry-sdk ==1.37.1 ; extra == 'docs'
Requires-Dist: six ==1.16.0 ; extra == 'docs'
Requires-Dist: smmap ==5.0.1 ; extra == 'docs'
Requires-Dist: snowballstemmer ==2.2.0 ; extra == 'docs'
Requires-Dist: sortedcontainers ==2.4.0 ; extra == 'docs'
Requires-Dist: sphinx ==7.2.6 ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ==2.0.0 ; extra == 'docs'
Requires-Dist: sphinxcontrib-applehelp ==1.0.7 ; extra == 'docs'
Requires-Dist: sphinxcontrib-devhelp ==1.0.5 ; extra == 'docs'
Requires-Dist: sphinxcontrib-htmlhelp ==2.0.4 ; extra == 'docs'
Requires-Dist: sphinxcontrib-httpdomain ==1.8.1 ; extra == 'docs'
Requires-Dist: sphinxcontrib-jquery ==4.1 ; extra == 'docs'
Requires-Dist: sphinxcontrib-jsmath ==1.0.1 ; extra == 'docs'
Requires-Dist: sphinxcontrib-qthelp ==1.0.6 ; extra == 'docs'
Requires-Dist: sphinxcontrib-serializinghtml ==1.1.9 ; extra == 'docs'
Requires-Dist: sqlalchemy ==1.3.24 ; extra == 'docs'
Requires-Dist: sqlalchemy-utils ==0.41.1 ; extra == 'docs'
Requires-Dist: sshpubkeys ==3.3.1 ; extra == 'docs'
Requires-Dist: stevedore ==5.1.0 ; extra == 'docs'
Requires-Dist: sympy ==1.12 ; extra == 'docs'
Requires-Dist: tabulate ==0.9.0 ; extra == 'docs'
Requires-Dist: tomli ==2.0.1 ; extra == 'docs'
Requires-Dist: twofish ==0.3.0 ; extra == 'docs'
Requires-Dist: types-deprecated ==1.2.9.3 ; extra == 'docs'
Requires-Dist: types-paramiko ==3.4.0.20240106 ; extra == 'docs'
Requires-Dist: types-pyopenssl ==23.3.0.20240106 ; extra == 'docs'
Requires-Dist: types-pyrfc3339 ==1.1.1.5 ; extra == 'docs'
Requires-Dist: types-python-dateutil ==2.8.19.14 ; extra == 'docs'
Requires-Dist: types-pytz ==2023.3.1.1 ; extra == 'docs'
Requires-Dist: types-pyyaml ==6.0.12.12 ; extra == 'docs'
Requires-Dist: types-redis ==4.6.0.11 ; extra == 'docs'
Requires-Dist: types-requests ==2.31.0.6 ; extra == 'docs'
Requires-Dist: types-setuptools ==69.0.0.0 ; extra == 'docs'
Requires-Dist: types-six ==1.16.21.9 ; extra == 'docs'
Requires-Dist: types-tabulate ==0.9.0.20240106 ; extra == 'docs'
Requires-Dist: types-urllib3 ==1.26.25.14 ; extra == 'docs'
Requires-Dist: typing-extensions ==4.8.0 ; extra == 'docs'
Requires-Dist: tzdata ==2023.3 ; extra == 'docs'
Requires-Dist: urllib3 ==1.26.18 ; extra == 'docs'
Requires-Dist: validators ==0.22.0 ; extra == 'docs'
Requires-Dist: vine ==5.1.0 ; extra == 'docs'
Requires-Dist: wcwidth ==0.2.8 ; extra == 'docs'
Requires-Dist: websocket-client ==1.6.4 ; extra == 'docs'
Requires-Dist: werkzeug ==3.0.1 ; extra == 'docs'
Requires-Dist: wrapt ==1.15.0 ; extra == 'docs'
Requires-Dist: xmltodict ==0.13.0 ; extra == 'docs'
Requires-Dist: zipp ==3.17.0 ; extra == 'docs'
Provides-Extra: tests
Requires-Dist: acme ==2.8.0 ; extra == 'tests'
Requires-Dist: alembic ==1.12.0 ; extra == 'tests'
Requires-Dist: alembic-autogenerate-enums ==0.1.2 ; extra == 'tests'
Requires-Dist: amqp ==5.1.1 ; extra == 'tests'
Requires-Dist: aniso8601 ==9.0.1 ; extra == 'tests'
Requires-Dist: annotated-types ==0.6.0 ; extra == 'tests'
Requires-Dist: arrow ==1.3.0 ; extra == 'tests'
Requires-Dist: async-timeout ==4.0.3 ; extra == 'tests'
Requires-Dist: asyncpool ==1.0 ; extra == 'tests'
Requires-Dist: attrs ==23.1.0 ; extra == 'tests'
Requires-Dist: aws-sam-translator ==1.78.0 ; extra == 'tests'
Requires-Dist: aws-xray-sdk ==2.12.1 ; extra == 'tests'
Requires-Dist: bandit ==1.7.6 ; extra == 'tests'
Requires-Dist: bcrypt ==4.0.1 ; extra == 'tests'
Requires-Dist: billiard ==4.2.0 ; extra == 'tests'
Requires-Dist: black ==23.12.1 ; extra == 'tests'
Requires-Dist: blinker ==1.6.3 ; extra == 'tests'
Requires-Dist: boto3 ==1.34.19 ; extra == 'tests'
Requires-Dist: botocore ==1.34.19 ; extra == 'tests'
Requires-Dist: celery[redis] ==5.3.5 ; extra == 'tests'
Requires-Dist: certbot ==2.8.0 ; extra == 'tests'
Requires-Dist: certifi ==2023.11.17 ; extra == 'tests'
Requires-Dist: certsrv[ntlm] ==2.1.1 ; extra == 'tests'
Requires-Dist: cffi ==1.16.0 ; extra == 'tests'
Requires-Dist: cfn-lint ==0.82.2 ; extra == 'tests'
Requires-Dist: charset-normalizer ==3.3.0 ; extra == 'tests'
Requires-Dist: click ==8.1.7 ; extra == 'tests'
Requires-Dist: click-didyoumean ==0.3.0 ; extra == 'tests'
Requires-Dist: click-plugins ==1.1.1 ; extra == 'tests'
Requires-Dist: click-repl ==0.3.0 ; extra == 'tests'
Requires-Dist: cloudflare ==2.16.0 ; extra == 'tests'
Requires-Dist: configargparse ==1.7 ; extra == 'tests'
Requires-Dist: configobj ==5.0.8 ; extra == 'tests'
Requires-Dist: coverage ==7.4.0 ; extra == 'tests'
Requires-Dist: cryptography ==41.0.7 ; extra == 'tests'
Requires-Dist: deprecated ==1.2.14 ; extra == 'tests'
Requires-Dist: distro ==1.8.0 ; extra == 'tests'
Requires-Dist: dnspython ==1.15.0 ; extra == 'tests'
Requires-Dist: dnspython3 ==1.15.0 ; extra == 'tests'
Requires-Dist: docker ==6.1.3 ; extra == 'tests'
Requires-Dist: dyn ==1.8.6 ; extra == 'tests'
Requires-Dist: ecdsa ==0.18.0 ; extra == 'tests'
Requires-Dist: exceptiongroup ==1.1.3 ; extra == 'tests'
Requires-Dist: factory-boy ==3.3.0 ; extra == 'tests'
Requires-Dist: faker ==22.2.0 ; extra == 'tests'
Requires-Dist: fakeredis ==2.20.1 ; extra == 'tests'
Requires-Dist: flask ==2.3.3 ; extra == 'tests'
Requires-Dist: flask-bcrypt ==1.0.1 ; extra == 'tests'
Requires-Dist: flask-cors ==4.0.0 ; extra == 'tests'
Requires-Dist: flask-limiter ==3.5.0 ; extra == 'tests'
Requires-Dist: flask-mail ==0.9.1 ; extra == 'tests'
Requires-Dist: flask-migrate ==4.0.5 ; extra == 'tests'
Requires-Dist: flask-principal ==0.4.0 ; extra == 'tests'
Requires-Dist: flask-replicated ==2.1 ; extra == 'tests'
Requires-Dist: flask-restful ==0.3.10 ; extra == 'tests'
Requires-Dist: flask-sqlalchemy ==2.5.1 ; extra == 'tests'
Requires-Dist: freezegun ==1.3.1 ; extra == 'tests'
Requires-Dist: future ==0.18.3 ; extra == 'tests'
Requires-Dist: gitdb ==4.0.10 ; extra == 'tests'
Requires-Dist: gitpython ==3.1.41 ; extra == 'tests'
Requires-Dist: graphql-core ==3.2.3 ; extra == 'tests'
Requires-Dist: gunicorn ==21.2.0 ; extra == 'tests'
Requires-Dist: hvac ==2.0.0 ; extra == 'tests'
Requires-Dist: idna ==3.4 ; extra == 'tests'
Requires-Dist: importlib-metadata ==6.8.0 ; extra == 'tests'
Requires-Dist: importlib-resources ==6.1.0 ; extra == 'tests'
Requires-Dist: inflection ==0.5.1 ; extra == 'tests'
Requires-Dist: iniconfig ==2.0.0 ; extra == 'tests'
Requires-Dist: itsdangerous ==2.1.2 ; extra == 'tests'
Requires-Dist: javaobj-py3 ==0.4.3 ; extra == 'tests'
Requires-Dist: jinja2 ==3.1.3 ; extra == 'tests'
Requires-Dist: jmespath ==1.0.1 ; extra == 'tests'
Requires-Dist: josepy ==1.14.0 ; extra == 'tests'
Requires-Dist: jschema-to-python ==1.2.3 ; extra == 'tests'
Requires-Dist: jsondiff ==2.0.0 ; extra == 'tests'
Requires-Dist: jsonlines ==4.0.0 ; extra == 'tests'
Requires-Dist: jsonpatch ==1.33 ; extra == 'tests'
Requires-Dist: jsonpickle ==3.0.2 ; extra == 'tests'
Requires-Dist: jsonpointer ==2.4 ; extra == 'tests'
Requires-Dist: jsonschema ==4.19.1 ; extra == 'tests'
Requires-Dist: jsonschema-path ==0.3.1 ; extra == 'tests'
Requires-Dist: jsonschema-specifications ==2023.7.1 ; extra == 'tests'
Requires-Dist: junit-xml ==1.9 ; extra == 'tests'
Requires-Dist: kombu ==5.3.3 ; extra == 'tests'
Requires-Dist: lazy-object-proxy ==1.9.0 ; extra == 'tests'
Requires-Dist: limits ==3.6.0 ; extra == 'tests'
Requires-Dist: lockfile ==0.12.2 ; extra == 'tests'
Requires-Dist: logmatic-python ==0.1.7 ; extra == 'tests'
Requires-Dist: mako ==1.2.4 ; extra == 'tests'
Requires-Dist: markdown-it-py ==3.0.0 ; extra == 'tests'
Requires-Dist: markupsafe ==2.1.3 ; extra == 'tests'
Requires-Dist: marshmallow ==2.21.0 ; extra == 'tests'
Requires-Dist: marshmallow-sqlalchemy ==0.23.1 ; extra == 'tests'
Requires-Dist: mdurl ==0.1.2 ; extra == 'tests'
Requires-Dist: moto[all] ==4.2.10 ; extra == 'tests'
Requires-Dist: mpmath ==1.3.0 ; extra == 'tests'
Requires-Dist: multipart ==0.2.4 ; extra == 'tests'
Requires-Dist: mypy ==1.8.0 ; extra == 'tests'
Requires-Dist: mypy-extensions ==1.0.0 ; extra == 'tests'
Requires-Dist: ndg-httpsclient ==0.5.1 ; extra == 'tests'
Requires-Dist: networkx ==3.1 ; extra == 'tests'
Requires-Dist: nose ==1.3.7 ; extra == 'tests'
Requires-Dist: openapi-schema-validator ==0.6.2 ; extra == 'tests'
Requires-Dist: openapi-spec-validator ==0.7.1 ; extra == 'tests'
Requires-Dist: ordered-set ==4.1.0 ; extra == 'tests'
Requires-Dist: packaging ==23.2 ; extra == 'tests'
Requires-Dist: paramiko ==3.4.0 ; extra == 'tests'
Requires-Dist: parsedatetime ==2.6 ; extra == 'tests'
Requires-Dist: pathable ==0.4.3 ; extra == 'tests'
Requires-Dist: pathspec ==0.11.2 ; extra == 'tests'
Requires-Dist: pbr ==5.11.1 ; extra == 'tests'
Requires-Dist: pem ==23.1.0 ; extra == 'tests'
Requires-Dist: platformdirs ==3.11.0 ; extra == 'tests'
Requires-Dist: pluggy ==1.3.0 ; extra == 'tests'
Requires-Dist: prompt-toolkit ==3.0.39 ; extra == 'tests'
Requires-Dist: psycopg2 ==2.9.9 ; extra == 'tests'
Requires-Dist: py-partiql-parser ==0.4.2 ; extra == 'tests'
Requires-Dist: pyasn1 ==0.5.0 ; extra == 'tests'
Requires-Dist: pyasn1-modules ==0.3.0 ; extra == 'tests'
Requires-Dist: pycparser ==2.21 ; extra == 'tests'
Requires-Dist: pycryptodomex ==3.19.1 ; extra == 'tests'
Requires-Dist: pydantic ==2.4.2 ; extra == 'tests'
Requires-Dist: pydantic-core ==2.10.1 ; extra == 'tests'
Requires-Dist: pyflakes ==3.1.0 ; extra == 'tests'
Requires-Dist: pygments ==2.16.1 ; extra == 'tests'
Requires-Dist: pyjks ==20.0.0 ; extra == 'tests'
Requires-Dist: pyjwt ==2.8.0 ; extra == 'tests'
Requires-Dist: pynacl ==1.5.0 ; extra == 'tests'
Requires-Dist: pyopenssl ==23.3.0 ; extra == 'tests'
Requires-Dist: pyparsing ==3.1.1 ; extra == 'tests'
Requires-Dist: pyrfc3339 ==1.1 ; extra == 'tests'
Requires-Dist: pyspnego ==0.10.2 ; extra == 'tests'
Requires-Dist: pytest ==7.4.4 ; extra == 'tests'
Requires-Dist: pytest-flask ==1.3.0 ; extra == 'tests'
Requires-Dist: pytest-mock ==3.12.0 ; extra == 'tests'
Requires-Dist: python-dateutil ==2.8.2 ; extra == 'tests'
Requires-Dist: python-jose[cryptography] ==3.3.0 ; extra == 'tests'
Requires-Dist: python-json-logger ==2.0.7 ; extra == 'tests'
Requires-Dist: python-ldap ==3.4.4 ; extra == 'tests'
Requires-Dist: pytz ==2023.3.post1 ; extra == 'tests'
Requires-Dist: pyyaml ==6.0.1 ; extra == 'tests'
Requires-Dist: redis ==5.0.1 ; extra == 'tests'
Requires-Dist: referencing ==0.30.2 ; extra == 'tests'
Requires-Dist: regex ==2023.10.3 ; extra == 'tests'
Requires-Dist: requests ==2.31.0 ; extra == 'tests'
Requires-Dist: requests-mock ==1.11.0 ; extra == 'tests'
Requires-Dist: requests-ntlm ==1.2.0 ; extra == 'tests'
Requires-Dist: responses ==0.23.3 ; extra == 'tests'
Requires-Dist: retrying ==1.3.4 ; extra == 'tests'
Requires-Dist: rfc3339-validator ==0.1.4 ; extra == 'tests'
Requires-Dist: rich ==13.6.0 ; extra == 'tests'
Requires-Dist: rpds-py ==0.10.6 ; extra == 'tests'
Requires-Dist: rsa ==4.9 ; extra == 'tests'
Requires-Dist: s3transfer ==0.10.0 ; extra == 'tests'
Requires-Dist: sarif-om ==1.0.4 ; extra == 'tests'
Requires-Dist: sentry-sdk ==1.37.1 ; extra == 'tests'
Requires-Dist: six ==1.16.0 ; extra == 'tests'
Requires-Dist: smmap ==5.0.1 ; extra == 'tests'
Requires-Dist: sortedcontainers ==2.4.0 ; extra == 'tests'
Requires-Dist: sqlalchemy ==1.3.24 ; extra == 'tests'
Requires-Dist: sqlalchemy-utils ==0.41.1 ; extra == 'tests'
Requires-Dist: sshpubkeys ==3.3.1 ; extra == 'tests'
Requires-Dist: stevedore ==5.1.0 ; extra == 'tests'
Requires-Dist: sympy ==1.12 ; extra == 'tests'
Requires-Dist: tabulate ==0.9.0 ; extra == 'tests'
Requires-Dist: tomli ==2.0.1 ; extra == 'tests'
Requires-Dist: twofish ==0.3.0 ; extra == 'tests'
Requires-Dist: types-deprecated ==1.2.9.3 ; extra == 'tests'
Requires-Dist: types-paramiko ==3.4.0.20240106 ; extra == 'tests'
Requires-Dist: types-pyopenssl ==23.3.0.20240106 ; extra == 'tests'
Requires-Dist: types-pyrfc3339 ==1.1.1.5 ; extra == 'tests'
Requires-Dist: types-python-dateutil ==2.8.19.14 ; extra == 'tests'
Requires-Dist: types-pytz ==2023.3.1.1 ; extra == 'tests'
Requires-Dist: types-pyyaml ==6.0.12.12 ; extra == 'tests'
Requires-Dist: types-redis ==4.6.0.11 ; extra == 'tests'
Requires-Dist: types-requests ==2.31.0.6 ; extra == 'tests'
Requires-Dist: types-setuptools ==69.0.0.0 ; extra == 'tests'
Requires-Dist: types-six ==1.16.21.9 ; extra == 'tests'
Requires-Dist: types-tabulate ==0.9.0.20240106 ; extra == 'tests'
Requires-Dist: types-urllib3 ==1.26.25.14 ; extra == 'tests'
Requires-Dist: typing-extensions ==4.8.0 ; extra == 'tests'
Requires-Dist: tzdata ==2023.3 ; extra == 'tests'
Requires-Dist: urllib3 ==1.26.18 ; extra == 'tests'
Requires-Dist: validators ==0.22.0 ; extra == 'tests'
Requires-Dist: vine ==5.1.0 ; extra == 'tests'
Requires-Dist: wcwidth ==0.2.8 ; extra == 'tests'
Requires-Dist: websocket-client ==1.6.4 ; extra == 'tests'
Requires-Dist: werkzeug ==3.0.1 ; extra == 'tests'
Requires-Dist: wrapt ==1.15.0 ; extra == 'tests'
Requires-Dist: xmltodict ==0.13.0 ; extra == 'tests'
Requires-Dist: zipp ==3.17.0 ; extra == 'tests'

Lemur
=====

.. image:: https://badges.gitter.im/Join%20Chat.svg
   :alt: Join the chat at https://gitter.im/Netflix/lemur
   :target: https://gitter.im/Netflix/lemur?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

.. image:: https://readthedocs.org/projects/lemur/badge/?version=latest
    :target: https://lemur.readthedocs.io
    :alt: Latest Docs

.. image:: https://img.shields.io/badge/NetflixOSS-active-brightgreen.svg

.. image:: https://coveralls.io/repos/github/Netflix/lemur/badge.svg?branch=main
    :target: https://coveralls.io/github/Netflix/lemur?branch=main



Lemur manages TLS certificate creation. While not able to issue certificates itself, Lemur acts as a broker between CAs
and environments providing a central portal for developers to issue TLS certificates with 'sane' defaults.

Lemur aims to support the 3 most recent python releases which have been released for at least a year. For example, if python3.12 released last month, we'd aim to support versions 3.9, 3.10, and 3.11.
We deploy on Ubuntu and develop mostly on OS X.


Project resources
=================

- `Lemur Blog Post <http://techblog.netflix.com/2015/09/introducing-lemur.html>`_
- `Documentation <http://lemur.readthedocs.io/>`_
- `Source code <https://github.com/netflix/lemur>`_
- `Issue tracker <https://github.com/netflix/lemur/issues>`_
- `Docker <https://github.com/Netflix/lemur-docker>`_
