Repository URL to install this package:
|
Version:
4.0.102 ▾
|
ó
Xpö^c @ s d Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d d l
m Z d d l
m
Z d d l Z d d l m
Z
d d l m Z d d l m Z d d l m Z d e j f d
YZ d e f d YZ d
e j f d YZ e j Z e j Z e j Z e j Z d e j f d YZ d Z! d e j" f d YZ# d Z$ d Z% d d Z' d S( s$ Contego common internal object modeliÿÿÿÿN( t versionutils( t base( t exception( t objects( t fields( t utilst ContegoObjectRegistryc B s5 e Z g Z d Z e d Z e d Z RS( c C s t j | j } t t | j s@ t t | j | nF t j t t | j j } | | k r t t | j | n d S( N( R t convert_version_to_tuplet VERSIONt hasattrR t obj_namet setattrt getattr( t selft clst indext versiont cur_version( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyt registration_hook s c C s' | j t | | j j | | S( sµ Register a class as notification.
Use only to register concrete notification or payload classes,
do not register base classes intended for inheritance only.
( t register_ift Falset notification_classest append( R t notification_cls( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyt register_notification' s c C s% x | j D] } | j | q
Wd S( s² Register previously decorated notification as normal ovos.
This is not intended for production use but only for testing and
document generation purposes.
N( R t register( R R ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyt register_notification_objects1 s ( t __name__t
__module__R R t classmethodR R ( ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyR s
t ContegoPersistentObjectc B s` e Z d Z i e j d e d 6e j d e d 6e j d e d 6e j d e d 6Z RS( su Mixin class for Persistent objects.
This adds the fields that we use in common for most persistent objects.
t nullablet
created_att
updated_att
deleted_att defaultt deleted( R R t __doc__t
obj_fieldst
DateTimeFieldt Truet BooleanFieldR R ( ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyR : s t
ContegoObjectc B sM e Z d Z d Z d Z e d Z e j d Z e j d Z
RS( s\ Base class and object factory.
This forms the base of all objects that can be remoted or instantiated
via RPC. Simply defining a class that inherits from this base class
will make it remotely instantiatable. Objects should implement the
necessary "get" classmethod routines as well as "save" object methods
as appropriate.
t dmapi_objectt dmapic C s
t d S( sÊ A check that can be used to inhibit online migration behavior
This is usually used to check if all services that will be accessing
the db directly are ready for the new format.
N( t NotImplementedError( ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyt should_migrate_dataS s c c s, | j } | | _ z d VWd | | _ Xd S( N( t _context( R
t contextt original_context( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyt obj_alternate_context\ s
c c se | j d k r0 t j d d d | j n | j } | j j | _ z d VWd | | _ Xd S( s Context manager to make an object call as an admin.
This temporarily modifies the context embedded in an object to
be elevated() and restores it after the call completes. Example
usage:
with obj.obj_as_admin():
obj.save()
t methodt obj_as_admint objtypeN( R/ t NoneR t OrphanedObjectErrorR
t elevated( R
R1 ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyR4 f s ( R R R% t OBJ_SERIAL_NAMESPACEt OBJ_PROJECT_NAMESPACEt staticmethodR. t
contextlibt contextmanagerR2 R4 ( ( ( s6 /usr/lib/python2.7/dist-packages/dmapi/objects/base.pyR* F s
t ContegoObjectDictCompatc B s e Z d Z d Z RS( c c s>