File tree 1 file changed +20
-10
lines changed 1 file changed +20
-10
lines changed Original file line number Diff line number Diff line change 1
- def compile_metadata (catalog ):
2
- md_dict = {}
3
- for mdata in catalog .get ('metadata' ):
4
- breadcrumb = tuple (mdata ['breadcrumb' ])
5
- if md_dict .get (breadcrumb ) is None :
6
- md_dict [breadcrumb ] = mdata .get ('metadata' )
7
- else :
8
- md_dict [breadcrumb ].update (mdata .get ('metadata' ))
9
-
10
- return md_dict
1
+ def deserialize (raw_metadata ):
2
+ return {tuple (breadcrumb ): metadata for breadcrumb , metadata in raw_metadata }
3
+
4
+ def serialize (compiled_metadata ):
5
+ return list (compiled_metadata .items ())
6
+
7
+ def delete (compiled_metadata , breadcrumb , k ):
8
+ del compiled_metadata [breadcrumb ][k ]
9
+
10
+ def write (compiled_metadata , breadcrumb , k , val ):
11
+ if val is None :
12
+ raise Exception ()
13
+ if breadcrumb in compiled_metadata :
14
+ compiled_metadata .get (breadcrumb ).update ({k : val })
15
+ else :
16
+ compiled_metadata [breadcrumb ] = {k : val }
17
+ return compiled_metadata
18
+
19
+ def get (compiled_metadata , breadcrumb , k ):
20
+ return compiled_metadata .get (breadcrumb , {}).get (k )
You can’t perform that action at this time.
0 commit comments