From: Hong Minhee Date: Fri, 12 Apr 2013 22:21:10 +0000 (+0900) Subject: callable() revided X-Git-Tag: rel_0_6_0~22^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecff68a428d0905ec0ca78f51301ef0ebb76a845;p=thirdparty%2Fsqlalchemy%2Falembic.git callable() revided --- diff --git a/alembic/compat.py b/alembic/compat.py index 6619cb44..b994eb58 100644 --- a/alembic/compat.py +++ b/alembic/compat.py @@ -19,6 +19,12 @@ else: binary_type = str text_type = unicode +if py3kwarning: + def callable(fn): + return hasattr(fn, '__call__') +else: + callable = callable + ################################################ # cross-compatible metaclass implementation diff --git a/alembic/ddl/impl.py b/alembic/ddl/impl.py index fbcec939..a7b6429d 100644 --- a/alembic/ddl/impl.py +++ b/alembic/ddl/impl.py @@ -2,14 +2,13 @@ try: import builtins except ImportError: import __builtin__ as builtins -import collections from sqlalchemy.sql.expression import _BindParamClause from sqlalchemy.ext.compiler import compiles from sqlalchemy import schema, text from sqlalchemy import types as sqltypes -from ..compat import string_types, text_type, with_metaclass +from ..compat import callable, string_types, text_type, with_metaclass from .. import util from . import base @@ -58,8 +57,7 @@ class DefaultImpl(with_metaclass(ImplMeta)): def static_output(self, text): text_ = text_type(text + '\n\n') self.output_buffer.write(text_) - if isinstance(getattr(self.output_buffer, 'flush', None), - collections.Callable): + if callable(getattr(self.output_buffer, 'flush', None)): self.output_buffer.flush() @property diff --git a/alembic/migration.py b/alembic/migration.py index fa28053b..28ee622d 100644 --- a/alembic/migration.py +++ b/alembic/migration.py @@ -1,4 +1,3 @@ -import collections import io import logging import sys @@ -7,6 +6,7 @@ from sqlalchemy import MetaData, Table, Column, String, literal_column from sqlalchemy import create_engine from sqlalchemy.engine import url as sqla_url +from .compat import callable from . import ddl, util log = logging.getLogger(__name__) @@ -275,7 +275,7 @@ class MigrationContext(object): if self._user_compare_type is False: return False - if isinstance(self._user_compare_type, collections.Callable): + if callable(self._user_compare_type): user_value = self._user_compare_type( self, inspector_column, @@ -297,7 +297,7 @@ class MigrationContext(object): if self._user_compare_server_default is False: return False - if isinstance(self._user_compare_server_default, collections.Callable): + if callable(self._user_compare_server_default): user_value = self._user_compare_server_default( self, inspector_column, diff --git a/alembic/util.py b/alembic/util.py index 4f223f76..708f19f6 100644 --- a/alembic/util.py +++ b/alembic/util.py @@ -4,7 +4,6 @@ try: import builtins except ImportError: import __builtin__ as builtins -import collections import sys import os import textwrap @@ -16,11 +15,13 @@ import uuid from mako.template import Template from sqlalchemy.engine import url +from sqlalchemy import __version__ + +from .compat import callable class CommandError(Exception): pass -from sqlalchemy import __version__ def _safe_int(value): try: return int(value) @@ -130,7 +131,7 @@ def create_module_class_proxy(cls, globals_, locals_): for methname in dir(cls): if not methname.startswith('_'): - if isinstance(getattr(cls, methname), collections.Callable): + if callable(getattr(cls, methname)): locals_[methname] = _create_op_proxy(methname) else: attr_names.add(methname)