diff --git a/.github/workflows/python2-lint.yml b/.github/workflows/python2-lint.yml deleted file mode 100644 index 81ae042..0000000 --- a/.github/workflows/python2-lint.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Python 2 linting - -on: [push, pull_request] - -jobs: - pre_job: - name: Path match check - runs-on: ubuntu-latest - # Map a step output to a job output - outputs: - should_skip: ${{ steps.skip_check.outputs.should_skip }} - steps: - - id: skip_check - uses: fkirc/skip-duplicate-actions@master - with: - github_token: ${{ github.token }} - paths: '["morango/**.py"]' - lint: - name: Python 2 syntax checking - needs: pre_job - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - runs-on: ubuntu-20.04 - container: - image: python:2.7.18-buster - steps: - - uses: actions/checkout@v2 - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 - - name: Lint with flake8 - run: | - flake8 morango diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 80f00f8..5878634 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -45,32 +45,6 @@ jobs: - name: Test with tox if: ${{ needs.pre_job.outputs.should_skip != 'true' }} run: tox -e py${{ matrix.python-version }} - unit_test_deprecated: - name: Python unit tests (deprecated python versions) - needs: pre_job - runs-on: ubuntu-20.04 - strategy: - max-parallel: 3 - matrix: - python-version: [2.7] - container: - image: python:${{ matrix.python-version }} - steps: - - uses: actions/checkout@v2 - - name: Install tox - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - run: | - python -m pip install --upgrade pip - pip install tox - - name: tox env cache - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - uses: actions/cache@v2 - with: - path: ${{ github.workspace }}/.tox/py${{ matrix.python-version }} - key: ${{ runner.os }}-tox-py${{ matrix.python-version }}-${{ hashFiles('setup.py', 'requirements/*.txt') }} - - name: Test with tox - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - run: tox -e py${{ matrix.python-version }} cryptography: name: Python unit tests + cryptography needs: pre_job @@ -108,41 +82,6 @@ jobs: - name: Test with tox if: ${{ needs.pre_job.outputs.should_skip != 'true' }} run: tox -e py${{ matrix.python-version }}-cryptography${{ matrix.crypto-version }} - cryptography_deprecated: - name: Python unit tests (deprecated python versions) + cryptography - needs: pre_job - runs-on: ubuntu-20.04 - strategy: - max-parallel: 3 - matrix: - # Packages are no longer available for the distribution that comes with the - # python:3.4 image, so we can't install the necessary dependencies. Eventually, - # this will happen to the others as well. - # EOL: [3.4] - python-version: [2.7] - container: - image: python:${{ matrix.python-version }} - steps: - - uses: actions/checkout@v2 - - name: Install system dependencies - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - run: | - apt-get -y -qq update - apt-get install -y openssl libssl-dev - - name: Install tox - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - run: | - python -m pip install --upgrade pip - pip install tox - - name: tox env cache - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - uses: actions/cache@v2 - with: - path: ${{ github.workspace }}/.tox/py${{ matrix.python-version }} - key: ${{ runner.os }}-tox-py${{ matrix.python-version }}-crypto3.3-${{ hashFiles('setup.py', 'requirements/*.txt') }} - - name: Test with tox - if: ${{ needs.pre_job.outputs.should_skip != 'true' }} - run: tox -e py${{ matrix.python-version }}-cryptography3.3 postgres: name: Python postgres unit tests needs: pre_job diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1d1d5ba..15db127 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,4 +13,4 @@ repos: rev: v1.4.0 hooks: - id: reorder-python-imports - language_version: python2.7 + language_version: python3 diff --git a/morango/__init__.py b/morango/__init__.py index 167cc1d..d2d00e1 100644 --- a/morango/__init__.py +++ b/morango/__init__.py @@ -1,6 +1,2 @@ -from __future__ import absolute_import -from __future__ import print_function -from __future__ import unicode_literals - default_app_config = "morango.apps.MorangoConfig" -__version__ = "0.7.1" +__version__ = "0.8.0" diff --git a/morango/apps.py b/morango/apps.py index 2d525e9..2d78870 100644 --- a/morango/apps.py +++ b/morango/apps.py @@ -1,5 +1,3 @@ -from __future__ import unicode_literals - from django.apps import AppConfig from morango.registry import session_middleware diff --git a/morango/migrations/0001_initial.py b/morango/migrations/0001_initial.py index 58e9740..5b50e69 100644 --- a/morango/migrations/0001_initial.py +++ b/morango/migrations/0001_initial.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9 on 2017-05-08 23:42 -from __future__ import unicode_literals - import django.db.models.deletion import django.utils.timezone from django.db import migrations diff --git a/morango/migrations/0002_auto_20170511_0400.py b/morango/migrations/0002_auto_20170511_0400.py index fd50d4d..7475677 100644 --- a/morango/migrations/0002_auto_20170511_0400.py +++ b/morango/migrations/0002_auto_20170511_0400.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.7 on 2017-05-11 04:00 -from __future__ import unicode_literals - import django.db.models.manager from django.db import migrations from django.db import models diff --git a/morango/migrations/0003_auto_20170519_0543.py b/morango/migrations/0003_auto_20170519_0543.py index 0d164f1..f128158 100644 --- a/morango/migrations/0003_auto_20170519_0543.py +++ b/morango/migrations/0003_auto_20170519_0543.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9 on 2017-05-19 05:43 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0004_auto_20170520_2112.py b/morango/migrations/0004_auto_20170520_2112.py index b260a16..46580a2 100644 --- a/morango/migrations/0004_auto_20170520_2112.py +++ b/morango/migrations/0004_auto_20170520_2112.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9 on 2017-05-20 21:12 -from __future__ import unicode_literals - from django.db import migrations diff --git a/morango/migrations/0005_auto_20170629_2139.py b/morango/migrations/0005_auto_20170629_2139.py index b0cddf9..3004fc7 100644 --- a/morango/migrations/0005_auto_20170629_2139.py +++ b/morango/migrations/0005_auto_20170629_2139.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.7 on 2017-06-29 21:39 -from __future__ import unicode_literals - from django.db import migrations import morango.models.fields.crypto diff --git a/morango/migrations/0006_instanceidmodel_system_id.py b/morango/migrations/0006_instanceidmodel_system_id.py index f68b05e..f521dd3 100644 --- a/morango/migrations/0006_instanceidmodel_system_id.py +++ b/morango/migrations/0006_instanceidmodel_system_id.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9 on 2017-06-30 00:15 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0007_auto_20171018_1615.py b/morango/migrations/0007_auto_20171018_1615.py index 509f095..06625a7 100644 --- a/morango/migrations/0007_auto_20171018_1615.py +++ b/morango/migrations/0007_auto_20171018_1615.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.13 on 2017-10-18 21:15 -from __future__ import unicode_literals - import datetime import django.db.models.deletion diff --git a/morango/migrations/0008_auto_20171114_2217.py b/morango/migrations/0008_auto_20171114_2217.py index e5d8b7e..9ee895f 100644 --- a/morango/migrations/0008_auto_20171114_2217.py +++ b/morango/migrations/0008_auto_20171114_2217.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.7 on 2017-11-14 22:17 -from __future__ import unicode_literals - import django.db.models.deletion import django.db.models.manager from django.db import migrations diff --git a/morango/migrations/0009_auto_20171205_0252.py b/morango/migrations/0009_auto_20171205_0252.py index 0976428..9e22eb6 100644 --- a/morango/migrations/0009_auto_20171205_0252.py +++ b/morango/migrations/0009_auto_20171205_0252.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.7 on 2017-12-05 08:52 -from __future__ import unicode_literals - from django.db import migrations diff --git a/morango/migrations/0010_auto_20171206_1615.py b/morango/migrations/0010_auto_20171206_1615.py index c0397a7..276d5ef 100644 --- a/morango/migrations/0010_auto_20171206_1615.py +++ b/morango/migrations/0010_auto_20171206_1615.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.9.13 on 2017-12-06 22:15 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0011_sharedkey.py b/morango/migrations/0011_sharedkey.py index 6020197..07761d4 100644 --- a/morango/migrations/0011_sharedkey.py +++ b/morango/migrations/0011_sharedkey.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.13 on 2018-06-12 18:38 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0012_auto_20180927_1658.py b/morango/migrations/0012_auto_20180927_1658.py index 1617c36..f6ff596 100644 --- a/morango/migrations/0012_auto_20180927_1658.py +++ b/morango/migrations/0012_auto_20180927_1658.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.15 on 2018-09-27 16:58 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0013_auto_20190627_1513.py b/morango/migrations/0013_auto_20190627_1513.py index 6e040df..e7f8457 100644 --- a/morango/migrations/0013_auto_20190627_1513.py +++ b/morango/migrations/0013_auto_20190627_1513.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.21 on 2019-06-27 22:13 -from __future__ import unicode_literals - from django.db import migrations import morango.models.fields.uuids diff --git a/morango/migrations/0014_syncsession_extra_fields.py b/morango/migrations/0014_syncsession_extra_fields.py index c098d8e..d0d2542 100644 --- a/morango/migrations/0014_syncsession_extra_fields.py +++ b/morango/migrations/0014_syncsession_extra_fields.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.27 on 2019-12-30 18:28 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0015_auto_20200508_2104.py b/morango/migrations/0015_auto_20200508_2104.py index e7efdb6..326d973 100644 --- a/morango/migrations/0015_auto_20200508_2104.py +++ b/morango/migrations/0015_auto_20200508_2104.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2020-05-08 21:04 -from __future__ import unicode_literals - -from django.db import migrations, models +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/morango/migrations/0016_store_deserialization_error.py b/morango/migrations/0016_store_deserialization_error.py index 5317596..3191b45 100644 --- a/morango/migrations/0016_store_deserialization_error.py +++ b/morango/migrations/0016_store_deserialization_error.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.28 on 2020-06-10 23:48 -from __future__ import unicode_literals - -from django.db import migrations, models +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/morango/migrations/0017_store_last_transfer_session_id.py b/morango/migrations/0017_store_last_transfer_session_id.py index adef790..c5a73f3 100644 --- a/morango/migrations/0017_store_last_transfer_session_id.py +++ b/morango/migrations/0017_store_last_transfer_session_id.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.28 on 2021-06-25 23:13 -from __future__ import unicode_literals - from django.db import migrations + import morango.models.fields.uuids diff --git a/morango/migrations/0018_auto_20210714_2216.py b/morango/migrations/0018_auto_20210714_2216.py index bc8bc9e..51277dc 100644 --- a/morango/migrations/0018_auto_20210714_2216.py +++ b/morango/migrations/0018_auto_20210714_2216.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2021-07-14 22:16 -from __future__ import unicode_literals - -from django.db import migrations, models +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/morango/migrations/0019_auto_20220113_1807.py b/morango/migrations/0019_auto_20220113_1807.py index b73ad4c..f187461 100644 --- a/morango/migrations/0019_auto_20220113_1807.py +++ b/morango/migrations/0019_auto_20220113_1807.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2022-01-13 18:07 -from __future__ import unicode_literals - -from django.db import migrations, models +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/morango/migrations/0020_postgres_fix_nullable.py b/morango/migrations/0020_postgres_fix_nullable.py index bcacf17..f35db4d 100644 --- a/morango/migrations/0020_postgres_fix_nullable.py +++ b/morango/migrations/0020_postgres_fix_nullable.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2022-01-13 18:07 -from __future__ import unicode_literals - from django.db import migrations diff --git a/morango/migrations/0021_store_partition_index_create.py b/morango/migrations/0021_store_partition_index_create.py index 32c21df..f96ed79 100644 --- a/morango/migrations/0021_store_partition_index_create.py +++ b/morango/migrations/0021_store_partition_index_create.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2022-04-27 16:59 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/migrations/0022_rename_instance_fields.py b/morango/migrations/0022_rename_instance_fields.py index 82965cb..115df24 100644 --- a/morango/migrations/0022_rename_instance_fields.py +++ b/morango/migrations/0022_rename_instance_fields.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2023-01-31 18:53 -from __future__ import unicode_literals - from django.db import migrations diff --git a/morango/migrations/0023_add_instance_id_fields.py b/morango/migrations/0023_add_instance_id_fields.py index bb9cf6f..bc9f12a 100644 --- a/morango/migrations/0023_add_instance_id_fields.py +++ b/morango/migrations/0023_add_instance_id_fields.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2023-01-31 19:03 -from __future__ import unicode_literals - from django.db import migrations from django.db import models diff --git a/morango/models/certificates.py b/morango/models/certificates.py index 88d39cc..19c8ac1 100644 --- a/morango/models/certificates.py +++ b/morango/models/certificates.py @@ -3,8 +3,6 @@ Each certificate has a ``private_key`` used for signing (child) certificates (thus giving certain permissions) and a ``public_key`` used for verifying that a certificate(s) was properly signed. """ -from __future__ import unicode_literals - import json import string @@ -14,7 +12,6 @@ from django.db import transaction from django.utils import timezone from django.utils.six import string_types -from future.utils import python_2_unicode_compatible from .fields.crypto import Key from .fields.crypto import PrivateKeyField @@ -30,7 +27,6 @@ from morango.utils import _assert -@python_2_unicode_compatible class Certificate(mptt.models.MPTTModel, UUIDModelMixin): uuid_input_fields = ("public_key", "profile", "salt") @@ -329,7 +325,6 @@ def get_description(self, params): return string.Template(self.description).safe_substitute(params) -@python_2_unicode_compatible class Filter(object): def __init__(self, template, params={}): # ensure params have been deserialized diff --git a/morango/models/core.py b/morango/models/core.py index ad80103..816f33b 100644 --- a/morango/models/core.py +++ b/morango/models/core.py @@ -1,5 +1,3 @@ -from __future__ import unicode_literals - import functools import json import logging diff --git a/setup.py b/setup.py index 7ca4667..6b96075 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,5 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from __future__ import absolute_import -from __future__ import print_function -from __future__ import unicode_literals - import io from setuptools import find_packages @@ -32,7 +28,6 @@ "rsa>=3.4.2,<3.5", "djangorestframework==3.9.1", "django-ipware>=1.1.6,<1.2", - "future==0.16.0", "requests", "ifcfg", ], @@ -44,7 +39,6 @@ 'License :: OSI Approved :: MIT License', 'Natural Language :: English', 'Development Status :: 4 - Beta', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', @@ -52,4 +46,5 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', ], + python_requires=">=3.6, <3.12", ) diff --git a/tests/testapp/facility_profile/apps.py b/tests/testapp/facility_profile/apps.py index 1c9be94..dc5c4f3 100644 --- a/tests/testapp/facility_profile/apps.py +++ b/tests/testapp/facility_profile/apps.py @@ -1,5 +1,3 @@ -from __future__ import unicode_literals - from django.apps import AppConfig diff --git a/tests/testapp/facility_profile/migrations/0001_initial.py b/tests/testapp/facility_profile/migrations/0001_initial.py index e8f6c56..cdf6e7f 100644 --- a/tests/testapp/facility_profile/migrations/0001_initial.py +++ b/tests/testapp/facility_profile/migrations/0001_initial.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2022-04-12 20:43 -from __future__ import unicode_literals +import uuid -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion import django.utils.timezone import facility_profile.models -import morango.models.fields.uuids import mptt.fields -import uuid +from django.conf import settings +from django.db import migrations +from django.db import models + +import morango.models.fields.uuids class Migration(migrations.Migration): @@ -53,7 +54,15 @@ class Migration(migrations.Migration): ('rght', models.PositiveIntegerField(db_index=True, editable=False)), ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)), ('level', models.PositiveIntegerField(db_index=True, editable=False)), - ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='facility_profile.Facility')), + ( + 'parent', mptt.fields.TreeForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='children', + to='facility_profile.Facility' + ) + ), ], options={ 'abstract': False, diff --git a/tests/testapp/facility_profile/migrations/0002_auto_20220427_0449.py b/tests/testapp/facility_profile/migrations/0002_auto_20220427_0449.py index 40655df..7b7a231 100644 --- a/tests/testapp/facility_profile/migrations/0002_auto_20220427_0449.py +++ b/tests/testapp/facility_profile/migrations/0002_auto_20220427_0449.py @@ -1,10 +1,9 @@ # -*- coding: utf-8 -*- # Generated by Django 1.11.29 on 2022-04-27 04:49 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models import django.db.models.deletion +from django.conf import settings +from django.db import migrations +from django.db import models class Migration(migrations.Migration): diff --git a/tests/testapp/facility_profile/models.py b/tests/testapp/facility_profile/models.py index ea65881..f2b405d 100644 --- a/tests/testapp/facility_profile/models.py +++ b/tests/testapp/facility_profile/models.py @@ -1,5 +1,3 @@ -from __future__ import unicode_literals - import uuid from django.contrib.auth.models import AbstractBaseUser diff --git a/tests/testapp/testapp/postgres_settings.py b/tests/testapp/testapp/postgres_settings.py index 73e0c94..535b3a3 100644 --- a/tests/testapp/testapp/postgres_settings.py +++ b/tests/testapp/testapp/postgres_settings.py @@ -1,10 +1,6 @@ """ A settings module for running tests using a postgres db backend. """ -from __future__ import absolute_import -from __future__ import print_function -from __future__ import unicode_literals - from .settings import * # noqa DATABASES = { diff --git a/tests/testapp/tests/compat.py b/tests/testapp/tests/compat.py index 16b1c8a..7188093 100644 --- a/tests/testapp/tests/compat.py +++ b/tests/testapp/tests/compat.py @@ -1,10 +1,6 @@ try: - # In the Python 2.7 GH workflows, we have to install backported version - from backports.test.support import EnvironmentVarGuard # noqa F401 + # For python >2.7 and <3.10 + from test.support import EnvironmentVarGuard # noqa F401 except ImportError: - try: - # For python >2.7 and <3.10 - from test.support import EnvironmentVarGuard # noqa F401 - except ImportError: - # In Python 3.10, this has been moved to test.support.os_helper - from test.support.os_helper import EnvironmentVarGuard # noqa F401 + # In Python 3.10, this has been moved to test.support.os_helper + from test.support.os_helper import EnvironmentVarGuard # noqa F401 diff --git a/tox.ini b/tox.ini index 3ddfee3..be53696 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist = - py{2.7,3.6,3.7,3.8,3.9,3.10,3.11}-cryptography{3.3} + py{3.6,3.7,3.8,3.9,3.10,3.11}-cryptography{3.3} postgres windows @@ -13,7 +13,6 @@ setenv = PYTHONPATH = {toxinidir}{:}{toxinidir}/tests/testapp basepython = - py2.7: python2.7 py3.6: python3.6 py3.7: python3.7 py3.8: python3.8 @@ -26,7 +25,6 @@ basepython = deps = -r{toxinidir}/requirements/test.txt cryptography3.3: cryptography==3.3.2 - py2.7: backports.test.support==0.1.1 commands = sh -c '! tests/testapp/manage.py makemigrations --dry-run --exit --noinput'