diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index d0f22c4..f48427b 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -10,10 +10,8 @@ jobs: strategy: matrix: python-version: - - '3.8' - '3.11' pip-version: - - 22.0.4 - 23.2.1 include: - python-version: '3.12' @@ -21,9 +19,9 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -34,7 +32,7 @@ jobs: TOX_PIP_VERSION: ${{ matrix.pip-version }} run: tox - name: Upload coverage data - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: coverage-${{ matrix.python-version }} path: .coverage* @@ -46,13 +44,13 @@ jobs: steps: - name: Check out code - uses: actions/checkout@v1 + uses: actions/checkout@v4 - name: Download artifacts - uses: actions/download-artifact@v2 - - name: Set up Python 3.8 - uses: actions/setup-python@v2 + uses: actions/download-artifact@v4 + - name: Set up Python 3.11 + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.11 - name: Install dependencies run: | pip install coverage @@ -64,10 +62,10 @@ jobs: coverage xml coverage report - name: Upload htmlcov archive - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: htmlcov path: htmlcov retention-days: 7 - name: Upload to codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 diff --git a/markdown_xblock/html.py b/markdown_xblock/html.py index d9cd319..b31c3f8 100644 --- a/markdown_xblock/html.py +++ b/markdown_xblock/html.py @@ -8,16 +8,10 @@ from django.conf import settings as django_settings from xblock.core import XBlock from xblock.fields import List, Scope, String -try: # XBlock 2+ - from web_fragments.fragment import Fragment - from xblock.utils.resources import ResourceLoader - from xblock.utils.settings import XBlockWithSettingsMixin - from xblock.utils.studio_editable import StudioEditableXBlockMixin, loader -except ImportError: # Compatibility with XBlock<2 - from xblock.fragment import Fragment - from xblockutils.resources import ResourceLoader - from xblockutils.settings import XBlockWithSettingsMixin - from xblockutils.studio_editable import StudioEditableXBlockMixin, loader +from web_fragments.fragment import Fragment +from xblock.utils.resources import ResourceLoader +from xblock.utils.settings import XBlockWithSettingsMixin +from xblock.utils.studio_editable import StudioEditableXBlockMixin, loader from .utils import _ @@ -282,21 +276,13 @@ def get_editable_fields(self): return fields @classmethod - def parse_xml(cls, node, runtime, keys, id_generator=None): + def parse_xml(cls, node, runtime, keys): """ Use `node` to construct a new block. """ block = runtime.construct_xblock_from_class(cls, keys) - # Prior to XBlock 2.0, id_generator is passed in. - # Since XBlock 2.0, we grab it from the runtime. - # - # TODO: Once we decide to drop support for versions prior to - # XBlock 2 (i.e. Open edX releases before Redwood), we can - # drop id_generator from the method signature, and always rely - # on runtime.id_generator. - if not id_generator: - id_generator = runtime.id_generator + id_generator = runtime.id_generator # Read markdown content from file and add to editor. url_name = node.get('url_name', node.get('slug')) diff --git a/setup.py b/setup.py index 518c85a..e37fa22 100644 --- a/setup.py +++ b/setup.py @@ -41,8 +41,7 @@ def package_data(pkg, roots): 'markdown_xblock', ], install_requires=[ - 'XBlock<2; python_version < "3.9"', - 'XBlock<5; python_version >= "3.9"', + 'XBlock<5', 'markdown2>=2.3.9', 'Pygments>=2.0.1', ], diff --git a/tox.ini b/tox.ini index 14c70fc..0e02e43 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,8 @@ [tox] -envlist = py{38,311,312},pipdeptree{,-requirements},flake8,report +envlist = py{311,312},pipdeptree{,-requirements},flake8,report [gh-actions] python = - 3.8: py38,pipdeptree{,-requirements},flake8 3.11: py311,pipdeptree{,-requirements},flake8 3.12: py312,pipdeptree{,-requirements},flake8