gam7 7.7.8__py3-none-any.whl → 7.7.10__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.07.08'
28
+ __version__ = '7.07.10'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -8962,7 +8962,7 @@ class CSVPrintFile():
8962
8962
  return
8963
8963
  if self.zeroBlankMimeTypeCounts:
8964
8964
  self.ZeroBlankMimeTypeCounts()
8965
- if self.rowFilter or self.rowDropFilter:
8965
+ if not clearRowFilters and (self.rowFilter or self.rowDropFilter):
8966
8966
  self.CheckOutputRowFilterHeaders()
8967
8967
  if self.headerFilter or self.headerDropFilter:
8968
8968
  if not self.formatJSON:
@@ -14357,6 +14357,7 @@ def doReport():
14357
14357
  else:
14358
14358
  if eventRowFilter:
14359
14359
  csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
14360
+ csvPF.SetRowDropFilter([], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
14360
14361
  if not countsSummary:
14361
14362
  titles = ['emailAddress']
14362
14363
  if countsOnly and countsByDate:
@@ -39264,7 +39265,8 @@ def _updateCalendarEvents(origUser, user, origCal, calIds, count, calendarEventE
39264
39265
  try:
39265
39266
  if updateFieldList:
39266
39267
  event = callGAPI(cal.events(), 'get',
39267
- throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.DELETED, GAPI.FORBIDDEN],
39268
+ throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.DELETED, GAPI.FORBIDDEN, GAPI.BACKEND_ERROR],
39269
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.BACKEND_ERROR],
39268
39270
  calendarId=calId, eventId=eventId, fields=updateFields)
39269
39271
  if 'description' in updateFieldList and 'description' in event:
39270
39272
  body['description'] = event['description']
@@ -39294,10 +39296,11 @@ def _updateCalendarEvents(origUser, user, origCal, calIds, count, calendarEventE
39294
39296
  if parameters['clearResources']:
39295
39297
  body['attendees'] = [attendee for attendee in body['attendees'] if not attendee['email'].lower().endswith('@resource.calendar.google.com')]
39296
39298
  event = callGAPI(cal.events(), 'patch',
39297
- throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.DELETED, GAPI.FORBIDDEN,
39299
+ throwReasons=GAPI.CALENDAR_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.DELETED, GAPI.FORBIDDEN, GAPI.BACKEND_ERROR,
39298
39300
  GAPI.INVALID, GAPI.REQUIRED, GAPI.TIME_RANGE_EMPTY, GAPI.EVENT_DURATION_EXCEEDS_LIMIT,
39299
39301
  GAPI.REQUIRED_ACCESS_LEVEL, GAPI.CANNOT_CHANGE_ORGANIZER_OF_INSTANCE,
39300
- GAPI.MALFORMED_WORKING_LOCATION_EVENT],
39302
+ GAPI.MALFORMED_WORKING_LOCATION_EVENT, GAPI.EVENT_TYPE_RESTRICTION],
39303
+ retryReasons=GAPI.SERVICE_NOT_AVAILABLE_RETRY_REASONS+[GAPI.BACKEND_ERROR],
39301
39304
  calendarId=calId, eventId=eventId, conferenceDataVersion=1, sendUpdates=parameters['sendUpdates'], supportsAttachments=True,
39302
39305
  body=body, fields=pfields)
39303
39306
  if parameters['csvPF'] is None:
@@ -39311,8 +39314,9 @@ def _updateCalendarEvents(origUser, user, origCal, calIds, count, calendarEventE
39311
39314
  entityUnknownWarning(Ent.CALENDAR, calId, j, jcount)
39312
39315
  break
39313
39316
  entityActionFailedWarning([Ent.CALENDAR, calId, Ent.EVENT, eventId], str(e), j, jcount)
39314
- except (GAPI.forbidden, GAPI.invalid, GAPI.required, GAPI.timeRangeEmpty, GAPI.eventDurationExceedsLimit,
39315
- GAPI.requiredAccessLevel, GAPI.cannotChangeOrganizerOfInstance, GAPI.malformedWorkingLocationEvent) as e:
39317
+ except (GAPI.forbidden, GAPI.backendError, GAPI.invalid, GAPI.required, GAPI.timeRangeEmpty, GAPI.eventDurationExceedsLimit,
39318
+ GAPI.requiredAccessLevel, GAPI.cannotChangeOrganizerOfInstance, GAPI.malformedWorkingLocationEvent,
39319
+ GAPI.eventTypeRestriction) as e:
39316
39320
  entityActionFailedWarning([Ent.CALENDAR, calId, Ent.EVENT, eventId], str(e), j, jcount)
39317
39321
  except GAPI.notACalendarUser:
39318
39322
  userCalServiceNotEnabledWarning(calId, i, count)
@@ -39934,7 +39938,6 @@ def doCalendarsPrintShowEvents(calIds):
39934
39938
  csvPF, FJQC, fieldsList)
39935
39939
  if csvPF:
39936
39940
  if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
39937
- csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
39938
39941
  csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
39939
39942
  csvPF.writeCSVfile('Calendar Events', True)
39940
39943
  else:
@@ -51430,7 +51433,6 @@ def printShowCalendarEvents(users):
51430
51433
  Ind.Decrement()
51431
51434
  if csvPF:
51432
51435
  if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
51433
- csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
51434
51436
  csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
51435
51437
  csvPF.writeCSVfile('Calendar Events', True)
51436
51438
  else:
@@ -56210,6 +56212,7 @@ def printFileList(users):
56210
56212
  summaryMimeTypeInfo[mimeType]['size'] += mtinfo['size']
56211
56213
  if summary != FILECOUNT_SUMMARY_ONLY:
56212
56214
  writeMimeTypeCountsRow(user, 'Various', 'Various', mimeTypeInfo)
56215
+ titlePrefix = f'{Cmd.Argument(GM.Globals[GM.ENTITY_CL_START])} {Cmd.Argument(GM.Globals[GM.ENTITY_CL_START]+1)} ' if GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE] is None else ''
56213
56216
  if not countsOnly:
56214
56217
  if not csvPF.rows:
56215
56218
  setSysExitRC(NO_ENTITIES_FOUND_RC)
@@ -56218,22 +56221,14 @@ def printFileList(users):
56218
56221
  else:
56219
56222
  if 'JSON' in csvPF.JSONtitlesList:
56220
56223
  csvPF.MoveJSONTitlesToEnd(['JSON'])
56221
- if GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE] is None:
56222
- csvPF.writeCSVfile(f'{Cmd.Argument(GM.Globals[GM.ENTITY_CL_START])} {Cmd.Argument(GM.Globals[GM.ENTITY_CL_START]+1)} Drive Files')
56223
- else:
56224
- csvPF.writeCSVfile('Drive Files')
56224
+ csvPF.writeCSVfile(f'{titlePrefix}Drive Files')
56225
56225
  else:
56226
56226
  if not csvPFco.rows:
56227
56227
  setSysExitRC(NO_ENTITIES_FOUND_RC)
56228
56228
  if summary != FILECOUNT_SUMMARY_NONE:
56229
56229
  writeMimeTypeCountsRow(summaryUser, 'Various', 'Various', summaryMimeTypeInfo)
56230
56230
  csvPFco.todrive = csvPF.todrive
56231
- if not countsRowFilter:
56232
- csvPFco.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
56233
- if GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE] is None:
56234
- csvPFco.writeCSVfile(f'{Cmd.Argument(GM.Globals[GM.ENTITY_CL_START])} {Cmd.Argument(GM.Globals[GM.ENTITY_CL_START]+1)} Drive File Counts', not countsRowFilter)
56235
- else:
56236
- csvPFco.writeCSVfile('Drive File Counts', not countsRowFilter)
56231
+ csvPFco.writeCSVfile(f'{titlePrefix}Drive File Counts', not countsRowFilter)
56237
56232
 
56238
56233
  FILECOMMENTS_FIELDS_CHOICE_MAP = {
56239
56234
  'action': 'action',
gam/gamlib/glgapi.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
- # Copyright (C) 2024 Ross Scroggs All Rights Reserved.
3
+ # Copyright (C) 2025 Ross Scroggs All Rights Reserved.
4
4
  #
5
5
  # All Rights Reserved.
6
6
  #
@@ -72,6 +72,7 @@ DOMAIN_POLICY = 'domainPolicy'
72
72
  DOWNLOAD_QUOTA_EXCEEDED = 'downloadQuotaExceeded'
73
73
  DUPLICATE = 'duplicate'
74
74
  EVENT_DURATION_EXCEEDS_LIMIT = 'eventDurationExceedsLimit'
75
+ EVENT_TYPE_RESTRICTION = 'eventTypeRestriction'
75
76
  EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE = 'expirationDatesMustBeInTheFuture'
76
77
  EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS = 'expirationDateNotAllowedForSharedDriveMembers'
77
78
  FAILED_PRECONDITION = 'failedPrecondition'
@@ -457,6 +458,8 @@ class duplicate(Exception):
457
458
  pass
458
459
  class eventDurationExceedsLimit(Exception):
459
460
  pass
461
+ class eventTypeRestriction(Exception):
462
+ pass
460
463
  class expirationDatesMustBeInTheFuture(Exception):
461
464
  pass
462
465
  class expirationDateNotAllowedForSharedDriveMembers(Exception):
@@ -725,6 +728,7 @@ REASON_EXCEPTION_MAP = {
725
728
  DOWNLOAD_QUOTA_EXCEEDED: downloadQuotaExceeded,
726
729
  DUPLICATE: duplicate,
727
730
  EVENT_DURATION_EXCEEDS_LIMIT: eventDurationExceedsLimit,
731
+ EVENT_TYPE_RESTRICTION: eventTypeRestriction,
728
732
  EXPIRATION_DATES_MUST_BE_IN_THE_FUTURE: expirationDatesMustBeInTheFuture,
729
733
  EXPIRATION_DATE_NOT_ALLOWED_FOR_SHARED_DRIVE_MEMBERS: expirationDateNotAllowedForSharedDriveMembers,
730
734
  FAILED_PRECONDITION: failedPrecondition,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.7.8
3
+ Version: 7.7.10
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=_PoKTu3dip3-vM8H8P2R1QmWN9QCilNI6nSTteul4Jc,3501563
1
+ gam/__init__.py,sha256=z2FXUmZ0uNCUa8culm-QSs5mQujmjlJT5CQL21m-Na8,3501523
2
2
  gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
3
3
  gam/cacerts.pem,sha256=82Ak7btW_2XvocLUvAwPmpx8Chi0oqtZUG1gseLK_t4,50235
4
4
  gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
@@ -27,7 +27,7 @@ gam/gamlib/glapi.py,sha256=85YwZ5LhBoVd9kU3m-gwLRq8FwTWCaRIwARuQvH8Mjc,34022
27
27
  gam/gamlib/glcfg.py,sha256=cV011FpIWge4oi5_dJrdof66vUqX6UCvTGWWTNVmYEg,28055
28
28
  gam/gamlib/glclargs.py,sha256=2pb0bdmWbTM5WrNVlMP-d-pe8f5oY3XuF50m02v8ynk,42199
29
29
  gam/gamlib/glentity.py,sha256=fqWUlxQqPKlfFrkuPjCK2lZhhFBIZboCuO0qCxuEwqA,33691
30
- gam/gamlib/glgapi.py,sha256=n3J-kLsMC6pZ89r9i2hZIxCH73T1_WiwJyYVGfyhRsM,39349
30
+ gam/gamlib/glgapi.py,sha256=cGtvFvvBU3XQJLgtLCjs_V5VBUem_k0b5uUrK21VmeA,39491
31
31
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
32
32
  gam/gamlib/glglobals.py,sha256=xGfSHiDpF-FSA6jorBtzy981OVBGTHCUy_HTsmbIiwE,9712
33
33
  gam/gamlib/glindent.py,sha256=RfBa2LDfLIqPLL5vMfC689TCVmqn8xf-qulSzkiatrc,1228
@@ -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.7.8.dist-info/METADATA,sha256=XIB78VDlYQDTLI3FhbrpFwrkcb08AHXYw1M7T6Lh0Cg,2969
69
- gam7-7.7.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
- gam7-7.7.8.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
- gam7-7.7.8.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
- gam7-7.7.8.dist-info/RECORD,,
68
+ gam7-7.7.10.dist-info/METADATA,sha256=L6SKeBThfeyNfeeoDRM2h0CTTTLRjZS4bmyJSK46bW4,2970
69
+ gam7-7.7.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
+ gam7-7.7.10.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
+ gam7-7.7.10.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
+ gam7-7.7.10.dist-info/RECORD,,
File without changes