Commit 0ce4e7be authored by PJ Janse van Rensburg's avatar PJ Janse van Rensburg

Lazily import sqlalchemy_utils and arrow.

parent 831e4389
......@@ -4,7 +4,6 @@ from enum import Enum, EnumMeta
from wtforms import fields, validators
from sqlalchemy import Boolean, Column
from sqlalchemy.orm import ColumnProperty
from sqlalchemy_utils import Choice
from flask_admin import form
from flask_admin.model.form import (converts, ModelConverterBase,
......@@ -428,6 +427,8 @@ def choice_type_coerce_factory(type_):
Return a function to coerce a ChoiceType column, for use by Select2Field.
:param type_: ChoiceType object
"""
from sqlalchemy_utils import Choice
choices = type_.choices
if isinstance(choices, type) and issubclass(choices, Enum):
key, choice_cls = 'value', choices
......
from sqlalchemy.ext.associationproxy import _AssociationList
from flask_admin.model.typefmt import BASE_FORMATTERS, EXPORT_FORMATTERS, \
DETAIL_FORMATTERS, list_formatter
list_formatter
from sqlalchemy.orm.collections import InstrumentedList
from sqlalchemy_utils import Choice
from arrow import Arrow
def choice_formatter(view, choice):
......@@ -42,15 +40,20 @@ def arrow_export_formatter(view, arrow_time):
DEFAULT_FORMATTERS = BASE_FORMATTERS.copy()
EXPORT_FORMATTERS = EXPORT_FORMATTERS.copy()
DETAIL_FORMATTERS = DETAIL_FORMATTERS.copy()
DEFAULT_FORMATTERS.update({
InstrumentedList: list_formatter,
_AssociationList: list_formatter,
Choice: choice_formatter,
Arrow: arrow_formatter,
})
EXPORT_FORMATTERS.update({
Arrow: arrow_export_formatter,
})
try:
from sqlalchemy_utils import Choice
DEFAULT_FORMATTERS[Choice] = choice_formatter
except ImportError:
pass
try:
from arrow import Arrow
DEFAULT_FORMATTERS[Arrow] = arrow_formatter
EXPORT_FORMATTERS[Arrow] = arrow_export_formatter
except ImportError:
pass
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy_utils import Currency
from wtforms import ValidationError
try:
......@@ -70,6 +69,7 @@ class ItemsRequired(InputRequired):
def valid_currency(form, field):
from sqlalchemy_utils import Currency
try:
Currency(field.data)
except (TypeError, ValueError):
......
......@@ -18,3 +18,5 @@ pylint
sqlalchemy-citext
sqlalchemy_utils
azure-storage-blob
arrow
colour
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment