* feat: django-rest-framework + Person/Email API (#8233) * chore: djangorestframework -> requirements.txt * chore: auth/perm/schema classes for drf * chore: settings for drf and friends * chore: comment that api/serializer.py is not DRF * feat: URL router for DRF * feat: simple api/v3/person/{id} endpoint * fix: actually working demo endpoint * chore: no auth for PersonViewSet * ci: params in ci-run-tests.yml * Revert "ci: params in ci-run-tests.yml" This reverts commit 03808ddf94afe42b7382ddd3730959987389612b. * feat: email addresses for person API * feat: email update api (WIP) * fix: working Email API endpoint * chore: annotate address format in api schema * chore: api adjustments * feat: expose SpectacularAPIView At least for now... * chore: better schema_path_prefix * feat: permissions for DRF API * refactor: use permissions classes * refactor: extract NewEmailForm validation for reuse * refactor: ietfauth.validators module * refactor: send new email conf req via helper * feat: API call to issue new address request * chore: move datatracker DRF api to /api/core/ * fix: unused import * fix: lint * test: drf URL names + API tests (#8248) * refactor: better drf URL naming * test: test person-detail view * test: permissions * test: add_email tests + stubs * test: test email update * test: test 404 vs 403 * fix: fix permissions * test: test email partial update * test: assert we have a nonexistent PK * chore: disable DRF api for now * chore: fix git inanity * fix: lint * test: disable tests of disabled code * test: more lint
82 lines
3.2 KiB
Plaintext
82 lines
3.2 KiB
Plaintext
# -*- conf-mode -*-
|
|
setuptools>=51.1.0 # Require this first, to prevent later errors
|
|
#
|
|
argon2-cffi>=21.3.0 # For the Argon2 password hasher option
|
|
beautifulsoup4>=4.11.1 # Only used in tests
|
|
bibtexparser>=1.2.0 # Only used in tests
|
|
bleach>=6
|
|
types-bleach>=6
|
|
celery>=5.2.6
|
|
coverage>=4.5.4,<5.0 # Coverage 5.x moves from a json database to SQLite. Moving to 5.x will require substantial rewrites in ietf.utils.test_runner and ietf.release.views
|
|
defusedxml>=0.7.1 # for TastyPie when using xml; not a declared dependency
|
|
Django>4.2,<5
|
|
django-analytical>=3.1.0
|
|
django-bootstrap5>=21.3
|
|
django-celery-beat>=2.3.0
|
|
django-csp>=3.7
|
|
django-cors-headers>=3.11.0
|
|
django-debug-toolbar>=3.2.4
|
|
django-markup>=1.5 # Limited use - need to reconcile against direct use of markdown
|
|
django-oidc-provider>=0.8.1 # 0.8 dropped Django 2 support
|
|
django-referrer-policy>=1.0
|
|
django-simple-history>=3.0.0
|
|
django-stubs>=4.2.7,<5 # The django-stubs version used determines the the mypy version indicated below
|
|
django-tastypie>=0.14.7,<0.15.0 # Version must be locked in sync with version of Django
|
|
django-vite>=2.0.2,<3
|
|
django-widget-tweaks>=1.4.12
|
|
djangorestframework>=3.15,<4
|
|
djlint>=1.0.0 # To auto-indent templates via "djlint --profile django --reformat"
|
|
docutils>=0.18.1 # Used only by dbtemplates for RestructuredText
|
|
drf-spectacular>=0.27
|
|
drf-standardized-errors[openapi] >= 0.14
|
|
types-docutils>=0.18.1
|
|
factory-boy>=3.3
|
|
github3.py>=3.2.0
|
|
gunicorn>=20.1.0
|
|
hashids>=1.3.1
|
|
html2text>=2020.1.16 # Used only to clean comment field of secr/sreq
|
|
html5lib>=1.1 # Only used in tests
|
|
importlib-metadata<8.5.0 # indirect req of Markdown/inflect; https://github.com/ietf-tools/datatracker/issues/7924
|
|
inflect>= 6.0.2
|
|
jsonfield>=3.1.0 # for SubmissionCheck. This is https://github.com/bradjasper/django-jsonfield/.
|
|
jsonschema[format]>=4.2.1
|
|
jwcrypto>=1.2 # for signed notifications - this is aspirational, and is not really used.
|
|
logging_tree>=1.9 # Used only by the showloggers management command
|
|
lxml>=5.3.0 # lxml[html_clean] fails on some architectures
|
|
lxml_html_clean>=0.4.1
|
|
markdown>=3.3.6
|
|
types-markdown>=3.3.6
|
|
mock>=4.0.3 # Used only by tests, of course
|
|
types-mock>=4.0.3
|
|
mypy~=1.7.0 # Version requirements determined by django-stubs.
|
|
oic>=1.3 # Used only by tests
|
|
Pillow>=9.1.0
|
|
psycopg2>=2.9.6
|
|
pyang>=2.5.3
|
|
pydyf>0.8.0,<0.10.0 # until weasyprint adjusts for 0.10.0 and later
|
|
pyflakes>=2.4.0
|
|
pyopenssl>=22.0.0 # Used by urllib3.contrib, which is used by PyQuery but not marked as a dependency
|
|
pyquery>=1.4.3
|
|
python-dateutil>=2.8.2
|
|
types-python-dateutil>=2.8.2
|
|
python-json-logger>=2.0.7
|
|
python-magic==0.4.18 # Versions beyond the yanked .19 and .20 introduce form failures
|
|
pymemcache>=4.0.0 # for django.core.cache.backends.memcached.PyMemcacheCache
|
|
python-mimeparse>=1.6 # from TastyPie
|
|
pytz==2022.2.1 # Pinned as changes need to be vetted for their effect on Meeting fields
|
|
types-pytz==2022.2.1 # match pytz version
|
|
requests>=2.31.0
|
|
types-requests>=2.27.1
|
|
requests-mock>=1.9.3
|
|
rfc2html>=2.0.3
|
|
scout-apm>=2.24.2
|
|
selenium>=4.0
|
|
tblib>=1.7.0 # So that the django test runner provides tracebacks
|
|
tlds>=2022042700 # Used to teach bleach about which TLDs currently exist
|
|
tqdm>=4.64.0
|
|
Unidecode>=1.3.4
|
|
urllib3>=2
|
|
weasyprint>=59
|
|
xml2rfc[pdf]>=3.23.0
|
|
xym>=0.6,<1.0
|