Skip to content

Instantly share code, notes, and snippets.

@smithdc1
smithdc1 / fields.py
Last active April 13, 2020 12:18
Add `required` attribute to MultiValueFields
def __init__(self, fields, *, require_all_fields=True, **kwargs):
self.require_all_fields = require_all_fields
super().__init__(**kwargs)
# We have two sets of widgets. Each field in fields has a widget whilst self.widget is probably our `MultiWidget`
# We're interested in the MultiWidget as this is what is rendered.
# Let's loop over fields and the MultiWidget and set required on the subwidgets.
for field, widget in zip(fields, self.widget.widgets):
field.error_messages.setdefault('incomplete',
self.error_messages['incomplete'])
@smithdc1
smithdc1 / gist:159f45831a2ce103331c2c9ac20d49dd
Created July 1, 2020 19:23
Django Pull #12752 with Crispy-forms
============================= test session starts =============================
platform win32 -- Python 3.9.0a6, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
django: settings: crispy_forms.tests.test_settings (from option)
rootdir: C:\Users\smith\PycharmProjects\django-crispy-forms, inifile: setup.cfg
plugins: cov-2.8.1, django-3.9.0
collected 556 items
crispy_forms\tests\test_dynamic_api.py ................................. [ 5%]
............................................................sss [ 17%]
crispy_forms\tests\test_form_helper.py ................................. [ 23%]
@smithdc1
smithdc1 / build_error_dict.py
Created August 3, 2020 21:15
#24782 -- Added TestCase.assertFormValid
from django.utils.translation import ngettext_lazy
from django.core.validators import validate_email
from django.forms import Form, CharField, IntegerField, PasswordInput
from django.conf import settings
from django.forms.utils import ErrorList, ErrorDict, ValidationError
import django
settings.configure()
django.setup()
repos:
- repo: https://github.com/timothycrosley/isort
rev: 5.6.4
hooks:
- id: isort
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.4
hooks:
- id: flake8
- repo: https://github.com/pre-commit/pre-commit-hooks
@smithdc1
smithdc1 / bench_list_comprehension_generator.py
Created January 2, 2021 10:43
Benchmark of list comprehension and generator being provided to tuple()
import pyperf
small_data = {"a": 1, "b": 2, "c": 3}
large_data = {}
for k, v in enumerate(range(100_000)):
large_data[k] = v
def list_comprehension(loops, data):
@smithdc1
smithdc1 / bench_cached_property_decorator.py
Last active March 11, 2021 11:44
Benchmark of Django and Python's cached_property decorators
import pyperf
from django.utils.functional import cached_property as dj_cached_property
from functools import cached_property as py_cached_property
class TestClass:
@dj_cached_property
def dj_cached(self):
return "Test"
@smithdc1
smithdc1 / bench_resolve.py
Created January 7, 2021 20:04
Benchmark Django's resolve()
import pyperf
import django
from django.conf import settings
from django.urls import re_path, resolve
settings.configure(ROOT_URLCONF=__name__)
django.setup()
@smithdc1
smithdc1 / bench_Media_merge.py
Last active January 11, 2021 20:46
Benchmark for merging widget media
import django
from django import forms
from django.conf import settings
from django.forms import Media
settings.configure()
django.setup()
@smithdc1
smithdc1 / bench_get_parent_list.py
Created January 15, 2021 13:15
Benchmark for `get_parent_list()`
from django.conf.global_settings import INSTALLED_APPS
import django
from django.db import models
from django.conf import settings
import pyperf
settings.configure(INSTALLED_APPS= ('__main__',))
django.setup()
# models
@smithdc1
smithdc1 / bench_decminal_field.py
Created January 15, 2021 16:32
Benchmark for DecimalField.to_python()
from django.conf.global_settings import INSTALLED_APPS
import django
from django.conf import settings
from django.forms import DecimalField
import pyperf
settings.configure(INSTALLED_APPS= ('__main__',))
django.setup()