Commit ed7fe40c authored by Serge S. Koval's avatar Serge S. Koval

Python 3 cleanup

parent d72d381a
...@@ -2,7 +2,8 @@ from functools import wraps ...@@ -2,7 +2,8 @@ from functools import wraps
from re import sub from re import sub
from flask import Blueprint, render_template, url_for, abort, g from flask import Blueprint, render_template, url_for, abort, g
from flask.ext.admin import babel, _compat from flask.ext.admin import babel
from flask.ext.admin._compat import with_metaclass
from flask.ext.admin import helpers as h from flask.ext.admin import helpers as h
...@@ -90,11 +91,11 @@ class AdminViewMeta(type): ...@@ -90,11 +91,11 @@ class AdminViewMeta(type):
setattr(cls, p, _wrap_view(attr)) setattr(cls, p, _wrap_view(attr))
class BaseClass(object): class BaseViewClass(object):
pass pass
class BaseView(_compat.with_metaclass(AdminViewMeta, BaseClass)): class BaseView(with_metaclass(AdminViewMeta, BaseViewClass)):
""" """
Base administrative view. Base administrative view.
......
...@@ -11,7 +11,8 @@ from flask import flash, url_for, redirect, abort, request ...@@ -11,7 +11,8 @@ from flask import flash, url_for, redirect, abort, request
from wtforms import fields, validators from wtforms import fields, validators
from flask.ext.admin import form, helpers, _compat from flask.ext.admin import form, helpers
from flask.ext.admin._compat import urljoin
from flask.ext.admin.base import BaseView, expose from flask.ext.admin.base import BaseView, expose
from flask.ext.admin.actions import action, ActionsMixin from flask.ext.admin.actions import action, ActionsMixin
from flask.ext.admin.babel import gettext, lazy_gettext from flask.ext.admin.babel import gettext, lazy_gettext
...@@ -312,7 +313,7 @@ class FileAdmin(BaseView, ActionsMixin): ...@@ -312,7 +313,7 @@ class FileAdmin(BaseView, ActionsMixin):
return url_for(".edit", path=path) return url_for(".edit", path=path)
else: else:
base_url = self.get_base_url() base_url = self.get_base_url()
return _compat.urljoin(base_url, path) return urljoin(base_url, path)
def _normalize_path(self, path): def _normalize_path(self, path):
""" """
......
...@@ -4,7 +4,7 @@ from flask import flash ...@@ -4,7 +4,7 @@ from flask import flash
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin import _compat from flask.ext.admin._compat import iteritems, string_types
import mongoengine import mongoengine
from bson.objectid import ObjectId from bson.objectid import ObjectId
...@@ -116,7 +116,7 @@ class ModelView(BaseModelView): ...@@ -116,7 +116,7 @@ class ModelView(BaseModelView):
if model is None: if model is None:
model = self.model model = self.model
return sorted(_compat.iteritems(model._fields), key=lambda n: n[1].creation_counter) return sorted(iteritems(model._fields), key=lambda n: n[1].creation_counter)
def scaffold_pk(self): def scaffold_pk(self):
# MongoEngine models have predefined 'id' as a key # MongoEngine models have predefined 'id' as a key
...@@ -172,7 +172,7 @@ class ModelView(BaseModelView): ...@@ -172,7 +172,7 @@ class ModelView(BaseModelView):
""" """
if self.column_searchable_list: if self.column_searchable_list:
for p in self.column_searchable_list: for p in self.column_searchable_list:
if isinstance(p, _compat.string_types): if isinstance(p, string_types):
p = self.model._fields.get(p) p = self.model._fields.get(p)
if p is None: if p is None:
...@@ -196,7 +196,7 @@ class ModelView(BaseModelView): ...@@ -196,7 +196,7 @@ class ModelView(BaseModelView):
:param name: :param name:
Either field name or field instance Either field name or field instance
""" """
if isinstance(name, _compat.string_types): if isinstance(name, string_types):
attr = self.model._fields.get(name) attr = self.model._fields.get(name)
else: else:
attr = name attr = name
...@@ -207,7 +207,7 @@ class ModelView(BaseModelView): ...@@ -207,7 +207,7 @@ class ModelView(BaseModelView):
# Find name # Find name
visible_name = None visible_name = None
if not isinstance(name, _compat.string_types): if not isinstance(name, string_types):
visible_name = self.get_column_name(attr.name) visible_name = self.get_column_name(attr.name)
if not visible_name: if not visible_name:
......
...@@ -5,7 +5,8 @@ from peewee import (DateTimeField, DateField, TimeField, ...@@ -5,7 +5,8 @@ from peewee import (DateTimeField, DateField, TimeField,
from wtfpeewee.orm import ModelConverter, model_form from wtfpeewee.orm import ModelConverter, model_form
from flask.ext.admin import form, _compat from flask.ext.admin import form
from flask.ext.admin._compat import itervalues
from flask.ext.admin.model.form import InlineFormAdmin, InlineModelConverterBase from flask.ext.admin.model.form import InlineFormAdmin, InlineModelConverterBase
from flask.ext.admin.model.fields import InlineModelFormField, InlineFieldList from flask.ext.admin.model.fields import InlineModelFormField, InlineFieldList
...@@ -164,6 +165,6 @@ class InlineModelConverter(InlineModelConverterBase): ...@@ -164,6 +165,6 @@ class InlineModelConverter(InlineModelConverterBase):
def save_inline(form, model): def save_inline(form, model):
for f in _compat.itervalues(form._fields): for f in itervalues(form._fields):
if f.type == 'InlineModelFormList': if f.type == 'InlineModelFormList':
f.save_related(model) f.save_related(model)
...@@ -2,7 +2,8 @@ import logging ...@@ -2,7 +2,8 @@ import logging
from flask import flash from flask import flash
from flask.ext.admin import form, _compat from flask.ext.admin import form
from flask.ext.admin._compat import string_types
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
...@@ -173,14 +174,13 @@ class ModelView(BaseModelView): ...@@ -173,14 +174,13 @@ class ModelView(BaseModelView):
def init_search(self): def init_search(self):
if self.column_searchable_list: if self.column_searchable_list:
for p in self.column_searchable_list: for p in self.column_searchable_list:
if isinstance(p, _compat.string_types): if isinstance(p, string_types):
p = getattr(self.model, p) p = getattr(self.model, p)
field_type = type(p) field_type = type(p)
# Check type # Check type
if (field_type != CharField and if (field_type != CharField and field_type != TextField):
field_type != TextField):
raise Exception('Can only search on text columns. ' + raise Exception('Can only search on text columns. ' +
'Failed to setup search for "%s"' % p) 'Failed to setup search for "%s"' % p)
...@@ -189,7 +189,7 @@ class ModelView(BaseModelView): ...@@ -189,7 +189,7 @@ class ModelView(BaseModelView):
return bool(self._search_fields) return bool(self._search_fields)
def scaffold_filters(self, name): def scaffold_filters(self, name):
if isinstance(name, _compat.string_types): if isinstance(name, string_types):
attr = getattr(self.model, name, None) attr = getattr(self.model, name, None)
else: else:
attr = name attr = name
...@@ -202,7 +202,7 @@ class ModelView(BaseModelView): ...@@ -202,7 +202,7 @@ class ModelView(BaseModelView):
visible_name = '%s / %s' % (self.get_column_name(attr.model_class.__name__), visible_name = '%s / %s' % (self.get_column_name(attr.model_class.__name__),
self.get_column_name(attr.name)) self.get_column_name(attr.name))
else: else:
if not isinstance(name, _compat.string_types): if not isinstance(name, string_types):
visible_name = self.get_column_name(attr.name) visible_name = self.get_column_name(attr.name)
else: else:
visible_name = self.get_column_name(name) visible_name = self.get_column_name(name)
...@@ -253,7 +253,7 @@ class ModelView(BaseModelView): ...@@ -253,7 +253,7 @@ class ModelView(BaseModelView):
return query return query
def _order_by(self, query, joins, sort_field, sort_desc): def _order_by(self, query, joins, sort_field, sort_desc):
if isinstance(sort_field, _compat.string_types): if isinstance(sort_field, string_types):
field = getattr(self.model, sort_field) field = getattr(self.model, sort_field)
query = query.order_by(field.desc() if sort_desc else field.asc()) query = query.order_by(field.desc() if sort_desc else field.asc())
elif isinstance(sort_field, Field): elif isinstance(sort_field, Field):
......
...@@ -6,7 +6,7 @@ from bson.errors import InvalidId ...@@ -6,7 +6,7 @@ from bson.errors import InvalidId
from flask import flash from flask import flash
from flask.ext.admin import _compat from flask.ext.admin._compat import string_types
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
from flask.ext.admin.actions import action from flask.ext.admin.actions import action
...@@ -92,7 +92,7 @@ class ModelView(BaseModelView): ...@@ -92,7 +92,7 @@ class ModelView(BaseModelView):
""" """
if self.column_searchable_list: if self.column_searchable_list:
for p in self.column_searchable_list: for p in self.column_searchable_list:
if not isinstance(p, _compat.string_types): if not isinstance(p, string_types):
raise ValueError('Expected string') raise ValueError('Expected string')
# TODO: Validation? # TODO: Validation?
......
...@@ -7,7 +7,7 @@ from sqlalchemy import or_, Column, func ...@@ -7,7 +7,7 @@ from sqlalchemy import or_, Column, func
from flask import flash from flask import flash
from flask.ext.admin import _compat from flask.ext.admin._compat import string_types
from flask.ext.admin.tools import ObsoleteAttr from flask.ext.admin.tools import ObsoleteAttr
from flask.ext.admin.babel import gettext, ngettext, lazy_gettext from flask.ext.admin.babel import gettext, ngettext, lazy_gettext
from flask.ext.admin.model import BaseModelView from flask.ext.admin.model import BaseModelView
...@@ -349,7 +349,7 @@ class ModelView(BaseModelView): ...@@ -349,7 +349,7 @@ class ModelView(BaseModelView):
return columns return columns
def _get_columns_for_field(self, field): def _get_columns_for_field(self, field):
if isinstance(field, _compat.string_types): if isinstance(field, string_types):
attr = getattr(self.model, field, None) attr = getattr(self.model, field, None)
if field is None: if field is None:
...@@ -411,7 +411,7 @@ class ModelView(BaseModelView): ...@@ -411,7 +411,7 @@ class ModelView(BaseModelView):
""" """
join_tables = [] join_tables = []
if isinstance(name, _compat.string_types): if isinstance(name, string_types):
model = self.model model = self.model
for attribute in name.split('.'): for attribute in name.split('.'):
...@@ -475,7 +475,7 @@ class ModelView(BaseModelView): ...@@ -475,7 +475,7 @@ class ModelView(BaseModelView):
self.get_column_name(column.name) self.get_column_name(column.name)
) )
else: else:
if not isinstance(name, _compat.string_types): if not isinstance(name, string_types):
visible_name = self.get_column_name(name.property.key) visible_name = self.get_column_name(name.property.key)
else: else:
visible_name = self.get_column_name(name) visible_name = self.get_column_name(name)
...@@ -597,7 +597,7 @@ class ModelView(BaseModelView): ...@@ -597,7 +597,7 @@ class ModelView(BaseModelView):
""" """
# TODO: Preprocessing for joins # TODO: Preprocessing for joins
# Try to handle it as a string # Try to handle it as a string
if isinstance(sort_field, _compat.string_types): if isinstance(sort_field, string_types):
# Create automatic join against a table if column name # Create automatic join against a table if column name
# contains dot. # contains dot.
if '.' in sort_field: if '.' in sort_field:
...@@ -638,7 +638,7 @@ class ModelView(BaseModelView): ...@@ -638,7 +638,7 @@ class ModelView(BaseModelView):
if order is not None: if order is not None:
field, direction = order field, direction = order
if isinstance(field, _compat.string_types): if isinstance(field, string_types):
field = getattr(self.model, field) field = getattr(self.model, field)
return field, direction return field, direction
......
...@@ -5,7 +5,7 @@ from wtforms import form, fields, widgets ...@@ -5,7 +5,7 @@ from wtforms import form, fields, widgets
from flask.globals import _request_ctx_stack from flask.globals import _request_ctx_stack
from flask.ext.admin.babel import gettext, ngettext from flask.ext.admin.babel import gettext, ngettext
from flask.ext.admin import helpers as h from flask.ext.admin import helpers as h
from flask.ext.admin import _compat from flask.ext.admin._compat import text_type
# TODO: Use flask.ext.wtf if possible # TODO: Use flask.ext.wtf if possible
...@@ -92,7 +92,7 @@ class Select2Field(fields.SelectField): ...@@ -92,7 +92,7 @@ class Select2Field(fields.SelectField):
""" """
widget = Select2Widget() widget = Select2Widget()
def __init__(self, label=None, validators=None, coerce=_compat.text_type, def __init__(self, label=None, validators=None, coerce=text_type,
choices=None, allow_blank=False, blank_text=None, **kwargs): choices=None, allow_blank=False, blank_text=None, **kwargs):
super(Select2Field, self).__init__( super(Select2Field, self).__init__(
label, validators, coerce, choices, **kwargs label, validators, coerce, choices, **kwargs
......
...@@ -2,7 +2,7 @@ import itertools ...@@ -2,7 +2,7 @@ import itertools
from wtforms.fields import FieldList, FormField from wtforms.fields import FieldList, FormField
from flask.ext.admin import _compat from flask.ext.admin._compat import iteritems
from .widgets import InlineFieldListWidget, InlineFormWidget from .widgets import InlineFieldListWidget, InlineFormWidget
...@@ -83,7 +83,7 @@ class InlineModelFormField(FormField): ...@@ -83,7 +83,7 @@ class InlineModelFormField(FormField):
return getattr(self.form, self._pk).data return getattr(self.form, self._pk).data
def populate_obj(self, obj, name): def populate_obj(self, obj, name):
for name, field in _compat.iteritems(self.form._fields): for name, field in iteritems(self.form._fields):
if name != self._pk: if name != self._pk:
field.populate_obj(obj, name) field.populate_obj(obj, name)
......
import inspect import inspect
from flask.ext.admin.form import BaseForm from flask.ext.admin.form import BaseForm
from flask.ext.admin import _compat from flask.ext.admin._compat import iteritems
def converts(*args): def converts(*args):
...@@ -38,7 +38,7 @@ class InlineFormAdmin(object): ...@@ -38,7 +38,7 @@ class InlineFormAdmin(object):
if not hasattr(self, k): if not hasattr(self, k):
setattr(self, k, None) setattr(self, k, None)
for k, v in _compat.iteritems(kwargs): for k, v in iteritems(kwargs):
setattr(self, k, v) setattr(self, k, v)
def postprocess_form(self, form_class): def postprocess_form(self, form_class):
......
...@@ -4,7 +4,7 @@ import peewee ...@@ -4,7 +4,7 @@ import peewee
from wtforms import fields from wtforms import fields
from flask.ext.admin import _compat from flask.ext.admin._compat import iteritems
from flask.ext.admin.contrib.peeweemodel import ModelView from flask.ext.admin.contrib.peeweemodel import ModelView
from . import setup from . import setup
...@@ -14,7 +14,7 @@ class CustomModelView(ModelView): ...@@ -14,7 +14,7 @@ class CustomModelView(ModelView):
def __init__(self, model, def __init__(self, model,
name=None, category=None, endpoint=None, url=None, name=None, category=None, endpoint=None, url=None,
**kwargs): **kwargs):
for k, v in _compat.iteritems(kwargs): for k, v in iteritems(kwargs):
setattr(self, k, v) setattr(self, k, v)
super(CustomModelView, self).__init__(model, super(CustomModelView, self).__init__(model,
......
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