I've created a patch that fixes two major python 2.6 -3 warnings ->
the callable and dict.has_key deprecation
Index: elixir/entity.py
===================================================================
--- elixir/entity.py (revision 442)
+++ elixir/entity.py (working copy)
@@ -127,7 +127,7 @@
modulename = entity.__module__.replace('.', '_')
tablename = "%s_%s" % (modulename, entity.__name__)
self.tablename = tablename.lower()
- elif callable(self.tablename):
+ elif hasattr(self.tablename,'__call__'):
self.tablename = self.tablename(entity)
if not self.identity:
@@ -140,7 +140,7 @@
raise Exception('You cannot use the "identity" option and
the '
'polymorphic_identity mapper option at
the same '
'time.')
- elif callable(self.identity):
+ elif hasattr(self.identity,'__call__'):
self.identity = self.identity(entity)
if self.polymorphic:
Index: elixir/ext/perform_ddl.py
===================================================================
--- elixir/ext/perform_ddl.py (revision 442)
+++ elixir/ext/perform_ddl.py (working copy)
@@ -66,7 +66,7 @@
def after_table(self):
statement = self.statement
- if callable(statement):
+ if hasattr(statement,'__call__'):
statement = statement()
if not isinstance(statement, list):
statement = [statement]
@@ -93,7 +93,7 @@
if columns is None:
columns = all_columns
data = self.data
- if callable(data):
+ if hasattr(data,'__call__'):
data = data()
insert = schema_item.insert()
connection.execute(insert,
Index: elixir/properties.py
===================================================================
--- elixir/properties.py (revision 442)
+++ elixir/properties.py (working copy)
@@ -151,7 +151,7 @@
self.kwargs = kwargs
def create_properties(self):
- if callable(self.prop):
+ if hasattr(self.prop,'__call__'):
prop_value = self.prop(self.entity.table.c)
else:
prop_value = self.prop
Index: elixir/relationships.py
===================================================================
--- elixir/relationships.py (revision 442)
+++ elixir/relationships.py (working copy)
@@ -457,7 +457,7 @@
for arg in ('primaryjoin', 'secondaryjoin', 'remote_side',
'foreign_keys'):
kwarg = kwargs.get(arg, None)
- if callable(kwarg):
+ if hasattr(kwarg,'__call__'):
kwargs[arg] = kwarg()
# viewonly relationships need to create "standalone"
relations (ie
Index: tests/test_m2o.py
===================================================================
--- tests/test_m2o.py (revision 442)
+++ tests/test_m2o.py (working copy)
@@ -64,8 +64,8 @@
setup_all(True)
- assert A.table.primary_key.columns.has_key('id')
- assert B.table.columns.has_key('a_id')
+ assert 'id' in A.table.primary_key.columns
+ assert 'a_id' in B.table.columns
a = A()
session.commit()
@@ -111,9 +111,9 @@
setup_all()
- assert A.table.primary_key.columns.has_key('name')
- assert B.table.primary_key.columns.has_key('a_name')
- assert C.table.primary_key.columns.has_key('b_a_name')
+ assert 'name' in A.table.primary_key.columns
+ assert 'a_name' in B.table.primary_key.columns
+ assert 'b_a_name' in C.table.primary_key.columns
def test_m2o_is_only_pk(self):
class A(Entity):
@@ -124,9 +124,9 @@
setup_all()
- assert A.table.primary_key.columns.has_key('id')
- assert B.table.primary_key.columns.has_key('a_id')
- assert not B.table.primary_key.columns.has_key('id')
+ assert 'id' in A.table.primary_key.columns
+ assert 'a_id' in B.table.primary_key.columns
+ assert 'id' not in B.table.primary_key.columns
def test_multi_pk_in_target(self):
class A(Entity):
@@ -143,17 +143,17 @@
setup_all()
- assert A.table.primary_key.columns.has_key('key1')
- assert A.table.primary_key.columns.has_key('key2')
+ assert 'key1' in A.table.primary_key.columns
+ assert 'key2' in A.table.primary_key.columns
- assert B.table.primary_key.columns.has_key('num')
- assert B.table.primary_key.columns.has_key('a_key1')
- assert B.table.primary_key.columns.has_key('a_key2')
+ assert 'num' in B.table.primary_key.columns
+ assert 'a_key1' in B.table.primary_key.columns
+ assert 'a_key2' in B.table.primary_key.columns
- assert C.table.primary_key.columns.has_key('num')
- assert C.table.primary_key.columns.has_key('b_num')
- assert C.table.primary_key.columns.has_key('b_a_key1')
- assert C.table.primary_key.columns.has_key('b_a_key2')
+ assert 'num' in C.table.primary_key.columns
+ assert 'b_num' in C.table.primary_key.columns
+ assert 'b_a_key1' in C.table.primary_key.columns
+ assert 'b_a_key2' in C.table.primary_key.columns
def test_cycle_but_use_alter(self):
class A(Entity):
@@ -167,10 +167,10 @@
setup_all()
- assert B.table.primary_key.columns.has_key('a_id')
- assert C.table.primary_key.columns.has_key('b_a_id')
- assert A.table.primary_key.columns.has_key('id')
- assert A.table.columns.has_key('c_b_a_id')
+ assert 'a_id' in B.table.primary_key.columns
+ assert 'b_a_id' in C.table.primary_key.columns
+ assert 'id' in A.table.primary_key.columns
+ assert 'c_b_a_id' in A.table.columns
def test_multi(self):
class A(Entity):
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"SQLElixir" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sqlelixir?hl=en
-~----------~----~----~----~------~----~------~--~---