[tool.poetry] name = "notifications-api" package-mode = false version = "0.1.0" description = "Notify.gov backend" authors = ["Your Name "] readme = "README.md" [tool.poetry.dependencies] python = "^3.13.2" alembic = "==1.18.4" amqp = "==5.3.1" beautifulsoup4 = "==4.14.3" boto3 = "^1.38.27" botocore = "^1.38.27" cachetools = "==7.0.1" celery = {version = "==5.6.2", extras = ["redis"]} certifi = ">=2022.12.7" cffi = "==2.0.0" charset-normalizer = "^3.4.4" click = "==8.3.1" click-didyoumean = "==0.3.1" click-plugins = "==1.1.1.2" click-repl = "==0.3.0" deprecated = "==1.3.1" dulwich = "^1.2.5" gevent = "==25.5.1" expiringdict = "==1.2.2" flask = "~=3.1" flask-bcrypt = "==1.0.1" flask-migrate = "==4.1.0" flask-redis = "==0.4.0" flask-sqlalchemy = "^3.1.1" gunicorn = {version = "==25.1.0", extras = ["gevent"]} iso8601 = "==2.1.0" jsonschema = {version = "==4.26.0", extras = ["format"]} lxml = "==6.1.0" marshmallow = "^4.2.2" marshmallow-sqlalchemy = "^1.4.2" newrelic = "^11.5.0" packaging = "==26.0" poetry-dotenv-plugin = "==0.2.0" psycopg2-binary = "==2.9.11" pyjwt = "==2.13.0" python-dotenv = "==1.2.2" sqlalchemy = "==2.0.47" werkzeug = "^3.1.5" faker = "^40.5.1" async-timeout = "^5.0.1" bleach = "^6.3.0" geojson = "^3.2.0" numpy = "^2.4.2" ordered-set = "^4.1.0" phonenumbers = "^9.0.24" python-json-logger = "^4.0.0" regex = "^2026.2.19" shapely = "^2.1.2" smartypants = "^2.0.1" mistune = "^3.2.1" blinker = "^1.9.0" cryptography = "^48.0.1" idna = "^3.15" jmespath = "^1.1.0" markupsafe = "^3.0.3" mako = "^1.3.12" pycparser = "^3.0" python-dateutil = "^2.9.0.post0" pyyaml = "^6.0.3" s3transfer = "^0.16.0" six = "^1.16.0" urllib3 = "^2.6.3" webencodings = "^0.5.1" itsdangerous = "^2.2.0" jinja2 = "^3.1.6" redis = "^6.4.0" requests = "^2.33.0" virtualenv = "^21.1.0" marshmallow-enum = "^1.5.1" awscli = "^1.44.38" typing-extensions = "^4.15.0" aiohttp = "^3.14.1" pytest = "^9.0.2" filelock = ">=3.20.3" pyasn1 = ">=0.6.3" jaraco-context = ">=6.1.0" wheel = ">=0.46.2" [tool.poetry.group.dev.dependencies] bandit = "*" black = "^26.3.1" cyclonedx-python-lib = "^11.6.0" cloudfoundry-client = "*" exceptiongroup = "==1.3.1" flake8 = "^7.3.0" flake8-bugbear = "^25.11.29" freezegun = "^1.5.5" hypothesis = "^6.151.9" honcho = "*" isort = "^8.0.0" jinja2-cli = {version = "==1.0.0", extras = ["yaml"]} moto = "==5.1.21" pip-audit = "*" pre-commit = "^4.5.1" pytest = "^9.0.2" pytest-env = "^1.5.0" pytest-mock = "^3.15.1" pytest-cov = "^7.0.0" pytest-xdist = "^3.8.0" radon = "^6.0.1" requests-mock = "^1.11.0" setuptools = "^82.0.0" sqlalchemy-utils = "^0.41.2" vulture = "^2.10" detect-secrets = "^1.5.0" poetry-dotenv-plugin = "^0.2.0" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.plugins."poetry.application.plugin"] dotenv = "poetry_dotenv_plugin.plugin:PoetryDotenvPlugin"