content: [build-system]
  requires = ["poetry>=0.12"]
  build-backend = "poetry.masonry.api"
  
  [tool.black]
  line-length = 99
  
  [tool.poetry]
  name = "normandy"
  version = "1.133.0"
  description = "Firefox recipe server"
  authors = ["Your Name <you@example.com>"]
  license = "MPL-2.0"
  
  [tool.poetry.dependencies]
  python = "~3.9"
  backoff = "^1.8.1"
  bcrypt = "^3.1.7"
  black = "^21.5b1"
  boto3 = "^1.9.248"
  dj-database-url = "^0.5.0"
  dj-inmemorystorage = "^2.1.0"
  Django = "^2.2.10"
  django-configurations = "^2.1"
  django-cors-headers = "^3.1.1"
  django-countries = "^5.5"
  django-dirtyfields = "^1.3.1"
  django-filter = "^2.2.0"
  django-mozilla-product-details = "^0.14.1"
  django-npm = "^1.0.0"
  django-storages = "^1.7.2"
  django_csp = "^3.5"
   # DRF does not follow semver, 3.11 is a breaking change
  djangorestframework = "3.12.*"
  djangorestframework-yaml = "^2.0.0"
  dockerflow = "^2020.0.0"
  drf-yasg2 = "^1.19.2"
  ecdsa = "^0.16.0"
  factory_boy = "^3.0.0"
  fastecdsa = "^2.1.5"
  # Flake8 does not follow semver, and introduces backwards incompatible changes in minor updates
  flake8 = "3.9.*"
  flake8-junit-report = "^2.1.0"
  geoip2 = "^4.0.0"
  google-cloud-storage = "^1.20.0"
  graphene-django = "^2.6.0"
  gunicorn = "^20.1"
  html5lib = "^1.0.1"
  jsonschema = "^3.1.1"
  kinto-http = "^10.6.0"
  markus = {version = "^3", extras = ["datadog"]}
  psycopg2 = "^2.8.3"
  pyasn1 = "^0.4.7"
  pyasn1-modules = "^0.2.7"
  pyjexl = "^0.2.3"
  pytest = "^6.0.0"
  pytest-django = "^4.0.0"
  pytest-mock = "^3"
  raven = "^6.10.0"
  requests = "^2.22.0"
  requests-hawk = "^1.0.0"
  requests-mock = "^1.7.0"
  statsd = "^3.3.0"
  untangle = "^1.1.1"
  whitenoise = "^5"
  Sphinx = "^4"
  sphinx_rtd_theme = {version = "^0.5.0", optional = true}
  sphinxcontrib-httpdomain = {version = "^1.7.0", optional = true}
  pytest-env = "^0.6.2"
  
  [tool.poetry.extras]
  docs = ["Sphinx", "sphinx_rtd_theme", "sphinxcontrib-httpdomain"]
  
  [tool.poetry.dev-dependencies]
  asn1crypto = "^1.1.0"
  django-extensions = "^3.0.0"
  ipdb = "^0.13.7"
  ipython = "^7.8.0"
  PyDriller = "^2"
  pyOpenSSL = "^20.0.0"
  therapist = "^2.0.0"
  watchdog = "^2"
  Werkzeug = "^2"
  Faker = "^8"
  rope = "^0.19"
  