gam7 7.22.5__py3-none-any.whl → 7.22.6__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 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.22.05'
28
+ __version__ = '7.22.06'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -41716,6 +41716,7 @@ VAULT_SEARCH_METHODS_MAP = {
41716
41716
  'accounts': 'ACCOUNT',
41717
41717
  'chatspace': 'ROOM',
41718
41718
  'chatspaces': 'ROOM',
41719
+ 'documentids': 'DRIVE_DOCUMENT',
41719
41720
  'entireorg': 'ENTIRE_ORG',
41720
41721
  'everyone': 'ENTIRE_ORG',
41721
41722
  'org': 'ORG_UNIT',
@@ -41831,6 +41832,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41831
41832
  query['dataScope'] = 'ALL_DATA'
41832
41833
  if myarg == 'corpus':
41833
41834
  query['corpus'] = getChoice(corpusArgumentMap, mapChoice=True)
41835
+ elif myarg == 'scope':
41836
+ query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41834
41837
  elif myarg in VAULT_SEARCH_METHODS_MAP:
41835
41838
  if query.get('searchMethod'):
41836
41839
  Cmd.Backup()
@@ -41851,8 +41854,8 @@ def _buildVaultQuery(myarg, query, corpusArgumentMap):
41851
41854
  query['hangoutsChatInfo'] = {'roomId': roomIds}
41852
41855
  elif searchMethod == 'SITES_URL':
41853
41856
  query['sitesUrlInfo'] = {'urls': _getQueryList(Cmd.OB_URL_LIST)}
41854
- elif myarg == 'scope':
41855
- query['dataScope'] = getChoice(VAULT_EXPORT_DATASCOPE_MAP, mapChoice=True)
41857
+ elif searchMethod == 'DRIVE_DOCUMENT':
41858
+ query['driveDocumentInfo'] = {'documentIds': {'ids': _getQueryList(Cmd.OB_DRIVE_FILE_ID_LIST)}}
41856
41859
  elif myarg == 'terms':
41857
41860
  query['terms'] = getString(Cmd.OB_STRING)
41858
41861
  elif myarg in {'start', 'starttime'}:
@@ -41919,17 +41922,18 @@ def _validateVaultQuery(body, corpusArgumentMap):
41919
41922
  # [region any|europe|us] [showdetails|returnidonly]
41920
41923
  # gam create vaultexport|export matter <MatterItem> [name <String>]
41921
41924
  # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
41922
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
41925
+ # [scope all_data|held_data|unprocessed_data]
41926
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
41927
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41923
41928
  # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
41924
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41925
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41926
- # [scope <all_data|held_data|unprocessed_data>]
41927
- # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
41928
- # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
41929
- # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
41930
41929
  # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
41930
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
41931
41931
  # [driveversiondate <Date>|<Time>]
41932
41932
  # [includerooms <Boolean>]
41933
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
41934
+ # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
41935
+ # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
41936
+ # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
41933
41937
  # (covereddata calllogs|textmessages|voicemails)*
41934
41938
  # [driveclientsideencryption any|encrypted|unencrypted]
41935
41939
  # [includeaccessinfo <Boolean>]
@@ -41943,6 +41947,7 @@ def doCreateVaultExport():
41943
41947
  body = {'query': {'dataScope': 'ALL_DATA'}, 'exportOptions': {}}
41944
41948
  includeAccessInfo = None
41945
41949
  exportFormat = None
41950
+ formatLocation = None
41946
41951
  useNewExport = None
41947
41952
  showConfidentialModeContent = None
41948
41953
  exportLinkedDriveFiles = None
@@ -41961,6 +41966,7 @@ def doCreateVaultExport():
41961
41966
  elif myarg == 'includeaccessinfo':
41962
41967
  includeAccessInfo = getBoolean()
41963
41968
  elif myarg == 'format':
41969
+ formatLocation = Cmd.Location()
41964
41970
  exportFormat = getChoice(VAULT_EXPORT_FORMAT_MAP, mapChoice=True)
41965
41971
  elif myarg == 'usenewexport':
41966
41972
  useNewExport = getBoolean()
@@ -41981,18 +41987,19 @@ def doCreateVaultExport():
41981
41987
  if not matterId:
41982
41988
  missingArgumentExit('matter')
41983
41989
  _validateVaultQuery(body, VAULT_CORPUS_ARGUMENT_MAP)
41984
- if exportFormat is not None:
41985
- if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41986
- invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
41987
- elif body['query']['corpus'] != 'DRIVE':
41988
- exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41989
41990
  if 'name' not in body:
41990
41991
  body['name'] = f'GAM {body["query"]["corpus"]} Export - {ISOformatTimeStamp(todaysTime())}'
41991
41992
  optionsField = VAULT_CORPUS_OPTIONS_MAP[body['query']['corpus']]
41992
41993
  if body['query']['corpus'] == 'DRIVE':
41993
41994
  if includeAccessInfo is not None:
41994
- body['exportOptions'][optionsField]['includeAccessInfo'] = includeAccessInfo
41995
+ body['exportOptions'][optionsField] = {'includeAccessInfo': includeAccessInfo}
41995
41996
  else:
41997
+ if exportFormat is not None:
41998
+ if not exportFormat in VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']]:
41999
+ Cmd.SetLocation(formatLocation)
42000
+ invalidChoiceExit(exportFormat, VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']], False)
42001
+ else:
42002
+ exportFormat = VAULT_CORPUS_EXPORT_FORMATS[body['query']['corpus']][0]
41996
42003
  body['exportOptions'][optionsField] = {'exportFormat': exportFormat}
41997
42004
  if body['query']['corpus'] == 'MAIL':
41998
42005
  if showConfidentialModeContent is not None:
@@ -42474,7 +42481,7 @@ def _showVaultHold(matterNameId, hold, cd, FJQC, k=0, kcount=0):
42474
42481
  showJSON(None, hold, timeObjects=VAULT_HOLD_TIME_OBJECTS)
42475
42482
  Ind.Decrement()
42476
42483
 
42477
- def _useVaultQuery(v, matterId, matterNameId, body):
42484
+ def _useVaultQueryForHold(v, matterId, matterNameId, body):
42478
42485
  _, _, _, query = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
42479
42486
  body['corpus'] = query['corpus']
42480
42487
  method = query.get('method')
@@ -42579,7 +42586,7 @@ def doCreateVaultHold():
42579
42586
  elif myarg == 'name':
42580
42587
  body['name'] = getString(Cmd.OB_STRING)
42581
42588
  elif matterId is not None and myarg == 'vaultquery':
42582
- _useVaultQuery(v, matterId, matterNameId, body)
42589
+ _useVaultQueryForHold(v, matterId, matterNameId, body)
42583
42590
  usedVaultQuery = True
42584
42591
  elif myarg == 'corpus':
42585
42592
  body['corpus'] = getChoice(VAULT_CORPUS_ARGUMENT_MAP, mapChoice=True)
@@ -43038,6 +43045,99 @@ def _showVaultQuery(matterNameId, query, cd, drive, FJQC, k=0, kcount=0):
43038
43045
  showJSON(None, query, timeObjects=VAULT_QUERY_TIME_OBJECTS)
43039
43046
  Ind.Decrement()
43040
43047
 
43048
+ def doCreateCopyVaultQuery(copyCmd):
43049
+ v = buildGAPIObject(API.VAULT)
43050
+ body = {'query': {'dataScope': 'ALL_DATA'}, 'displayName': ''}
43051
+ matterId, matterNameId = getMatterItem(v)
43052
+ if copyCmd:
43053
+ _, queryName, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43054
+ targetId = None
43055
+ cd = drive = None
43056
+ FJQC = FormatJSONQuoteChar()
43057
+ while Cmd.ArgumentsRemaining():
43058
+ myarg = getArgument()
43059
+ if myarg == 'name':
43060
+ body['displayName'] = getString(Cmd.OB_STRING)
43061
+ elif copyCmd and myarg == 'targetmatter':
43062
+ targetId, targetNameId = getMatterItem(v)
43063
+ elif not copyCmd and myarg in VAULT_QUERY_ARGS:
43064
+ _buildVaultQuery(myarg, body['query'], VAULT_CORPUS_ARGUMENT_MAP)
43065
+ elif myarg == 'shownames':
43066
+ cd = buildGAPIObject(API.DIRECTORY)
43067
+ _, drive = buildGAPIServiceObject(API.DRIVE3, _getAdminEmail())
43068
+ if drive is None:
43069
+ return
43070
+ else:
43071
+ FJQC.GetFormatJSON(myarg)
43072
+ if copyCmd:
43073
+ if targetId is None:
43074
+ targetId = matterId
43075
+ targetNameId = matterNameId
43076
+ if not body['displayName']:
43077
+ body['displayName'] = f'Copy of {queryName}' if matterId == targetId else queryName
43078
+ resultId = targetId
43079
+ resultNameId = targetNameId
43080
+ else:
43081
+ if not body['displayName']:
43082
+ body['displayName'] = 'GAM {body["query"]["corpus"]} Query - {ISOformatTimeStamp(todaysTime())}'
43083
+ resultId = matterId
43084
+ resultNameId = matterNameId
43085
+ try:
43086
+ result = callGAPI(v.matters().savedQueries(), 'create',
43087
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT, GAPI.ALREADY_EXISTS],
43088
+ matterId=resultId, body=body)
43089
+ _showVaultQuery(resultNameId, result, cd, drive, FJQC)
43090
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument, GAPI.alreadyExists) as e:
43091
+ entityActionFailedWarning([Ent.VAULT_MATTER, resultNameId, Ent.VAULT_QUERY, body['displayName']], str(e))
43092
+
43093
+ # gam create vaultquery <MatterItem> [name <String>]
43094
+ # corpus calendar|drive|gemini|groups|hangouts_chat|mail|voice
43095
+ # [scope all_data|held_data|unprocessed_data]
43096
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43097
+ # (documentids (<DriveFileIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43098
+ # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43099
+ # [(includeshareddrives <Boolean>)|(shareddrivesoption included|included_if_account_is_not_a_member|not_included)]
43100
+ # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43101
+ # [driveversiondate <Date>|<Time>]
43102
+ # [includerooms <Boolean>]
43103
+ # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43104
+ # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43105
+ # [locationquery <StringList>] [peoplequery <StringList>] [minuswords <StringList>]
43106
+ # [responsestatuses <AttendeeStatus>(,<AttendeeStatus>)*] [calendarversiondate <Date>|<Time>]
43107
+ # (covereddata calllogs|textmessages|voicemails)*
43108
+ # [shownames] [formatjson]
43109
+ def doCreateVaultQuery():
43110
+ doCreateCopyVaultQuery(False)
43111
+
43112
+ # gam copy vaultquery <MatterItem> <QueryItem> [targetmatter <MatterItem"] [name <String>]
43113
+ # [shownames] [formatjson]
43114
+ def doCopyVaultQuery():
43115
+ doCreateCopyVaultQuery(True)
43116
+
43117
+ # gam delete vaultquery <QueryItem> matter <MatterItem>
43118
+ # gam delete vaultquery <MatterItem> <QueryItem>
43119
+ def doDeleteVaultQuery():
43120
+ v = buildGAPIObject(API.VAULT)
43121
+ if not Cmd.ArgumentIsAhead('matter'):
43122
+ matterId, matterNameId = getMatterItem(v)
43123
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43124
+ else:
43125
+ queryName = getString(Cmd.OB_QUERY_ITEM)
43126
+ while Cmd.ArgumentsRemaining():
43127
+ myarg = getArgument()
43128
+ if myarg == 'matter':
43129
+ matterId, matterNameId = getMatterItem(v)
43130
+ queryId, queryName, queryNameId, _ = convertQueryNameToID(v, queryName, matterId, matterNameId)
43131
+ else:
43132
+ unknownArgumentExit()
43133
+ try:
43134
+ callGAPI(v.matters().savedQueries(), 'delete',
43135
+ throwReasons=[GAPI.NOT_FOUND, GAPI.BAD_REQUEST, GAPI.FORBIDDEN, GAPI.INVALID_ARGUMENT],
43136
+ matterId=matterId, savedQueryId=queryId)
43137
+ entityActionPerformed([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId])
43138
+ except (GAPI.notFound, GAPI.badRequest, GAPI.forbidden, GAPI.invalidArgument) as e:
43139
+ entityActionFailedWarning([Ent.VAULT_MATTER, matterNameId, Ent.VAULT_QUERY, queryNameId], str(e))
43140
+
43041
43141
  VAULT_QUERY_FIELDS_CHOICE_MAP = {
43042
43142
  'createtime': 'createTime',
43043
43143
  'displayname': 'displayName',
@@ -43523,12 +43623,13 @@ def doPrintShowVaultMatters():
43523
43623
  PRINT_VAULT_COUNTS_TITLES = ['account', 'count', 'error']
43524
43624
 
43525
43625
  # gam print vaultcounts [todrive <ToDriveAttributes>*]
43526
- # matter <MatterItem> corpus mail|groups
43527
- # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone
43528
- # (shareddrives|teamdrives (<SharedDriveIDList>|(select <FileSelector>|<CSVFileSelector>))) |
43529
- # (rooms (<ChatSpaceList>|(select <FileSelector>|<CSVFileSelector>))) |
43530
- # (sitesurl (<URLList>||(select <FileSelector>|<CSVFileSelector>)))
43531
- # [scope <all_data|held_data|unprocessed_data>]
43626
+ # matter <MatterItem> <QueryItem>
43627
+ # [wait <Integer>]
43628
+ # gam print vaultcounts [todrive <ToDriveAttributes>*]
43629
+ # matter <MatterItem>
43630
+ # corpus mail|groups
43631
+ # [scope all_data|held_data|unprocessed_data]
43632
+ # (accounts <EmailAddressEntity>) | (orgunit|org|ou <OrgUnitPath>) | everyone|entireorg
43532
43633
  # [terms <String>] [start|starttime <Date>|<Time>] [end|endtime <Date>|<Time>] [timezone <TimeZone>]
43533
43634
  # [excludedrafts <Boolean>]
43534
43635
  # [wait <Integer>]
@@ -43539,18 +43640,19 @@ def doPrintVaultCounts():
43539
43640
  csvPF = CSVPrintFile(PRINT_VAULT_COUNTS_TITLES, 'sortall')
43540
43641
  matterId = name = None
43541
43642
  operationWait = 15
43542
- body = {'view': 'ALL'}
43543
- query = {}
43643
+ body = {'view': 'ALL', 'query': {}}
43544
43644
  while Cmd.ArgumentsRemaining():
43545
43645
  myarg = getArgument()
43546
43646
  if csvPF and myarg == 'todrive':
43547
43647
  csvPF.GetTodriveParameters()
43548
43648
  elif myarg == 'matter':
43549
- matterId, _ = getMatterItem(v)
43649
+ matterId, matterNameId = getMatterItem(v)
43650
+ elif matterId is not None and myarg == 'vaultquery':
43651
+ _, _, _, body['query'] = convertQueryNameToID(v, getString(Cmd.OB_QUERY_ITEM), matterId, matterNameId)
43550
43652
  elif myarg == 'operation':
43551
43653
  name = getString(Cmd.OB_STRING)
43552
43654
  elif myarg in VAULT_QUERY_ARGS:
43553
- _buildVaultQuery(myarg, query, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43655
+ _buildVaultQuery(myarg, body['query'], VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43554
43656
  elif myarg == 'wait':
43555
43657
  operationWait = getInteger(minVal=1)
43556
43658
  else:
@@ -43561,7 +43663,6 @@ def doPrintVaultCounts():
43561
43663
  operation = {'name': name}
43562
43664
  doWait = False
43563
43665
  else:
43564
- body['query'] = query
43565
43666
  _validateVaultQuery(body, VAULT_COUNTS_CORPUS_ARGUMENT_MAP)
43566
43667
  try:
43567
43668
  operation = callGAPI(v.matters(), 'count',
@@ -77976,6 +78077,7 @@ MAIN_ADD_CREATE_FUNCTIONS = {
77976
78077
  Cmd.ARG_VAULTEXPORT: doCreateVaultExport,
77977
78078
  Cmd.ARG_VAULTHOLD: doCreateVaultHold,
77978
78079
  Cmd.ARG_VAULTMATTER: doCreateVaultMatter,
78080
+ Cmd.ARG_VAULTQUERY: doCreateVaultQuery,
77979
78081
  Cmd.ARG_VERIFY: doCreateSiteVerification,
77980
78082
  }
77981
78083
 
@@ -78033,6 +78135,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78033
78135
  {Cmd.ARG_SHAREDDRIVEACLS: doCopySyncSharedDriveACLs,
78034
78136
  Cmd.ARG_STORAGEBUCKET: doCopyCloudStorageBucket,
78035
78137
  Cmd.ARG_VAULTEXPORT: doCopyVaultExport,
78138
+ Cmd.ARG_VAULTQUERY: doCopyVaultQuery,
78036
78139
  }
78037
78140
  ),
78038
78141
  'create':
@@ -78097,6 +78200,7 @@ MAIN_COMMANDS_WITH_OBJECTS = {
78097
78200
  Cmd.ARG_VAULTEXPORT: doDeleteVaultExport,
78098
78201
  Cmd.ARG_VAULTHOLD: doDeleteVaultHold,
78099
78202
  Cmd.ARG_VAULTMATTER: doDeleteVaultMatter,
78203
+ Cmd.ARG_VAULTQUERY: doDeleteVaultQuery,
78100
78204
  }
78101
78205
  ),
78102
78206
  'download':
gam/gamlib/glclargs.py CHANGED
@@ -1216,6 +1216,7 @@ class GamCLArgs():
1216
1216
  OB_DOMAIN_NAME_LIST = 'DomainNameList'
1217
1217
  OB_DRIVE_FILE_ENTITY = 'DriveFileEntity'
1218
1218
  OB_DRIVE_FILE_ID = 'DriveFileID'
1219
+ OB_DRIVE_FILE_ID_LIST = 'DriveFileIDList'
1219
1220
  OB_DRIVE_FILE_NAME = 'DriveFileName'
1220
1221
  OB_DRIVE_FILE_PERMISSION_ENTITY = 'DriveFilePermissionEntity'
1221
1222
  OB_DRIVE_FILE_PERMISSION_ID = 'DriveFilePermissionID'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.22.5
3
+ Version: 7.22.6
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -1,4 +1,4 @@
1
- gam/__init__.py,sha256=ltpucQqtsz71YaDsryzmj1nc-Ls0DsKpQvDjUr04rKY,3612652
1
+ gam/__init__.py,sha256=2khaKs7eOqZNAinOq4YCDHYmbOqwx8Rv7LL1ZMArbg4,3617651
2
2
  gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
3
3
  gam/cacerts.pem,sha256=DUsVo2XlFYwfkhe3gnxa-Km4Z4noz74hSApXwTT-nQE,44344
4
4
  gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
@@ -24,7 +24,7 @@ gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
24
24
  gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
25
25
  gam/gamlib/glapi.py,sha256=u97M7Y2BeP3tYEEGYEz-9kY4fdV0fYkeqC3YN-sRwNc,36028
26
26
  gam/gamlib/glcfg.py,sha256=7Ut-7sDTw-WVHZfvDWn_dlVNfuWd6VsPDBpQ3qnyzJE,28100
27
- gam/gamlib/glclargs.py,sha256=ARqlKA4s578PLOxQSLVWSnUdKNpv8LForlm1jpcfWeI,53207
27
+ gam/gamlib/glclargs.py,sha256=rGcAoRLaCv5L9cBxI56MrPXr0JcImO45bLQNaYahoUY,53251
28
28
  gam/gamlib/glentity.py,sha256=Dp15UbaxGbqDKYyF50z-wjFlQpKvi9mCIuPDsd_kL8Y,35284
29
29
  gam/gamlib/glgapi.py,sha256=pdBbwNtnCwFWxJGaP-_3hdTjSNoOCJF2yo76WdQOi1k,40426
30
30
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
@@ -47,8 +47,8 @@ gam/gdata/apps/audit/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrK
47
47
  gam/gdata/apps/audit/service.py,sha256=Z1eueThcNeVUMWP1DRWc_DGHrJCiJI8W_xj6L-cqu-Q,9658
48
48
  gam/gdata/apps/contacts/__init__.py,sha256=Um6zgIkiahZns7yAEuC3pxHSMD8iciZ_EoynSLoYPfU,30463
49
49
  gam/gdata/apps/contacts/service.py,sha256=5lNb-Ii1Gyek6ePFji3kyoYtCBc8CuJTwagx2BL2o14,15684
50
- gam7-7.22.5.dist-info/METADATA,sha256=iHzqp50Z_9xbSdfj98MmEr8pKLfSC4oXwcW0jaM31cw,3092
51
- gam7-7.22.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- gam7-7.22.5.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
- gam7-7.22.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
- gam7-7.22.5.dist-info/RECORD,,
50
+ gam7-7.22.6.dist-info/METADATA,sha256=Wkf_5GQhkbuMkzXX_ZfIvJKvE_klQjf3Svy7H-VA_5U,3092
51
+ gam7-7.22.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
+ gam7-7.22.6.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
+ gam7-7.22.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
+ gam7-7.22.6.dist-info/RECORD,,
File without changes