gam7 7.5.18__py3-none-any.whl → 7.5.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- gam/__init__.py +78 -32
- gam/gamlib/glclargs.py +1 -0
- {gam7-7.5.18.dist-info → gam7-7.5.20.dist-info}/METADATA +1 -1
- {gam7-7.5.18.dist-info → gam7-7.5.20.dist-info}/RECORD +7 -7
- {gam7-7.5.18.dist-info → gam7-7.5.20.dist-info}/WHEEL +0 -0
- {gam7-7.5.18.dist-info → gam7-7.5.20.dist-info}/entry_points.txt +0 -0
- {gam7-7.5.18.dist-info → gam7-7.5.20.dist-info}/licenses/LICENSE +0 -0
gam/__init__.py
CHANGED
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.05.
|
|
28
|
+
__version__ = '7.05.20'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -1723,6 +1723,16 @@ def getREPattern(flags=0):
|
|
|
1723
1723
|
return validateREPattern(patstr, flags)
|
|
1724
1724
|
missingArgumentExit(Cmd.OB_RE_PATTERN)
|
|
1725
1725
|
|
|
1726
|
+
def getREPatternReplacement(flags=0):
|
|
1727
|
+
pattern = getREPattern(flags)
|
|
1728
|
+
replacement = getString(Cmd.OB_STRING, minLen=0)
|
|
1729
|
+
try:
|
|
1730
|
+
re.sub(pattern, replacement, '')
|
|
1731
|
+
return (pattern, replacement)
|
|
1732
|
+
except re.error as e:
|
|
1733
|
+
Cmd.Backup()
|
|
1734
|
+
usageErrorExit(f'{Cmd.OB_RE_REPLACEMENT} {Msg.ERROR}: {e}')
|
|
1735
|
+
|
|
1726
1736
|
def getSheetEntity(allowBlankSheet):
|
|
1727
1737
|
if Cmd.ArgumentsRemaining():
|
|
1728
1738
|
sheet = Cmd.Current()
|
|
@@ -14517,7 +14527,13 @@ def _initTagReplacements():
|
|
|
14517
14527
|
'fieldsSet': set(), 'fields': '',
|
|
14518
14528
|
'schemasSet': set(), 'customFieldMask': None}
|
|
14519
14529
|
|
|
14520
|
-
def _getTagReplacement(tagReplacements, allowSubs):
|
|
14530
|
+
def _getTagReplacement(myarg, tagReplacements, allowSubs):
|
|
14531
|
+
if myarg == 'replace':
|
|
14532
|
+
trregex = None
|
|
14533
|
+
elif myarg == 'replaceregex':
|
|
14534
|
+
trregex = getREPatternReplacement(re.IGNORECASE)
|
|
14535
|
+
else:
|
|
14536
|
+
return False
|
|
14521
14537
|
matchTag = getString(Cmd.OB_TAG)
|
|
14522
14538
|
matchReplacement = getString(Cmd.OB_STRING, minLen=0)
|
|
14523
14539
|
if matchReplacement.startswith('field:'):
|
|
@@ -14562,7 +14578,8 @@ def _getTagReplacement(tagReplacements, allowSubs):
|
|
|
14562
14578
|
tagReplacements['fieldsSet'].add(field)
|
|
14563
14579
|
tagReplacements['fields'] = ','.join(tagReplacements['fieldsSet'])
|
|
14564
14580
|
tagReplacements['tags'][matchTag] = {'field': field, 'subfield': subfield,
|
|
14565
|
-
'matchfield': matchfield, 'matchvalue': matchvalue, 'value': ''
|
|
14581
|
+
'matchfield': matchfield, 'matchvalue': matchvalue, 'value': '',
|
|
14582
|
+
'trregex': trregex}
|
|
14566
14583
|
if field == 'locations' and subfield == 'buildingName':
|
|
14567
14584
|
_makeBuildingIdNameMap()
|
|
14568
14585
|
elif matchReplacement.startswith('schema:'):
|
|
@@ -14580,15 +14597,21 @@ def _getTagReplacement(tagReplacements, allowSubs):
|
|
|
14580
14597
|
tagReplacements['fields'] = ','.join(tagReplacements['fieldsSet'])
|
|
14581
14598
|
tagReplacements['schemasSet'].add(schemaName)
|
|
14582
14599
|
tagReplacements['customFieldMask'] = ','.join(tagReplacements['schemasSet'])
|
|
14583
|
-
tagReplacements['tags'][matchTag] = {'schema': schemaName, 'schemafield': schemaField, 'value': ''
|
|
14600
|
+
tagReplacements['tags'][matchTag] = {'schema': schemaName, 'schemafield': schemaField, 'value': '',
|
|
14601
|
+
'trregex': trregex}
|
|
14584
14602
|
elif ((matchReplacement.find('#') >= 0) and
|
|
14585
14603
|
(matchReplacement.find('#user#') >= 0) or (matchReplacement.find('#email#') >= 0) or (matchReplacement.find('#username#') >= 0)):
|
|
14586
14604
|
if not allowSubs:
|
|
14587
14605
|
usageErrorExit(Msg.USER_SUBS_NOT_ALLOWED_TAG_REPLACEMENT)
|
|
14588
14606
|
tagReplacements['subs'] = True
|
|
14589
|
-
tagReplacements['tags'][matchTag] = {'template': matchReplacement, 'value': ''
|
|
14607
|
+
tagReplacements['tags'][matchTag] = {'template': matchReplacement, 'value': '',
|
|
14608
|
+
'trregex': trregex}
|
|
14590
14609
|
else:
|
|
14591
|
-
|
|
14610
|
+
if trregex is None:
|
|
14611
|
+
tagReplacements['tags'][matchTag] = {'value': matchReplacement}
|
|
14612
|
+
else:
|
|
14613
|
+
tagReplacements['tags'][matchTag] = {'value': re.sub(trregex[0], trregex[1], matchReplacement)}
|
|
14614
|
+
return True
|
|
14592
14615
|
|
|
14593
14616
|
def _getTagReplacementFieldValues(user, i, count, tagReplacements, results=None):
|
|
14594
14617
|
if results is None:
|
|
@@ -14670,6 +14693,9 @@ def _getTagReplacementFieldValues(user, i, count, tagReplacements, results=None)
|
|
|
14670
14693
|
tag['value'] = str(results.get('customSchemas', {}).get(tag['schema'], {}).get(tag['schemafield'], ''))
|
|
14671
14694
|
elif tag.get('template'):
|
|
14672
14695
|
tag['value'] = _substituteForUser(tag['template'], user, userName)
|
|
14696
|
+
trregex = tag.get('trregex', None)
|
|
14697
|
+
if trregex is not None:
|
|
14698
|
+
tag['value'] = re.sub(trregex[0], trregex[1], tag['value'])
|
|
14673
14699
|
|
|
14674
14700
|
RTL_PATTERN = re.compile(r'(?s){RTL}.*?{/RTL}')
|
|
14675
14701
|
RT_PATTERN = re.compile(r'(?s){RT}.*?{/RT}')
|
|
@@ -14922,7 +14948,9 @@ def getRecipients():
|
|
|
14922
14948
|
# gam sendemail [recipient|to] <RecipientEntity> [from <EmailAddress>] [mailbox <EmailAddress>] [replyto <EmailAddress>]
|
|
14923
14949
|
# [cc <RecipientEntity>] [bcc <RecipientEntity>] [singlemessage]
|
|
14924
14950
|
# [subject <String>]
|
|
14925
|
-
# [<MessageContent>]
|
|
14951
|
+
# [<MessageContent>]
|
|
14952
|
+
# (replace <Tag> <String>)*
|
|
14953
|
+
# (replaceregex <RegularExpression> <String> <Tag> <String>)*
|
|
14926
14954
|
# [html [<Boolean>]] (attach <FileName> [charset <CharSet>])*
|
|
14927
14955
|
# (embedimage <FileName> <String>)*
|
|
14928
14956
|
# [newuser <EmailAddress> firstname|givenname <String> lastname|familyname <string> password <Password>]
|
|
@@ -14930,7 +14958,9 @@ def getRecipients():
|
|
|
14930
14958
|
# gam <UserTypeEntity> sendemail recipient <RecipientEntity> [replyto <EmailAddress>]
|
|
14931
14959
|
# [cc <RecipientEntity>] [bcc <RecipientEntity>] [singlemessage]
|
|
14932
14960
|
# [subject <String>]
|
|
14933
|
-
# [<MessageContent>]
|
|
14961
|
+
# [<MessageContent>]
|
|
14962
|
+
# (replace <Tag> <String>)*
|
|
14963
|
+
# (replaceregex <RegularExpression> <String> <Tag> <String>)*
|
|
14934
14964
|
# [html [<Boolean>]] (attach <FileName> [charset <CharSet>])*
|
|
14935
14965
|
# (embedimage <FileName> <String>)*
|
|
14936
14966
|
# [newuser <EmailAddress> firstname|givenname <String> lastname|familyname <string> password <Password>]
|
|
@@ -14938,7 +14968,9 @@ def getRecipients():
|
|
|
14938
14968
|
# gam <UserTypeEntity> sendemail from <EmailAddress> [replyto <EmailAddress>]
|
|
14939
14969
|
# [cc <RecipientEntity>] [bcc <RecipientEntity>] [singlemessage]
|
|
14940
14970
|
# [subject <String>]
|
|
14941
|
-
# [<MessageContent>]
|
|
14971
|
+
# [<MessageContent>]
|
|
14972
|
+
# (replace <Tag> <String>)*
|
|
14973
|
+
# (replaceregex <RegularExpression> <String> <Tag> <String>)*
|
|
14942
14974
|
# [html [<Boolean>]] (attach <FileName> [charset <CharSet>])*
|
|
14943
14975
|
# (embedimage <FileName> <String>)*
|
|
14944
14976
|
# [newuser <EmailAddress> firstname|givenname <String> lastname|familyname <string> password <Password>]
|
|
@@ -15001,8 +15033,8 @@ def doSendEmail(users=None):
|
|
|
15001
15033
|
body['name']['familyName'] = getString(Cmd.OB_STRING, minLen=0, maxLen=60)
|
|
15002
15034
|
elif myarg in {'password', 'notifypassword'}:
|
|
15003
15035
|
body['password'] = notify['password'] = getString(Cmd.OB_PASSWORD, maxLen=100)
|
|
15004
|
-
elif myarg
|
|
15005
|
-
|
|
15036
|
+
elif _getTagReplacement(myarg, tagReplacements, False):
|
|
15037
|
+
pass
|
|
15006
15038
|
elif myarg == 'attach':
|
|
15007
15039
|
attachments.append((getFilename(), getCharSet()))
|
|
15008
15040
|
elif myarg == 'embedimage':
|
|
@@ -38532,7 +38564,7 @@ def _getCalendarEventAttribute(myarg, body, parameters, function):
|
|
|
38532
38564
|
elif myarg == 'description':
|
|
38533
38565
|
body['description'] = getStringWithCRsNLs()
|
|
38534
38566
|
elif function == 'update' and myarg == 'replacedescription':
|
|
38535
|
-
parameters['replaceDescription'].append((
|
|
38567
|
+
parameters['replaceDescription'].append(getREPatternReplacement(re.IGNORECASE))
|
|
38536
38568
|
elif myarg == 'location':
|
|
38537
38569
|
body['location'] = getString(Cmd.OB_STRING, minLen=0)
|
|
38538
38570
|
elif myarg == 'source':
|
|
@@ -42835,8 +42867,8 @@ def getUserAttributes(cd, updateCmd, noUid=False):
|
|
|
42835
42867
|
notify['mailbox'] = getString(Cmd.OB_EMAIL_ADDRESS)
|
|
42836
42868
|
elif PwdOpts.ProcessArgument(myarg, notify, notFoundBody):
|
|
42837
42869
|
pass
|
|
42838
|
-
elif myarg
|
|
42839
|
-
|
|
42870
|
+
elif _getTagReplacement(myarg, tagReplacements, True):
|
|
42871
|
+
pass
|
|
42840
42872
|
elif myarg == 'admin':
|
|
42841
42873
|
value = getBoolean()
|
|
42842
42874
|
if updateCmd or value:
|
|
@@ -43253,9 +43285,9 @@ def createUserAddAliases(cd, user, aliasList, i, count):
|
|
|
43253
43285
|
# [from <EmailAaddress>]
|
|
43254
43286
|
# [replyto <EmailAaddress>]
|
|
43255
43287
|
# [<NotifyMessageContent>]
|
|
43256
|
-
# (replace <Tag> <UserReplacement>)*
|
|
43288
|
+
# (replace <Tag> <UserReplacement>)*
|
|
43289
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*]
|
|
43257
43290
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
43258
|
-
# [verifynotinvitable]
|
|
43259
43291
|
# [addnumericsuffixonduplicate <Number>]
|
|
43260
43292
|
def doCreateUser():
|
|
43261
43293
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
@@ -43354,8 +43386,9 @@ def verifyUserPrimaryEmail(cd, user, createIfNotFound, i, count):
|
|
|
43354
43386
|
# [notifypassword <String>]
|
|
43355
43387
|
# [from <EmailAaddress>]
|
|
43356
43388
|
# [replyto <EmailAaddress>]
|
|
43357
|
-
# [<NotifyMessageContent>
|
|
43358
|
-
#
|
|
43389
|
+
# [<NotifyMessageContent>
|
|
43390
|
+
# (replace <Tag> <UserReplacement>)*
|
|
43391
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*]
|
|
43359
43392
|
# [notifyonupdate [<Boolean>]]
|
|
43360
43393
|
# [logpassword <FileName>] [ignorenullpassword]
|
|
43361
43394
|
def updateUsers(entityList):
|
|
@@ -52803,7 +52836,7 @@ def getDriveFileAttribute(myarg, body, parameters, updateCmd):
|
|
|
52803
52836
|
elif myarg =='stripnameprefix':
|
|
52804
52837
|
parameters[DFA_STRIPNAMEPREFIX] = getString(Cmd.OB_STRING, minLen=0)
|
|
52805
52838
|
elif myarg == 'replacefilename':
|
|
52806
|
-
parameters[DFA_REPLACEFILENAME].append((
|
|
52839
|
+
parameters[DFA_REPLACEFILENAME].append(getREPatternReplacement(re.IGNORECASE))
|
|
52807
52840
|
elif myarg in {'convert', 'ocr'}:
|
|
52808
52841
|
deprecatedArgument(myarg)
|
|
52809
52842
|
stderrWarningMsg(Msg.USE_MIMETYPE_TO_SPECIFY_GOOGLE_FORMAT)
|
|
@@ -58360,7 +58393,7 @@ def getCopyMoveOptions(myarg, copyMoveOptions):
|
|
|
58360
58393
|
elif myarg =='stripnameprefix':
|
|
58361
58394
|
copyMoveOptions['stripNamePrefix'] = getString(Cmd.OB_STRING, minLen=0)
|
|
58362
58395
|
elif myarg == 'replacefilename':
|
|
58363
|
-
copyMoveOptions['replaceFilename'].append((
|
|
58396
|
+
copyMoveOptions['replaceFilename'].append(getREPatternReplacement(re.IGNORECASE))
|
|
58364
58397
|
elif myarg == 'showpermissionmessages':
|
|
58365
58398
|
copyMoveOptions['showPermissionMessages'] = getBoolean()
|
|
58366
58399
|
elif myarg == 'sendemailifrequired':
|
|
@@ -69991,8 +70024,8 @@ def _draftImportInsertMessage(users, operation):
|
|
|
69991
70024
|
internalDateSource = 'dateHeader'
|
|
69992
70025
|
if checkArgumentPresent('emlutf8'):
|
|
69993
70026
|
emlEncoding = UTF8
|
|
69994
|
-
elif myarg
|
|
69995
|
-
|
|
70027
|
+
elif _getTagReplacement(myarg, tagReplacements, True):
|
|
70028
|
+
pass
|
|
69996
70029
|
elif operation in IMPORT_INSERT and myarg == 'addlabel':
|
|
69997
70030
|
addLabelNames.append(getString(Cmd.OB_LABEL_NAME, minLen=1))
|
|
69998
70031
|
elif operation in IMPORT_INSERT and myarg == 'labels':
|
|
@@ -70127,7 +70160,9 @@ def _draftImportInsertMessage(users, operation):
|
|
|
70127
70160
|
userGmailServiceNotEnabledWarning(user, i, count)
|
|
70128
70161
|
|
|
70129
70162
|
# gam <UserTypeEntity> draft message
|
|
70130
|
-
# <MessageContent>
|
|
70163
|
+
# <MessageContent>
|
|
70164
|
+
# (replace <Tag> <UserReplacement>)*
|
|
70165
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*
|
|
70131
70166
|
# (<SMTPDateHeader> <Time>)* (<SMTPHeader> <String>)* (header <String> <String>)*
|
|
70132
70167
|
# (attach <FileName> [charset <CharSet>])*
|
|
70133
70168
|
# (embedimage <FileName> <String>)*
|
|
@@ -70135,7 +70170,9 @@ def draftMessage(users):
|
|
|
70135
70170
|
_draftImportInsertMessage(users, 'draft')
|
|
70136
70171
|
|
|
70137
70172
|
# gam <UserTypeEntity> import message
|
|
70138
|
-
# <MessageContent>
|
|
70173
|
+
# <MessageContent>
|
|
70174
|
+
# (replace <Tag> <UserReplacement>)*
|
|
70175
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*
|
|
70139
70176
|
# (<SMTPDateHeader> <Time>)* (<SMTPHeader> <String>)* (header <String> <String>)*
|
|
70140
70177
|
# (addlabel <LabelName>)* [labels <LabelNameList>]
|
|
70141
70178
|
# (attach <FileName> [charset <CharSet>])*
|
|
@@ -70145,7 +70182,9 @@ def importMessage(users):
|
|
|
70145
70182
|
_draftImportInsertMessage(users, 'import')
|
|
70146
70183
|
|
|
70147
70184
|
# gam <UserTypeEntity> insert message
|
|
70148
|
-
# <MessageContent>
|
|
70185
|
+
# <MessageContent>
|
|
70186
|
+
# (replace <Tag> <UserReplacement>)*
|
|
70187
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*
|
|
70149
70188
|
# (<SMTPDateHeader> <Time>)* (<SMTPHeader> <String>)* (header <String> <String>)*
|
|
70150
70189
|
# (addlabel <LabelName>)* [labels <LabelNameList>]
|
|
70151
70190
|
# (attach <FileName> [charset <CharSet>])*
|
|
@@ -72432,8 +72471,8 @@ def _processSendAs(user, i, count, entityType, emailAddress, j, jcount, gmail, f
|
|
|
72432
72471
|
return userDefined
|
|
72433
72472
|
|
|
72434
72473
|
def getSendAsAttributes(myarg, body, tagReplacements):
|
|
72435
|
-
if myarg
|
|
72436
|
-
|
|
72474
|
+
if _getTagReplacement(myarg, tagReplacements, True):
|
|
72475
|
+
pass
|
|
72437
72476
|
elif myarg == 'name':
|
|
72438
72477
|
body['displayName'] = getString(Cmd.OB_NAME, minLen=0)
|
|
72439
72478
|
elif myarg == 'replyto':
|
|
@@ -72452,13 +72491,17 @@ SMTPMSA_SECURITY_MODES = ['none', 'ssl', 'starttls']
|
|
|
72452
72491
|
SMTPMSA_REQUIRED_FIELDS = ['host', 'port', 'username', 'password']
|
|
72453
72492
|
|
|
72454
72493
|
# gam <UserTypeEntity> [create] sendas <EmailAddress> [name] <String>
|
|
72455
|
-
# [<SendAsContent>
|
|
72494
|
+
# [<SendAsContent>
|
|
72495
|
+
# (replace <Tag> <UserReplacement>)*
|
|
72496
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*]
|
|
72456
72497
|
# [html [<Boolean>]] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
|
|
72457
72498
|
# [smtpmsa.host <SMTPHostName> smtpmsa.port 25|465|587
|
|
72458
72499
|
# smtpmsa.username <UserName> smtpmsa.password <Password>
|
|
72459
72500
|
# [smtpmsa.securitymode none|ssl|starttls]]
|
|
72460
72501
|
# gam <UserTypeEntity> update sendas <EmailAddress> [name <String>]
|
|
72461
|
-
# [<SendAsContent>
|
|
72502
|
+
# [<SendAsContent>
|
|
72503
|
+
# (replace <Tag> <UserReplacement>)*
|
|
72504
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*]
|
|
72462
72505
|
# [html [<Boolean>]] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
|
|
72463
72506
|
def createUpdateSendAs(users):
|
|
72464
72507
|
updateCmd = Act.Get() == Act.UPDATE
|
|
@@ -73295,6 +73338,7 @@ def printShowCSEKeyPairs(users):
|
|
|
73295
73338
|
# gam <UserTypeEntity> signature|sig
|
|
73296
73339
|
# <SignatureContent>
|
|
73297
73340
|
# (replace <Tag> <String>)*
|
|
73341
|
+
# (replaceregex <RegularExpression> <String> <Tag> <String>)*
|
|
73298
73342
|
# [html [<Boolean>]] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
|
|
73299
73343
|
# [name <String>]
|
|
73300
73344
|
# [primary]
|
|
@@ -73388,7 +73432,9 @@ def _showVacation(user, i, count, result, showDisabled, sigReplyFormat):
|
|
|
73388
73432
|
Ind.Decrement()
|
|
73389
73433
|
|
|
73390
73434
|
# gam <UserTypeEntity> vacation [<Boolean>] [subject <String>]
|
|
73391
|
-
# [<VacationMessageContent>
|
|
73435
|
+
# [<VacationMessageContent>
|
|
73436
|
+
# (replace <Tag> <UserReplacement>)*
|
|
73437
|
+
# (replaceregex <RegularExpression> <String> <Tag> <UserReplacement>)*]
|
|
73392
73438
|
# [html [<Boolean>]] [contactsonly [<Boolean>]] [domainonly [<Boolean>]]
|
|
73393
73439
|
# [start|startdate <Date>|Started] [end|enddate <Date>|NotSpecified]
|
|
73394
73440
|
def setVacation(users):
|
|
@@ -73406,8 +73452,8 @@ def setVacation(users):
|
|
|
73406
73452
|
message, _, html = getStringOrFile(myarg)
|
|
73407
73453
|
if html:
|
|
73408
73454
|
responseBodyType = 'responseBodyHtml'
|
|
73409
|
-
elif myarg
|
|
73410
|
-
|
|
73455
|
+
elif _getTagReplacement(myarg, tagReplacements, True):
|
|
73456
|
+
pass
|
|
73411
73457
|
elif myarg == 'html':
|
|
73412
73458
|
if getBoolean():
|
|
73413
73459
|
responseBodyType = 'responseBodyHtml'
|
gam/gamlib/glclargs.py
CHANGED
|
@@ -991,6 +991,7 @@ class GamCLArgs():
|
|
|
991
991
|
OB_RESOURCE_ENTITY = 'ResourceEntity'
|
|
992
992
|
OB_RESOURCE_ID = 'ResourceID'
|
|
993
993
|
OB_RE_PATTERN = 'REPattern'
|
|
994
|
+
OB_RE_REPLACEMENT = 'REReplacement'
|
|
994
995
|
OB_ROLE_ASSIGNMENT_ID = 'RoleAssignmentID'
|
|
995
996
|
OB_ROLE_ITEM = 'RoleItem'
|
|
996
997
|
OB_ROLE_LIST = 'RoleList'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
1
|
+
gam/__init__.py,sha256=NbIk_4F9WWuSc0_BEPwF0E8ULPbmv5kaSeSSx093gAg,3484715
|
|
2
2
|
gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
|
|
3
3
|
gam/cacerts.pem,sha256=nJuWha0xm5dHw_5ptGphwRoO-r36Ccpqiww9pCEDbSc,67484
|
|
4
4
|
gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
|
|
@@ -25,7 +25,7 @@ gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
|
|
|
25
25
|
gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
|
|
26
26
|
gam/gamlib/glapi.py,sha256=EAQXkaM13t6jjh9vL4eHJqIZRI5kmzeneiFs5xcWXfg,34304
|
|
27
27
|
gam/gamlib/glcfg.py,sha256=cV011FpIWge4oi5_dJrdof66vUqX6UCvTGWWTNVmYEg,28055
|
|
28
|
-
gam/gamlib/glclargs.py,sha256=
|
|
28
|
+
gam/gamlib/glclargs.py,sha256=Dg7xs3Hca8uK_UimbYtp7eVQJcBZwoE1HD7aJr0lEk8,42238
|
|
29
29
|
gam/gamlib/glentity.py,sha256=ZLbyMl9NhN-MBf9Rxmho2dBYeS4SNLMctpeaKFZSbQ4,33801
|
|
30
30
|
gam/gamlib/glgapi.py,sha256=49PPbxiW6EpPE4E8fAlLMx1mSMcQra1zwi-CSXPa7rk,38473
|
|
31
31
|
gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
|
|
@@ -65,8 +65,8 @@ gam/googleapiclient/discovery_cache/base.py,sha256=yCDPtxnbNN-p5_9fzBacC6P3wcUPl
|
|
|
65
65
|
gam/googleapiclient/discovery_cache/file_cache.py,sha256=sim3Mg4HgRYo3vX75jvcKy_aV568EvIrtBfvfbw-044,4774
|
|
66
66
|
gam/iso8601/__init__.py,sha256=Z2PsYbXgAH5a5xzUvgczCboPzqWpm65kRcIngCnhViU,1218
|
|
67
67
|
gam/iso8601/iso8601.py,sha256=Li2FHZ4sBTWuthuQhyCvmvj0j6At8JbGzkSv2fc2RHU,4384
|
|
68
|
-
gam7-7.5.
|
|
69
|
-
gam7-7.5.
|
|
70
|
-
gam7-7.5.
|
|
71
|
-
gam7-7.5.
|
|
72
|
-
gam7-7.5.
|
|
68
|
+
gam7-7.5.20.dist-info/METADATA,sha256=fk08OrftIsKQs3iBss-u12mACP2-Wc7M4IQ76sq3jfA,2889
|
|
69
|
+
gam7-7.5.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
70
|
+
gam7-7.5.20.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
|
|
71
|
+
gam7-7.5.20.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
72
|
+
gam7-7.5.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|