3 warnings
.warn('pygr.Data is deprecated. Use "from pygr import worldbase" instead!',
4 DeprecationWarning, stacklevel
=2)
6 from pygr
import worldbase
7 from metabase
import ResourceServer
, dumps
, OneToManyRelation
, OneToOneRelation
,\
8 ManyToManyRelation
, WorldbaseNotPortableError
, WorldbaseNotFoundError
, \
9 WorldbaseMismatchError
, WorldbaseEmptyError
, WorldbaseReadOnlyError
, \
10 WorldbaseSchemaError
, WorldbaseNoModuleError
, ResourceZone
12 schema
= worldbase
.schema
# ROOT OF OUR SCHEMA NAMESPACE
14 # PROVIDE TOP-LEVEL NAMES IN OUR RESOURCE HIERARCHY
17 getResource
= worldbase
._mdb
# our metabase interface
18 addResource
= worldbase
._mdb
.add_resource
19 def addResourceDict(d
, layer
=None):
20 'queue a dict of name:object pairs for saving to specified db layer'
21 if layer
is not None: # use the named metabase specified by layer
22 mdb
= worldbase
._mdb
.zoneDict
[layer
] # KeyError if layer not found!
23 else: # use default MetabaseList
25 for k
,v
in d
.items(): # queue each resource in the dictionary
26 mdb
.add_resource(k
, v
)
28 addSchema
= worldbase
._mdb
.add_schema
29 deleteResource
= worldbase
._mdb
.delete_resource
30 dir = worldbase
._mdb
.dir
31 def newServer(*args
, **kwargs
):
32 return ResourceServer(worldbase
._mdb
, *args
, **kwargs
)
33 save
= worldbase
._mdb
.commit
34 rollback
= worldbase
._mdb
.rollback
35 list_pending
= worldbase
._mdb
.list_pending
36 loads
= worldbase
._mdb
.loads
37 update
= worldbase
._mdb
.update
38 clear_cache
= worldbase
._mdb
.clear_cache
40 # TOP-LEVEL NAMES FOR STANDARDIZED LAYERS
41 here
= ResourceZone(getResource
, 'here')
42 my
= ResourceZone(getResource
, 'my')
43 system
= ResourceZone(getResource
, 'system')
44 subdir
= ResourceZone(getResource
, 'subdir')
45 remote
= ResourceZone(getResource
, 'remote')
46 MySQL
= ResourceZone(getResource
, 'MySQL')
48 __all__
= ('Bio', 'schema', 'getResource', 'addResource', 'addSchema',
49 'deleteResource', 'dir', 'newServer', 'save', 'rollback',
50 'list_pending', 'loads', 'dumps', 'update', 'clear_cache',
51 'OneToManyRelation', 'ManyToManyRelation',
52 'OneToOneRelation', 'WorldbaseNotPortableError',
53 'WorldbaseNotFoundError', 'WorldbaseMismatchError',
54 'WorldbaseEmptyError', 'WorldbaseReadOnlyError',
55 'WorldbaseSchemaError', 'WorldbaseNoModuleError',
56 'here', 'my', 'system', 'subdir', 'remote', 'MySQL')