in fxa/_utils.py [0:0]
def _match_shortname_scope(provided, required):
if required.startswith('https:'):
return False
prov_names = provided.split(':')
req_names = required.split(':')
# If we require :write, it must be provided.
if req_names[-1] == 'write':
if prov_names[-1] != 'write':
return False
req_names.pop()
prov_names.pop()
elif prov_names[-1] == 'write':
prov_names.pop()
# Provided names must be a prefix of required names.
if len(prov_names) > len(req_names):
return False
for (p, r) in zip(prov_names, req_names):
if p != r:
return False
# It matches!
return True