]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
callable() revided
authorHong Minhee <minhee@dahlia.kr>
Fri, 12 Apr 2013 22:21:10 +0000 (07:21 +0900)
committerHong Minhee <minhee@dahlia.kr>
Fri, 12 Apr 2013 22:21:10 +0000 (07:21 +0900)
alembic/compat.py
alembic/ddl/impl.py
alembic/migration.py
alembic/util.py

index 6619cb44a59be3b12f7e54221beb27ac1ee3ca10..b994eb5856033b67717d4896092cd00b6ced910c 100644 (file)
@@ -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
index fbcec939045f15270264db5152fc7e4092d770d2..a7b6429df027fb3b6e2fe426411713b4ff3a998a 100644 (file)
@@ -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
index fa28053bac80aab1f1b305385851cf0c60dab5fc..28ee622ded3f6376d836486e5ed2b764d49c4f8c 100644 (file)
@@ -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,
index 4f223f762f0a72e796c40b92be8b4a1de3cf7d5c..708f19f65df276f62c6e441ef042f9b7f6c4564c 100644 (file)
@@ -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)