I'm a beginner in python, from the code below I found on twitter
how would you relegate the frozenset values to each of the set value to get the desired output? shoud the output not be a frozenset?
admin_permissions = frozenset(['view', 'edit', 'delete', 'add'])
editor_permissions = frozenset(['view', 'edit', 'add','deny'])
viewer_permissions = frozenset(['view'])
admins = {'Alice', 'Bob'}
editors = {'Bob', 'Charlie', 'Dave'}
viewers = {'Eve', 'Frank', 'Alice'}
user_permissions = {}
for user in admins:
user_permissions[user] = admin_permissions
for user in editors:
user_permissions.setdefault(user, frozenset()).union(editor_permissions)
for user in viewers:
user_permissions.setdefault(user, frozenset()).union(viewer_permissions)
print(user_permissions)
output is
{'Bob': frozenset({'edit', 'add', 'delete', 'view'}),
'Alice': frozenset({'edit', 'add', 'delete', 'view'}),
'Dave': frozenset(),
'Charlie': frozenset(),
'Frank': frozenset(),
'Eve': frozenset()
}
desired output
{'Bob': frozenset({'edit', 'add', 'delete', 'view', 'deny'}),
'Alice': frozenset({'edit', 'add', 'delete', 'view'}),
'Dave': frozenset({'edit', 'add', 'view', 'deny'}),
'Charlie': frozenset({'edit', 'add', 'view', 'deny'}),
'Frank': frozenset({'view'}),
'Eve': frozenset({'view'})
}