diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 322883b8a9..bcc351c329 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,49 +54,43 @@ jobs: FORCE_COLOR: 1 steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache: 'pip' - - name: Set up Node.js 16 - uses: actions/setup-node@v3 - with: - node-version: 16 - - name: Install dependencies - run: | - python -m venv ~/env - source ~/env/bin/activate - python -m pip install --upgrade pip - python -m pip install --upgrade setuptools - pip install mypy - pip install bandit - sudo apt-get update - sudo apt-get install libsasl2-dev libldap2-dev xvfb - - name: Test - run: | - python -m venv ~/env - source ~/env/bin/activate - make test - - name: mypy - run: | - python -m venv ~/env - source ~/env/bin/activate - mypy --install-types --non-interactive . - - name: Test JS - run: | - python -m venv ~/env - source ~/env/bin/activate - bandit -r . -ll -ii -x lemur/tests/,docs - xvfb-run make test-js - - name: Coveralls GitHub Action - uses: coverallsapp/github-action@v2 - with: - parallel: true - flag-name: Python ${{ matrix.python-version }} Postgres ${{ matrix.postgres-version }} OS ${{ matrix.os }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + - name: Set up Node.js 16 + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Install dependencies + run: | + python -m venv ~/env + source ~/env/bin/activate + python -m pip install --upgrade pip + python -m pip install --upgrade setuptools + pip install bandit + sudo apt-get update + sudo apt-get install libsasl2-dev libldap2-dev xvfb + - name: Test + run: | + python -m venv ~/env + source ~/env/bin/activate + make test + - name: Test JS + run: | + python -m venv ~/env + source ~/env/bin/activate + bandit -r . -ll -ii -x lemur/tests/,docs + xvfb-run make test-js + - name: Coveralls GitHub Action + uses: coverallsapp/github-action@v2 + with: + parallel: true + flag-name: Python ${{ matrix.python-version }} Postgres ${{ matrix.postgres-version }} OS ${{ matrix.os }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} coveralls: name: Indicate completion to coveralls.io needs: build diff --git a/Makefile b/Makefile index a6fb093178..8d7ff75f2b 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ ifeq ($(USER), root) else npm install endif - pip install "setuptools>=0.9.8" + pip install setuptools # order matters here, base package must install first pip install -e . pip install -e "file://`pwd`#egg=lemur[dev]" @@ -28,7 +28,7 @@ ifeq ($(USER), root) else npm install endif - pip install "setuptools>=0.9.8" + pip install setuptools # order matters here, base package must install first pip install -e . node_modules/.bin/gulp build @@ -94,6 +94,7 @@ lint: lint-python lint-js lint-python: @echo "--> Linting Python files" PYFLAKES_NODOCTEST=1 flake8 lemur + mypy . @echo "" lint-js: diff --git a/lemur/authorities/schemas.py b/lemur/authorities/schemas.py index 50f6cad061..3e79db5334 100644 --- a/lemur/authorities/schemas.py +++ b/lemur/authorities/schemas.py @@ -6,11 +6,14 @@ .. moduleauthor:: Kevin Glisson """ from flask import current_app - from marshmallow import fields, validates_schema, pre_load from marshmallow import validate from marshmallow.exceptions import ValidationError +from lemur.common import validators, missing +from lemur.common.fields import ArrowDateTime +from lemur.common.schema import LemurInputSchema, LemurOutputSchema +from lemur.constants import CERTIFICATE_KEY_TYPES from lemur.schemas import ( PluginInputSchema, PluginOutputSchema, @@ -19,11 +22,6 @@ AssociatedRoleSchema, ) from lemur.users.schemas import UserNestedOutputSchema -from lemur.common.schema import LemurInputSchema, LemurOutputSchema -from lemur.common import validators, missing - -from lemur.common.fields import ArrowDateTime -from lemur.constants import CERTIFICATE_KEY_TYPES class AuthorityInputSchema(LemurInputSchema): @@ -60,7 +58,8 @@ class AuthorityInputSchema(LemurInputSchema): parent = fields.Nested(AssociatedAuthoritySchema) signing_algorithm = fields.String( validate=validate.OneOf(["sha256WithRSA", "sha1WithRSA", - "sha256WithECDSA", "SHA384withECDSA", "SHA512withECDSA", "sha384WithECDSA", "sha512WithECDSA"]), + "sha256WithECDSA", "SHA384withECDSA", "SHA512withECDSA", "sha384WithECDSA", + "sha512WithECDSA"]), missing="sha256WithRSA", ) key_type = fields.String( diff --git a/lemur/common/fields.py b/lemur/common/fields.py index 156318321c..51d9375182 100644 --- a/lemur/common/fields.py +++ b/lemur/common/fields.py @@ -5,18 +5,16 @@ :license: Apache, see LICENSE for more details. .. moduleauthor:: Kevin Glisson """ -import arrow -import warnings import ipaddress - -from flask import current_app +import warnings from datetime import datetime as dt +import arrow from cryptography import x509 - +from flask import current_app from marshmallow import utils -from marshmallow.fields import Field from marshmallow.exceptions import ValidationError +from marshmallow.fields import Field from lemur.common import validators diff --git a/lemur/domains/schemas.py b/lemur/domains/schemas.py index 6cf7fd31ce..9272f9a04d 100644 --- a/lemur/domains/schemas.py +++ b/lemur/domains/schemas.py @@ -6,9 +6,11 @@ .. moduleauthor:: Kevin Glisson """ from marshmallow import fields + from lemur.common.schema import LemurInputSchema, LemurOutputSchema from lemur.schemas import AssociatedCertificateSchema + # from lemur.certificates.schemas import CertificateNestedOutputSchema diff --git a/lemur/factory.py b/lemur/factory.py index 62e6519385..f94037748e 100644 --- a/lemur/factory.py +++ b/lemur/factory.py @@ -14,11 +14,11 @@ import os import socket import stat +from importlib.metadata import entry_points from logging import Formatter, StreamHandler from logging.handlers import RotatingFileHandler import logmatic -import pkg_resources import sentry_sdk from click import get_current_context from flask import Flask, current_app @@ -256,12 +256,7 @@ def install_plugins(app): from lemur.plugins import plugins from lemur.plugins.base import register - # entry_points={ - # 'lemur.plugins': [ - # 'verisign = lemur_verisign.plugin:VerisignPlugin' - # ], - # }, - for ep in pkg_resources.iter_entry_points("lemur.plugins"): + for ep in entry_points().get("lemur.plugins", []): try: plugin = ep.load() except Exception: diff --git a/lemur/notifications/schemas.py b/lemur/notifications/schemas.py index 6ef5c506ba..b34d531609 100644 --- a/lemur/notifications/schemas.py +++ b/lemur/notifications/schemas.py @@ -6,6 +6,7 @@ .. moduleauthor:: Kevin Glisson """ from marshmallow import fields, post_dump + from lemur.common.schema import LemurInputSchema, LemurOutputSchema from lemur.schemas import ( PluginInputSchema, diff --git a/lemur/pending_certificates/schemas.py b/lemur/pending_certificates/schemas.py index 68f22b4aa9..11a1fc4f66 100644 --- a/lemur/pending_certificates/schemas.py +++ b/lemur/pending_certificates/schemas.py @@ -1,9 +1,9 @@ from marshmallow import fields, validates_schema, post_load from marshmallow.exceptions import ValidationError -from lemur.common import utils, validators from lemur.authorities.schemas import AuthorityNestedOutputSchema from lemur.certificates.schemas import CertificateNestedOutputSchema +from lemur.common import utils, validators from lemur.common.schema import LemurInputSchema, LemurOutputSchema from lemur.destinations.schemas import DestinationNestedOutputSchema from lemur.domains.schemas import DomainNestedOutputSchema diff --git a/lemur/plugins/lemur_acme/acme_handlers.py b/lemur/plugins/lemur_acme/acme_handlers.py index cd87f2d0c2..1acf5f6156 100644 --- a/lemur/plugins/lemur_acme/acme_handlers.py +++ b/lemur/plugins/lemur_acme/acme_handlers.py @@ -12,31 +12,29 @@ .. moduleauthor:: Curtis Castrapel .. moduleauthor:: Mathias Petermann """ -from datetime import datetime, timezone, timedelta import json import time +from datetime import datetime, timezone, timedelta import OpenSSL.crypto -import josepy as jose import dns.resolver +import josepy as jose from acme import challenges, errors, messages from acme.client import ClientV2, ClientNetwork from acme.errors import TimeoutError from acme.messages import Error as AcmeError, STATUS_VALID from certbot import crypto_util as acme_crypto_util from flask import current_app +from retrying import retry from sentry_sdk import capture_exception +from lemur.authorities import service as authorities_service +from lemur.common.utils import data_encrypt, data_decrypt, is_json from lemur.common.utils import generate_private_key, key_to_alg from lemur.dns_providers import service as dns_provider_service from lemur.exceptions import InvalidAuthority, UnknownProvider, InvalidConfiguration from lemur.extensions import metrics - from lemur.plugins.lemur_acme import cloudflare, dyn, route53, ultradns, powerdns, nsone -from lemur.authorities import service as authorities_service -from retrying import retry - -from lemur.common.utils import data_encrypt, data_decrypt, is_json class AuthorizationRecord(object): @@ -149,6 +147,9 @@ def extract_cert_and_chain(self, fullchain_pem, alternative_fullchains_pem, pref @retry(stop_max_attempt_number=5, wait_fixed=5000) def setup_acme_client(self, authority): + return self.setup_acme_client_no_retry(authority) + + def setup_acme_client_no_retry(self, authority): if not authority.options: raise InvalidAuthority("Invalid authority. Options not set") options = {} diff --git a/lemur/plugins/lemur_acme/tests/test_acme_dns.py b/lemur/plugins/lemur_acme/tests/test_acme_dns.py index 66b1133bc5..7f4c9cbd10 100644 --- a/lemur/plugins/lemur_acme/tests/test_acme_dns.py +++ b/lemur/plugins/lemur_acme/tests/test_acme_dns.py @@ -1,16 +1,16 @@ import unittest +from unittest.mock import MagicMock from unittest.mock import patch, Mock import josepy as jose - from acme.messages import STATUS_PENDING, STATUS_VALID from cryptography.x509 import DNSName from flask import Flask, current_app + +from lemur.common.utils import generate_private_key from lemur.plugins.lemur_acme import plugin from lemur.plugins.lemur_acme.acme_handlers import AuthorizationRecord -from lemur.common.utils import generate_private_key from lemur.tests.conf import LEMUR_ENCRYPTION_KEYS -from unittest.mock import MagicMock class TestAcmeDns(unittest.TestCase): @@ -214,7 +214,7 @@ def test_setup_acme_client_fail(self): mock_authority = Mock() mock_authority.options = [] with self.assertRaises(Exception): - self.acme.setup_acme_client(mock_authority) + self.acme.setup_acme_client_no_retry(mock_authority) @patch("lemur.plugins.lemur_acme.acme_handlers.jose.JWK.json_loads") @patch("lemur.plugins.lemur_acme.acme_handlers.ClientV2") diff --git a/lemur/plugins/lemur_acme/tests/test_acme_handler.py b/lemur/plugins/lemur_acme/tests/test_acme_handler.py index 53297f9594..e1f82d8d24 100644 --- a/lemur/plugins/lemur_acme/tests/test_acme_handler.py +++ b/lemur/plugins/lemur_acme/tests/test_acme_handler.py @@ -1,10 +1,10 @@ import unittest from unittest.mock import patch, Mock -from flask import Flask from cryptography.x509 import DNSName -from lemur.plugins.lemur_acme import acme_handlers +from flask import Flask +from lemur.plugins.lemur_acme import acme_handlers from lemur.tests.vectors import ( ACME_CHAIN_SHORT_STR, ACME_CHAIN_LONG_STR, @@ -43,7 +43,7 @@ def test_setup_acme_client_fail(self): mock_authority = Mock() mock_authority.options = [] with self.assertRaises(Exception): - self.acme.setup_acme_client(mock_authority) + self.acme.setup_acme_client_no_retry(mock_authority) def test_reuse_account_not_defined(self): mock_authority = Mock() diff --git a/lemur/plugins/lemur_aws/tests/test_sns.py b/lemur/plugins/lemur_aws/tests/test_sns.py index 3bb72da8c9..d8176185c2 100644 --- a/lemur/plugins/lemur_aws/tests/test_sns.py +++ b/lemur/plugins/lemur_aws/tests/test_sns.py @@ -5,8 +5,8 @@ import boto3 from moto import mock_sns, mock_sqs, mock_ses -from lemur.notifications import service from lemur.certificates.schemas import certificate_notification_output_schema +from lemur.notifications import service from lemur.plugins.lemur_aws.sns import format_message from lemur.plugins.lemur_aws.sns import publish from lemur.tests.factories import NotificationFactory, CertificateFactory diff --git a/lemur/plugins/lemur_digicert/plugin.py b/lemur/plugins/lemur_digicert/plugin.py index 946c08b5fc..84b8f4e4e5 100644 --- a/lemur/plugins/lemur_digicert/plugin.py +++ b/lemur/plugins/lemur_digicert/plugin.py @@ -16,20 +16,21 @@ import copy import ipaddress import json +import sys from typing import Any, Dict, List import arrow import pem import requests -import sys from cryptography import x509 from flask import current_app, g +from retrying import retry +from urllib3.util.retry import Retry + from lemur.common.utils import validate_conf, convert_pkcs7_bytes_to_pem from lemur.extensions import metrics from lemur.plugins import lemur_digicert as digicert from lemur.plugins.bases import IssuerPlugin, SourcePlugin -from retrying import retry -from requests.packages.urllib3.util.retry import Retry def log_status_code(r, *args, **kwargs): diff --git a/lemur/plugins/lemur_entrust/plugin.py b/lemur/plugins/lemur_entrust/plugin.py index 7267ff42ba..57572f4013 100644 --- a/lemur/plugins/lemur_entrust/plugin.py +++ b/lemur/plugins/lemur_entrust/plugin.py @@ -1,16 +1,17 @@ -import arrow -import requests import json import sys + +import arrow +import requests from flask import current_app from retrying import retry -from requests.packages.urllib3.util.retry import Retry +from urllib3.util.retry import Retry +from lemur.common.utils import validate_conf, get_key_type_from_certificate from lemur.constants import CRLReason +from lemur.extensions import metrics from lemur.plugins import lemur_entrust as entrust from lemur.plugins.bases import IssuerPlugin, SourcePlugin -from lemur.extensions import metrics -from lemur.common.utils import validate_conf, get_key_type_from_certificate def log_status_code(r, *args, **kwargs): diff --git a/lemur/schemas.py b/lemur/schemas.py index b7266a52bb..3d889c9b2e 100644 --- a/lemur/schemas.py +++ b/lemur/schemas.py @@ -7,30 +7,28 @@ .. moduleauthor:: Kevin Glisson """ -from sqlalchemy.orm.exc import NoResultFound - from marshmallow import fields, post_load, pre_load, post_dump from marshmallow.exceptions import ValidationError +from sqlalchemy.orm.exc import NoResultFound +from lemur.authorities.models import Authority +from lemur.certificates.models import Certificate from lemur.common import validators -from lemur.common.schema import LemurSchema, LemurInputSchema, LemurOutputSchema from lemur.common.fields import ( KeyUsageExtension, ExtendedKeyUsageExtension, BasicConstraintsExtension, SubjectAlternativeNameExtension, ) - +from lemur.common.schema import LemurSchema, LemurInputSchema, LemurOutputSchema +from lemur.destinations.models import Destination +from lemur.dns_providers.models import DnsProvider +from lemur.notifications.models import Notification from lemur.plugins import plugins from lemur.plugins.utils import get_plugin_option +from lemur.policies.models import RotationPolicy from lemur.roles.models import Role from lemur.users.models import User -from lemur.authorities.models import Authority -from lemur.dns_providers.models import DnsProvider -from lemur.policies.models import RotationPolicy -from lemur.certificates.models import Certificate -from lemur.destinations.models import Destination -from lemur.notifications.models import Notification def validate_options(options): diff --git a/lemur/tests/conftest.py b/lemur/tests/conftest.py index 238d75d92a..3e2dba4f4c 100644 --- a/lemur/tests/conftest.py +++ b/lemur/tests/conftest.py @@ -1,6 +1,6 @@ +import datetime import os -import datetime import pytest from cryptography import x509 from cryptography.hazmat.backends import default_backend @@ -10,16 +10,15 @@ from sqlalchemy.sql import text from lemur import create_app +from lemur.auth.service import create_token from lemur.common.utils import parse_private_key from lemur.database import db as _db -from lemur.auth.service import create_token from lemur.tests.vectors import ( SAN_CERT_KEY, INTERMEDIATE_KEY, ROOTCA_CERT_STR, ROOTCA_KEY, ) - from .factories import ( ApiKeyFactory, AuthorityFactory, diff --git a/lemur/tests/test_dns_providers.py b/lemur/tests/test_dns_providers.py index 7bd73037ff..9daae13dd4 100644 --- a/lemur/tests/test_dns_providers.py +++ b/lemur/tests/test_dns_providers.py @@ -1,5 +1,6 @@ import json import unittest + from lemur.dns_providers import util as dnsutil from lemur.dns_providers.schemas import dns_provider_output_schema diff --git a/lemur/tests/test_verify.py b/lemur/tests/test_verify.py index e20a4ad4f3..262a39bb1d 100644 --- a/lemur/tests/test_verify.py +++ b/lemur/tests/test_verify.py @@ -1,4 +1,6 @@ import pytest +import requests +import requests_mock from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import serialization, hashes @@ -6,7 +8,6 @@ from lemur.certificates.verify import verify_string, crl_verify from lemur.utils import mktempfile - from .vectors import INTERMEDIATE_CERT_STR @@ -41,19 +42,21 @@ def test_verify_crl_unknown_scheme(cert_builder, private_key): def test_verify_crl_unreachable(cert_builder, private_key): """Unreachable CRL distribution point results in error.""" ldap_uri = "http://invalid.example.org/crl/foobar.crl" - crl_dp = x509.DistributionPoint( - [UniformResourceIdentifier(ldap_uri)], - relative_name=None, - reasons=None, - crl_issuer=None, - ) - cert = cert_builder.add_extension( - x509.CRLDistributionPoints([crl_dp]), critical=False - ).sign(private_key, hashes.SHA256(), default_backend()) - - with mktempfile() as cert_tmp: - with open(cert_tmp, "wb") as f: - f.write(cert.public_bytes(serialization.Encoding.PEM)) - - with pytest.raises(Exception, match="Unable to retrieve CRL:"): - crl_verify(cert, cert_tmp) + with requests_mock.Mocker() as m: + m.get(ldap_uri, exc=requests.exceptions.Timeout) + crl_dp = x509.DistributionPoint( + [UniformResourceIdentifier(ldap_uri)], + relative_name=None, + reasons=None, + crl_issuer=None, + ) + cert = cert_builder.add_extension( + x509.CRLDistributionPoints([crl_dp]), critical=False + ).sign(private_key, hashes.SHA256(), default_backend()) + + with mktempfile() as cert_tmp: + with open(cert_tmp, "wb") as f: + f.write(cert.public_bytes(serialization.Encoding.PEM)) + + with pytest.raises(Exception, match="Unable to retrieve CRL:"): + crl_verify(cert, cert_tmp) diff --git a/requirements-dev.in b/requirements-dev.in index e7ae093474..015ecc6740 100644 --- a/requirements-dev.in +++ b/requirements-dev.in @@ -4,9 +4,5 @@ flake8 pre-commit invoke twine -marshmallow-sqlalchemy == 0.23.1 #related to the marshmallow issue (to avoid conflicts) -marshmallow<2.21.1 #schema duplicate issues https://github.com/marshmallow-code/marshmallow-sqlalchemy/issues/121 nodeenv -pyyaml>=4.2b1 -sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226 -urllib3 <= 1.26.16 # limited due to dependency conflict with twine \ No newline at end of file +-r requirements-tests.txt \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index 3ac2d1200a..375b328a75 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,102 +1,855 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --no-emit-index-url --output-file=requirements-dev.txt requirements-dev.in # +acme==2.7.1 + # via + # -r requirements-tests.txt + # certbot +alembic==1.12.0 + # via + # -r requirements-tests.txt + # flask-migrate +alembic-autogenerate-enums==0.1.2 + # via -r requirements-tests.txt +amqp==5.1.1 + # via + # -r requirements-tests.txt + # kombu +aniso8601==9.0.1 + # via + # -r requirements-tests.txt + # flask-restful +annotated-types==0.6.0 + # via + # -r requirements-tests.txt + # pydantic +arrow==1.3.0 + # via -r requirements-tests.txt +async-timeout==4.0.3 + # via + # -r requirements-tests.txt + # redis +asyncpool==1.0 + # via -r requirements-tests.txt +attrs==23.1.0 + # via + # -r requirements-tests.txt + # jschema-to-python + # jsonlines + # jsonschema + # referencing + # sarif-om +aws-sam-translator==1.78.0 + # via + # -r requirements-tests.txt + # cfn-lint +aws-xray-sdk==2.12.1 + # via + # -r requirements-tests.txt + # moto +bandit==1.7.5 + # via -r requirements-tests.txt +bcrypt==4.0.1 + # via + # -r requirements-tests.txt + # flask-bcrypt + # paramiko +beautifulsoup4==4.12.2 + # via + # -r requirements-tests.txt + # cloudflare +billiard==4.1.0 + # via + # -r requirements-tests.txt + # celery +black==23.10.0 + # via -r requirements-tests.txt +blinker==1.6.3 + # via + # -r requirements-tests.txt + # flask + # flask-mail + # flask-principal +boto3==1.28.66 + # via + # -r requirements-tests.txt + # aws-sam-translator + # moto +botocore==1.31.66 + # via + # -r requirements-tests.txt + # aws-xray-sdk + # boto3 + # moto + # s3transfer +celery[redis]==5.3.4 + # via + # -r requirements-tests.txt + # celery +certbot==2.7.1 + # via -r requirements-tests.txt certifi==2023.7.22 - # via requests + # via + # -r requirements-tests.txt + # requests + # sentry-sdk +certsrv[ntlm]==2.1.1 + # via + # -r requirements-tests.txt + # certsrv +cffi==1.16.0 + # via + # -r requirements-tests.txt + # cryptography + # pynacl cfgv==3.4.0 # via pre-commit -charset-normalizer==3.2.0 - # via requests +cfn-lint==0.82.2 + # via + # -r requirements-tests.txt + # moto +charset-normalizer==3.3.0 + # via + # -r requirements-tests.txt + # requests +click==8.1.7 + # via + # -r requirements-tests.txt + # black + # celery + # click-didyoumean + # click-plugins + # click-repl + # flask +click-didyoumean==0.3.0 + # via + # -r requirements-tests.txt + # celery +click-plugins==1.1.1 + # via + # -r requirements-tests.txt + # celery +click-repl==0.3.0 + # via + # -r requirements-tests.txt + # celery +cloudflare==2.12.4 + # via -r requirements-tests.txt +configargparse==1.7 + # via + # -r requirements-tests.txt + # certbot +configobj==5.0.8 + # via + # -r requirements-tests.txt + # certbot +coverage==7.3.2 + # via -r requirements-tests.txt +cryptography==41.0.4 + # via + # -r requirements-tests.txt + # acme + # certbot + # josepy + # moto + # paramiko + # pyopenssl + # pyspnego + # python-jose + # requests-ntlm + # sshpubkeys + # types-paramiko + # types-pyopenssl + # types-redis +deprecated==1.2.14 + # via + # -r requirements-tests.txt + # limits distlib==0.3.7 # via virtualenv +distro==1.8.0 + # via + # -r requirements-tests.txt + # certbot +dnspython==1.15.0 + # via + # -r requirements-tests.txt + # dnspython3 +dnspython3==1.15.0 + # via -r requirements-tests.txt +docker==6.1.3 + # via + # -r requirements-tests.txt + # moto docutils==0.20.1 # via readme-renderer +dyn==1.8.6 + # via -r requirements-tests.txt +ecdsa==0.18.0 + # via + # -r requirements-tests.txt + # moto + # python-jose + # sshpubkeys +exceptiongroup==1.1.3 + # via + # -r requirements-tests.txt + # pytest +factory-boy==3.3.0 + # via -r requirements-tests.txt +faker==19.11.0 + # via + # -r requirements-tests.txt + # factory-boy +fakeredis==2.19.0 + # via -r requirements-tests.txt filelock==3.12.4 # via virtualenv flake8==6.1.0 # via -r requirements-dev.in -identify==2.5.29 +flask==2.3.3 + # via + # -r requirements-tests.txt + # flask-bcrypt + # flask-cors + # flask-limiter + # flask-mail + # flask-migrate + # flask-principal + # flask-restful + # flask-sqlalchemy + # pytest-flask +flask-bcrypt==1.0.1 + # via -r requirements-tests.txt +flask-cors==4.0.0 + # via -r requirements-tests.txt +flask-limiter==3.5.0 + # via -r requirements-tests.txt +flask-mail==0.9.1 + # via -r requirements-tests.txt +flask-migrate==4.0.5 + # via -r requirements-tests.txt +flask-principal==0.4.0 + # via -r requirements-tests.txt +flask-replicated==2.1 + # via -r requirements-tests.txt +flask-restful==0.3.10 + # via -r requirements-tests.txt +flask-sqlalchemy==2.5.1 + # via + # -r requirements-tests.txt + # flask-migrate +freezegun==1.2.2 + # via -r requirements-tests.txt +future==0.18.3 + # via -r requirements-tests.txt +gitdb==4.0.10 + # via + # -r requirements-tests.txt + # gitpython +gitpython==3.1.40 + # via + # -r requirements-tests.txt + # bandit +graphql-core==3.2.3 + # via + # -r requirements-tests.txt + # moto +gunicorn==21.2.0 + # via -r requirements-tests.txt +hvac==1.2.1 + # via -r requirements-tests.txt +identify==2.5.30 # via pre-commit idna==3.4 - # via requests + # via + # -r requirements-tests.txt + # requests importlib-metadata==6.8.0 # via + # -r requirements-tests.txt + # certbot + # flask # keyring # twine +importlib-resources==6.1.0 + # via + # -r requirements-tests.txt + # limits +inflection==0.5.1 + # via -r requirements-tests.txt +iniconfig==2.0.0 + # via + # -r requirements-tests.txt + # pytest invoke==2.2.0 # via -r requirements-dev.in +itsdangerous==2.1.2 + # via + # -r requirements-tests.txt + # flask jaraco-classes==3.3.0 # via keyring +javaobj-py3==0.4.3 + # via + # -r requirements-tests.txt + # pyjks +jinja2==3.1.2 + # via + # -r requirements-tests.txt + # flask + # moto +jmespath==1.0.1 + # via + # -r requirements-tests.txt + # boto3 + # botocore +josepy==1.13.0 + # via + # -r requirements-tests.txt + # acme + # certbot +jschema-to-python==1.2.3 + # via + # -r requirements-tests.txt + # cfn-lint +jsondiff==2.0.0 + # via + # -r requirements-tests.txt + # moto +jsonlines==4.0.0 + # via + # -r requirements-tests.txt + # cloudflare +jsonpatch==1.33 + # via + # -r requirements-tests.txt + # cfn-lint +jsonpickle==3.0.2 + # via + # -r requirements-tests.txt + # jschema-to-python +jsonpointer==2.4 + # via + # -r requirements-tests.txt + # jsonpatch +jsonschema==4.19.1 + # via + # -r requirements-tests.txt + # aws-sam-translator + # cfn-lint + # openapi-schema-validator + # openapi-spec-validator +jsonschema-path==0.3.1 + # via + # -r requirements-tests.txt + # openapi-spec-validator +jsonschema-specifications==2023.7.1 + # via + # -r requirements-tests.txt + # jsonschema + # openapi-schema-validator +junit-xml==1.9 + # via + # -r requirements-tests.txt + # cfn-lint keyring==24.2.0 # via twine +kombu==5.3.2 + # via + # -r requirements-tests.txt + # celery +lazy-object-proxy==1.9.0 + # via + # -r requirements-tests.txt + # openapi-spec-validator +limits==3.6.0 + # via + # -r requirements-tests.txt + # flask-limiter +lockfile==0.12.2 + # via -r requirements-tests.txt +logmatic-python==0.1.7 + # via -r requirements-tests.txt +mako==1.2.4 + # via + # -r requirements-tests.txt + # alembic markdown-it-py==3.0.0 - # via rich + # via + # -r requirements-tests.txt + # rich +markupsafe==2.1.3 + # via + # -r requirements-tests.txt + # jinja2 + # mako + # werkzeug marshmallow==2.21.0 # via - # -r requirements-dev.in + # -r requirements-tests.txt # marshmallow-sqlalchemy marshmallow-sqlalchemy==0.23.1 - # via -r requirements-dev.in + # via -r requirements-tests.txt mccabe==0.7.0 # via flake8 mdurl==0.1.2 - # via markdown-it-py + # via + # -r requirements-tests.txt + # markdown-it-py more-itertools==10.1.0 # via jaraco-classes +moto[all]==4.2.6 + # via + # -r requirements-tests.txt + # moto +mpmath==1.3.0 + # via + # -r requirements-tests.txt + # sympy +multipart==0.2.4 + # via + # -r requirements-tests.txt + # moto +mypy==1.6.1 + # via -r requirements-tests.txt +mypy-extensions==1.0.0 + # via + # -r requirements-tests.txt + # black + # mypy +ndg-httpsclient==0.5.1 + # via -r requirements-tests.txt +networkx==3.1 + # via + # -r requirements-tests.txt + # cfn-lint nh3==0.2.14 # via readme-renderer nodeenv==1.8.0 # via # -r requirements-dev.in # pre-commit +nose==1.3.7 + # via -r requirements-tests.txt +openapi-schema-validator==0.6.2 + # via + # -r requirements-tests.txt + # openapi-spec-validator +openapi-spec-validator==0.7.1 + # via + # -r requirements-tests.txt + # moto +ordered-set==4.1.0 + # via + # -r requirements-tests.txt + # flask-limiter +packaging==23.2 + # via + # -r requirements-tests.txt + # black + # docker + # gunicorn + # limits + # pytest +paramiko==3.3.1 + # via -r requirements-tests.txt +parsedatetime==2.6 + # via + # -r requirements-tests.txt + # certbot +pathable==0.4.3 + # via + # -r requirements-tests.txt + # jsonschema-path +pathspec==0.11.2 + # via + # -r requirements-tests.txt + # black +pbr==5.11.1 + # via + # -r requirements-tests.txt + # jschema-to-python + # sarif-om + # stevedore +pem==23.1.0 + # via -r requirements-tests.txt pkginfo==1.9.6 # via twine -platformdirs==3.10.0 - # via virtualenv -pre-commit==3.4.0 +platformdirs==3.11.0 + # via + # -r requirements-tests.txt + # black + # virtualenv +pluggy==1.3.0 + # via + # -r requirements-tests.txt + # pytest +pre-commit==3.5.0 # via -r requirements-dev.in -pycodestyle==2.11.0 +prompt-toolkit==3.0.39 + # via + # -r requirements-tests.txt + # click-repl +psycopg2==2.9.9 + # via -r requirements-tests.txt +py-partiql-parser==0.4.0 + # via + # -r requirements-tests.txt + # moto +pyasn1==0.5.0 + # via + # -r requirements-tests.txt + # ndg-httpsclient + # pyasn1-modules + # pyjks + # python-jose + # python-ldap + # rsa +pyasn1-modules==0.3.0 + # via + # -r requirements-tests.txt + # pyjks + # python-ldap +pycodestyle==2.11.1 # via flake8 +pycparser==2.21 + # via + # -r requirements-tests.txt + # cffi +pycryptodomex==3.19.0 + # via + # -r requirements-tests.txt + # pyjks +pydantic==2.4.2 + # via + # -r requirements-tests.txt + # aws-sam-translator +pydantic-core==2.10.1 + # via + # -r requirements-tests.txt + # pydantic pyflakes==3.1.0 - # via flake8 + # via + # -r requirements-tests.txt + # flake8 pygments==2.16.1 # via + # -r requirements-tests.txt # readme-renderer # rich +pyhcl==0.4.5 + # via + # -r requirements-tests.txt + # hvac +pyjks==20.0.0 + # via -r requirements-tests.txt +pyjwt==2.8.0 + # via -r requirements-tests.txt +pynacl==1.5.0 + # via + # -r requirements-tests.txt + # paramiko +pyopenssl==23.2.0 + # via + # -r requirements-tests.txt + # acme + # josepy + # ndg-httpsclient +pyparsing==3.1.1 + # via + # -r requirements-tests.txt + # moto +pyrfc3339==1.1 + # via + # -r requirements-tests.txt + # acme + # certbot +pyspnego==0.10.2 + # via + # -r requirements-tests.txt + # requests-ntlm +pytest==7.4.2 + # via + # -r requirements-tests.txt + # pytest-flask + # pytest-mock +pytest-flask==1.2.0 + # via -r requirements-tests.txt +pytest-mock==3.11.1 + # via -r requirements-tests.txt +python-dateutil==2.8.2 + # via + # -r requirements-tests.txt + # arrow + # botocore + # celery + # faker + # freezegun + # moto +python-jose[cryptography]==3.3.0 + # via + # -r requirements-tests.txt + # moto + # python-jose +python-json-logger==2.0.7 + # via + # -r requirements-tests.txt + # logmatic-python +python-ldap==3.4.3 + # via -r requirements-tests.txt +pytz==2023.3.post1 + # via + # -r requirements-tests.txt + # acme + # certbot + # flask-restful + # pyrfc3339 pyyaml==6.0.1 # via - # -r requirements-dev.in + # -r requirements-tests.txt + # bandit + # cfn-lint + # cloudflare + # jsonschema-path + # moto # pre-commit + # responses readme-renderer==42.0 # via twine +redis==4.6.0 + # via + # -r requirements-tests.txt + # celery + # fakeredis +referencing==0.30.2 + # via + # -r requirements-tests.txt + # jsonschema + # jsonschema-path + # jsonschema-specifications +regex==2023.10.3 + # via + # -r requirements-tests.txt + # cfn-lint requests==2.31.0 # via + # -r requirements-tests.txt + # acme + # certsrv + # cloudflare + # docker + # hvac + # jsonschema-path + # moto + # requests-mock + # requests-ntlm # requests-toolbelt + # responses # twine +requests-mock==1.11.0 + # via -r requirements-tests.txt +requests-ntlm==1.2.0 + # via + # -r requirements-tests.txt + # certsrv requests-toolbelt==1.0.0 # via twine +responses==0.23.3 + # via + # -r requirements-tests.txt + # moto +retrying==1.3.4 + # via -r requirements-tests.txt +rfc3339-validator==0.1.4 + # via + # -r requirements-tests.txt + # openapi-schema-validator rfc3986==2.0.0 # via twine -rich==13.5.3 - # via twine +rich==13.6.0 + # via + # -r requirements-tests.txt + # bandit + # flask-limiter + # twine +rpds-py==0.10.6 + # via + # -r requirements-tests.txt + # jsonschema + # referencing +rsa==4.9 + # via + # -r requirements-tests.txt + # python-jose +s3transfer==0.7.0 + # via + # -r requirements-tests.txt + # boto3 +sarif-om==1.0.4 + # via + # -r requirements-tests.txt + # cfn-lint +sentry-sdk==1.32.0 + # via -r requirements-tests.txt +six==1.16.0 + # via + # -r requirements-tests.txt + # configobj + # ecdsa + # flask-restful + # junit-xml + # python-dateutil + # requests-mock + # retrying + # rfc3339-validator +smmap==5.0.1 + # via + # -r requirements-tests.txt + # gitdb +sortedcontainers==2.4.0 + # via + # -r requirements-tests.txt + # fakeredis +soupsieve==2.5 + # via + # -r requirements-tests.txt + # beautifulsoup4 sqlalchemy==1.3.24 # via - # -r requirements-dev.in + # -r requirements-tests.txt + # alembic + # flask-sqlalchemy # marshmallow-sqlalchemy + # sqlalchemy-utils +sqlalchemy-utils==0.41.1 + # via -r requirements-tests.txt +sshpubkeys==3.3.1 + # via + # -r requirements-tests.txt + # moto +stevedore==5.1.0 + # via + # -r requirements-tests.txt + # bandit +sympy==1.12 + # via + # -r requirements-tests.txt + # cfn-lint +tabulate==0.9.0 + # via -r requirements-tests.txt +tomli==2.0.1 + # via + # -r requirements-tests.txt + # black + # mypy + # pytest twine==4.0.2 # via -r requirements-dev.in -urllib3==1.26.16 +twofish==0.3.0 # via - # -r requirements-dev.in + # -r requirements-tests.txt + # pyjks +types-deprecated==1.2.9.3 + # via -r requirements-tests.txt +types-paramiko==3.3.0.0 + # via -r requirements-tests.txt +types-pyopenssl==23.2.0.2 + # via + # -r requirements-tests.txt + # types-redis +types-pyrfc3339==1.1.1.5 + # via -r requirements-tests.txt +types-python-dateutil==2.8.19.14 + # via + # -r requirements-tests.txt + # arrow +types-pytz==2023.3.1.1 + # via -r requirements-tests.txt +types-pyyaml==6.0.12.12 + # via + # -r requirements-tests.txt + # responses +types-redis==4.6.0.7 + # via -r requirements-tests.txt +types-requests==2.31.0.6 + # via -r requirements-tests.txt +types-setuptools==68.2.0.0 + # via -r requirements-tests.txt +types-six==1.16.21.9 + # via -r requirements-tests.txt +types-tabulate==0.9.0.3 + # via -r requirements-tests.txt +types-urllib3==1.26.25.14 + # via + # -r requirements-tests.txt + # types-requests +typing-extensions==4.8.0 + # via + # -r requirements-tests.txt + # alembic + # aws-sam-translator + # black + # flask-limiter + # kombu + # limits + # mypy + # pydantic + # pydantic-core +tzdata==2023.3 + # via + # -r requirements-tests.txt + # celery +urllib3==1.26.18 + # via + # -r requirements-tests.txt + # botocore + # docker # requests + # responses + # sentry-sdk # twine +validators==0.22.0 + # via -r requirements-tests.txt +vine==5.0.0 + # via + # -r requirements-tests.txt + # amqp + # celery + # kombu virtualenv==20.24.5 # via pre-commit +wcwidth==0.2.8 + # via + # -r requirements-tests.txt + # prompt-toolkit +websocket-client==1.6.4 + # via + # -r requirements-tests.txt + # docker +werkzeug==3.0.0 + # via + # -r requirements-tests.txt + # flask + # moto + # pytest-flask +wrapt==1.15.0 + # via + # -r requirements-tests.txt + # aws-xray-sdk + # deprecated +xmltodict==0.13.0 + # via + # -r requirements-tests.txt + # moto zipp==3.17.0 - # via importlib-metadata + # via + # -r requirements-tests.txt + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements-docs.in b/requirements-docs.in index deb831f313..dcf216ae7c 100644 --- a/requirements-docs.in +++ b/requirements-docs.in @@ -14,7 +14,7 @@ CloudFlare cryptography dnspython3 dyn -Flask +Flask<3 # until https://github.com/pytest-dev/pytest-flask/pull/168 is released Flask-Bcrypt Flask-Cors Flask-Limiter @@ -30,15 +30,15 @@ inflection itsdangerous josepy logmatic-python -marshmallow-sqlalchemy == 0.23.1 #related to the marshmallow issue (to avoid conflicts, as newer versions require marshmallow>=3.0.0) -sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226 +marshmallow-sqlalchemy == 0.23.1 #related to the marshmallow issue (to avoid conflicts) marshmallow<2.21.1 #schema duplicate issues https://github.com/marshmallow-code/marshmallow-sqlalchemy/issues/121 +sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226 paramiko # required for the SFTP destination plugin pem -pyjks >= 19 # pyjks < 19 depends on pycryptodome, which conflicts with dyn's usage of pycrypto +pyjks pyjwt pyOpenSSL -redis < 5.1.0 # requires a newer release of fakeredis +redis retrying sentry-sdk SQLAlchemy-Utils @@ -53,4 +53,4 @@ xmltodict sphinx sphinxcontrib-httpdomain sphinx-rtd-theme -docutils <= 0.19 # sphinx-rtd-theme 1.2.2 requires docutils<0.19 +docutils diff --git a/requirements-docs.txt b/requirements-docs.txt index cff6f2be8f..48e179bc50 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,10 +1,10 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --no-emit-index-url --output-file=requirements-docs.txt requirements-docs.in # -acme==2.7.0 +acme==2.7.1 # via # -r requirements-docs.in # -r requirements-tests.txt @@ -15,18 +15,30 @@ alembic==1.12.0 # via # -r requirements-tests.txt # flask-migrate +alembic-autogenerate-enums==0.1.2 + # via -r requirements-tests.txt amqp==5.1.1 # via # -r requirements-tests.txt # kombu aniso8601==9.0.1 - # via flask-restful -annotated-types==0.5.0 + # via + # -r requirements-tests.txt + # flask-restful +annotated-types==0.6.0 # via # -r requirements-tests.txt # pydantic arrow==1.3.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt +async-timeout==4.0.3 + # via + # -r requirements-tests.txt + # redis +asyncpool==1.0 + # via -r requirements-tests.txt attrs==23.1.0 # via # -r requirements-tests.txt @@ -35,43 +47,46 @@ attrs==23.1.0 # jsonschema # referencing # sarif-om -aws-sam-translator==1.75.0 +aws-sam-translator==1.78.0 # via # -r requirements-tests.txt # cfn-lint -aws-xray-sdk==2.12.0 +aws-xray-sdk==2.12.1 # via # -r requirements-tests.txt # moto -babel==2.12.1 +babel==2.13.0 # via sphinx bandit==1.7.5 # via -r requirements-tests.txt bcrypt==4.0.1 # via + # -r requirements-tests.txt # flask-bcrypt # paramiko beautifulsoup4==4.12.2 - # via cloudflare + # via + # -r requirements-tests.txt + # cloudflare billiard==4.1.0 # via # -r requirements-tests.txt # celery -black==23.9.1 +black==23.10.0 # via -r requirements-tests.txt -blinker==1.6.2 +blinker==1.6.3 # via # -r requirements-tests.txt # flask # flask-mail # flask-principal -boto3==1.28.62 +boto3==1.28.66 # via # -r requirements-docs.in # -r requirements-tests.txt # aws-sam-translator # moto -botocore==1.31.62 +botocore==1.31.66 # via # -r requirements-docs.in # -r requirements-tests.txt @@ -83,7 +98,8 @@ celery[redis]==5.3.4 # via # -r requirements-docs.in # -r requirements-tests.txt -certbot==2.7.0 + # celery +certbot==2.7.1 # via # -r requirements-docs.in # -r requirements-tests.txt @@ -92,18 +108,20 @@ certifi==2023.7.22 # -r requirements-tests.txt # requests # sentry-sdk -certsrv==2.1.1 - # via -r requirements-docs.in -cffi==1.15.1 +certsrv[ntlm]==2.1.1 + # via + # -r requirements-docs.in + # -r requirements-tests.txt +cffi==1.16.0 # via # -r requirements-tests.txt # cryptography # pynacl -cfn-lint==0.80.3 +cfn-lint==0.82.2 # via # -r requirements-tests.txt # moto -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via # -r requirements-tests.txt # requests @@ -129,7 +147,9 @@ click-repl==0.3.0 # -r requirements-tests.txt # celery cloudflare==2.12.4 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt configargparse==1.7 # via # -r requirements-tests.txt @@ -150,18 +170,29 @@ cryptography==41.0.4 # moto # paramiko # pyopenssl + # pyspnego # python-jose + # requests-ntlm # sshpubkeys + # types-paramiko + # types-pyopenssl + # types-redis deprecated==1.2.14 - # via limits + # via + # -r requirements-tests.txt + # limits distro==1.8.0 # via # -r requirements-tests.txt # certbot dnspython==1.15.0 - # via dnspython3 + # via + # -r requirements-tests.txt + # dnspython3 dnspython3==1.15.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt docker==6.1.3 # via # -r requirements-tests.txt @@ -172,16 +203,22 @@ docutils==0.18.1 # sphinx # sphinx-rtd-theme dyn==1.8.6 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt ecdsa==0.18.0 # via # -r requirements-tests.txt # moto # python-jose # sshpubkeys +exceptiongroup==1.1.3 + # via + # -r requirements-tests.txt + # pytest factory-boy==3.3.0 # via -r requirements-tests.txt -faker==19.8.0 +faker==19.11.0 # via # -r requirements-tests.txt # factory-boy @@ -201,23 +238,37 @@ flask==2.3.3 # flask-sqlalchemy # pytest-flask flask-bcrypt==1.0.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-cors==4.0.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-limiter==3.5.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-mail==0.9.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-migrate==4.0.5 # via # -r requirements-docs.in # -r requirements-tests.txt flask-principal==0.4.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-replicated==2.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-restful==0.3.10 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt flask-sqlalchemy==2.5.1 # via # -r requirements-docs.in @@ -225,11 +276,13 @@ flask-sqlalchemy==2.5.1 # flask-migrate freezegun==1.2.2 # via -r requirements-tests.txt +future==0.18.3 + # via -r requirements-tests.txt gitdb==4.0.10 # via # -r requirements-tests.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.40 # via # -r requirements-tests.txt # bandit @@ -238,19 +291,33 @@ graphql-core==3.2.3 # -r requirements-tests.txt # moto gunicorn==21.2.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt hvac==1.2.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt idna==3.4 # via # -r requirements-tests.txt # requests imagesize==1.4.1 # via sphinx -importlib-resources==5.13.0 - # via limits +importlib-metadata==6.8.0 + # via + # -r requirements-tests.txt + # certbot + # flask + # sphinx +importlib-resources==6.1.0 + # via + # -r requirements-tests.txt + # limits inflection==0.5.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt iniconfig==2.0.0 # via # -r requirements-tests.txt @@ -261,7 +328,9 @@ itsdangerous==2.1.2 # -r requirements-tests.txt # flask javaobj-py3==0.4.3 - # via pyjks + # via + # -r requirements-tests.txt + # pyjks jinja2==3.1.2 # via # -r requirements-tests.txt @@ -288,7 +357,9 @@ jsondiff==2.0.0 # -r requirements-tests.txt # moto jsonlines==4.0.0 - # via cloudflare + # via + # -r requirements-tests.txt + # cloudflare jsonpatch==1.33 # via # -r requirements-tests.txt @@ -308,7 +379,7 @@ jsonschema==4.19.1 # cfn-lint # openapi-schema-validator # openapi-spec-validator -jsonschema-spec==0.2.4 +jsonschema-path==0.3.1 # via # -r requirements-tests.txt # openapi-spec-validator @@ -330,9 +401,15 @@ lazy-object-proxy==1.9.0 # -r requirements-tests.txt # openapi-spec-validator limits==3.6.0 - # via flask-limiter + # via + # -r requirements-tests.txt + # flask-limiter +lockfile==0.12.2 + # via -r requirements-tests.txt logmatic-python==0.1.7 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt mako==1.2.4 # via # -r requirements-tests.txt @@ -360,8 +437,10 @@ mdurl==0.1.2 # via # -r requirements-tests.txt # markdown-it-py -moto[all]==4.2.5 - # via -r requirements-tests.txt +moto[all]==4.2.6 + # via + # -r requirements-tests.txt + # moto mpmath==1.3.0 # via # -r requirements-tests.txt @@ -370,27 +449,34 @@ multipart==0.2.4 # via # -r requirements-tests.txt # moto +mypy==1.6.1 + # via -r requirements-tests.txt mypy-extensions==1.0.0 # via # -r requirements-tests.txt # black + # mypy +ndg-httpsclient==0.5.1 + # via -r requirements-tests.txt networkx==3.1 # via # -r requirements-tests.txt # cfn-lint nose==1.3.7 # via -r requirements-tests.txt -openapi-schema-validator==0.6.1 +openapi-schema-validator==0.6.2 # via # -r requirements-tests.txt # openapi-spec-validator -openapi-spec-validator==0.7.0 +openapi-spec-validator==0.7.1 # via # -r requirements-tests.txt # moto ordered-set==4.1.0 - # via flask-limiter -packaging==23.1 + # via + # -r requirements-tests.txt + # flask-limiter +packaging==23.2 # via # -r requirements-tests.txt # black @@ -400,7 +486,9 @@ packaging==23.1 # pytest # sphinx paramiko==3.3.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt parsedatetime==2.6 # via # -r requirements-tests.txt @@ -408,7 +496,7 @@ parsedatetime==2.6 pathable==0.4.3 # via # -r requirements-tests.txt - # jsonschema-spec + # jsonschema-path pathspec==0.11.2 # via # -r requirements-tests.txt @@ -420,8 +508,10 @@ pbr==5.11.1 # sarif-om # stevedore pem==23.1.0 - # via -r requirements-docs.in -platformdirs==3.10.0 + # via + # -r requirements-docs.in + # -r requirements-tests.txt +platformdirs==3.11.0 # via # -r requirements-tests.txt # black @@ -433,26 +523,33 @@ prompt-toolkit==3.0.39 # via # -r requirements-tests.txt # click-repl -py-partiql-parser==0.3.7 +psycopg2==2.9.9 + # via -r requirements-tests.txt +py-partiql-parser==0.4.0 # via # -r requirements-tests.txt # moto pyasn1==0.5.0 # via # -r requirements-tests.txt + # ndg-httpsclient # pyasn1-modules # pyjks # python-jose # rsa pyasn1-modules==0.3.0 - # via pyjks + # via + # -r requirements-tests.txt + # pyjks pycparser==2.21 # via # -r requirements-tests.txt # cffi pycryptodomex==3.19.0 - # via pyjks -pydantic==2.4.1 + # via + # -r requirements-tests.txt + # pyjks +pydantic==2.4.2 # via # -r requirements-tests.txt # aws-sam-translator @@ -468,19 +565,28 @@ pygments==2.16.1 # rich # sphinx pyhcl==0.4.5 - # via hvac + # via + # -r requirements-tests.txt + # hvac pyjks==20.0.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt pyjwt==2.8.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt pynacl==1.5.0 - # via paramiko + # via + # -r requirements-tests.txt + # paramiko pyopenssl==23.2.0 # via # -r requirements-docs.in # -r requirements-tests.txt # acme # josepy + # ndg-httpsclient pyparsing==3.1.1 # via # -r requirements-tests.txt @@ -490,6 +596,10 @@ pyrfc3339==1.1 # -r requirements-tests.txt # acme # certbot +pyspnego==0.10.2 + # via + # -r requirements-tests.txt + # requests-ntlm pytest==7.4.2 # via # -r requirements-tests.txt @@ -512,8 +622,12 @@ python-jose[cryptography]==3.3.0 # via # -r requirements-tests.txt # moto + # python-jose python-json-logger==2.0.7 - # via logmatic-python + # via + # -r requirements-tests.txt + # logmatic-python + # via -r requirements-tests.txt pytz==2023.3.post1 # via # -r requirements-tests.txt @@ -527,7 +641,7 @@ pyyaml==6.0.1 # bandit # cfn-lint # cloudflare - # jsonschema-spec + # jsonschema-path # moto # responses redis==4.6.0 @@ -540,9 +654,9 @@ referencing==0.30.2 # via # -r requirements-tests.txt # jsonschema - # jsonschema-spec + # jsonschema-path # jsonschema-specifications -regex==2023.8.8 +regex==2023.10.3 # via # -r requirements-tests.txt # cfn-lint @@ -554,29 +668,36 @@ requests==2.31.0 # cloudflare # docker # hvac - # jsonschema-spec + # jsonschema-path # moto # requests-mock + # requests-ntlm # responses # sphinx requests-mock==1.11.0 # via -r requirements-tests.txt +requests-ntlm==1.2.0 + # via + # -r requirements-tests.txt + # certsrv responses==0.23.3 # via # -r requirements-tests.txt # moto retrying==1.3.4 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt rfc3339-validator==0.1.4 # via # -r requirements-tests.txt # openapi-schema-validator -rich==13.5.3 +rich==13.6.0 # via # -r requirements-tests.txt # bandit # flask-limiter -rpds-py==0.10.3 +rpds-py==0.10.6 # via # -r requirements-tests.txt # jsonschema @@ -593,8 +714,10 @@ sarif-om==1.0.4 # via # -r requirements-tests.txt # cfn-lint -sentry-sdk==1.31.0 - # via -r requirements-docs.in +sentry-sdk==1.32.0 + # via + # -r requirements-docs.in + # -r requirements-tests.txt six==1.16.0 # via # -r requirements-tests.txt @@ -618,7 +741,9 @@ sortedcontainers==2.4.0 # -r requirements-tests.txt # fakeredis soupsieve==2.5 - # via beautifulsoup4 + # via + # -r requirements-tests.txt + # beautifulsoup4 sphinx==7.2.6 # via # -r requirements-docs.in @@ -657,7 +782,9 @@ sqlalchemy==1.3.24 # marshmallow-sqlalchemy # sqlalchemy-utils sqlalchemy-utils==0.41.1 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt sshpubkeys==3.3.1 # via # -r requirements-tests.txt @@ -671,29 +798,70 @@ sympy==1.12 # -r requirements-tests.txt # cfn-lint tabulate==0.9.0 - # via -r requirements-docs.in + # via + # -r requirements-docs.in + # -r requirements-tests.txt +tomli==2.0.1 + # via + # -r requirements-tests.txt + # black + # mypy + # pytest twofish==0.3.0 - # via pyjks + # via + # -r requirements-tests.txt + # pyjks +types-deprecated==1.2.9.3 + # via -r requirements-tests.txt +types-paramiko==3.3.0.0 + # via -r requirements-tests.txt +types-pyopenssl==23.2.0.2 + # via + # -r requirements-tests.txt + # types-redis +types-pyrfc3339==1.1.1.5 + # via -r requirements-tests.txt types-python-dateutil==2.8.19.14 - # via arrow + # via + # -r requirements-tests.txt + # arrow +types-pytz==2023.3.1.1 + # via -r requirements-tests.txt types-pyyaml==6.0.12.12 # via # -r requirements-tests.txt # responses +types-redis==4.6.0.7 + # via -r requirements-tests.txt +types-requests==2.31.0.6 + # via -r requirements-tests.txt +types-setuptools==68.2.0.0 + # via -r requirements-tests.txt +types-six==1.16.21.9 + # via -r requirements-tests.txt +types-tabulate==0.9.0.3 + # via -r requirements-tests.txt +types-urllib3==1.26.25.14 + # via + # -r requirements-tests.txt + # types-requests typing-extensions==4.8.0 # via # -r requirements-tests.txt # alembic # aws-sam-translator + # black # flask-limiter + # kombu # limits + # mypy # pydantic # pydantic-core tzdata==2023.3 # via # -r requirements-tests.txt # celery -urllib3==1.26.16 +urllib3==1.26.18 # via # -r requirements-tests.txt # botocore @@ -701,6 +869,8 @@ urllib3==1.26.16 # requests # responses # sentry-sdk +validators==0.22.0 + # via -r requirements-tests.txt vine==5.0.0 # via # -r requirements-docs.in @@ -708,11 +878,11 @@ vine==5.0.0 # amqp # celery # kombu -wcwidth==0.2.6 +wcwidth==0.2.8 # via # -r requirements-tests.txt # prompt-toolkit -websocket-client==1.6.3 +websocket-client==1.6.4 # via # -r requirements-tests.txt # docker @@ -733,6 +903,11 @@ xmltodict==0.13.0 # -r requirements-docs.in # -r requirements-tests.txt # moto +zipp==3.17.0 + # via + # -r requirements-tests.txt + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements-tests.in b/requirements-tests.in index dfa46ede6f..527025ee87 100644 --- a/requirements-tests.in +++ b/requirements-tests.in @@ -1,29 +1,30 @@ # Run `make up-reqs` to update pinned dependencies in requirement text files - +-r requirements.txt bandit black -coverage celery[redis]==5.3.4 -certbot +coverage factory-boy Faker fakeredis -flask -flask-migrate freezegun -itsdangerous -jinja2 -marshmallow-sqlalchemy == 0.23.1 #related to the marshmallow issue (to avoid conflicts) -marshmallow<2.21.1 #schema duplicate issues https://github.com/marshmallow-code/marshmallow-sqlalchemy/issues/121 -moto[all] == 4.2.5 # 3.1.2 breaks ELBv2 tests +moto[all] nose openapi-spec-validator pyflakes pytest pytest-flask pytest-mock -redis < 5.1.0 # requires a newer release of fakeredis requests-mock -sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226 -pyyaml>=4.2b1 -werkzeug \ No newline at end of file +mypy +types-tabulate +types-six +types-setuptools +types-pytz +types-pyRFC3339 +types-Deprecated +types-requests +types-pyOpenSSL +types-paramiko +types-redis +types-requests diff --git a/requirements-tests.txt b/requirements-tests.txt index a1b4ac43c3..67fe51a92f 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -1,59 +1,114 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --no-emit-index-url --output-file=requirements-tests.txt requirements-tests.in # -acme==2.7.0 - # via certbot +acme==2.7.1 + # via + # -r requirements.txt + # certbot alembic==1.12.0 - # via flask-migrate + # via + # -r requirements.txt + # flask-migrate +alembic-autogenerate-enums==0.1.2 + # via -r requirements.txt amqp==5.1.1 - # via kombu -annotated-types==0.5.0 + # via + # -r requirements.txt + # kombu +aniso8601==9.0.1 + # via + # -r requirements.txt + # flask-restful +annotated-types==0.6.0 # via pydantic +arrow==1.3.0 + # via -r requirements.txt +async-timeout==4.0.3 + # via + # -r requirements.txt + # redis +asyncpool==1.0 + # via -r requirements.txt attrs==23.1.0 # via + # -r requirements.txt # jschema-to-python + # jsonlines # jsonschema # referencing # sarif-om -aws-sam-translator==1.75.0 +aws-sam-translator==1.78.0 # via cfn-lint -aws-xray-sdk==2.12.0 +aws-xray-sdk==2.12.1 # via moto bandit==1.7.5 # via -r requirements-tests.in +bcrypt==4.0.1 + # via + # -r requirements.txt + # flask-bcrypt + # paramiko +beautifulsoup4==4.12.2 + # via + # -r requirements.txt + # cloudflare billiard==4.1.0 - # via celery -black==23.9.1 + # via + # -r requirements.txt + # celery +black==23.10.0 # via -r requirements-tests.in -blinker==1.6.2 - # via flask -boto3==1.28.62 +blinker==1.6.3 # via + # -r requirements.txt + # flask + # flask-mail + # flask-principal +boto3==1.28.66 + # via + # -r requirements.txt # aws-sam-translator # moto -botocore==1.31.62 +botocore==1.31.66 # via + # -r requirements.txt # aws-xray-sdk # boto3 # moto # s3transfer celery[redis]==5.3.4 - # via -r requirements-tests.in -certbot==2.7.0 - # via -r requirements-tests.in + # via + # -r requirements-tests.in + # -r requirements.txt + # celery +certbot==2.7.1 + # via -r requirements.txt certifi==2023.7.22 - # via requests -cffi==1.15.1 - # via cryptography -cfn-lint==0.80.3 + # via + # -r requirements.txt + # requests + # sentry-sdk +certsrv[ntlm]==2.1.1 + # via + # -r requirements.txt + # certsrv +cffi==1.16.0 + # via + # -r requirements.txt + # cryptography + # pynacl +cfn-lint==0.82.2 # via moto -charset-normalizer==3.2.0 - # via requests +charset-normalizer==3.3.0 + # via + # -r requirements.txt + # requests click==8.1.7 # via + # -r requirements.txt # black # celery # click-didyoumean @@ -61,38 +116,73 @@ click==8.1.7 # click-repl # flask click-didyoumean==0.3.0 - # via celery + # via + # -r requirements.txt + # celery click-plugins==1.1.1 - # via celery + # via + # -r requirements.txt + # celery click-repl==0.3.0 - # via celery + # via + # -r requirements.txt + # celery +cloudflare==2.12.4 + # via -r requirements.txt configargparse==1.7 - # via certbot + # via + # -r requirements.txt + # certbot configobj==5.0.8 - # via certbot + # via + # -r requirements.txt + # certbot coverage==7.3.2 # via -r requirements-tests.in cryptography==41.0.4 # via + # -r requirements.txt # acme # certbot # josepy # moto + # paramiko # pyopenssl + # pyspnego # python-jose + # requests-ntlm # sshpubkeys + # types-paramiko + # types-pyopenssl + # types-redis +deprecated==1.2.14 + # via + # -r requirements.txt + # limits distro==1.8.0 - # via certbot + # via + # -r requirements.txt + # certbot +dnspython==1.15.0 + # via + # -r requirements.txt + # dnspython3 +dnspython3==1.15.0 + # via -r requirements.txt docker==6.1.3 # via moto +dyn==1.8.6 + # via -r requirements.txt ecdsa==0.18.0 # via # moto # python-jose # sshpubkeys +exceptiongroup==1.1.3 + # via pytest factory-boy==3.3.0 # via -r requirements-tests.in -faker==19.8.0 +faker==19.11.0 # via # -r requirements-tests.in # factory-boy @@ -100,47 +190,98 @@ fakeredis==2.19.0 # via -r requirements-tests.in flask==2.3.3 # via - # -r requirements-tests.in + # -r requirements.txt + # flask-bcrypt + # flask-cors + # flask-limiter + # flask-mail # flask-migrate + # flask-principal + # flask-restful # flask-sqlalchemy # pytest-flask +flask-bcrypt==1.0.1 + # via -r requirements.txt +flask-cors==4.0.0 + # via -r requirements.txt +flask-limiter==3.5.0 + # via -r requirements.txt +flask-mail==0.9.1 + # via -r requirements.txt flask-migrate==4.0.5 - # via -r requirements-tests.in + # via -r requirements.txt +flask-principal==0.4.0 + # via -r requirements.txt +flask-replicated==2.1 + # via -r requirements.txt +flask-restful==0.3.10 + # via -r requirements.txt flask-sqlalchemy==2.5.1 - # via flask-migrate + # via + # -r requirements.txt + # flask-migrate freezegun==1.2.2 # via -r requirements-tests.in +future==0.18.3 + # via -r requirements.txt gitdb==4.0.10 # via gitpython -gitpython==3.1.37 +gitpython==3.1.40 # via bandit graphql-core==3.2.3 # via moto +gunicorn==21.2.0 + # via -r requirements.txt +hvac==1.2.1 + # via -r requirements.txt idna==3.4 - # via requests + # via + # -r requirements.txt + # requests +importlib-metadata==6.8.0 + # via + # -r requirements.txt + # certbot + # flask +importlib-resources==6.1.0 + # via + # -r requirements.txt + # limits +inflection==0.5.1 + # via -r requirements.txt iniconfig==2.0.0 # via pytest itsdangerous==2.1.2 # via - # -r requirements-tests.in + # -r requirements.txt # flask +javaobj-py3==0.4.3 + # via + # -r requirements.txt + # pyjks jinja2==3.1.2 # via - # -r requirements-tests.in + # -r requirements.txt # flask # moto jmespath==1.0.1 # via + # -r requirements.txt # boto3 # botocore josepy==1.13.0 # via + # -r requirements.txt # acme # certbot jschema-to-python==1.2.3 # via cfn-lint jsondiff==2.0.0 # via moto +jsonlines==4.0.0 + # via + # -r requirements.txt + # cloudflare jsonpatch==1.33 # via cfn-lint jsonpickle==3.0.2 @@ -153,7 +294,7 @@ jsonschema==4.19.1 # cfn-lint # openapi-schema-validator # openapi-spec-validator -jsonschema-spec==0.2.4 +jsonschema-path==0.3.1 # via openapi-spec-validator jsonschema-specifications==2023.7.1 # via @@ -162,53 +303,87 @@ jsonschema-specifications==2023.7.1 junit-xml==1.9 # via cfn-lint kombu==5.3.2 - # via celery + # via + # -r requirements.txt + # celery lazy-object-proxy==1.9.0 # via openapi-spec-validator +limits==3.6.0 + # via + # -r requirements.txt + # flask-limiter +lockfile==0.12.2 + # via -r requirements.txt +logmatic-python==0.1.7 + # via -r requirements.txt mako==1.2.4 - # via alembic + # via + # -r requirements.txt + # alembic markdown-it-py==3.0.0 - # via rich + # via + # -r requirements.txt + # rich markupsafe==2.1.3 # via + # -r requirements.txt # jinja2 # mako # werkzeug marshmallow==2.21.0 # via - # -r requirements-tests.in + # -r requirements.txt # marshmallow-sqlalchemy marshmallow-sqlalchemy==0.23.1 - # via -r requirements-tests.in + # via -r requirements.txt mdurl==0.1.2 - # via markdown-it-py -moto[all]==4.2.5 + # via + # -r requirements.txt + # markdown-it-py +moto[all]==4.2.6 # via -r requirements-tests.in mpmath==1.3.0 # via sympy multipart==0.2.4 # via moto +mypy==1.6.1 + # via -r requirements-tests.in mypy-extensions==1.0.0 - # via black + # via + # black + # mypy +ndg-httpsclient==0.5.1 + # via -r requirements.txt networkx==3.1 # via cfn-lint nose==1.3.7 # via -r requirements-tests.in -openapi-schema-validator==0.6.1 +openapi-schema-validator==0.6.2 # via openapi-spec-validator -openapi-spec-validator==0.7.0 +openapi-spec-validator==0.7.1 # via # -r requirements-tests.in # moto -packaging==23.1 +ordered-set==4.1.0 + # via + # -r requirements.txt + # flask-limiter +packaging==23.2 # via + # -r requirements.txt # black # docker + # gunicorn + # limits # pytest +paramiko==3.3.1 + # via -r requirements.txt parsedatetime==2.6 - # via certbot + # via + # -r requirements.txt + # certbot pathable==0.4.3 - # via jsonschema-spec + # via jsonschema-path pathspec==0.11.2 # via black pbr==5.11.1 @@ -216,38 +391,81 @@ pbr==5.11.1 # jschema-to-python # sarif-om # stevedore -platformdirs==3.10.0 +pem==23.1.0 + # via -r requirements.txt +platformdirs==3.11.0 # via black pluggy==1.3.0 # via pytest prompt-toolkit==3.0.39 - # via click-repl -py-partiql-parser==0.3.7 + # via + # -r requirements.txt + # click-repl +psycopg2==2.9.9 + # via -r requirements.txt +py-partiql-parser==0.4.0 # via moto pyasn1==0.5.0 # via + # -r requirements.txt + # ndg-httpsclient + # pyasn1-modules + # pyjks # python-jose + # python-ldap # rsa +pyasn1-modules==0.3.0 + # via + # -r requirements.txt + # pyjks + # python-ldap pycparser==2.21 - # via cffi -pydantic==2.4.1 + # via + # -r requirements.txt + # cffi +pycryptodomex==3.19.0 + # via + # -r requirements.txt + # pyjks +pydantic==2.4.2 # via aws-sam-translator pydantic-core==2.10.1 # via pydantic pyflakes==3.1.0 # via -r requirements-tests.in pygments==2.16.1 - # via rich + # via + # -r requirements.txt + # rich +pyhcl==0.4.5 + # via + # -r requirements.txt + # hvac +pyjks==20.0.0 + # via -r requirements.txt +pyjwt==2.8.0 + # via -r requirements.txt +pynacl==1.5.0 + # via + # -r requirements.txt + # paramiko pyopenssl==23.2.0 # via + # -r requirements.txt # acme # josepy + # ndg-httpsclient pyparsing==3.1.1 # via moto pyrfc3339==1.1 # via + # -r requirements.txt # acme # certbot +pyspnego==0.10.2 + # via + # -r requirements.txt + # requests-ntlm pytest==7.4.2 # via # -r requirements-tests.in @@ -259,123 +477,228 @@ pytest-mock==3.11.1 # via -r requirements-tests.in python-dateutil==2.8.2 # via + # -r requirements.txt + # arrow # botocore # celery # faker # freezegun # moto python-jose[cryptography]==3.3.0 - # via moto + # via + # moto + # python-jose +python-json-logger==2.0.7 + # via + # -r requirements.txt + # logmatic-python +python-ldap==3.4.3 + # via -r requirements.txt pytz==2023.3.post1 # via + # -r requirements.txt # acme # certbot + # flask-restful # pyrfc3339 pyyaml==6.0.1 # via - # -r requirements-tests.in + # -r requirements.txt # bandit # cfn-lint - # jsonschema-spec + # cloudflare + # jsonschema-path # moto # responses redis==4.6.0 # via - # -r requirements-tests.in + # -r requirements.txt # celery # fakeredis referencing==0.30.2 # via # jsonschema - # jsonschema-spec + # jsonschema-path # jsonschema-specifications -regex==2023.8.8 +regex==2023.10.3 # via cfn-lint requests==2.31.0 # via + # -r requirements.txt # acme + # certsrv + # cloudflare # docker - # jsonschema-spec + # hvac + # jsonschema-path # moto # requests-mock + # requests-ntlm # responses requests-mock==1.11.0 # via -r requirements-tests.in +requests-ntlm==1.2.0 + # via + # -r requirements.txt + # certsrv responses==0.23.3 # via moto +retrying==1.3.4 + # via -r requirements.txt rfc3339-validator==0.1.4 # via openapi-schema-validator -rich==13.5.3 - # via bandit -rpds-py==0.10.3 +rich==13.6.0 + # via + # -r requirements.txt + # bandit + # flask-limiter +rpds-py==0.10.6 # via # jsonschema # referencing rsa==4.9 # via python-jose s3transfer==0.7.0 - # via boto3 + # via + # -r requirements.txt + # boto3 sarif-om==1.0.4 # via cfn-lint +sentry-sdk==1.32.0 + # via -r requirements.txt six==1.16.0 # via + # -r requirements.txt # configobj # ecdsa + # flask-restful # junit-xml # python-dateutil # requests-mock + # retrying # rfc3339-validator smmap==5.0.1 # via gitdb sortedcontainers==2.4.0 # via fakeredis +soupsieve==2.5 + # via + # -r requirements.txt + # beautifulsoup4 sqlalchemy==1.3.24 # via - # -r requirements-tests.in + # -r requirements.txt # alembic # flask-sqlalchemy # marshmallow-sqlalchemy + # sqlalchemy-utils +sqlalchemy-utils==0.41.1 + # via -r requirements.txt sshpubkeys==3.3.1 # via moto stevedore==5.1.0 # via bandit sympy==1.12 # via cfn-lint +tabulate==0.9.0 + # via -r requirements.txt +tomli==2.0.1 + # via + # black + # mypy + # pytest +twofish==0.3.0 + # via + # -r requirements.txt + # pyjks +types-deprecated==1.2.9.3 + # via -r requirements-tests.in +types-paramiko==3.3.0.0 + # via -r requirements-tests.in +types-pyopenssl==23.2.0.2 + # via + # -r requirements-tests.in + # types-redis +types-pyrfc3339==1.1.1.5 + # via -r requirements-tests.in +types-python-dateutil==2.8.19.14 + # via + # -r requirements.txt + # arrow +types-pytz==2023.3.1.1 + # via -r requirements-tests.in types-pyyaml==6.0.12.12 # via responses +types-redis==4.6.0.7 + # via -r requirements-tests.in +types-requests==2.31.0.6 + # via -r requirements-tests.in +types-setuptools==68.2.0.0 + # via -r requirements-tests.in +types-six==1.16.21.9 + # via -r requirements-tests.in +types-tabulate==0.9.0.3 + # via -r requirements-tests.in +types-urllib3==1.26.25.14 + # via types-requests typing-extensions==4.8.0 # via + # -r requirements.txt # alembic # aws-sam-translator + # black + # flask-limiter + # kombu + # limits + # mypy # pydantic # pydantic-core tzdata==2023.3 - # via celery -urllib3==1.26.16 # via + # -r requirements.txt + # celery +urllib3==1.26.18 + # via + # -r requirements.txt # botocore # docker # requests # responses + # sentry-sdk +validators==0.22.0 + # via -r requirements.txt vine==5.0.0 # via + # -r requirements.txt # amqp # celery # kombu -wcwidth==0.2.6 - # via prompt-toolkit -websocket-client==1.6.3 +wcwidth==0.2.8 + # via + # -r requirements.txt + # prompt-toolkit +websocket-client==1.6.4 # via docker werkzeug==3.0.0 # via - # -r requirements-tests.in + # -r requirements.txt # flask # moto # pytest-flask wrapt==1.15.0 - # via aws-xray-sdk + # via + # -r requirements.txt + # aws-xray-sdk + # deprecated xmltodict==0.13.0 - # via moto + # via + # -r requirements.txt + # moto +zipp==3.17.0 + # via + # -r requirements.txt + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements.in b/requirements.in index 8d3f17db75..34bd71ae0f 100644 --- a/requirements.in +++ b/requirements.in @@ -21,7 +21,7 @@ Flask-Migrate Flask-Principal Flask-RESTful Flask-SQLAlchemy -Flask +Flask<3 # until https://github.com/pytest-dev/pytest-flask/pull/168 is released Flask-Cors flask_replicated future @@ -38,19 +38,19 @@ ndg-httpsclient paramiko # required for the SFTP destination plugin pem psycopg2 -pyjks >= 19 # pyjks < 19 depends on pycryptodome, which conflicts with dyn's usage of pycrypto +pyjks pyjwt pyOpenSSL -pyyaml>=4.2b1 #high severity alert +pyyaml python_ldap -redis < 5.1.0 # requires a newer release of fakeredis +redis requests retrying sentry-sdk six SQLAlchemy-Utils -sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226 +sqlalchemy < 1.4.0 # ImportError: cannot import name '_ColumnEntity' https://github.com/sqlalchemy/sqlalchemy/issues/6226tabulate tabulate validators werkzeug -xmltodict +xmltodict \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 020fa0db11..322df18e61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --no-emit-index-url --output-file=requirements.txt requirements.in # -acme==2.7.0 +acme==2.7.1 # via # -r requirements.in # certbot @@ -18,6 +18,8 @@ aniso8601==9.0.1 # via flask-restful arrow==1.3.0 # via -r requirements.in +async-timeout==4.0.3 + # via redis asyncpool==1.0 # via -r requirements.in attrs==23.1.0 @@ -30,21 +32,21 @@ beautifulsoup4==4.12.2 # via cloudflare billiard==4.1.0 # via celery -blinker==1.6.2 +blinker==1.6.3 # via # flask # flask-mail # flask-principal -boto3==1.28.62 +boto3==1.28.66 # via -r requirements.in -botocore==1.31.62 +botocore==1.31.66 # via # -r requirements.in # boto3 # s3transfer celery[redis]==5.3.4 # via -r requirements.in -certbot==2.7.0 +certbot==2.7.1 # via -r requirements.in certifi==2023.7.22 # via @@ -53,11 +55,11 @@ certifi==2023.7.22 # sentry-sdk certsrv[ntlm]==2.1.1 # via -r requirements.in -cffi==1.15.1 +cffi==1.16.0 # via # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via requests click==8.1.7 # via @@ -137,7 +139,11 @@ hvac==1.2.1 # via -r requirements.in idna==3.4 # via requests -importlib-resources==5.13.0 +importlib-metadata==6.8.0 + # via + # certbot + # flask +importlib-resources==6.1.0 # via limits inflection==0.5.1 # via -r requirements.in @@ -190,7 +196,7 @@ ndg-httpsclient==0.5.1 # via -r requirements.in ordered-set==4.1.0 # via flask-limiter -packaging==23.1 +packaging==23.2 # via # gunicorn # limits @@ -238,7 +244,7 @@ pyrfc3339==1.1 # via # acme # certbot -pyspnego==0.9.2 +pyspnego==0.10.2 # via requests-ntlm python-dateutil==2.8.2 # via @@ -275,11 +281,11 @@ requests-ntlm==1.2.0 # via certsrv retrying==1.3.4 # via -r requirements.in -rich==13.5.3 +rich==13.6.0 # via flask-limiter s3transfer==0.7.0 # via boto3 -sentry-sdk==1.31.0 +sentry-sdk==1.32.0 # via -r requirements.in six==1.16.0 # via @@ -309,10 +315,11 @@ typing-extensions==4.8.0 # via # alembic # flask-limiter + # kombu # limits tzdata==2023.3 # via celery -urllib3==1.26.16 +urllib3==1.26.18 # via # botocore # requests @@ -324,7 +331,7 @@ vine==5.0.0 # amqp # celery # kombu -wcwidth==0.2.6 +wcwidth==0.2.8 # via prompt-toolkit werkzeug==3.0.0 # via @@ -334,6 +341,10 @@ wrapt==1.15.0 # via deprecated xmltodict==0.13.0 # via -r requirements.in +zipp==3.17.0 + # via + # importlib-metadata + # importlib-resources # The following packages are considered to be unsafe in a requirements file: # setuptools