From fe9b228aaa92a97a8f5638bc422fb19127bd01da Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 13 Jan 2015 20:19:08 +0100 Subject: [PATCH] PEP8 fixes and module renames. --- modoboa/core/app_settings.py | 2 +- modoboa/core/models.py | 2 +- modoboa/extensions/admin/app_settings.py | 2 +- modoboa/extensions/admin/forms/account.py | 2 +- modoboa/extensions/admin/forms/alias.py | 2 +- modoboa/extensions/admin/forms/domain.py | 2 +- modoboa/extensions/amavis/app_settings.py | 2 +- modoboa/extensions/amavis/forms.py | 2 +- modoboa/extensions/limits/app_settings.py | 2 +- .../postfix_autoreply/app_settings.py | 2 +- .../postfix_autoreply/general_callbacks.py | 2 +- .../postfix_relay_domains/app_settings.py | 2 +- .../extensions/postfix_relay_domains/forms.py | 2 +- modoboa/extensions/radicale/app_settings.py | 2 +- modoboa/extensions/radicale/forms.py | 2 +- .../extensions/sievefilters/app_settings.py | 2 +- modoboa/extensions/stats/app_settings.py | 2 +- modoboa/extensions/webmail/app_settings.py | 2 +- modoboa/lib/authbackends.py | 5 ++ modoboa/lib/events.py | 5 +- modoboa/lib/{formutils.py => form_utils.py} | 54 +++++++++++-------- modoboa/lib/{ldaputils.py => ldap_utils.py} | 0 modoboa/lib/parameters.py | 10 ++-- modoboa/lib/templatetags/form_tags.py | 2 +- 24 files changed, 65 insertions(+), 47 deletions(-) rename modoboa/lib/{formutils.py => form_utils.py} (94%) rename modoboa/lib/{ldaputils.py => ldap_utils.py} (100%) diff --git a/modoboa/core/app_settings.py b/modoboa/core/app_settings.py index f05e4028c..706639340 100644 --- a/modoboa/core/app_settings.py +++ b/modoboa/core/app_settings.py @@ -2,7 +2,7 @@ from django import forms from django.conf import settings from django.utils.translation import ugettext as _, ugettext_lazy -from modoboa.lib.formutils import YesNoField, SeparatorField, InlineRadioSelect +from modoboa.lib.form_utils import YesNoField, SeparatorField, InlineRadioSelect from modoboa.lib.cryptutils import random_key from modoboa.lib import parameters diff --git a/modoboa/core/models.py b/modoboa/core/models.py index 57faece90..29f3be872 100644 --- a/modoboa/core/models.py +++ b/modoboa/core/models.py @@ -24,7 +24,7 @@ from modoboa.core.extensions import exts_pool from modoboa.core.password_hashers import get_password_hasher try: - from modoboa.lib.ldaputils import LDAPAuthBackend + from modoboa.lib.ldap_utils import LDAPAuthBackend ldap_available = True except ImportError: ldap_available = False diff --git a/modoboa/extensions/admin/app_settings.py b/modoboa/extensions/admin/app_settings.py index 3f27d114f..8638bce9e 100644 --- a/modoboa/extensions/admin/app_settings.py +++ b/modoboa/extensions/admin/app_settings.py @@ -1,7 +1,7 @@ from django import forms from django.conf import settings from django.utils.translation import ugettext_lazy -from modoboa.lib.formutils import YesNoField, SeparatorField +from modoboa.lib.form_utils import YesNoField, SeparatorField from modoboa.lib.sysutils import exec_cmd from modoboa.lib import parameters import os diff --git a/modoboa/extensions/admin/forms/account.py b/modoboa/extensions/admin/forms/account.py index 24aca55ca..5ddc27359 100644 --- a/modoboa/extensions/admin/forms/account.py +++ b/modoboa/extensions/admin/forms/account.py @@ -6,7 +6,7 @@ from modoboa.lib import events, parameters from modoboa.lib.exceptions import PermDeniedException, Conflict, NotFound from modoboa.lib.permissions import get_account_roles from modoboa.lib.emailutils import split_mailbox -from modoboa.lib.formutils import ( +from modoboa.lib.form_utils import ( DomainNameField, DynamicForm, TabForms, WizardForm ) from modoboa.lib.webutils import render_to_json_response diff --git a/modoboa/extensions/admin/forms/alias.py b/modoboa/extensions/admin/forms/alias.py index 9de56daed..5ba3471fd 100644 --- a/modoboa/extensions/admin/forms/alias.py +++ b/modoboa/extensions/admin/forms/alias.py @@ -3,7 +3,7 @@ from django.utils.translation import ugettext as _, ugettext_lazy from django.http import QueryDict from modoboa.lib.exceptions import BadRequest, NotFound, Conflict from modoboa.lib.emailutils import split_mailbox -from modoboa.lib.formutils import ( +from modoboa.lib.form_utils import ( DynamicForm ) from modoboa.extensions.admin.models import ( diff --git a/modoboa/extensions/admin/forms/domain.py b/modoboa/extensions/admin/forms/domain.py index e9efb0c78..b8a9879fd 100644 --- a/modoboa/extensions/admin/forms/domain.py +++ b/modoboa/extensions/admin/forms/domain.py @@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse from modoboa.lib import events, parameters from modoboa.lib.exceptions import ModoboaException, Conflict -from modoboa.lib.formutils import ( +from modoboa.lib.form_utils import ( DomainNameField, YesNoField, WizardForm, DynamicForm, TabForms ) from modoboa.lib.webutils import render_to_json_response diff --git a/modoboa/extensions/amavis/app_settings.py b/modoboa/extensions/amavis/app_settings.py index 2fa1957cf..572d31d99 100644 --- a/modoboa/extensions/amavis/app_settings.py +++ b/modoboa/extensions/amavis/app_settings.py @@ -3,7 +3,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ -from modoboa.lib.formutils import SeparatorField, YesNoField, InlineRadioSelect +from modoboa.lib.form_utils import SeparatorField, YesNoField, InlineRadioSelect from modoboa.lib.parameters import AdminParametersForm, UserParametersForm diff --git a/modoboa/extensions/amavis/forms.py b/modoboa/extensions/amavis/forms.py index 72be441e9..cdf4489df 100644 --- a/modoboa/extensions/amavis/forms.py +++ b/modoboa/extensions/amavis/forms.py @@ -7,7 +7,7 @@ from django import forms from django.utils.translation import ugettext as _ from modoboa.lib import parameters -from modoboa.lib.formutils import InlineRadioSelect +from modoboa.lib.form_utils import InlineRadioSelect from .models import Policy, Users diff --git a/modoboa/extensions/limits/app_settings.py b/modoboa/extensions/limits/app_settings.py index 8b149a75f..6f423507f 100644 --- a/modoboa/extensions/limits/app_settings.py +++ b/modoboa/extensions/limits/app_settings.py @@ -1,7 +1,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from modoboa.lib.parameters import AdminParametersForm -from modoboa.lib.formutils import SeparatorField +from modoboa.lib.form_utils import SeparatorField class ParametersForm(AdminParametersForm): diff --git a/modoboa/extensions/postfix_autoreply/app_settings.py b/modoboa/extensions/postfix_autoreply/app_settings.py index b5d74d99c..c19933cee 100644 --- a/modoboa/extensions/postfix_autoreply/app_settings.py +++ b/modoboa/extensions/postfix_autoreply/app_settings.py @@ -2,7 +2,7 @@ from django.utils.translation import ugettext_lazy from django import forms from modoboa.lib.parameters import AdminParametersForm -from modoboa.lib.formutils import SeparatorField +from modoboa.lib.form_utils import SeparatorField class ParametersForm(AdminParametersForm): diff --git a/modoboa/extensions/postfix_autoreply/general_callbacks.py b/modoboa/extensions/postfix_autoreply/general_callbacks.py index eb1417088..3b1555c70 100644 --- a/modoboa/extensions/postfix_autoreply/general_callbacks.py +++ b/modoboa/extensions/postfix_autoreply/general_callbacks.py @@ -103,7 +103,7 @@ def extra_mailform_fields(form_name, mailbox=None): :param str form_name: form name (must be 'mailform') :param Mailbox mailbox: mailbox """ - from modoboa.lib.formutils import YesNoField + from modoboa.lib.form_utils import YesNoField if form_name != "mailform": return [] diff --git a/modoboa/extensions/postfix_relay_domains/app_settings.py b/modoboa/extensions/postfix_relay_domains/app_settings.py index 107a16979..80cfc6a4d 100644 --- a/modoboa/extensions/postfix_relay_domains/app_settings.py +++ b/modoboa/extensions/postfix_relay_domains/app_settings.py @@ -6,7 +6,7 @@ from django import forms from django.utils.translation import ugettext_lazy from modoboa.lib import parameters -from modoboa.lib.formutils import SeparatorField +from modoboa.lib.form_utils import SeparatorField class AdminParametersForm(parameters.AdminParametersForm): diff --git a/modoboa/extensions/postfix_relay_domains/forms.py b/modoboa/extensions/postfix_relay_domains/forms.py index 001992539..a93683fb1 100644 --- a/modoboa/extensions/postfix_relay_domains/forms.py +++ b/modoboa/extensions/postfix_relay_domains/forms.py @@ -6,7 +6,7 @@ from django.http import QueryDict from django.utils.translation import ugettext as _, ugettext_lazy from django.core.urlresolvers import reverse from modoboa.lib import events -from modoboa.lib.formutils import DynamicForm, DomainNameField, TabForms +from modoboa.lib.form_utils import DynamicForm, DomainNameField, TabForms from modoboa.lib.webutils import render_to_json_response from modoboa.extensions.admin.models import Domain, DomainAlias from .models import RelayDomain, RelayDomainAlias diff --git a/modoboa/extensions/radicale/app_settings.py b/modoboa/extensions/radicale/app_settings.py index 2e7991f2a..80a6f10f8 100644 --- a/modoboa/extensions/radicale/app_settings.py +++ b/modoboa/extensions/radicale/app_settings.py @@ -1,7 +1,7 @@ from django.utils.translation import ugettext_lazy from django import forms from modoboa.lib.parameters import AdminParametersForm -from modoboa.lib.formutils import SeparatorField, YesNoField +from modoboa.lib.form_utils import SeparatorField, YesNoField class ParametersForm(AdminParametersForm): diff --git a/modoboa/extensions/radicale/forms.py b/modoboa/extensions/radicale/forms.py index 4e84979a1..11a9b1e87 100644 --- a/modoboa/extensions/radicale/forms.py +++ b/modoboa/extensions/radicale/forms.py @@ -5,7 +5,7 @@ from django import forms from django.core.urlresolvers import reverse from django.utils.translation import ugettext as _, ugettext_lazy from modoboa.lib.webutils import render_to_json_response -from modoboa.lib.formutils import WizardForm, TabForms, DynamicForm +from modoboa.lib.form_utils import WizardForm, TabForms, DynamicForm from modoboa.extensions.admin.models import Domain, Mailbox from modoboa.extensions.radicale.models import UserCalendar, SharedCalendar diff --git a/modoboa/extensions/sievefilters/app_settings.py b/modoboa/extensions/sievefilters/app_settings.py index 0d6547559..c3d1cbb4d 100644 --- a/modoboa/extensions/sievefilters/app_settings.py +++ b/modoboa/extensions/sievefilters/app_settings.py @@ -3,7 +3,7 @@ from django.utils.translation import ugettext_lazy as _ from django import forms from sievelib.managesieve import SUPPORTED_AUTH_MECHS from modoboa.lib.parameters import AdminParametersForm, UserParametersForm -from modoboa.lib.formutils import SeparatorField, YesNoField, InlineRadioSelect +from modoboa.lib.form_utils import SeparatorField, YesNoField, InlineRadioSelect def supported_auth_mechs(): diff --git a/modoboa/extensions/stats/app_settings.py b/modoboa/extensions/stats/app_settings.py index 84afb8f3b..9c48d156e 100644 --- a/modoboa/extensions/stats/app_settings.py +++ b/modoboa/extensions/stats/app_settings.py @@ -2,7 +2,7 @@ from django.utils.translation import ugettext_lazy from django import forms from modoboa.lib.parameters import AdminParametersForm -from modoboa.lib.formutils import SeparatorField +from modoboa.lib.form_utils import SeparatorField class ParametersForm(AdminParametersForm): diff --git a/modoboa/extensions/webmail/app_settings.py b/modoboa/extensions/webmail/app_settings.py index eca4f4570..1fee71d06 100644 --- a/modoboa/extensions/webmail/app_settings.py +++ b/modoboa/extensions/webmail/app_settings.py @@ -2,7 +2,7 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from modoboa.lib.parameters import AdminParametersForm, UserParametersForm -from modoboa.lib.formutils import SeparatorField, YesNoField, InlineRadioSelect +from modoboa.lib.form_utils import SeparatorField, YesNoField, InlineRadioSelect class ParametersForm(AdminParametersForm): diff --git a/modoboa/lib/authbackends.py b/modoboa/lib/authbackends.py index c08555a4e..565c8a03e 100644 --- a/modoboa/lib/authbackends.py +++ b/modoboa/lib/authbackends.py @@ -1,4 +1,7 @@ +"""Custom authentication backends.""" + from django.contrib.auth.backends import ModelBackend + from modoboa.core.models import User from modoboa.lib import parameters from modoboa.lib.emailutils import split_mailbox @@ -6,6 +9,8 @@ from modoboa.lib.emailutils import split_mailbox class SimpleBackend(ModelBackend): + """Simple authentication backend.""" + def authenticate(self, username=None, password=None): try: user = User.objects.get(username=username) diff --git a/modoboa/lib/events.py b/modoboa/lib/events.py index cd574b412..13c447af3 100644 --- a/modoboa/lib/events.py +++ b/modoboa/lib/events.py @@ -8,12 +8,15 @@ This module provides a simple way of managing events between Modoboa core application and additional components. """ -from functools import wraps import inspect import re +from functools import wraps + from django.conf import settings + from modoboa.lib.sysutils import guess_extension_name + events = [] callbacks = {} diff --git a/modoboa/lib/formutils.py b/modoboa/lib/form_utils.py similarity index 94% rename from modoboa/lib/formutils.py rename to modoboa/lib/form_utils.py index 9c75761b2..1af386b50 100644 --- a/modoboa/lib/formutils.py +++ b/modoboa/lib/form_utils.py @@ -1,24 +1,28 @@ # coding: utf-8 -import re -import abc -from django.shortcuts import render -from django.utils.translation import ugettext as _, ugettext_lazy -from django.forms import ChoiceField -from django.forms.widgets import RadioSelect, RadioInput -from django.forms.fields import CharField, Field +"""Form management utilities.""" + +import abc +import re + from django.core.exceptions import ValidationError +from django.forms import ChoiceField +from django.forms.fields import CharField, Field +from django.forms.widgets import RadioSelect, RadioInput +from django.shortcuts import render from django.utils.encoding import force_unicode -from django.utils.safestring import mark_safe from django.utils.html import conditional_escape +from django.utils.safestring import mark_safe +from django.utils.translation import ugettext as _, ugettext_lazy from modoboa.lib.exceptions import BadRequest from modoboa.lib.webutils import render_to_json_response class WizardStep(object): - """A wizard step. - """ + + """A wizard step.""" + def __init__(self, cls, title, formtpl=None, new_args=None): """Constructor. @@ -65,8 +69,9 @@ class WizardStep(object): class WizardForm(object): - """Custom wizard. - """ + + """Custom wizard.""" + __metaclass__ = abc.ABCMeta template_name = "common/wizard_forms.html" @@ -159,12 +164,15 @@ class WizardForm(object): class DynamicForm(object): - """A form which accepts dynamic fields. + + """ + A form which accepts dynamic fields. We consider a field to be dynamic when it can appear multiple times within the same request. """ + def _create_field(self, typ, name, value=None, pos=None): """Create a new form field. """ @@ -222,8 +230,9 @@ class TabForms(object): args.append(request.POST) if instances is not None: self.instances = instances - if hasattr(self, "check_%s" % fd["id"]): - if not getattr(self, "check_%s" % fd["id"])(instances[fd["id"]]): + mname = "check_%s" % fd["id"] + if hasattr(self, mname): + if not getattr(self, mname)(instances[fd["id"]]): to_remove += [fd] continue kwargs["instance"] = instances[fd["id"]] @@ -231,7 +240,7 @@ class TabForms(object): fd["instance"] = classes[fd["id"]](*args, **kwargs) else: fd["instance"] = fd["cls"](*args, **kwargs) - self.forms = [form for form in self.forms if not form in to_remove] + self.forms = [form for form in self.forms if form not in to_remove] if self.forms: self.active_id = self.forms[0]["id"] @@ -263,10 +272,9 @@ class TabForms(object): to_remove = [] for f in self.forms: if mandatory_only and \ - (not 'mandatory' in f or not f["mandatory"]): + ('mandatory' not in f or not f["mandatory"]): continue - elif optional_only and \ - ('mandatory' in f and f["mandatory"]): + elif optional_only and ('mandatory' in f and f["mandatory"]): continue if not self._before_is_valid(f): to_remove.append(f) @@ -274,7 +282,7 @@ class TabForms(object): if not f["instance"].is_valid(): self.active_id = f["id"] return False - self.forms = [f for f in self.forms if not f in to_remove] + self.forms = [f for f in self.forms if f not in to_remove] return True @abc.abstractmethod @@ -334,11 +342,11 @@ class TabForms(object): def is_valid_host(host): - """IDN compatible domain validator - """ + """IDN compatible domain validator.""" host = host.encode('idna').lower() if not hasattr(is_valid_host, '_re'): - is_valid_host._re = re.compile(r'^([0-9a-z][-\w]*[0-9a-z]\.)+[a-z0-9\-]{2,15}$') + is_valid_host._re = re.compile( + r'^([0-9a-z][-\w]*[0-9a-z]\.)+[a-z0-9\-]{2,15}$') return bool(is_valid_host._re.match(host)) diff --git a/modoboa/lib/ldaputils.py b/modoboa/lib/ldap_utils.py similarity index 100% rename from modoboa/lib/ldaputils.py rename to modoboa/lib/ldap_utils.py diff --git a/modoboa/lib/parameters.py b/modoboa/lib/parameters.py index b682501bf..5ad4862c5 100644 --- a/modoboa/lib/parameters.py +++ b/modoboa/lib/parameters.py @@ -9,9 +9,11 @@ will be available and modifiable directly from the web interface. Only super users will be able to access this part of the web interface. """ from django import forms + from modoboa.lib import events -from modoboa.lib.sysutils import guess_extension_name from modoboa.lib.exceptions import ModoboaException +from modoboa.lib.sysutils import guess_extension_name + _params = {'A': {}, 'U': {}} @@ -92,7 +94,7 @@ class AdminParametersForm(GenericParametersForm): def save(self): from .models import Parameter - from modoboa.lib.formutils import SeparatorField + from modoboa.lib.form_utils import SeparatorField for name, value in self.cleaned_data.items(): if type(self.fields[name]) is SeparatorField: @@ -138,7 +140,7 @@ class UserParametersForm(GenericParametersForm): def save(self): from .models import UserParameter - from modoboa.lib.formutils import SeparatorField + from modoboa.lib.form_utils import SeparatorField for name, value in self.cleaned_data.items(): if type(self.fields[name]) is SeparatorField: @@ -162,7 +164,7 @@ def register(formclass, label): :param formclass: a form class :param string label: the label to display in parameters or settings pages """ - from modoboa.lib.formutils import SeparatorField + from modoboa.lib.form_utils import SeparatorField if issubclass(formclass, AdminParametersForm): level = 'A' diff --git a/modoboa/lib/templatetags/form_tags.py b/modoboa/lib/templatetags/form_tags.py index e29091907..cd8bf8a87 100644 --- a/modoboa/lib/templatetags/form_tags.py +++ b/modoboa/lib/templatetags/form_tags.py @@ -6,7 +6,7 @@ from django import forms from django import template from django.template.loader import render_to_string -from modoboa.lib.formutils import SeparatorField +from modoboa.lib.form_utils import SeparatorField register = template.Library()