Skip to content

Commit

Permalink
parent 0fd2534
Browse files Browse the repository at this point in the history
author awais qureshi <[email protected]> 1708937824 +0500
committer awais qureshi <[email protected]> 1709023303 +0500

feat: adding python3.12 support.
  • Loading branch information
awais786 committed Feb 27, 2024
1 parent 0106916 commit 8d45d70
Show file tree
Hide file tree
Showing 11 changed files with 94 additions and 43 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,13 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04]
python-version: ['3.8']
python-version: ['3.8', '3.12']
toxenv: [
quality, docs, django32-drf314, django42-drf314
quality, docs, django42-drf314
]
exclude:
- python-version: '3.12'
toxenv: 'quality'

steps:
- uses: actions/checkout@v2
Expand Down
34 changes: 24 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,34 @@ dev_requirements: ## Install Dev Requirements
test_requirements: ## Install Test Requirements
pip install -r requirements/test.txt

upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade
upgrade: ## Update the requirements/*.txt files with the latest packages satisfying requirements/*.in
pip install -qr requirements/pip-tools.txt
piptools:
pip install -q -r requirements/pip-tools.txt

define COMMON_CONSTRAINTS_TEMP_COMMENT
# This is a temporary solution to override the real common_constraints.txt\n# In edx-lint, until the pyjwt constraint in edx-lint has been removed.\n# See BOM-2721 for more details.\n# Below is the copied and edited version of common_constraints\n
endef

COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt
.PHONY: $(COMMON_CONSTRAINTS_TXT)
$(COMMON_CONSTRAINTS_TXT):
wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)"
echo "$(COMMON_CONSTRAINTS_TEMP_COMMENT)" | cat - $(@) > temp && mv temp $(@)

export CUSTOM_COMPILE_COMMAND = make upgrade
upgrade: piptools $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in
# Make sure to compile files after any other files they include!
pip-compile --upgrade --allow-unsafe --rebuild -o requirements/pip.txt requirements/pip.in
pip-compile --upgrade --verbose --rebuild -o requirements/pip-tools.txt requirements/pip-tools.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/pip-tools.txt requirements/pip-tools.in
pip install -qr requirements/pip.txt
pip install -qr requirements/pip-tools.txt
pip-compile --upgrade --verbose --rebuild -o requirements/base.txt requirements/base.in
pip-compile --upgrade --verbose --rebuild -o requirements/docs.txt requirements/docs.in
pip-compile --upgrade --verbose --rebuild -o requirements/test.txt requirements/test.in
pip-compile --upgrade --verbose --rebuild -o requirements/dev.txt requirements/dev.in
pip-compile --upgrade --verbose --rebuild -o requirements/tox.txt requirements/tox.in
pip-compile --upgrade --verbose --rebuild -o requirements/ci.txt requirements/ci.in
sed 's/Django<4.0//g' requirements/common_constraints.txt > requirements/common_constraints.tmp
mv requirements/common_constraints.tmp requirements/common_constraints.txt
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/base.txt requirements/base.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/docs.txt requirements/docs.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/test.txt requirements/test.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/dev.txt requirements/dev.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/tox.txt requirements/tox.in
pip-compile --upgrade --allow-unsafe --verbose --rebuild -o requirements/ci.txt requirements/ci.in
# Let tox control the Django and DRF versions for tests
sed -i.tmp '/^django==/d' requirements/test.txt
sed -i.tmp '/^djangorestframework==/d' requirements/test.txt
Expand Down
17 changes: 4 additions & 13 deletions pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
# SERIOUSLY.
#
# ------------------------------
# Generated by edx-lint version: 5.2.5
# Generated by edx-lint version: 5.3.6
# ------------------------------
[MASTER]
ignore =
Expand Down Expand Up @@ -141,7 +141,6 @@ enable =
no-self-argument,
no-value-for-parameter,
non-iterator-returned,
non-parent-method-called,
nonexistent-operator,
not-a-mapping,
not-an-iterable,
Expand All @@ -161,13 +160,10 @@ enable =
return-outside-function,
signature-differs,
super-init-not-called,
super-method-not-called,
syntax-error,
test-inherits-tests,
too-few-format-args,
too-many-format-args,
too-many-function-args,
translation-of-non-string,
truncated-format-string,
undefined-all-variable,
undefined-loop-variable,
Expand Down Expand Up @@ -213,7 +209,6 @@ enable =
consider-using-enumerate,
global-at-module-level,
global-variable-not-assigned,
literal-used-as-attribute,
logging-format-interpolation,
logging-not-lazy,
multiple-imports,
Expand All @@ -224,7 +219,6 @@ enable =
redundant-unittest-assert,
reimported,
simplifiable-if-statement,
simplifiable-range,
singleton-comparison,
superfluous-parens,
unidiomatic-typecheck,
Expand All @@ -233,7 +227,6 @@ enable =
unnecessary-semicolon,
unneeded-not,
useless-else-on-loop,
wrong-assert-type,

deprecated-method,
deprecated-module,
Expand All @@ -259,6 +252,7 @@ enable =
useless-suppression,
disable =
bad-indentation,
broad-exception-raised,
consider-using-f-string,
duplicate-code,
file-ignored,
Expand All @@ -282,9 +276,6 @@ disable =
unused-wildcard-import,
use-maxsplit-arg,

feature-toggle-needs-doc,
illegal-waffle-usage,

logging-fstring-interpolation,

[REPORTS]
Expand Down Expand Up @@ -380,6 +371,6 @@ ext-import-graph =
int-import-graph =

[EXCEPTIONS]
overgeneral-exceptions = Exception
overgeneral-exceptions = builtins.Exception

# 54daa2b24c4b5341a45cdb4727fe15d05ef04c5f
# 5f343c05ade94b1f05eeb1763ca543bf867246f6
8 changes: 2 additions & 6 deletions requirements/base.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,8 @@
-c constraints.txt

Django
django-model-utils>=2.3.1

django-model-utils
jsonfield
pytz


# Don't let edx-platform upgrade DRF past versions that have already been tested here
djangorestframework<3.15.0
djangorestframework

42 changes: 42 additions & 0 deletions requirements/common_constraints.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# This is a temporary solution to override the real common_constraints.txt
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
# See BOM-2721 for more details.
# Below is the copied and edited version of common_constraints

# This is a temporary solution to override the real common_constraints.txt
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
# See BOM-2721 for more details.
# Below is the copied and edited version of common_constraints

# This is a temporary solution to override the real common_constraints.txt
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
# See BOM-2721 for more details.
# Below is the copied and edited version of common_constraints

# This is a temporary solution to override the real common_constraints.txt
# In edx-lint, until the pyjwt constraint in edx-lint has been removed.
# See BOM-2721 for more details.
# Below is the copied and edited version of common_constraints

# A central location for most common version constraints
# (across edx repos) for pip-installation.
#
# Similar to other constraint files this file doesn't install any packages.
# It specifies version constraints that will be applied if a package is needed.
# When pinning something here, please provide an explanation of why it is a good
# idea to pin this package across all edx repos, Ideally, link to other information
# that will help people in the future to remove the pin when possible.
# Writing an issue against the offending project and linking to it here is good.
#
# Note: Changes to this file will automatically be used by other repos, referencing
# this file from Github directly. It does not require packaging in edx-lint.


# using LTS django version


# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process.
# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html
elasticsearch<7.14.0

# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
5 changes: 4 additions & 1 deletion requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,7 @@
# linking to it here is good.

# This file contains all common constraints for edx-repos
-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
# Common constraints for edx repos
-c common_constraints.txt

backports.zoneinfo;python_version<"3.9"
6 changes: 4 additions & 2 deletions requirements/pip-tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,7 @@ zipp==3.17.0
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
pip==24.0
# via pip-tools
setuptools==69.1.1
# via pip-tools
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,14 @@ def get_version(*file_paths):
classifiers=[
'Development Status :: 3 - Alpha',
'Framework :: Django',
'Framework :: Django :: 3.2',
'Framework :: Django :: 4.0',
'Framework :: Django :: 4.2',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU Affero General Public License v3',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.12',
],
packages=find_packages(include=['submissions*'], exclude=['*.test', '*.tests']),
install_requires=load_requirements('requirements/base.in'),
Expand Down
2 changes: 1 addition & 1 deletion submissions/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
""" API for creating submissions and scores. """
__version__ = '3.6.1'
__version__ = '3.7.0'
6 changes: 3 additions & 3 deletions submissions/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from uuid import UUID

from django.conf import settings
from django.core.cache import cache
from django.core.cache import CacheKeyWarning, cache
from django.db import DatabaseError, IntegrityError, transaction

# SubmissionError imported so that code importing this api has access
Expand Down Expand Up @@ -228,7 +228,7 @@ def get_submission(submission_uuid, read_replica=False):
cache_key = Submission.get_cache_key(submission_uuid)
try:
cached_submission_data = cache.get(cache_key)
except Exception: # pylint: disable=broad-except
except CacheKeyWarning:

Check warning on line 231 in submissions/api.py

View check run for this annotation

Codecov / codecov/patch

submissions/api.py#L231

Added line #L231 was not covered by tests
# The cache backend could raise an exception
# (for example, memcache keys that contain spaces)
logger.exception("Error occurred while retrieving submission from the cache")
Expand Down Expand Up @@ -293,7 +293,7 @@ def get_submission_and_student(uuid, read_replica=False):
cache_key = f"submissions.student_item.{submission['student_item']}"
try:
cached_student_item = cache.get(cache_key)
except Exception: # pylint: disable=broad-except
except CacheKeyWarning:

Check warning on line 296 in submissions/api.py

View check run for this annotation

Codecov / codecov/patch

submissions/api.py#L296

Added line #L296 was not covered by tests
# The cache backend could raise an exception
# (for example, memcache keys that contain spaces)
logger.exception("Error occurred while retrieving student item from the cache")
Expand Down
6 changes: 3 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
[tox]
envlist = py38-django{32,42}-drf{312, drf314}, quality, docs
envlist = py{38,312}-django{42}-drf{drf314}, quality, docs

[testenv]
setenv =
DJANGO_SETTINGS_MODULE = settings
deps =
-r{toxinidir}/requirements/test.txt
django32: Django>=3.2,<4.0
django42: Django>=4.2,<4.3
drf314: djangorestframework<3.15.0
commands =
Expand All @@ -23,7 +22,8 @@ commands =
make test_quality

[testenv:docs]
deps =
deps =
setuptools
-r{toxinidir}/requirements/dev.txt
commands =
python setup.py build_sphinx
Expand Down

0 comments on commit 8d45d70

Please sign in to comment.