Skip to content

Commit

Permalink
configure readthedocs.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
SunnyR committed Jun 7, 2024
1 parent e677d46 commit a5f6431
Show file tree
Hide file tree
Showing 16 changed files with 538 additions and 42 deletions.
46 changes: 46 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"
jobs:
post_create_environment:
# Install poetry
# https://python-poetry.org/docs/#installing-manually
- pip install poetry
post_install:
# Install dependencies with 'docs' dependency group
# https://python-poetry.org/docs/managing-dependencies/#dependency-groups
# VIRTUAL_ENV needs to be set manually for now.
# See https://github.com/readthedocs/readthedocs.org/pull/11152/
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
formats:
- pdf
- epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
# python:
# install:
# - requirements: docs/requirements.txt
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2011, SD Elements
Copyright (c), SD Elements
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ doctest:
lint:
poetry run black .
poetry run isort .
poetry run flake8 . --extend-ignore=D,E501,W601 --extend-exclude=docs/,**/migrations/*,tests/ --statistics --count
poetry run flake8 . --extend-ignore=D,E501,W601 --extend-exclude=**/migrations/*,tests/ --statistics --count

bandit:
poetry run bandit -c pyproject.toml -r .
Expand Down
18 changes: 10 additions & 8 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,23 @@
# serve to show the default.

import os
import sys

import django

# import sys


# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append(os.path.dirname(__file__))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "test.settings")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tests.settings")
django.setup()

# -- General configuration -----------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = [
"sphinx.ext.autodoc",
]
extensions = ["sphinx.ext.autodoc", "sphinx_rtd_theme"]

# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
Expand All @@ -42,7 +44,7 @@

# General information about the project.
project = "django-security"
copyright = "2013, SD Elements"
copyright = "2024, SD Elements"

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down Expand Up @@ -95,7 +97,7 @@

# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
html_theme = "default"
html_theme = "sphinx_rtd_theme"

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
Expand Down
466 changes: 465 additions & 1 deletion poetry.lock

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ ua_parser = "0.18.0"

[tool.poetry.dev-dependencies]
pre-commit = "3.7.1"
# docs
sphinx = "^5.3.0"
sphinx_rtd_theme = "^1.1.1"
readthedocs-sphinx-search = "^0.1.1"
# lint
black = "24.4.2"
flake8 = "7.0.0"
Expand Down
2 changes: 0 additions & 2 deletions security/auth.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

from django.core.validators import RegexValidator
from django.forms import ValidationError
from django.utils.translation import gettext as _
Expand Down
4 changes: 1 addition & 3 deletions security/auth_throttling/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# Copyright (c) 2011, SD Elements. See ../LICENSE.txt for details.

import hashlib
import logging
import time # Monkeypatched by the tests.
import time
from math import ceil

from django.contrib.auth import REDIRECT_FIELD_NAME
Expand Down
2 changes: 0 additions & 2 deletions security/auth_throttling/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See ../LICENSE.txt for details.

import logging

from django.contrib.auth.models import User
Expand Down
2 changes: 0 additions & 2 deletions security/forms.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

import django.contrib.auth.forms
from django import forms
from django.utils.translation import gettext_lazy as _
Expand Down
23 changes: 10 additions & 13 deletions security/middleware.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

import cProfile
import importlib
import json
Expand Down Expand Up @@ -1077,20 +1075,19 @@ class ReferrerPolicyMiddleware(BaseMiddleware):
Sends Referrer-Policy HTTP header that controls when the browser will set
the `Referer` header. Use REFERRER_POLICY option in settings file
with the following values:
- ``no-referrer``
- ``no-referrer-when-downgrade``
- ``origin``
- ``origin-when-cross-origin``
- ``same-origin`` (*default*)
- ``strict-origin``
- ``strict-origin-when-cross-origin``
- ``unsafe-url``
- ``off``
- ``no-referrer``
- ``no-referrer-when-downgrade``
- ``origin``
- ``origin-when-cross-origin``
- ``same-origin`` (*default*)
- ``strict-origin``
- ``strict-origin-when-cross-origin``
- ``unsafe-url``
- ``off``
Reference:
- `Referrer-Policy from Mozilla Developer Network
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy>`
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy>`
"""

OPTIONAL_SETTINGS = ("REFERRER_POLICY",)
Expand Down
1 change: 0 additions & 1 deletion security/models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.
from django.conf import settings
from django.contrib.auth.models import User
from django.db import models
Expand Down
2 changes: 0 additions & 2 deletions security/password_expiry.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

from django.conf import settings

from .models import PasswordExpiry
Expand Down
2 changes: 0 additions & 2 deletions security/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

import json
import logging

Expand Down
2 changes: 0 additions & 2 deletions tests/tests.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See LICENSE.txt for details.

import datetime
import json
import time # We monkeypatch this.
Expand Down
2 changes: 0 additions & 2 deletions tests/urls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Copyright (c) 2011, SD Elements. See ../LICENSE.txt for details.

from django.contrib.auth.views import LoginView, PasswordChangeView
from django.http import HttpResponse
from django.urls import path, re_path
Expand Down

0 comments on commit a5f6431

Please sign in to comment.