Skip to content

Commit d6fdc9e

Browse files
committed
add irresistibly cute rorable helper for get_datalist (SOFTWARE-4751)
it's just sugar, but for some reason i don't feel bad about using it here :)
1 parent 1871f3b commit d6fdc9e

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

osg-comanage-project-usermap.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,33 +106,44 @@ def get_co_person_identifiers(pid):
106106
return call_api("identifiers.json", copersonid=pid)
107107

108108

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)
111122

112123

113124
# api call results massagers
114125

115126
def get_osg_co_groups__map():
116127
#print("get_osg_co_groups__map()")
117-
data = get_datalist(get_osg_co_groups(), "CoGroups")
128+
data = get_osg_co_groups() | get_datalist("CoGroups")
118129
return { g["Id"]: g["Name"] for g in data }
119130

120131

121132
def co_group_is_ospool(gid):
122133
#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")
124135
return any( i["Type"] == "ospoolproject" for i in data )
125136

126137

127138
def get_co_group_members__pids(gid):
128139
#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")
130141
return [ m["Person"]["Id"] for m in data ]
131142

132143

133144
def get_co_person_osguser(pid):
134145
#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")
136147
typemap = { i["Type"]: i["Identifier"] for i in data }
137148
return typemap.get("osguser")
138149

0 commit comments

Comments
 (0)