From 01734edca2aed417577e8e521fbba0ad06b28e38 Mon Sep 17 00:00:00 2001 From: Hong Minhee Date: Sat, 13 Apr 2013 07:03:25 +0900 Subject: [PATCH] Use collections.Callable ABC instead of callable() predicate --- alembic/ddl/impl.py | 4 +++- alembic/migration.py | 5 +++-- alembic/util.py | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/alembic/ddl/impl.py b/alembic/ddl/impl.py index ab67e0c7..fbcec939 100644 --- a/alembic/ddl/impl.py +++ b/alembic/ddl/impl.py @@ -2,6 +2,7 @@ try: import builtins except ImportError: import __builtin__ as builtins +import collections from sqlalchemy.sql.expression import _BindParamClause from sqlalchemy.ext.compiler import compiles @@ -57,7 +58,8 @@ class DefaultImpl(with_metaclass(ImplMeta)): def static_output(self, text): text_ = text_type(text + '\n\n') self.output_buffer.write(text_) - if callable(getattr(self.output_buffer, 'flush', None)): + if isinstance(getattr(self.output_buffer, 'flush', None), + collections.Callable): self.output_buffer.flush() @property diff --git a/alembic/migration.py b/alembic/migration.py index bf8e9380..fa28053b 100644 --- a/alembic/migration.py +++ b/alembic/migration.py @@ -1,3 +1,4 @@ +import collections import io import logging import sys @@ -274,7 +275,7 @@ class MigrationContext(object): if self._user_compare_type is False: return False - if callable(self._user_compare_type): + if isinstance(self._user_compare_type, collections.Callable): user_value = self._user_compare_type( self, inspector_column, @@ -296,7 +297,7 @@ class MigrationContext(object): if self._user_compare_server_default is False: return False - if callable(self._user_compare_server_default): + if isinstance(self._user_compare_server_default, collections.Callable): user_value = self._user_compare_server_default( self, inspector_column, diff --git a/alembic/util.py b/alembic/util.py index 6111d202..4f223f76 100644 --- a/alembic/util.py +++ b/alembic/util.py @@ -4,6 +4,7 @@ try: import builtins except ImportError: import __builtin__ as builtins +import collections import sys import os import textwrap @@ -129,7 +130,7 @@ def create_module_class_proxy(cls, globals_, locals_): for methname in dir(cls): if not methname.startswith('_'): - if callable(getattr(cls, methname)): + if isinstance(getattr(cls, methname), collections.Callable): locals_[methname] = _create_op_proxy(methname) else: attr_names.add(methname) -- 2.47.3