Changeset 463
- Timestamp:
- 09/24/09 17:04:35 (3 years ago)
- Files:
-
- 1 modified
-
elixir/trunk/elixir/entity.py (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
elixir/trunk/elixir/entity.py
r448 r463 27 27 28 28 DEBUG = False 29 try: 30 from sqlalchemy.orm import EXT_PASS 31 SA05orlater = False 32 except ImportError: 33 SA05orlater = True 29 34 30 35 __doc_all__ = ['Entity', 'EntityMeta'] … … 220 225 defined up to this point. 221 226 ''' 222 if self.entity.table :227 if self.entity.table is not None: 223 228 return 224 229 … … 256 261 257 262 #FIXME: use the public equivalent of _get_colspec when 258 # available263 # available (e.target_fullname) 259 264 for con in self.parent._descriptor.constraints: 260 265 self.add_constraint( 261 266 ForeignKeyConstraint( 262 [ c.key for c in con.columns],267 [e.parent.key for e in con.elements], 263 268 [e._get_colspec() for e in con.elements], 264 269 name=con.name, #TODO: modify it … … 487 492 # get one in any case. 488 493 table = type.__getattribute__(self.entity, 'table') 489 if table :494 if table is not None: 490 495 if check_duplicate and col.key in table.columns.keys(): 491 496 raise Exception("Column '%s' already exist in table '%s' ! " % … … 499 504 500 505 table = self.entity.table 501 if table :506 if table is not None: 502 507 table.append_constraint(constraint) 503 508 … … 591 596 592 597 def columns(self): 593 if self.entity.table :598 if self.entity.table is not None: 594 599 return self.entity.table.columns 595 600 else: … … 616 621 617 622 def table(self): 618 if self.entity.table :623 if self.entity.table is not None: 619 624 return self.entity.table 620 625 else: … … 827 832 # - table_iterator method in MetaData class in sqlalchemy/schema.py 828 833 # - visit_metadata method in sqlalchemy/ansisql.py 829 original_table_iterator = md.table_iterator 830 if not hasattr(original_table_iterator, 831 '_non_elixir_patched_iterator'): 832 def table_iterator(*args, **kwargs): 833 elixir.setup_all() 834 return original_table_iterator(*args, **kwargs) 835 table_iterator.__doc__ = original_table_iterator.__doc__ 836 table_iterator._non_elixir_patched_iterator = \ 837 original_table_iterator 838 md.table_iterator = table_iterator 834 if SA05orlater: 835 warnings.warn( 836 "The automatic setup via metadata.create_all() through " 837 "the autosetup option doesn't work with SQLAlchemy 0.5 and later!") 838 else: 839 # SA 0.6 does not use table_iterator anymore (it was already deprecated 840 # since SA 0.5.0) 841 original_table_iterator = md.table_iterator 842 if not hasattr(original_table_iterator, 843 '_non_elixir_patched_iterator'): 844 def table_iterator(*args, **kwargs): 845 elixir.setup_all() 846 return original_table_iterator(*args, **kwargs) 847 table_iterator.__doc__ = original_table_iterator.__doc__ 848 table_iterator._non_elixir_patched_iterator = \ 849 original_table_iterator 850 md.table_iterator = table_iterator 839 851 840 852 #TODO: we might want to add all columns that will be available as … … 866 878 867 879 # restore original table iterator if not done already 868 if hasattr(md.table_iterator, '_non_elixir_patched_iterator'): 869 md.table_iterator = \ 870 md.table_iterator._non_elixir_patched_iterator 880 if not SA05orlater: 881 if hasattr(md.table_iterator, '_non_elixir_patched_iterator'): 882 md.table_iterator = \ 883 md.table_iterator._non_elixir_patched_iterator 871 884 872 885 del cls._has_triggers
