diff --git a/pyproject.toml b/pyproject.toml index 240bad90..359c782c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,6 +7,7 @@ authors = [ { name="Jay Lee", email="jay0lee@gmail.com" }, { name="Ross Scroggs", email="Ross.Scroggs@gmail.com" }, ] +# # The following files should be edited to match: setup.cfg, requirements.txt dependencies = [ "chardet>=5.2.0", "cryptography>=44.0.2", @@ -17,7 +18,7 @@ dependencies = [ "google-auth-oauthlib>=1.2.2", "google-auth>=2.39.0", "httplib2>=0.22.0", - "lxml", + "lxml>=5.4.0", "passlib>=1.7.4", "pathvalidate>=3.2.3", "pyscard==2.2.1", diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 18554aa4..867616dd 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,11 @@ +7.06.11 + +Improved `gam checkconn`. + +Updated `gam print group-members` and `gam print cigroup-members` to recognize members +that are groups representing chat spaces. For now, these groups are not expanded when +`recursive` is specified. + 7.06.10 Added the following license SKU. diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 86c95b4e..da45cf5f 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki """ __author__ = 'GAM Team ' -__version__ = '7.06.10' +__version__ = '7.06.11' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -34205,7 +34205,8 @@ def getGroupMembers(cd, groupEmail, memberRoles, membersList, membersSet, i, cou elif memberOptions[MEMBEROPTION_NODUPLICATES]: groupMemberList = [] for member in groupMembers: - if member['type'] != Ent.TYPE_GROUP: + namespace = member['email'].find('@') == -1 + if member['type'] != Ent.TYPE_GROUP or namespace: if ((member['type'] in typesSet and checkMemberMatch(member, memberOptions) and _checkMemberRoleIsSuspendedIsArchived(member, validRoles, memberOptions[MEMBEROPTION_ISSUSPENDED], memberOptions[MEMBEROPTION_ISARCHIVED]) and @@ -34234,7 +34235,8 @@ def getGroupMembers(cd, groupEmail, memberRoles, membersList, membersSet, i, cou memberOptions, memberDisplayOptions, level+1, typesSet) else: for member in groupMembers: - if member['type'] != Ent.TYPE_GROUP: + namespace = member['email'].find('@') == -1 + if member['type'] != Ent.TYPE_GROUP or namespace: if ((member['type'] in typesSet) and checkMemberMatch(member, memberOptions) and _checkMemberRoleIsSuspendedIsArchived(member, validRoles, @@ -36333,7 +36335,8 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co for member in groupMembers: getCIGroupMemberRoleFixType(member) memberName = member.get('preferredMemberKey', {}).get('id', '') - if member['type'] != Ent.TYPE_GROUP: + namespace = member.get('preferredMemberKey', {}).get('namespace', '') + if member['type'] != Ent.TYPE_GROUP or namespace: if (member['type'] in typesSet and checkCIMemberMatch(member, memberOptions) and _checkMemberRole(member, validRoles) and @@ -36361,7 +36364,8 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co for member in groupMembers: getCIGroupMemberRoleFixType(member) memberName = member.get('preferredMemberKey', {}).get('id', '') - if member['type'] != Ent.TYPE_GROUP: + namespace = member.get('preferredMemberKey', {}).get('namespace', '') + if member['type'] != Ent.TYPE_GROUP or namespace: if (member['type'] in typesSet and checkCIMemberMatch(member, memberOptions) and _checkMemberRole(member, validRoles) and diff --git a/src/requirements.txt b/src/requirements.txt index b9f0e1e4..f51f9bc1 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -7,7 +7,7 @@ google-auth-httplib2>=0.2.0 google-auth-oauthlib>=1.2.2 google-auth>=2.39.0 httplib2>=0.22.0 -lxml +lxml>=5.4.0 passlib>=1.7.4 pathvalidate>=3.2.3 pyscard==2.2.1 diff --git a/src/setup.cfg b/src/setup.cfg index 253daf3c..57a4c1ad 100644 --- a/src/setup.cfg +++ b/src/setup.cfg @@ -17,11 +17,13 @@ classifiers = Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 License :: OSI Approved :: Apache License [options] packages = find: -python_requires = >= 3.8 +python_requires = >= 3.9 +# The following files should be edited to match: pyproject.toml, requirements.txt install_requires = chardet >= 5.2.0 cryptography >= 44.0.2 @@ -32,7 +34,7 @@ install_requires = google-auth-oauthlib >= 1.2.2 google-auth >= 2.39.0 httplib2 >= 0.22.0 - lxml + lxml >= 5.4.0 passlib >= 1.7.4 pathvalidate >= 3.2.3 pyscard == 2.2.1 diff --git a/wiki/GamUpdates.md b/wiki/GamUpdates.md index b0c9cd00..dec99a2e 100644 --- a/wiki/GamUpdates.md +++ b/wiki/GamUpdates.md @@ -10,6 +10,14 @@ Add the `-s` option to the end of the above commands to suppress creating the `g See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation +### 7.06.11 + +Improved `gam checkconn`. + +Updated `gam print group-members` and `gam print cigroup-members` to recognize members +that are groups representing chat spaces. For now, these groups are not expanded when +`recursive` is specified. + ### 7.06.10 Added the following license SKU. diff --git a/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md b/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md index 49d02187..38fc989a 100644 --- a/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md +++ b/wiki/How-to-Upgrade-Legacy-GAM-to-GAM7.md @@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt. admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin$ gam version WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found -GAM 7.06.10 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.06.11 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.3 64-bit final MacOS Sequoia 15.4.1 x86_64 @@ -989,7 +989,7 @@ writes the credentials into the file oauth2.txt. C:\>del C:\GAMConfig\oauth2.txt C:\>gam version WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found -GAM 7.06.10 - https://github.com/GAM-team/GAM - pythonsource +GAM 7.06.11 - https://github.com/GAM-team/GAM - pythonsource GAM Team Python 3.13.3 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/wiki/Version-and-Help.md b/wiki/Version-and-Help.md index 0dd4d41d..09995241 100644 --- a/wiki/Version-and-Help.md +++ b/wiki/Version-and-Help.md @@ -4,7 +4,7 @@ k Print the current version of Gam with details ``` gam version -GAM 7.06.10 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.06.11 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.3 64-bit final MacOS Sequoia 15.4.1 x86_64 @@ -16,7 +16,7 @@ Time: 2023-06-02T21:10:00-07:00 Print the current version of Gam with details and time offset information ``` gam version timeoffset -GAM 7.06.10 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.06.11 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.3 64-bit final MacOS Sequoia 15.4.1 x86_64 @@ -28,7 +28,7 @@ Your system time differs from www.googleapis.com by less than 1 second Print the current version of Gam with extended details and SSL information ``` gam version extended -GAM 7.06.10 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.06.11 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.3 64-bit final MacOS Sequoia 15.4.1 x86_64 @@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gam7 Version Check: Current: 5.35.08 - Latest: 7.06.10 + Latest: 7.06.11 echo $? 1 ``` @@ -73,7 +73,7 @@ echo $? Print the current version number without details ``` gam version simple -7.06.10 +7.06.11 ``` In Linux/MacOS you can do: ``` @@ -83,7 +83,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 7.06.10 - https://github.com/GAM-team/GAM +GAM 7.06.11 - https://github.com/GAM-team/GAM GAM Team Python 3.13.3 64-bit final MacOS Sequoia 15.4.1 x86_64