@@ -106,33 +106,44 @@ def get_co_person_identifiers(pid):
106
106
return call_api ("identifiers.json" , copersonid = pid )
107
107
108
108
109
- def get_datalist (data , listname ):
110
- return data [listname ] if data else []
109
+ # @rorable
110
+ # def foo(x): ...
111
+ # x | foo -> foo(x)
112
+ class rorable :
113
+ def __init__ (self , f ): self .f = f
114
+ def __call__ (self , * a , ** kw ): return self .f (* a , ** kw )
115
+ def __ror__ (self , x ): return self .f (x )
116
+
117
+
118
+ def get_datalist (listname ):
119
+ def get (data ):
120
+ return data [listname ] if data else []
121
+ return rorable (get )
111
122
112
123
113
124
# api call results massagers
114
125
115
126
def get_osg_co_groups__map ():
116
127
#print("get_osg_co_groups__map()")
117
- data = get_datalist ( get_osg_co_groups (), "CoGroups" )
128
+ data = get_osg_co_groups () | get_datalist ( "CoGroups" )
118
129
return { g ["Id" ]: g ["Name" ] for g in data }
119
130
120
131
121
132
def co_group_is_ospool (gid ):
122
133
#print(f"co_group_is_ospool({gid})")
123
- data = get_datalist ( get_co_group_identifiers (gid ), "Identifiers" )
134
+ data = get_co_group_identifiers (gid ) | get_datalist ( "Identifiers" )
124
135
return any ( i ["Type" ] == "ospoolproject" for i in data )
125
136
126
137
127
138
def get_co_group_members__pids (gid ):
128
139
#print(f"get_co_group_members__pids({gid})")
129
- data = get_datalist ( get_co_group_members (gid ), "CoGroupMembers" )
140
+ data = get_co_group_members (gid ) | get_datalist ( "CoGroupMembers" )
130
141
return [ m ["Person" ]["Id" ] for m in data ]
131
142
132
143
133
144
def get_co_person_osguser (pid ):
134
145
#print(f"get_co_person_osguser({pid})")
135
- data = get_datalist ( get_co_person_identifiers (pid ), "Identifiers" )
146
+ data = get_co_person_identifiers (pid ) | get_datalist ( "Identifiers" )
136
147
typemap = { i ["Type" ]: i ["Identifier" ] for i in data }
137
148
return typemap .get ("osguser" )
138
149
0 commit comments