pyxecm 3.6.2__tar.gz → 3.8.0__tar.gz

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.
Files changed (77) hide show
  1. {pyxecm-3.6.2 → pyxecm-3.8.0}/PKG-INFO +5 -3
  2. {pyxecm-3.6.2 → pyxecm-3.8.0}/pyproject.toml +4 -3
  3. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/__init__.py +1 -1
  4. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/avts.py +16 -16
  5. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/coreshare.py +33 -35
  6. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/assoc.py +14 -10
  7. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/data.py +139 -112
  8. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/logadapter.py +7 -4
  9. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/web.py +12 -8
  10. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/xml.py +21 -20
  11. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otac.py +20 -28
  12. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otawp.py +28 -60
  13. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otca.py +24 -27
  14. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otcs.py +627 -509
  15. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otds.py +737 -91
  16. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otiv.py +1 -1
  17. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otkd.py +46 -48
  18. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otmm.py +21 -23
  19. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/otpd.py +27 -27
  20. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/app.py +27 -6
  21. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/auth/functions.py +9 -9
  22. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/auth/router.py +4 -4
  23. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/common/functions.py +1 -1
  24. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/common/metrics.py +1 -1
  25. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/common/router.py +1 -1
  26. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/settings.py +1 -10
  27. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/terminal/__init__.py +1 -1
  28. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/terminal/router.py +6 -9
  29. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_maintenance/router.py +1 -1
  30. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_payload/functions.py +133 -4
  31. pyxecm-3.8.0/src/pyxecm_api/v1_payload/log_reader.py +1524 -0
  32. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_payload/models.py +36 -0
  33. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_payload/router.py +203 -9
  34. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/browser_automation.py +55 -45
  35. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/customizer.py +9 -37
  36. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/guidewire.py +322 -356
  37. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/k8s.py +54 -53
  38. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/log.py +9 -5
  39. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/m365.py +140 -132
  40. pyxecm-3.8.0/src/pyxecm_customizer/manager_push.py +261 -0
  41. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/payload.py +464 -354
  42. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/payload_list.py +49 -0
  43. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/salesforce.py +38 -37
  44. pyxecm-3.8.0/src/pyxecm_customizer/sap.py +6098 -0
  45. pyxecm-3.8.0/src/pyxecm_customizer/sap_models.py +7260 -0
  46. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/servicenow.py +54 -53
  47. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/settings.py +132 -9
  48. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/successfactors.py +189 -168
  49. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/translate.py +4 -4
  50. pyxecm-3.8.0/src/pyxecm_customizer/version.py +33 -0
  51. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/app.py +3 -1
  52. pyxecm-3.6.2/src/pyxecm_customizer/sap.py +0 -163
  53. {pyxecm-3.6.2 → pyxecm-3.8.0}/.gitignore +0 -0
  54. {pyxecm-3.6.2 → pyxecm-3.8.0}/README.md +0 -0
  55. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/helper/__init__.py +0 -0
  56. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm/py.typed +0 -0
  57. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/__init__.py +0 -0
  58. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/__main__.py +0 -0
  59. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/auth/__init__.py +0 -0
  60. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/auth/models.py +0 -0
  61. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/common/__init__.py +0 -0
  62. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/common/models.py +0 -0
  63. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_maintenance/__init__.py +0 -0
  64. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_maintenance/functions.py +0 -0
  65. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_maintenance/models.py +0 -0
  66. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_otcs/__init__.py +0 -0
  67. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_otcs/functions.py +0 -0
  68. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_otcs/router.py +0 -0
  69. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_api/v1_payload/__init__.py +0 -0
  70. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/__init__.py +0 -0
  71. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/__main__.py +0 -0
  72. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_customizer/exceptions.py +0 -0
  73. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/__init__.py +0 -0
  74. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/__main__.py +0 -0
  75. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/settings.py +0 -0
  76. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/static/favicon.avif +0 -0
  77. {pyxecm-3.6.2 → pyxecm-3.8.0}/src/pyxecm_maintenance_page/templates/maintenance.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pyxecm
3
- Version: 3.6.2
3
+ Version: 3.8.0
4
4
  Summary: A Python library to interact with Opentext Content Management Rest API
5
5
  Project-URL: Homepage, https://github.com/opentext/pyxecm
6
6
  Author-email: Kai Gatzweiler <kgatzweiler@opentext.com>, "Dr. Marc Diefenbruch" <mdiefenb@opentext.com>
@@ -11,7 +11,7 @@ Classifier: License :: OSI Approved :: Apache Software License
11
11
  Classifier: Operating System :: OS Independent
12
12
  Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
14
- Requires-Python: >=3.10
14
+ Requires-Python: >=3.12
15
15
  Requires-Dist: lxml>=6.0.0
16
16
  Requires-Dist: opentelemetry-api>=1.34.1
17
17
  Requires-Dist: opentelemetry-exporter-otlp>=1.34.1
@@ -40,10 +40,12 @@ Provides-Extra: customizer
40
40
  Requires-Dist: kubernetes>=33.1.0; extra == 'customizer'
41
41
  Requires-Dist: openpyxl>=3.1.5; extra == 'customizer'
42
42
  Requires-Dist: playwright>=1.53.0; extra == 'customizer'
43
- Requires-Dist: pydantic>=2.11.7; extra == 'customizer'
43
+ Requires-Dist: pydantic>=2.12.0; extra == 'customizer'
44
44
  Requires-Dist: python-hcl2==7.3.1; extra == 'customizer'
45
45
  Provides-Extra: magic
46
46
  Requires-Dist: python-magic; extra == 'magic'
47
+ Provides-Extra: saml
48
+ Requires-Dist: signxml>=5.1.0; extra == 'saml'
47
49
  Provides-Extra: sap
48
50
  Requires-Dist: pyrfc==3.3.1; extra == 'sap'
49
51
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyxecm"
3
- version = "3.6.2"
3
+ version = "3.8.0"
4
4
  description = 'A Python library to interact with Opentext Content Management Rest API'
5
5
  keywords = [
6
6
  'opentext',
@@ -15,7 +15,7 @@ authors = [
15
15
  { name = "Kai Gatzweiler", email = "kgatzweiler@opentext.com" },
16
16
  { name = "Dr. Marc Diefenbruch", email = "mdiefenb@opentext.com" },
17
17
  ]
18
- requires-python = '>=3.10'
18
+ requires-python = '>=3.12'
19
19
  dependencies = [
20
20
  "lxml>=6.0.0",
21
21
  "opentelemetry-api>=1.34.1",
@@ -43,10 +43,11 @@ classifiers = [
43
43
  [project.optional-dependencies]
44
44
  magic = ['python-magic']
45
45
  sap = ['pyrfc==3.3.1']
46
+ saml = ['signxml>=5.1.0']
46
47
  customizer = [
47
48
  "kubernetes>=33.1.0",
48
49
  "playwright>=1.53.0",
49
- "pydantic>=2.11.7",
50
+ "pydantic>=2.12.0",
50
51
  "python-hcl2==7.3.1",
51
52
  "openpyxl>=3.1.5",
52
53
  ]
@@ -1,4 +1,4 @@
1
- """pyxecm - A python library to interact with Opentext REST APIs."""
1
+ """pyxecm - A python library to interact with OpenText REST APIs."""
2
2
 
3
3
  __author__ = "Dr. Marc Diefenbruch"
4
4
  __copyright__ = "Copyright (C) 2024-2025, OpenText"
@@ -1,4 +1,4 @@
1
- """AVTS stands for Aviator Search and is an OpenText offering for LLMM-based search across multiple repositories."""
1
+ """AVTS stands for Aviator Search and is an OpenText offering for LLM-based search across multiple repositories."""
2
2
 
3
3
  __author__ = "Dr. Marc Diefenbruch"
4
4
  __copyright__ = "Copyright (C) 2024-2025, OpenText"
@@ -172,7 +172,7 @@ class AVTS:
172
172
  HTTP method (GET, POST, etc.). Defaults to "GET".
173
173
  headers (dict | None, optional):
174
174
  Request headers. Defaults to None.
175
- data (dict | None, optional):
175
+ data (dict | list | None, optional):
176
176
  Request payload. Defaults to None.
177
177
  json_data (dict | None, optional):
178
178
  Request payload for the JSON parameter. Defaults to None.
@@ -315,7 +315,7 @@ class AVTS:
315
315
 
316
316
  Args:
317
317
  response_object (requests.Response):
318
- This is reponse object delivered by the request call.
318
+ This is the response object delivered by the request call.
319
319
  additional_error_message (str, optional):
320
320
  Use a more specific error message in case of an error.
321
321
  show_error (bool, optional):
@@ -650,13 +650,13 @@ class AVTS:
650
650
  certificate_password (str):
651
651
  The password for the certificate.
652
652
  index_attachments (bool, optional):
653
- Whether or not to index / crawl attachments.
653
+ Whether or not to index / crawl attachments. Defaults to True.
654
654
  index_call_recordings (bool, optional):
655
- Whether or not to index / crawl meeting recordings.
655
+ Whether or not to index / crawl meeting recordings. Defaults to True.
656
656
  index_message_replies (bool, optional):
657
- Whether or not to index / crawl message replies.
657
+ Whether or not to index / crawl message replies. Defaults to True.
658
658
  index_user_chats (bool, optional):
659
- Whether or not to index / crawl user chats.
659
+ Whether or not to index / crawl user chats. Defaults to True.
660
660
 
661
661
  Returns:
662
662
  dict | None:
@@ -956,9 +956,9 @@ class AVTS:
956
956
  tenant_id (str):
957
957
  The M365 tenant ID.
958
958
  certificate_file (str):
959
- TODO: _description_
959
+ The path to the certificate file.
960
960
  certificate_password (int):
961
- TODO: _description_
961
+ The password for the certificate.
962
962
  sharepoint_url (str):
963
963
  The SharePoint URL.
964
964
  sharepoint_url_type (str):
@@ -968,11 +968,11 @@ class AVTS:
968
968
  sharepoint_admin_url (str):
969
969
  The SharePoint administration URL.
970
970
  index_user_profiles (bool, optional):
971
- TODO: _description_. Defaults to True.
971
+ Whether or not to index information from user profiles. Defaults to True.
972
972
  oauth2_site_name (str, optional):
973
- TODO: _description_. Defaults to "AVTS".
973
+ The value of the "OAuth2SiteName" repository parameter. Defaults to "AVTS".
974
974
  oauth2_sites_file (str, optional):
975
- TODO: _description_. Defaults to "".
975
+ The value of the "OAuth2SitesFile" repository parameter. Defaults to "".
976
976
 
977
977
  Returns:
978
978
  dict | None:
@@ -1440,7 +1440,7 @@ class AVTS:
1440
1440
 
1441
1441
  Returns:
1442
1442
  dict | None:
1443
- ID of a repostiory by name or None in case of an error
1443
+ The repository data for the given name or None if no repository is found or in case of an error
1444
1444
 
1445
1445
  """
1446
1446
 
@@ -1459,7 +1459,7 @@ class AVTS:
1459
1459
  def get_certificate_file_content_base64(self, filepath: str) -> str | None:
1460
1460
  """Return the certificate as a base64 string.
1461
1461
 
1462
- In Kubernetes deploymnets the certificate is already mounted base64 encoded.
1462
+ In Kubernetes deployments the certificate is already mounted base64 encoded.
1463
1463
 
1464
1464
  Args:
1465
1465
  filepath (str):
@@ -1512,7 +1512,7 @@ class AVTS:
1512
1512
  # end method definition
1513
1513
 
1514
1514
  def set_questions(self, questions: list) -> list | None:
1515
- """Get a list of all repositories.
1515
+ """Set the list of proposed questions.
1516
1516
 
1517
1517
  Args:
1518
1518
  questions (list):
@@ -1520,7 +1520,7 @@ class AVTS:
1520
1520
 
1521
1521
  Returns:
1522
1522
  list | None:
1523
- Parsed response object from the API listing all repositories or None in case of an error.
1523
+ Parsed response object from the API or None in case of an error.
1524
1524
 
1525
1525
  """
1526
1526
 
@@ -253,7 +253,7 @@ class CoreShare:
253
253
  Data is sent as key-value pairs in the body of the request, similar to query parameters.
254
254
  * multipart/form-data - Used for file uploads or when a form includes non-ASCII characters
255
255
 
256
- Return:
256
+ Returns:
257
257
  dict:
258
258
  The request header values.
259
259
 
@@ -279,7 +279,7 @@ class CoreShare:
279
279
  content_type (str, optional):
280
280
  The content type for the request.
281
281
 
282
- Return:
282
+ Returns:
283
283
  dict:
284
284
  The request header values.
285
285
 
@@ -316,7 +316,7 @@ class CoreShare:
316
316
  user_credentials: bool = False,
317
317
  verify: bool = True,
318
318
  ) -> dict | None:
319
- """Call an OTDS REST API in a safe way.
319
+ """Call a Core Share REST API in a safe way.
320
320
 
321
321
  Args:
322
322
  url (str):
@@ -338,9 +338,8 @@ class CoreShare:
338
338
  Whether or not an error should be logged in case of a failed REST call.
339
339
  If False, then only a warning is logged. Defaults to True.
340
340
  show_warning (bool, optional):
341
- Whether or not an warning should be logged in case of a
342
- failed REST call.
343
- If False, then only a warning is logged. Defaults to True.
341
+ Whether or not a warning should be logged in case of a
342
+ failed REST call (only used if show_error is False). Defaults to False.
344
343
  warning_message (str, optional):
345
344
  Specific warning message. Defaults to "". If not given the error_message will be used.
346
345
  failure_message (str, optional):
@@ -363,7 +362,7 @@ class CoreShare:
363
362
 
364
363
  Returns:
365
364
  dict | None:
366
- Response of OTDS REST API or None in case of an error.
365
+ Response of the Core Share REST API or None in case of an error.
367
366
 
368
367
  """
369
368
 
@@ -519,7 +518,7 @@ class CoreShare:
519
518
 
520
519
  Args:
521
520
  response_object (object):
522
- This is reponse object returned by the request call.
521
+ This is the response object returned by the request call.
523
522
  additional_error_message (str, optional):
524
523
  Can be used to provide a more specific error message
525
524
  in case an error occurs.
@@ -564,11 +563,11 @@ class CoreShare:
564
563
  value: str,
565
564
  return_key: str,
566
565
  ) -> str | None:
567
- """Lookup a property value based on a provided key / value pair in the response of an Core Share REST API call.
566
+ """Lookup a property value based on a provided key / value pair in the response of a Core Share REST API call.
568
567
 
569
568
  Args:
570
569
  response (dict):
571
- REST response from an Core Share REST Call
570
+ REST response from a Core Share REST Call
572
571
  key (str):
573
572
  The property name (key).
574
573
  value (str):
@@ -617,7 +616,7 @@ class CoreShare:
617
616
  value (str):
618
617
  The value to find in the item with the matching key.
619
618
  results_marker (str, optional):
620
- The name of the data structure for the results.
619
+ The name of the data structure for the results. Defaults to "results".
621
620
 
622
621
  Returns:
623
622
  bool:
@@ -710,12 +709,12 @@ class CoreShare:
710
709
 
711
710
  Args:
712
711
  revalidate (bool, optional):
713
- Defines whether or not a re-athentication is enforced
712
+ Defines whether or not a re-authentication is enforced
714
713
  (e.g. if session has timed out with 401 error).
715
714
 
716
715
  Returns:
717
716
  str:
718
- The access token. Also stores access token in self._access_token.
717
+ The access token. Also stores access token in self._access_token_admin.
719
718
  None in case of error.
720
719
 
721
720
  """
@@ -796,14 +795,14 @@ class CoreShare:
796
795
 
797
796
  Args:
798
797
  revalidate (bool, optional):
799
- Defines whether or not a re-athentication is enforced
798
+ Defines whether or not a re-authentication is enforced
800
799
  (e.g. if session has timed out with 401 error).
801
800
  grant_type (str, optional):
802
- Can either be "client_credentials" (default) or "password".
801
+ Can either be "client_credentials" or "password". Defaults to "password".
803
802
 
804
803
  Returns:
805
804
  str:
806
- The access token. Also stores access token in self._access_token.
805
+ The access token. Also stores access token in self._access_token_user.
807
806
  None in case of error.
808
807
 
809
808
  """
@@ -944,8 +943,8 @@ class CoreShare:
944
943
  Returning a generator avoids loading a large number of items into memory at once. Instead you
945
944
  can iterate over the potential large list of Core Share groups.
946
945
 
947
- Example usage:
948
- groups = core_share_object.get_groups_iterator(page_size=10)
946
+ Example:
947
+ groups = core_share_object.get_groups_iterator(count=10)
949
948
  for group in groups:
950
949
  logger.info("Traversing Core Share group -> %s", group["name"])
951
950
 
@@ -956,7 +955,7 @@ class CoreShare:
956
955
 
957
956
  Returns:
958
957
  iter:
959
- A generator yielding one OTDS group per iteration.
958
+ A generator yielding one Core Share group per iteration.
960
959
  If the REST API fails, returns no value.
961
960
 
962
961
  """
@@ -1005,7 +1004,7 @@ class CoreShare:
1005
1004
  group_name: str,
1006
1005
  description: str = "",
1007
1006
  ) -> dict | None:
1008
- """Add a new Core Share group. This requires a Tenent Admin authorization.
1007
+ """Add a new Core Share group. This requires a Tenant Admin authorization.
1009
1008
 
1010
1009
  Args:
1011
1010
  group_name (str):
@@ -1149,7 +1148,7 @@ class CoreShare:
1149
1148
 
1150
1149
  Returns:
1151
1150
  list | None:
1152
- Dictionary with the Core Share group membership or None if the request fails.
1151
+ List with the Core Share group membership or None if the request fails.
1153
1152
 
1154
1153
  Example Response ('errors' is only output if success = False):
1155
1154
  [
@@ -1240,7 +1239,7 @@ class CoreShare:
1240
1239
 
1241
1240
  Returns:
1242
1241
  list | None:
1243
- Dictionary with the Core Share group membership or None if the request fails.
1242
+ List with the Core Share group membership or None if the request fails.
1244
1243
 
1245
1244
  Example Response ('errors' is only output if success = False):
1246
1245
  [
@@ -1378,10 +1377,12 @@ class CoreShare:
1378
1377
  """Search Core Share group(s) using a query string.
1379
1378
 
1380
1379
  Args:
1381
- query_string(str): Query for the group name / property
1380
+ query_string (str):
1381
+ Query for the group name / property.
1382
1382
 
1383
1383
  Returns:
1384
- dict | None: Dictionary with the Core Share user data or None if the request fails.
1384
+ dict | None:
1385
+ Dictionary with the Core Share group data or None if the request fails.
1385
1386
 
1386
1387
  """
1387
1388
 
@@ -1413,9 +1414,6 @@ class CoreShare:
1413
1414
  def get_users(self) -> list | None:
1414
1415
  """Get Core Share users.
1415
1416
 
1416
- Args:
1417
- None
1418
-
1419
1417
  Returns:
1420
1418
  list | None:
1421
1419
  List with the Core Share user data or None if the request fails.
@@ -1664,7 +1662,7 @@ class CoreShare:
1664
1662
 
1665
1663
  """
1666
1664
 
1667
- # Search the users with this first and last name (and hope this is unique ;-).
1665
+ # Search the users with this email address (and hope this is unique ;-).
1668
1666
  users = self.search_users(
1669
1667
  query_string=email,
1670
1668
  user_status=user_status,
@@ -1776,7 +1774,7 @@ class CoreShare:
1776
1774
  title: str | None = None,
1777
1775
  company: str | None = None,
1778
1776
  ) -> dict | None:
1779
- """Add a new Core Share user. This requires a Tenent Admin authorization.
1777
+ """Add a new Core Share user. This requires a Tenant Admin authorization.
1780
1778
 
1781
1779
  Args:
1782
1780
  first_name (str):
@@ -2094,7 +2092,7 @@ class CoreShare:
2094
2092
 
2095
2093
  response = None
2096
2094
 
2097
- # Admins don't have/need specific access roles. They are controled by isAdmin flag.
2095
+ # Admins don't have/need specific access roles. They are controlled by isAdmin flag.
2098
2096
  if is_admin is not None:
2099
2097
  update_data = {}
2100
2098
  update_data["isAdmin"] = is_admin
@@ -2514,7 +2512,7 @@ class CoreShare:
2514
2512
 
2515
2513
  Returns:
2516
2514
  dict | None:
2517
- Reponse of the REST call or None in case of an error.
2515
+ Response of the REST call or None in case of an error.
2518
2516
 
2519
2517
  """
2520
2518
 
@@ -2604,7 +2602,7 @@ class CoreShare:
2604
2602
  * Local resources - not shared
2605
2603
  * Resources shared by the user
2606
2604
  * Resources shared by other users or groups
2607
- This method impersonate as the user. Only the user can delete its folders.
2605
+ This method impersonates the user. Only the user can delete its folders.
2608
2606
  The Core Share admin is not entitled to do this.
2609
2607
 
2610
2608
  Args:
@@ -2634,7 +2632,7 @@ class CoreShare:
2634
2632
  )
2635
2633
  return True
2636
2634
 
2637
- self.logger.info("Inpersonate as user -> %s to cleanup files...", user_login)
2635
+ self.logger.info("Impersonate as user -> %s to cleanup files...", user_login)
2638
2636
 
2639
2637
  # Save admin credentials the class has been initialized with:
2640
2638
  admin_credentials = self.credentials()
@@ -2713,7 +2711,7 @@ class CoreShare:
2713
2711
  response = self.delete_document(item["id"])
2714
2712
  else:
2715
2713
  self.logger.error(
2716
- "Unsupport resource type -> '%s'! Cannot remove this item from Core Share.",
2714
+ "Unsupported resource type -> '%s'! Cannot remove this item from Core Share.",
2717
2715
  item["resourceType"],
2718
2716
  )
2719
2717
  response = None
@@ -2795,7 +2793,7 @@ class CoreShare:
2795
2793
  group_id (str):
2796
2794
  The Core Share group ID.
2797
2795
  resource_id (str):
2798
- The ID of the Core share folder.
2796
+ The ID of the Core Share folder.
2799
2797
 
2800
2798
  Returns:
2801
2799
  dict | None:
@@ -22,10 +22,12 @@ class Assoc:
22
22
  """Determine if a string is unicode escaped.
23
23
 
24
24
  Args:
25
- assoc_string (str): string with the Assoc data
25
+ assoc_string (str):
26
+ String with the Assoc data.
26
27
 
27
28
  Returns:
28
- bool: True if string is in Unicode, False otherwise
29
+ bool:
30
+ True if the string contains unicode escape sequences, False otherwise.
29
31
 
30
32
  """
31
33
 
@@ -100,13 +102,15 @@ class Assoc:
100
102
 
101
103
  @classmethod
102
104
  def unescape_html(cls, assoc_string: str) -> str:
103
- """HTML unescape a a string.
105
+ """HTML unescape a string.
104
106
 
105
107
  Args:
106
- assoc_string (str): the string to unescape.
108
+ assoc_string (str):
109
+ The string to unescape.
107
110
 
108
111
  Returns:
109
- str: unescaped string
112
+ str:
113
+ The unescaped string.
110
114
 
111
115
  """
112
116
 
@@ -218,13 +222,13 @@ class Assoc:
218
222
  input_string (str):
219
223
  Input string to search the delimited substring in.
220
224
  start_sequence (str):
221
- Start esequence of characters.
225
+ Start sequence of characters.
222
226
  stop_sequence (str):
223
- Stop sequence of characters
227
+ Stop sequence of characters.
224
228
 
225
229
  Returns:
226
230
  str | None:
227
- The deliminated substring or None if not found.
231
+ The delimited substring (including start and stop sequence) or None if not found.
228
232
 
229
233
  """
230
234
 
@@ -245,14 +249,14 @@ class Assoc:
245
249
  def extract_assoc_string(cls, input_string: str, is_escaped: bool = False) -> str:
246
250
  """Extract an Assoc from a string.
247
251
 
248
- The assoc is deliminated by A< ... >.
252
+ The assoc is delimited by A< ... >.
249
253
 
250
254
  Args:
251
255
  input_string (str):
252
256
  Input string that includes the Assoc as a substring.
253
257
  is_escaped (bool, optional):
254
258
  Whether or not the input string includes the
255
- assoc escaped or not.
259
+ assoc escaped or not. Defaults to False.
256
260
 
257
261
  Returns:
258
262
  str: