|
Revision 391, 0.9 kB
(checked in by ged, 5 years ago)
|
|
follow SA on the rename of on_reconstitute to reconstructor in SA0.5 trunk
|
| Line | |
|---|
| 1 | __all__ = [ |
|---|
| 2 | 'before_insert', |
|---|
| 3 | 'after_insert', |
|---|
| 4 | 'before_update', |
|---|
| 5 | 'after_update', |
|---|
| 6 | 'before_delete', |
|---|
| 7 | 'after_delete', |
|---|
| 8 | 'reconstructor' |
|---|
| 9 | ] |
|---|
| 10 | |
|---|
| 11 | def create_decorator(event_name): |
|---|
| 12 | def decorator(func): |
|---|
| 13 | if not hasattr(func, '_elixir_events'): |
|---|
| 14 | func._elixir_events = [] |
|---|
| 15 | func._elixir_events.append(event_name) |
|---|
| 16 | return func |
|---|
| 17 | return decorator |
|---|
| 18 | |
|---|
| 19 | before_insert = create_decorator('before_insert') |
|---|
| 20 | after_insert = create_decorator('after_insert') |
|---|
| 21 | before_update = create_decorator('before_update') |
|---|
| 22 | after_update = create_decorator('after_update') |
|---|
| 23 | before_delete = create_decorator('before_delete') |
|---|
| 24 | after_delete = create_decorator('after_delete') |
|---|
| 25 | try: |
|---|
| 26 | from sqlalchemy.orm import reconstructor |
|---|
| 27 | except ImportError: |
|---|
| 28 | def reconstructor(func): |
|---|
| 29 | raise Exception('The reconstructor method decorator is only ' |
|---|
| 30 | 'available with SQLAlchemy 0.5 and later') |
|---|