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
-~----------~----~----~----~------~----~------~--~---

Reply via email to