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 +14 -19
- gam/gamlib/glgapi.py +5 -1
- {gam7-7.7.8.dist-info → gam7-7.7.10.dist-info}/METADATA +1 -1
- {gam7-7.7.8.dist-info → gam7-7.7.10.dist-info}/RECORD +7 -7
- {gam7-7.7.8.dist-info → gam7-7.7.10.dist-info}/WHEEL +0 -0
- {gam7-7.7.8.dist-info → gam7-7.7.10.dist-info}/entry_points.txt +0 -0
- {gam7-7.7.8.dist-info → gam7-7.7.10.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.07.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
|
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,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
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=
|
|
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.
|
|
69
|
-
gam7-7.7.
|
|
70
|
-
gam7-7.7.
|
|
71
|
-
gam7-7.7.
|
|
72
|
-
gam7-7.7.
|
|
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
|
|
File without changes
|
|
File without changes
|