8aed12689b52a3fa9eacc5fbeb66db1e81a9a7d8
[myslice.git] / manifold / metadata.py
1 import json 
2
3 from manifold.manifoldapi import ManifoldAPI
4
5 class MetaData:
6
7     def __init__ (self, auth):
8         self.auth=auth
9         self.hash_by_subject={}
10
11     def fetch (self):
12         manifold_api = ManifoldAPI(self.auth)
13         fields = ['table', 'column.column',
14                   'column.description','column.header', 'column.title',
15                   'column.unit', 'column.info_type',
16                   'column.resource_type', 'column.value_type',
17                   'column.allowed_values', 'column.platforms.platform',
18                   'column.platforms.platform_url']
19         results = manifold_api.Get('metadata:table', [], [], fields)
20         self.hash_by_subject = dict ( [ (result['table'], result) for result in results ] )
21
22     def to_json(self):
23         return json.dumps(self.hash_by_subject)
24
25     def details_by_subject (self, subject):
26         return self.hash_by_subject[subject]
27
28     def sorted_fields_by_subject (self, subject):
29         return self.hash_by_subject[subject]['columns'].sort()
30