gam7 7.7.5__py3-none-any.whl → 7.7.7__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.05'
28
+ __version__ = '7.07.07'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -8565,7 +8565,7 @@ class CSVPrintFile():
8565
8565
  if not self.JSONtitlesSet:
8566
8566
  systemErrorExit(USAGE_ERROR_RC, Msg.NO_COLUMNS_SELECTED_WITH_CSV_OUTPUT_HEADER_FILTER.format(GC.CSV_OUTPUT_HEADER_FILTER, GC.CSV_OUTPUT_HEADER_DROP_FILTER))
8567
8567
 
8568
- def writeCSVfile(self, list_type):
8568
+ def writeCSVfile(self, list_type, clearRowFilters=False):
8569
8569
 
8570
8570
  def todriveCSVErrorExit(entityValueList, errMsg):
8571
8571
  systemErrorExit(ACTION_FAILED_RC, formatKeyValueList(Ind.Spaces(),
@@ -8956,6 +8956,8 @@ class CSVPrintFile():
8956
8956
  self.oneItemPerRow,
8957
8957
  self.showPermissionsLast,
8958
8958
  self.zeroBlankMimeTypeCounts)))
8959
+ if clearRowFilters:
8960
+ GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE].put((GM.REDIRECT_QUEUE_CLEAR_ROW_FILTERS, clearRowFilters))
8959
8961
  GM.Globals[GM.CSVFILE][GM.REDIRECT_QUEUE].put((GM.REDIRECT_QUEUE_DATA, self.rows))
8960
8962
  return
8961
8963
  if self.zeroBlankMimeTypeCounts:
@@ -9582,6 +9584,7 @@ def CSVFileQueueHandler(mpQueue, mpQueueStdout, mpQueueStderr, csvPF, datetimeNo
9582
9584
  GM.Globals[GM.DATETIME_NOW] = datetimeNow
9583
9585
  GC.Values[GC.TIMEZONE] = tzinfo
9584
9586
  GC.Values[GC.OUTPUT_TIMEFORMAT] = output_timeformat
9587
+ clearRowFilters = False
9585
9588
  # if sys.platform.startswith('win'):
9586
9589
  # signal.signal(signal.SIGINT, signal.SIG_IGN)
9587
9590
  if multiprocessing.get_start_method() == 'spawn':
@@ -9639,9 +9642,15 @@ def CSVFileQueueHandler(mpQueue, mpQueueStdout, mpQueueStderr, csvPF, datetimeNo
9639
9642
  csvPF.SetTimestampColumn(GC.Values[GC.CSV_OUTPUT_TIMESTAMP_COLUMN])
9640
9643
  csvPF.SetHeaderFilter(GC.Values[GC.CSV_OUTPUT_HEADER_FILTER])
9641
9644
  csvPF.SetHeaderDropFilter(GC.Values[GC.CSV_OUTPUT_HEADER_DROP_FILTER])
9642
- csvPF.SetRowFilter(GC.Values[GC.CSV_OUTPUT_ROW_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9643
- csvPF.SetRowDropFilter(GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9645
+ if not clearRowFilters:
9646
+ csvPF.SetRowFilter(GC.Values[GC.CSV_OUTPUT_ROW_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9647
+ csvPF.SetRowDropFilter(GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9648
+ else:
9649
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
9650
+ csvPF.SetRowDropFilter([], GC.Values[GC.CSV_OUTPUT_ROW_DROP_FILTER_MODE])
9644
9651
  csvPF.SetRowLimit(GC.Values[GC.CSV_OUTPUT_ROW_LIMIT])
9652
+ elif dataType == GM.REDIRECT_QUEUE_CLEAR_ROW_FILTERS:
9653
+ clearRowFilters = dataItem
9645
9654
  else: #GM.REDIRECT_QUEUE_EOF
9646
9655
  break
9647
9656
  csvPF.writeCSVfile(list_type)
@@ -14396,7 +14405,7 @@ def doReport():
14396
14405
  if addCSVData:
14397
14406
  row.update(addCSVData)
14398
14407
  csvPF.WriteRow(row)
14399
- csvPF.writeCSVfile(f'{report.capitalize()} Activity Report')
14408
+ csvPF.writeCSVfile(f'{report.capitalize()} Activity Report', eventRowFilter)
14400
14409
 
14401
14410
  # Substitute for #user#, #email#, #usernamne#
14402
14411
  def _substituteForUser(field, user, userName):
@@ -38592,7 +38601,8 @@ def _getCalendarListEventsDisplayProperty(myarg, calendarEventEntity):
38592
38601
 
38593
38602
  def initCalendarEventEntity():
38594
38603
  return {'list': [], 'queries': [], 'kwargs': {}, 'dict': None,
38595
- 'matches': [], 'maxinstances': -1, 'countsOnly': False, 'showDayOfWeek': False}
38604
+ 'matches': [], 'maxinstances': -1, 'showDayOfWeek': False,
38605
+ 'countsOnly': False, 'eventRowFilter': False, 'countsOnlyTitles': []}
38596
38606
 
38597
38607
  def getCalendarEventEntity():
38598
38608
  calendarEventEntity = initCalendarEventEntity()
@@ -39637,11 +39647,25 @@ def _printShowCalendarEvents(origUser, user, origCal, calIds, count, calendarEve
39637
39647
  elif GC.Values[GC.CSV_OUTPUT_USERS_AUDIT] and user:
39638
39648
  csvPF.WriteRowNoFilter({'calendarId': calId, 'primaryEmail': user, 'id': ''})
39639
39649
  else:
39650
+ if calendarEventEntity['eventRowFilter']:
39651
+ jcount = 0
39652
+ for event in events:
39653
+ if calendarEventEntity['showDayOfWeek']:
39654
+ _getEventDaysOfWeek(event)
39655
+ row = {'calendarId': calId, 'id': event['id']}
39656
+ if user:
39657
+ row['primaryEmail'] = user
39658
+ flattenJSON(event, flattened=row, timeObjects=EVENT_TIME_OBJECTS)
39659
+ if csvPF.CheckRowTitles(row):
39660
+ jcount += 1
39640
39661
  row = {'calendarId': calId}
39641
39662
  if user:
39642
39663
  row['primaryEmail'] = user
39643
39664
  row['events'] = jcount
39644
- csvPF.WriteRow(row)
39665
+ if not calendarEventEntity['eventRowFilter']:
39666
+ csvPF.WriteRow(row)
39667
+ else:
39668
+ csvPF.WriteRowNoFilter(row)
39645
39669
 
39646
39670
  EVENT_FIELDS_CHOICE_MAP = {
39647
39671
  'anyonecanaddself': 'anyoneCanAddSelf',
@@ -39879,13 +39903,17 @@ def _getCalendarPrintShowEventOptions(calendarEventEntity, entityType):
39879
39903
  calendarEventEntity['countsOnly'] = True
39880
39904
  elif myarg == 'showdayofweek':
39881
39905
  calendarEventEntity['showDayOfWeek'] = True
39906
+ elif myarg == 'eventrowfilter':
39907
+ calendarEventEntity['eventRowFilter'] = True
39882
39908
  else:
39883
39909
  FJQC.GetFormatJSONQuoteChar(myarg, True)
39884
- if calendarEventEntity['countsOnly']:
39910
+ if calendarEventEntity['countsOnly'] and not calendarEventEntity['eventRowFilter']:
39885
39911
  fieldsList = ['id']
39886
39912
  if csvPF:
39887
39913
  if calendarEventEntity['countsOnly']:
39914
+ csvPF.RemoveTitles(['id'])
39888
39915
  csvPF.AddTitles(['events'])
39916
+ calendarEventEntity['countsOnlyTitles'] = csvPF.titlesList[:]
39889
39917
  elif not FJQC.formatJSON and not fieldsList:
39890
39918
  csvPF.AddSortTitles(EVENT_PRINT_ORDER)
39891
39919
  _addEventEntitySelectFields(calendarEventEntity, fieldsList)
@@ -39893,17 +39921,24 @@ def _getCalendarPrintShowEventOptions(calendarEventEntity, entityType):
39893
39921
 
39894
39922
  # gam calendars <CalendarEntity> print events <EventEntity> <EventDisplayProperties>*
39895
39923
  # [fields <EventFieldNameList>] [showdayofweek]
39896
- # [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
39924
+ # [countsonly [eventrowfilter]]
39925
+ # [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
39897
39926
  # gam calendars <CalendarEntity> show events <EventEntity> <EventDisplayProperties>*
39898
39927
  # [fields <EventFieldNameList>] [showdayofweek]
39899
- # [countsonly] [formatjson]
39928
+ # [countsonly]
39929
+ # [formatjson]
39900
39930
  def doCalendarsPrintShowEvents(calIds):
39901
39931
  calendarEventEntity = getCalendarEventEntity()
39902
39932
  csvPF, FJQC, fieldsList = _getCalendarPrintShowEventOptions(calendarEventEntity, Ent.CALENDAR)
39903
39933
  _printShowCalendarEvents(None, None, None, calIds, len(calIds), calendarEventEntity,
39904
39934
  csvPF, FJQC, fieldsList)
39905
39935
  if csvPF:
39906
- csvPF.writeCSVfile('Calendar Events')
39936
+ if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
39937
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
39938
+ csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
39939
+ csvPF.writeCSVfile('Calendar Events', True)
39940
+ else:
39941
+ csvPF.writeCSVfile('Calendar Events')
39907
39942
 
39908
39943
  # <CalendarSettings> ::==
39909
39944
  # [description <String>] [location <String>] [summary <String>] [timezone <TimeZone>]
@@ -51371,10 +51406,12 @@ def infoCalendarEvents(users):
51371
51406
 
51372
51407
  # gam <UserTypeEntity> print events <UserCalendarEntity> <EventEntity> <EventDisplayProperties>*
51373
51408
  # [fields <EventFieldNameList>] [showdayofweek]
51374
- # [countsonly] [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
51409
+ # [countsonly [eventrowfilter]]
51410
+ # [formatjson [quotechar <Character>]] [todrive <ToDriveAttribute>*]
51375
51411
  # gam <UserTypeEntity> show events <UserCalendarEntity> <EventEntity> <EventDisplayProperties>*
51376
51412
  # [fields <EventFieldNameList>] [showdayofweek]
51377
- # [countsonly] [formatjson]
51413
+ # [countsonly]]
51414
+ # [formatjson]
51378
51415
  def printShowCalendarEvents(users):
51379
51416
  calendarEntity = getUserCalendarEntity()
51380
51417
  calendarEventEntity = getCalendarEventEntity()
@@ -51392,7 +51429,12 @@ def printShowCalendarEvents(users):
51392
51429
  csvPF, FJQC, fieldsList)
51393
51430
  Ind.Decrement()
51394
51431
  if csvPF:
51395
- csvPF.writeCSVfile('Calendar Events')
51432
+ if calendarEventEntity['countsOnly'] and calendarEventEntity['eventRowFilter']:
51433
+ csvPF.SetRowFilter([], GC.Values[GC.CSV_OUTPUT_ROW_FILTER_MODE])
51434
+ csvPF.SetTitles(calendarEventEntity['countsOnlyTitles'])
51435
+ csvPF.writeCSVfile('Calendar Events', True)
51436
+ else:
51437
+ csvPF.writeCSVfile('Calendar Events')
51396
51438
 
51397
51439
  def getStatusEventDateTime(dateType, dateList):
51398
51440
  if dateType == 'timerange':
gam/gamlib/glglobals.py CHANGED
@@ -207,6 +207,7 @@ REDIRECT_WRITE_HEADER = 'rdwh'
207
207
  REDIRECT_MULTIPROCESS = 'rdmp'
208
208
  REDIRECT_QUEUE = 'rdq'
209
209
  REDIRECT_QUEUE_NAME = 'name'
210
+ REDIRECT_QUEUE_CLEAR_ROW_FILTERS = 'clearRowFilters'
210
211
  REDIRECT_QUEUE_TODRIVE = 'todrive'
211
212
  REDIRECT_QUEUE_CSVPF = 'csvpf'
212
213
  REDIRECT_QUEUE_DATA = 'rows'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.7.5
3
+ Version: 7.7.7
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=g4Igp-HrQ97iJlBTNMDPYVPPAiGoAlKhWY08A1VILL4,3499561
1
+ gam/__init__.py,sha256=NCaIed9ZmaOuNYWhMsJQM3jHOtwv8uolUJ74rojEs4o,3501521
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
@@ -29,7 +29,7 @@ gam/gamlib/glclargs.py,sha256=2pb0bdmWbTM5WrNVlMP-d-pe8f5oY3XuF50m02v8ynk,42199
29
29
  gam/gamlib/glentity.py,sha256=fqWUlxQqPKlfFrkuPjCK2lZhhFBIZboCuO0qCxuEwqA,33691
30
30
  gam/gamlib/glgapi.py,sha256=n3J-kLsMC6pZ89r9i2hZIxCH73T1_WiwJyYVGfyhRsM,39349
31
31
  gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
32
- gam/gamlib/glglobals.py,sha256=Y73xM1RNhIbtcqnMv1gcZF3wDWOeLWW-7SvoQyWw6tA,9659
32
+ gam/gamlib/glglobals.py,sha256=xGfSHiDpF-FSA6jorBtzy981OVBGTHCUy_HTsmbIiwE,9712
33
33
  gam/gamlib/glindent.py,sha256=RfBa2LDfLIqPLL5vMfC689TCVmqn8xf-qulSzkiatrc,1228
34
34
  gam/gamlib/glmsgs.py,sha256=3wqw8Hq-l2n_TGkf7xhjQS9W6Xz5Ic2ErgsW3h-7qNM,33465
35
35
  gam/gamlib/glskus.py,sha256=xJ1E2BZ_CGHN6I19c9i8DApb5bT5VT-hGyMEmQ5hSRY,15241
@@ -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.5.dist-info/METADATA,sha256=C2Xs6CLuI69B-ABkkWX_KFESSbXeL7kmspqft-O_4_c,2969
69
- gam7-7.7.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
- gam7-7.7.5.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
- gam7-7.7.5.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
- gam7-7.7.5.dist-info/RECORD,,
68
+ gam7-7.7.7.dist-info/METADATA,sha256=cHrWG8vJlWd0Mu7T-71RWMxmlC6u0OxZVeJZw7-WCKk,2969
69
+ gam7-7.7.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
70
+ gam7-7.7.7.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
71
+ gam7-7.7.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
72
+ gam7-7.7.7.dist-info/RECORD,,
File without changes