Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Django / Python support (5.0, 3.12) #14

Merged
merged 1 commit into from
Nov 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 0 additions & 38 deletions .flake8

This file was deleted.

76 changes: 49 additions & 27 deletions .github/workflows/tox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,41 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
toxenv: [fmt,lint,mypy]
toxenv: [fmt, lint, mypy]
env:
TOXENV: ${{ matrix.toxenv }}

steps:
- name: Check out the repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Set up Python 3.9
uses: actions/setup-python@v1
- name: Set up Python (3.11)
uses: actions/setup-python@v4
with:
python-version: 3.9
python-version: "3.11"

- name: Install and run tox
run: |
pip install tox
tox

checks:
name: Run Django checks
runs-on: ubuntu-latest
strategy:
matrix:
toxenv: ["django-checks"]
env:
TOXENV: ${{ matrix.toxenv }}

steps:
- name: Check out the repository
uses: actions/checkout@v4

- name: Set up Python (3.11)
uses: actions/setup-python@v4
with:
python-version: "3.11"

- name: Install and run tox
run: |
Expand All @@ -37,35 +60,34 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python: [3.8,3.9,"3.10"]
django: [31,32,40,main]
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
# build LTS version, next version, HEAD
django: ["32", "42", "50", "main"]
exclude:
- python: "3.8"
django: "50"
- python: "3.8"
django: "main"
- python: "3.9"
django: "50"
- python: "3.9"
django: "main"
- python: "3.10"
django: "main"
- python: "3.11"
django: "32"
- python: "3.12"
django: "32"

env:
TOXENV: py${{ matrix.python }}-django${{ matrix.django }}

# services:
# postgres:
# image: postgres:12
# env:
# POSTGRES_USER: postgres
# POSTGRES_PASSWORD: postgres
# POSTGRES_DB: onfido
# # Set health checks to wait until postgres has started
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# ports:
# # Maps tcp port 5432 on service container to the host
# - 5432:5432
TOXENV: django${{ matrix.django }}-py${{ matrix.python }}

steps:
- name: Check out the repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}

Expand Down
8 changes: 0 additions & 8 deletions .isort.cfg

This file was deleted.

47 changes: 13 additions & 34 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,47 +1,26 @@
repos:
# python import sorting - will amend files
- repo: https://github.com/pre-commit/mirrors-isort
rev: v5.10.1
hooks:
- id: isort

# python code formatting - will amend files
- repo: https://github.com/ambv/black
rev: 22.6.0
rev: 23.10.1
hooks:
- id: black

# update syntax where appropriate
- repo: https://github.com/asottile/pyupgrade
rev: v2.37.2
hooks:
- id: pyupgrade

# formatting of django templates
- repo: https://github.com/rtts/djhtml
rev: v1.5.1
hooks:
- id: djhtml

# Flake8 includes pyflakes, pycodestyle, mccabe, pydocstyle, bandit
- repo: https://gitlab.com/pycqa/flake8
rev: 3.9.2
- repo: https://github.com/charliermarsh/ruff-pre-commit
# Ruff version.
rev: "v0.1.4"
hooks:
- id: flake8
additional_dependencies:
- flake8-docstrings
- flake8-bandit
- flake8-print
- id: ruff
args: [--fix, --exit-non-zero-on-fix]

# python static type checking
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.971
rev: v1.6.1
hooks:
- id: mypy
args:
- --disallow-untyped-defs
- --disallow-incomplete-defs
- --check-untyped-defs
- --no-implicit-optional
- --ignore-missing-imports
- --follow-imports=silent
- --disallow-untyped-defs
- --disallow-incomplete-defs
- --check-untyped-defs
- --no-implicit-optional
- --ignore-missing-imports
- --follow-imports=silent
66 changes: 66 additions & 0 deletions .ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
line-length = 88
ignore = [
"D100", # Missing docstring in public module
"D101", # Missing docstring in public class
"D102", # Missing docstring in public method
"D103", # Missing docstring in public function
"D104", # Missing docstring in public package
"D105", # Missing docstring in magic method
"D106", # Missing docstring in public nested class
"D107", # Missing docstring in __init__
"D203", # 1 blank line required before class docstring
"D212", # Multi-line docstring summary should start at the first line
"D213", # Multi-line docstring summary should start at the second line
"D404", # First word of the docstring should not be "This"
"D405", # Section name should be properly capitalized
"D406", # Section name should end with a newline
"D407", # Missing dashed underline after section
"D410", # Missing blank line after section
"D411", # Missing blank line before section
"D412", # No blank lines allowed between a section header and its content
"D416", # Section name should end with a colon
"D417",
"D417", # Missing argument description in the docstring
]
select = [
"A", # flake8 builtins
"C9", # mcabe
"D", # pydocstyle
"E", # pycodestyle (errors)
"F", # Pyflakes
"I", # isort
"S", # flake8-bandit
"T2", # flake8-print
"W", # pycodestype (warnings)
]

[isort]
combine-as-imports = true

[mccabe]
max-complexity = 8

[per-file-ignores]
"*tests/*" = [
"D205", # 1 blank line required between summary line and description
"D400", # First line should end with a period
"D401", # First line should be in imperative mood
"D415", # First line should end with a period, question mark, or exclamation point
"E501", # Line too long
"E731", # Do not assign a lambda expression, use a def
"S101", # Use of assert detected
"S105", # Possible hardcoded password
"S106", # Possible hardcoded password
"S113", # Probable use of requests call with timeout set to {value}
]
"*/migrations/*" = [
"E501", # Line too long
]
"*/settings.py" = [
"F403", # from {name} import * used; unable to detect undefined names
"F405", # {name} may be undefined, or defined from star imports:
]
"*/settings/*" = [
"F403", # from {name} import * used; unable to detect undefined names
"F405", # {name} may be undefined, or defined from star imports:
]
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

All notable changes to this project will be documented in this file.

## v1.0

* Add support for Django 5.0
* Add support for Python 3.11, 3.12
* Drop support for Django 3.1
* Replace isort, flake8 with ruff

## v0.7

* Add support for per-token session expiry (#9)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2022 yunojuno
Copyright (c) 2023 YunoJuno Limited

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Django app for managing temporary session-based users.

### Support

This project currently supports Python 3.8+, Django 3.1+.
This project currently supports Python 3.8+, Django 3.2+.

### Background

Expand Down
Empty file added demo/__init__.py
Empty file.
1 change: 0 additions & 1 deletion demo/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


class DemoConfig(AppConfig):

name = "demo"

def ready(self) -> None:
Expand Down
25 changes: 12 additions & 13 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "django-visitor-pass"
version = "0.8"
version = "1.0"
description = "Django app for managing temporary session-based users."
license = "MIT"
authors = ["YunoJuno <code@yunojuno.com>"]
Expand All @@ -13,36 +13,35 @@ classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Framework :: Django",
"Framework :: Django :: 3.1",
"Framework :: Django :: 3.2",
"Framework :: Django :: 4.0",
"Framework :: Django :: 4.1",
"Framework :: Django :: 4.2",
"Framework :: Django :: 5.0",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
packages = [{ include = "visitors" }]

[tool.poetry.dependencies]
python = "^3.8"
django = "^3.1 || ^4.0"
django = "^3.2 || ^4.0 || ^5.0"

[tool.poetry.dev-dependencies]
pytest = "*"
pytest-cov = "*"
pytest-django = "*"
black = "*"
coverage = "*"
pylint = "*"
flake8 = "*"
flake8-bandit = "*"
flake8-docstrings = "*"
isort = "*"
mypy = "*"
pre-commit = "*"
black = {version = "*", allow-prereleases = true}
freezegun = "*"
pytest = "*"
pytest-cov = "*"
pytest-django = "*"
ruff = "*"
tox = "*"

[build-system]
Expand Down
Loading