From 4813508e5537d2f097dd5f1529973d61e786069b Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Fri, 5 Apr 2024 21:31:04 +0500 Subject: [PATCH] feat: add python 312 support --- .github/workflows/ci.yml | 2 +- enterprise_access/apps/events/data.py | 4 +-- requirements/base.txt | 16 +++++++----- requirements/constraints.txt | 3 +++ requirements/dev.txt | 34 +++++++++--------------- requirements/doc.txt | 24 +++++++++-------- requirements/production.txt | 14 +++++----- requirements/quality.txt | 35 ++++++++++++------------- requirements/test.txt | 24 +++++++++-------- requirements/validation.txt | 37 +++++++++++---------------- tox.ini | 2 +- 11 files changed, 95 insertions(+), 100 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3432c93e..75f6701c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8"] + python-version: ["3.8", "3.12"] django-version: ["pinned"] steps: - uses: actions/checkout@v2 diff --git a/enterprise_access/apps/events/data.py b/enterprise_access/apps/events/data.py index 1abe328d..82b1812f 100644 --- a/enterprise_access/apps/events/data.py +++ b/enterprise_access/apps/events/data.py @@ -101,8 +101,8 @@ def get_serializer(cls): if cls.SERIALIZER is None: KAFKA_SCHEMA_REGISTRY_CONFIG = { 'url': getattr(settings, 'SCHEMA_REGISTRY_URL', ''), - 'basic.auth.user.info': f"{getattr(settings,'SCHEMA_REGISTRY_API_KEY','')}" - f":{getattr(settings,'SCHEMA_REGISTRY_API_SECRET','')}", + 'basic.auth.user.info': f"{getattr(settings, 'SCHEMA_REGISTRY_API_KEY', '')}" + f":{getattr(settings, 'SCHEMA_REGISTRY_API_SECRET', '')}", } schema_registry_client = SchemaRegistryClient(KAFKA_SCHEMA_REGISTRY_CONFIG) cls.TRACKING_EVENT_SERIALIZER = AvroSerializer(schema_str=CouponCodeRequestEvent.AVRO_SCHEMA, diff --git a/requirements/base.txt b/requirements/base.txt index bef3b30a..5aae60f1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -22,14 +22,15 @@ attrs==23.2.0 # referencing backoff==1.10.0 # via analytics-python -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery # django # kombu billiard==4.2.0 # via celery -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.in # django-celery-results @@ -168,11 +169,11 @@ edx-drf-extensions==10.3.0 # edx-rbac edx-enterprise-subsidy-client==0.4.2 # via -r requirements/base.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/base.in edx-rest-api-client==5.7.0 # via @@ -212,7 +213,7 @@ monotonic==1.6 # via analytics-python mysqlclient==2.2.4 # via -r requirements/base.in -newrelic==9.8.0 +newrelic==9.9.0 # via edx-django-utils oauthlib==3.2.2 # via @@ -220,7 +221,7 @@ oauthlib==3.2.2 # social-auth-core openapi-codec==1.3.2 # via django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/base.in packaging==24.0 # via drf-yasg @@ -341,3 +342,6 @@ wcwidth==0.2.13 # via prompt-toolkit zipp==3.18.1 # via importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 34a903e9..a40f3326 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -15,3 +15,6 @@ # around default model fields vs. the serializer field defs, # and the discontinued use of OrderedDict in serializers. djangorestframework<3.15 + +# For python greater than or equal to 3.9 backports.zoneinfo causing failures +backports.zoneinfo; python_version<'3.9' diff --git a/requirements/dev.txt b/requirements/dev.txt index d864e52b..54fb485b 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -35,11 +35,11 @@ backoff==1.10.0 # via # -r requirements/validation.txt # analytics-python -backports-tarfile==1.0.0 +backports-tarfile==1.1.1 # via # -r requirements/validation.txt # jaraco-context -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via # -r requirements/validation.txt # celery @@ -57,7 +57,7 @@ cachetools==5.3.3 # via # -r requirements/validation.txt # tox -celery==5.3.6 +celery==5.4.0 # via # -r requirements/validation.txt # django-celery-results @@ -136,7 +136,6 @@ cryptography==42.0.5 # via # -r requirements/validation.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via -r requirements/validation.txt @@ -269,24 +268,24 @@ edx-i18n-tools==1.5.0 # via -r requirements/dev.in edx-lint==5.3.6 # via -r requirements/validation.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/validation.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/validation.txt edx-rest-api-client==5.7.0 # via # -r requirements/validation.txt # edx-enterprise-subsidy-client -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/validation.txt # pytest factory-boy==3.3.0 # via -r requirements/validation.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/validation.txt # factory-boy @@ -343,15 +342,10 @@ jaraco-context==5.3.0 # via # -r requirements/validation.txt # keyring -jaraco-functools==4.0.0 +jaraco-functools==4.0.1 # via # -r requirements/validation.txt # keyring -jeepney==0.8.0 - # via - # -r requirements/validation.txt - # keyring - # secretstorage jinja2==3.1.3 # via # -r requirements/validation.txt @@ -409,7 +403,7 @@ more-itertools==10.2.0 # jaraco-functools mysqlclient==2.2.4 # via -r requirements/validation.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/validation.txt # edx-django-utils @@ -426,7 +420,7 @@ openapi-codec==1.3.2 # via # -r requirements/validation.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/validation.txt packaging==24.0 # via @@ -459,7 +453,7 @@ platformdirs==4.2.0 # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/validation.txt # diff-cover @@ -623,10 +617,6 @@ rpds-py==0.18.0 # referencing rules==3.3 # via -r requirements/validation.txt -secretstorage==3.3.3 - # via - # -r requirements/validation.txt - # keyring semantic-version==2.10.0 # via # -r requirements/validation.txt @@ -729,7 +719,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.25.3 # via # -r requirements/validation.txt # tox diff --git a/requirements/doc.txt b/requirements/doc.txt index bdd4e243..565349c4 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -43,8 +43,9 @@ backoff==1.10.0 # via # -r requirements/test.txt # analytics-python -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # celery # django @@ -59,7 +60,7 @@ cachetools==5.3.3 # via # -r requirements/test.txt # tox -celery==5.3.6 +celery==5.4.0 # via # -r requirements/test.txt # django-celery-results @@ -266,24 +267,24 @@ edx-enterprise-subsidy-client==0.4.2 # via -r requirements/test.txt edx-lint==5.3.6 # via -r requirements/test.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/test.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/test.txt edx-rest-api-client==5.7.0 # via # -r requirements/test.txt # edx-enterprise-subsidy-client -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/test.txt # factory-boy @@ -368,7 +369,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/test.txt # edx-django-utils @@ -383,7 +384,7 @@ openapi-codec==1.3.2 # via # -r requirements/test.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/test.txt packaging==24.0 # via @@ -408,7 +409,7 @@ platformdirs==4.2.0 # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest @@ -666,7 +667,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.25.3 # via # -r requirements/test.txt # tox @@ -679,3 +680,6 @@ zipp==3.18.1 # -r requirements/test.txt # importlib-metadata # importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/production.txt b/requirements/production.txt index acbc5ef4..feaaaeb7 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -30,7 +30,7 @@ backoff==1.10.0 # via # -r requirements/base.txt # analytics-python -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via # -r requirements/base.txt # celery @@ -40,7 +40,7 @@ billiard==4.2.0 # via # -r requirements/base.txt # celery -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # django-celery-results @@ -199,12 +199,12 @@ edx-drf-extensions==10.3.0 # edx-rbac edx-enterprise-subsidy-client==0.4.2 # via -r requirements/base.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/base.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/base.txt edx-rest-api-client==5.7.0 # via @@ -218,7 +218,7 @@ gevent==24.2.1 # via -r requirements/production.in greenlet==3.0.3 # via gevent -gunicorn==21.2.0 +gunicorn==22.0.0 # via -r requirements/production.in idna==3.7 # via @@ -272,7 +272,7 @@ mysqlclient==2.2.4 # via # -r requirements/base.txt # -r requirements/production.in -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/base.txt # edx-django-utils @@ -285,7 +285,7 @@ openapi-codec==1.3.2 # via # -r requirements/base.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/base.txt packaging==24.0 # via diff --git a/requirements/quality.txt b/requirements/quality.txt index 75135115..e7dd33e2 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -35,10 +35,11 @@ backoff==1.10.0 # via # -r requirements/test.txt # analytics-python -backports-tarfile==1.0.0 +backports-tarfile==1.1.1 # via jaraco-context -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/test.txt # celery # django @@ -51,7 +52,7 @@ cachetools==5.3.3 # via # -r requirements/test.txt # tox -celery==5.3.6 +celery==5.4.0 # via # -r requirements/test.txt # django-celery-results @@ -127,7 +128,6 @@ cryptography==42.0.5 # via # -r requirements/test.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via -r requirements/test.txt @@ -254,24 +254,24 @@ edx-lint==5.3.6 # via # -r requirements/quality.in # -r requirements/test.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/test.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/test.txt edx-rest-api-client==5.7.0 # via # -r requirements/test.txt # edx-enterprise-subsidy-client -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/test.txt # factory-boy @@ -323,12 +323,8 @@ jaraco-classes==3.4.0 # via keyring jaraco-context==5.3.0 # via keyring -jaraco-functools==4.0.0 +jaraco-functools==4.0.1 # via keyring -jeepney==0.8.0 - # via - # keyring - # secretstorage jinja2==3.1.3 # via # -r requirements/test.txt @@ -376,7 +372,7 @@ more-itertools==10.2.0 # jaraco-functools mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/test.txt # edx-django-utils @@ -391,7 +387,7 @@ openapi-codec==1.3.2 # via # -r requirements/test.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/test.txt packaging==24.0 # via @@ -416,7 +412,7 @@ platformdirs==4.2.0 # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/test.txt # pytest @@ -562,8 +558,6 @@ rpds-py==0.18.0 # referencing rules==3.3 # via -r requirements/test.txt -secretstorage==3.3.3 - # via keyring semantic-version==2.10.0 # via # -r requirements/test.txt @@ -659,7 +653,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.25.3 # via # -r requirements/test.txt # tox @@ -672,3 +666,6 @@ zipp==3.18.1 # -r requirements/test.txt # importlib-metadata # importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/test.txt b/requirements/test.txt index ab55d59c..6f8a8e56 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -34,8 +34,9 @@ backoff==1.10.0 # via # -r requirements/base.txt # analytics-python -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # -r requirements/base.txt # celery # django @@ -46,7 +47,7 @@ billiard==4.2.0 # celery cachetools==5.3.3 # via tox -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # django-celery-results @@ -233,22 +234,22 @@ edx-enterprise-subsidy-client==0.4.2 # via -r requirements/base.txt edx-lint==5.3.6 # via -r requirements/test.in -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/base.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via -r requirements/base.txt edx-rest-api-client==5.7.0 # via # -r requirements/base.txt # edx-enterprise-subsidy-client -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.9.0 +faker==24.11.0 # via factory-boy fastavro==1.9.4 # via @@ -317,7 +318,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/base.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/base.txt # edx-django-utils @@ -330,7 +331,7 @@ openapi-codec==1.3.2 # via # -r requirements/base.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via -r requirements/base.txt packaging==24.0 # via @@ -352,7 +353,7 @@ platformdirs==4.2.0 # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # pytest # tox @@ -553,7 +554,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.25.3 # via tox wcwidth==0.2.13 # via @@ -563,3 +564,6 @@ zipp==3.18.1 # via # -r requirements/base.txt # importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/validation.txt b/requirements/validation.txt index a80a2319..e8f2fb35 100644 --- a/requirements/validation.txt +++ b/requirements/validation.txt @@ -43,11 +43,11 @@ backoff==1.10.0 # -r requirements/quality.txt # -r requirements/test.txt # analytics-python -backports-tarfile==1.0.0 +backports-tarfile==1.1.1 # via # -r requirements/quality.txt # jaraco-context -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via # -r requirements/quality.txt # -r requirements/test.txt @@ -64,7 +64,7 @@ cachetools==5.3.3 # -r requirements/quality.txt # -r requirements/test.txt # tox -celery==5.3.6 +celery==5.4.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -158,7 +158,6 @@ cryptography==42.0.5 # -r requirements/quality.txt # -r requirements/test.txt # pyjwt - # secretstorage # social-auth-core ddt==1.7.2 # via @@ -333,13 +332,13 @@ edx-lint==5.3.6 # via # -r requirements/quality.txt # -r requirements/test.txt -edx-opaque-keys[django]==2.5.1 +edx-opaque-keys[django]==2.8.0 # via # -r requirements/quality.txt # -r requirements/test.txt # edx-drf-extensions # openedx-events -edx-rbac==1.8.0 +edx-rbac==1.9.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -348,7 +347,7 @@ edx-rest-api-client==5.7.0 # -r requirements/quality.txt # -r requirements/test.txt # edx-enterprise-subsidy-client -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -357,7 +356,7 @@ factory-boy==3.3.0 # via # -r requirements/quality.txt # -r requirements/test.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -423,15 +422,10 @@ jaraco-context==5.3.0 # via # -r requirements/quality.txt # keyring -jaraco-functools==4.0.0 +jaraco-functools==4.0.1 # via # -r requirements/quality.txt # keyring -jeepney==0.8.0 - # via - # -r requirements/quality.txt - # keyring - # secretstorage jinja2==3.1.3 # via # -r requirements/quality.txt @@ -498,7 +492,7 @@ mysqlclient==2.2.4 # via # -r requirements/quality.txt # -r requirements/test.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -518,7 +512,7 @@ openapi-codec==1.3.2 # -r requirements/quality.txt # -r requirements/test.txt # django-rest-swagger -openedx-events==9.9.1 +openedx-events==9.9.2 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -551,7 +545,7 @@ platformdirs==4.2.0 # pylint # tox # virtualenv -pluggy==1.4.0 +pluggy==1.5.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -739,10 +733,6 @@ rules==3.3 # via # -r requirements/quality.txt # -r requirements/test.txt -secretstorage==3.3.3 - # via - # -r requirements/quality.txt - # keyring semantic-version==2.10.0 # via # -r requirements/quality.txt @@ -858,7 +848,7 @@ vine==5.1.0 # amqp # celery # kombu -virtualenv==20.25.1 +virtualenv==20.25.3 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -874,3 +864,6 @@ zipp==3.18.1 # -r requirements/test.txt # importlib-metadata # importlib-resources + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/tox.ini b/tox.ini index fd5c2203..e778551c 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{42}, quality, docs, pii_check +envlist = py{38, 312}-django{42}, quality, docs, pii_check skipsdist = true [doc8]