Skip to content

Commit

Permalink
Use ruff instead of black and flake8 (#643)
Browse files Browse the repository at this point in the history
We switched the project templates to ruff in 3.0, and it has been
working out well. Time to switch the main project over to it.

* All configs are now in pyproject.toml.
* setup.cfg removed.
* Azure pipelines and contributing guide are both updated accordingly.
* Project has been formatted with ruff.
  • Loading branch information
vsalvino authored May 29, 2024
1 parent c0b8ef5 commit 526939e
Show file tree
Hide file tree
Showing 41 changed files with 412 additions and 372 deletions.
13 changes: 4 additions & 9 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# Python Django
# Test a Django project on multiple versions of Python.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/python
Expand All @@ -13,13 +12,10 @@
#
# Use PowerShell Core for any utility scripts so they are re-usable across
# Windows, macOS, and Linux.
#


trigger:
- main


stages:
- stage: Unit_Tests
displayName: Unit Tests
Expand Down Expand Up @@ -71,7 +67,6 @@ stages:

- script: |
cd testproject/
touch requirements-dev.txt
python -m pip install -r requirements-dev.txt
python manage.py makemigrations --check
displayName: 'CR-QC: Check migrations'
Expand Down Expand Up @@ -117,11 +112,11 @@ stages:
- pwsh: ./ci/spellcheck.ps1
displayName: 'CR-QC: Spelling'

- script: black --check .
displayName: 'CR-QC: Black'
- script: ruff format --check .
displayName: 'CR-QC: Ruff Format'

- script: flake8 .
displayName: 'CR-QC: Flake8'
- script: ruff check .
displayName: 'CR-QC: Ruff Check'

- job: codecov
displayName: Code Coverage
Expand Down
5 changes: 1 addition & 4 deletions ci/spellcheck.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@ Push-Location $projectDir
$ExitCode = 0

# Run spell checker.
codespell `
--skip="migrations,vendor,_build,*.css.map,*.jpg,*.png,*.pyc" `
--ignore-words-list="assertIn" `
coderedcms docs
codespell coderedcms docs
$ExitCode = $LastExitCode

# Print output.
Expand Down
7 changes: 5 additions & 2 deletions coderedcms/admin_urls.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
from django.urls import include, path
from django.urls import include
from django.urls import path
from wagtail.admin import urls as wagtailadmin_urls
from coderedcms.views import import_index, import_pages_from_csv_file

from coderedcms.views import import_index
from coderedcms.views import import_pages_from_csv_file


urlpatterns = [
Expand Down
4 changes: 2 additions & 2 deletions coderedcms/api/mailchimp.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import requests
from wagtail.models import Site
from coderedcms.models.wagtailsettings_models import LayoutSettings

import requests
from coderedcms.models.wagtailsettings_models import LayoutSettings


class MailchimpApi:
Expand Down
3 changes: 2 additions & 1 deletion coderedcms/bin/coderedcms.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@ def handle(self, **options):
options["secret_key"] = get_random_secret_key()

# Handle custom template logic
import coderedcms
import wagtail

import coderedcms

crx_path = os.path.dirname(coderedcms.__file__)
if not options["template"]:
options["template"] = "basic"
Expand Down
104 changes: 49 additions & 55 deletions coderedcms/blocks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,63 +5,57 @@
"""

from django.utils.translation import gettext_lazy as _

from wagtail import blocks

from .stream_form_blocks import (
CoderedStreamFormCharFieldBlock,
CoderedStreamFormCheckboxesFieldBlock,
CoderedStreamFormCheckboxFieldBlock,
CoderedStreamFormDateFieldBlock,
CoderedStreamFormDateTimeFieldBlock,
CoderedStreamFormDropdownFieldBlock,
CoderedStreamFormFileFieldBlock,
CoderedStreamFormImageFieldBlock,
CoderedStreamFormNumberFieldBlock,
CoderedStreamFormRadioButtonsFieldBlock,
CoderedStreamFormStepBlock,
CoderedStreamFormTextFieldBlock,
CoderedStreamFormTimeFieldBlock,
)
from .html_blocks import (
ButtonBlock,
EmbedGoogleMapBlock,
ImageBlock,
ImageLinkBlock,
DownloadBlock,
EmbedVideoBlock,
PageListBlock,
PagePreviewBlock,
QuoteBlock,
RichTextBlock,
TableBlock,
)
from .content_blocks import ( # noqa
AccordionBlock,
CardBlock,
CarouselBlock,
ContentWallBlock,
FilmStripBlock,
ImageGalleryBlock,
ModalBlock,
NavDocumentLinkWithSubLinkBlock,
NavExternalLinkWithSubLinkBlock,
NavPageLinkWithSubLinkBlock,
PriceListBlock,
ReusableContentBlock,
)
from .layout_blocks import CardGridBlock, GridBlock, HeroBlock
from .base_blocks import ( # noqa
BaseBlock,
BaseLayoutBlock,
BaseLinkBlock,
ClassifierTermChooserBlock,
CoderedAdvColumnSettings,
CoderedAdvSettings,
CoderedAdvTrackingSettings,
CollectionChooserBlock,
LinkStructValue,
)
from .base_blocks import BaseBlock # noqa
from .base_blocks import BaseLayoutBlock # noqa
from .base_blocks import BaseLinkBlock # noqa
from .base_blocks import ClassifierTermChooserBlock # noqa
from .base_blocks import CoderedAdvColumnSettings # noqa
from .base_blocks import CoderedAdvSettings # noqa
from .base_blocks import CoderedAdvTrackingSettings # noqa
from .base_blocks import CollectionChooserBlock # noqa
from .base_blocks import LinkStructValue # noqa
from .content_blocks import AccordionBlock
from .content_blocks import CardBlock
from .content_blocks import CarouselBlock
from .content_blocks import ContentWallBlock # noqa
from .content_blocks import FilmStripBlock
from .content_blocks import ImageGalleryBlock
from .content_blocks import ModalBlock
from .content_blocks import NavDocumentLinkWithSubLinkBlock
from .content_blocks import NavExternalLinkWithSubLinkBlock
from .content_blocks import NavPageLinkWithSubLinkBlock
from .content_blocks import PriceListBlock
from .content_blocks import ReusableContentBlock
from .html_blocks import ButtonBlock
from .html_blocks import DownloadBlock
from .html_blocks import EmbedGoogleMapBlock
from .html_blocks import EmbedVideoBlock
from .html_blocks import ImageBlock
from .html_blocks import ImageLinkBlock
from .html_blocks import PageListBlock
from .html_blocks import PagePreviewBlock
from .html_blocks import QuoteBlock
from .html_blocks import RichTextBlock
from .html_blocks import TableBlock
from .layout_blocks import CardGridBlock
from .layout_blocks import GridBlock
from .layout_blocks import HeroBlock
from .stream_form_blocks import CoderedStreamFormCharFieldBlock
from .stream_form_blocks import CoderedStreamFormCheckboxesFieldBlock
from .stream_form_blocks import CoderedStreamFormCheckboxFieldBlock
from .stream_form_blocks import CoderedStreamFormDateFieldBlock
from .stream_form_blocks import CoderedStreamFormDateTimeFieldBlock
from .stream_form_blocks import CoderedStreamFormDropdownFieldBlock
from .stream_form_blocks import CoderedStreamFormFileFieldBlock
from .stream_form_blocks import CoderedStreamFormImageFieldBlock
from .stream_form_blocks import CoderedStreamFormNumberFieldBlock
from .stream_form_blocks import CoderedStreamFormRadioButtonsFieldBlock
from .stream_form_blocks import CoderedStreamFormStepBlock
from .stream_form_blocks import CoderedStreamFormTextFieldBlock
from .stream_form_blocks import CoderedStreamFormTimeFieldBlock


# Collections of blocks commonly used together.

Expand Down
2 changes: 1 addition & 1 deletion coderedcms/blocks/base_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
from django.utils.safestring import mark_safe
from django.utils.translation import gettext_lazy as _
from wagtail import blocks
from wagtail.models import Collection
from wagtail.coreutils import resolve_model_string
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.models import Collection

from coderedcms.settings import crx_settings

Expand Down
10 changes: 4 additions & 6 deletions coderedcms/blocks/content_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,10 @@
from wagtail.images.blocks import ImageChooserBlock
from wagtail.snippets.blocks import SnippetChooserBlock

from .base_blocks import (
BaseBlock,
BaseLayoutBlock,
ButtonMixin,
CollectionChooserBlock,
)
from .base_blocks import BaseBlock
from .base_blocks import BaseLayoutBlock
from .base_blocks import ButtonMixin
from .base_blocks import CollectionChooserBlock
from .html_blocks import ButtonBlock


Expand Down
17 changes: 8 additions & 9 deletions coderedcms/blocks/html_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,20 @@
"""

import logging

from django.utils.translation import gettext_lazy as _
from wagtail.contrib.table_block.blocks import TableBlock as WagtailTableBlock
from wagtail import blocks
from wagtail.contrib.table_block.blocks import TableBlock as WagtailTableBlock
from wagtail.documents.blocks import DocumentChooserBlock
from wagtail.embeds.blocks import EmbedBlock
from wagtail.images.blocks import ImageChooserBlock

from .base_blocks import (
BaseBlock,
BaseLinkBlock,
ButtonMixin,
ClassifierTermChooserBlock,
CoderedAdvTrackingSettings,
LinkStructValue,
)
from .base_blocks import BaseBlock
from .base_blocks import BaseLinkBlock
from .base_blocks import ButtonMixin
from .base_blocks import ClassifierTermChooserBlock
from .base_blocks import CoderedAdvTrackingSettings
from .base_blocks import LinkStructValue


logger = logging.getLogger("coderedcms")
Expand Down
3 changes: 2 additions & 1 deletion coderedcms/blocks/layout_blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@

from coderedcms.settings import crx_settings

from .base_blocks import BaseLayoutBlock, CoderedAdvColumnSettings
from .base_blocks import BaseLayoutBlock
from .base_blocks import CoderedAdvColumnSettings


# Level 1 layout blocks
Expand Down
19 changes: 9 additions & 10 deletions coderedcms/blocks/stream_form_blocks.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
from django.utils.translation import gettext_lazy as _
from wagtail import blocks

from coderedcms.blocks.base_blocks import BaseBlock
from coderedcms.blocks.base_blocks import CoderedAdvSettings
from coderedcms.forms import CoderedDateField
from coderedcms.forms import CoderedDateInput
from coderedcms.forms import CoderedDateTimeField
from coderedcms.forms import CoderedDateTimeInput
from coderedcms.forms import CoderedTimeField
from coderedcms.forms import CoderedTimeInput
from coderedcms.forms import SecureFileField
from coderedcms.wagtail_flexible_forms import blocks as form_blocks
from coderedcms.blocks.base_blocks import BaseBlock, CoderedAdvSettings
from coderedcms.forms import (
CoderedDateField,
CoderedDateInput,
CoderedDateTimeField,
CoderedDateTimeInput,
CoderedTimeField,
CoderedTimeInput,
SecureFileField,
)


class CoderedFormAdvSettings(CoderedAdvSettings):
Expand Down
6 changes: 4 additions & 2 deletions coderedcms/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,23 @@

import csv
import os

from django import forms
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
from django.db import models
from django.http import HttpResponse
from django.utils.translation import gettext_lazy as _
from wagtail.contrib.forms.forms import FormBuilder
from wagtail.contrib.forms.models import AbstractFormField
from wagtail.contrib.forms.views import (
SubmissionsListView as WagtailSubmissionsListView,
)
from wagtail.contrib.forms.forms import FormBuilder
from wagtail.contrib.forms.models import AbstractFormField

from coderedcms.settings import crx_settings
from coderedcms.utils import attempt_protected_media_value_conversion


FORM_FIELD_CHOICES = (
(
_("Text"),
Expand Down
5 changes: 3 additions & 2 deletions coderedcms/importexport.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
See: https://github.com/torchbox/wagtail-import-export/
"""

import csv
import copy
import csv

from django import forms
from django.apps import apps
from django.contrib.contenttypes.models import ContentType
from django.db import models, transaction
from django.db import models
from django.db import transaction
from django.utils.translation import gettext as _
from modelcluster.models import get_all_child_relations
from wagtail.admin.widgets import AdminPageChooser
Expand Down
22 changes: 11 additions & 11 deletions coderedcms/models/integration_models.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import json

from django.db import models
from django.forms.widgets import Input
from django.template import Context, Template
from django.template import Context
from django.template import Template
from django.template.loader import render_to_string
from django.utils.translation import gettext_lazy as _

from wagtail.admin.panels import FieldPanel
from wagtail import hooks
from wagtail.admin.panels import FieldPanel

from coderedcms.api.mailchimp import MailchimpApi

import json


class MailchimpSubscriberIntegrationWidget(Input):
template_name = (
Expand Down Expand Up @@ -95,14 +95,14 @@ def build_list_library(self):
}

list_library[mlist["id"]]["merge_fields"] = (
mailchimp.get_merge_fields_for_list(mlist["id"])[
"merge_fields"
]
mailchimp.get_merge_fields_for_list(
mlist["id"]
)["merge_fields"]
)
list_library[mlist["id"]]["interest_categories"] = (
mailchimp.get_interest_categories_for_list(mlist["id"])[
"categories"
]
mailchimp.get_interest_categories_for_list(
mlist["id"]
)["categories"]
)

for category in list_library[mlist["id"]][
Expand Down
Loading

0 comments on commit 526939e

Please sign in to comment.