pyxecm 1.6__tar.gz → 2.0.1__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.

Potentially problematic release.


This version of pyxecm might be problematic. Click here for more details.

Files changed (104) hide show
  1. pyxecm-2.0.1/PKG-INFO +122 -0
  2. pyxecm-2.0.1/README.md +67 -0
  3. pyxecm-2.0.1/pyproject.toml +183 -0
  4. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/__init__.py +7 -4
  5. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/avts.py +727 -254
  6. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/coreshare.py +686 -467
  7. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/customizer/__init__.py +16 -4
  8. pyxecm-2.0.1/pyxecm/customizer/__main__.py +58 -0
  9. pyxecm-2.0.1/pyxecm/customizer/api/__init__.py +5 -0
  10. pyxecm-2.0.1/pyxecm/customizer/api/__main__.py +6 -0
  11. pyxecm-2.0.1/pyxecm/customizer/api/app.py +163 -0
  12. pyxecm-2.0.1/pyxecm/customizer/api/auth/__init__.py +1 -0
  13. pyxecm-2.0.1/pyxecm/customizer/api/auth/functions.py +92 -0
  14. pyxecm-2.0.1/pyxecm/customizer/api/auth/models.py +13 -0
  15. pyxecm-2.0.1/pyxecm/customizer/api/auth/router.py +78 -0
  16. pyxecm-2.0.1/pyxecm/customizer/api/common/__init__.py +1 -0
  17. pyxecm-2.0.1/pyxecm/customizer/api/common/functions.py +47 -0
  18. pyxecm-2.0.1/pyxecm/customizer/api/common/metrics.py +92 -0
  19. pyxecm-2.0.1/pyxecm/customizer/api/common/models.py +21 -0
  20. pyxecm-2.0.1/pyxecm/customizer/api/common/payload_list.py +870 -0
  21. pyxecm-2.0.1/pyxecm/customizer/api/common/router.py +72 -0
  22. pyxecm-2.0.1/pyxecm/customizer/api/settings.py +128 -0
  23. pyxecm-2.0.1/pyxecm/customizer/api/terminal/__init__.py +1 -0
  24. pyxecm-2.0.1/pyxecm/customizer/api/terminal/router.py +87 -0
  25. pyxecm-2.0.1/pyxecm/customizer/api/v1_csai/__init__.py +1 -0
  26. pyxecm-2.0.1/pyxecm/customizer/api/v1_csai/router.py +87 -0
  27. pyxecm-2.0.1/pyxecm/customizer/api/v1_maintenance/__init__.py +1 -0
  28. pyxecm-2.0.1/pyxecm/customizer/api/v1_maintenance/functions.py +100 -0
  29. pyxecm-2.0.1/pyxecm/customizer/api/v1_maintenance/models.py +12 -0
  30. pyxecm-2.0.1/pyxecm/customizer/api/v1_maintenance/router.py +76 -0
  31. pyxecm-2.0.1/pyxecm/customizer/api/v1_otcs/__init__.py +1 -0
  32. pyxecm-2.0.1/pyxecm/customizer/api/v1_otcs/functions.py +61 -0
  33. pyxecm-2.0.1/pyxecm/customizer/api/v1_otcs/router.py +179 -0
  34. pyxecm-2.0.1/pyxecm/customizer/api/v1_payload/__init__.py +1 -0
  35. pyxecm-2.0.1/pyxecm/customizer/api/v1_payload/functions.py +179 -0
  36. pyxecm-2.0.1/pyxecm/customizer/api/v1_payload/models.py +51 -0
  37. pyxecm-2.0.1/pyxecm/customizer/api/v1_payload/router.py +499 -0
  38. pyxecm-2.0.1/pyxecm/customizer/browser_automation.py +932 -0
  39. pyxecm-2.0.1/pyxecm/customizer/customizer.py +1896 -0
  40. pyxecm-2.0.1/pyxecm/customizer/exceptions.py +35 -0
  41. pyxecm-2.0.1/pyxecm/customizer/guidewire.py +1186 -0
  42. pyxecm-2.0.1/pyxecm/customizer/k8s.py +1564 -0
  43. pyxecm-2.0.1/pyxecm/customizer/log.py +107 -0
  44. pyxecm-2.0.1/pyxecm/customizer/m365.py +5834 -0
  45. pyxecm-2.0.1/pyxecm/customizer/nhc.py +1169 -0
  46. pyxecm-2.0.1/pyxecm/customizer/openapi.py +258 -0
  47. pyxecm-2.0.1/pyxecm/customizer/payload.py +29459 -0
  48. pyxecm-2.0.1/pyxecm/customizer/pht.py +1357 -0
  49. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/customizer/salesforce.py +516 -342
  50. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/customizer/sap.py +58 -41
  51. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/customizer/servicenow.py +611 -372
  52. pyxecm-2.0.1/pyxecm/customizer/settings.py +445 -0
  53. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/customizer/successfactors.py +408 -346
  54. pyxecm-2.0.1/pyxecm/customizer/translate.py +167 -0
  55. pyxecm-2.0.1/pyxecm/helper/__init__.py +9 -0
  56. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/helper/assoc.py +83 -43
  57. pyxecm-2.0.1/pyxecm/helper/data.py +3267 -0
  58. pyxecm-2.0.1/pyxecm/helper/logadapter.py +27 -0
  59. pyxecm-2.0.1/pyxecm/helper/web.py +412 -0
  60. pyxecm-2.0.1/pyxecm/helper/xml.py +1115 -0
  61. pyxecm-2.0.1/pyxecm/maintenance_page/__init__.py +5 -0
  62. pyxecm-2.0.1/pyxecm/maintenance_page/__main__.py +6 -0
  63. pyxecm-2.0.1/pyxecm/maintenance_page/app.py +51 -0
  64. pyxecm-2.0.1/pyxecm/maintenance_page/settings.py +28 -0
  65. pyxecm-2.0.1/pyxecm/maintenance_page/static/favicon.avif +0 -0
  66. pyxecm-2.0.1/pyxecm/maintenance_page/templates/maintenance.html +165 -0
  67. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/otac.py +235 -141
  68. pyxecm-2.0.1/pyxecm/otawp.py +3258 -0
  69. pyxecm-2.0.1/pyxecm/otca.py +569 -0
  70. pyxecm-2.0.1/pyxecm/otcs.py +15527 -0
  71. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm/otds.py +2178 -925
  72. pyxecm-2.0.1/pyxecm/otiv.py +81 -0
  73. pyxecm-2.0.1/pyxecm/otmm.py +1875 -0
  74. pyxecm-2.0.1/pyxecm/otpd.py +484 -0
  75. pyxecm-2.0.1/pyxecm.egg-info/PKG-INFO +122 -0
  76. pyxecm-2.0.1/pyxecm.egg-info/SOURCES.txt +80 -0
  77. pyxecm-2.0.1/pyxecm.egg-info/requires.txt +41 -0
  78. {pyxecm-1.6 → pyxecm-2.0.1}/setup.py +1 -1
  79. pyxecm-1.6/PKG-INFO +0 -53
  80. pyxecm-1.6/README.md +0 -19
  81. pyxecm-1.6/pyproject.toml +0 -31
  82. pyxecm-1.6/pyxecm/customizer/browser_automation.py +0 -497
  83. pyxecm-1.6/pyxecm/customizer/customizer.py +0 -2245
  84. pyxecm-1.6/pyxecm/customizer/k8s.py +0 -1042
  85. pyxecm-1.6/pyxecm/customizer/m365.py +0 -3787
  86. pyxecm-1.6/pyxecm/customizer/payload.py +0 -19051
  87. pyxecm-1.6/pyxecm/customizer/pht.py +0 -926
  88. pyxecm-1.6/pyxecm/customizer/translate.py +0 -132
  89. pyxecm-1.6/pyxecm/helper/__init__.py +0 -6
  90. pyxecm-1.6/pyxecm/helper/data.py +0 -1731
  91. pyxecm-1.6/pyxecm/helper/web.py +0 -284
  92. pyxecm-1.6/pyxecm/helper/xml.py +0 -690
  93. pyxecm-1.6/pyxecm/otawp.py +0 -1810
  94. pyxecm-1.6/pyxecm/otcs.py +0 -10808
  95. pyxecm-1.6/pyxecm/otiv.py +0 -66
  96. pyxecm-1.6/pyxecm/otmm.py +0 -928
  97. pyxecm-1.6/pyxecm/otpd.py +0 -380
  98. pyxecm-1.6/pyxecm.egg-info/PKG-INFO +0 -53
  99. pyxecm-1.6/pyxecm.egg-info/SOURCES.txt +0 -36
  100. pyxecm-1.6/pyxecm.egg-info/requires.txt +0 -18
  101. {pyxecm-1.6 → pyxecm-2.0.1}/LICENSE +0 -0
  102. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm.egg-info/dependency_links.txt +0 -0
  103. {pyxecm-1.6 → pyxecm-2.0.1}/pyxecm.egg-info/top_level.txt +0 -0
  104. {pyxecm-1.6 → pyxecm-2.0.1}/setup.cfg +0 -0
pyxecm-2.0.1/PKG-INFO ADDED
@@ -0,0 +1,122 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyxecm
3
+ Version: 2.0.1
4
+ Summary: A Python library to interact with Opentext Extended ECM REST API
5
+ Author-email: Kai Gatzweiler <kgatzweiler@opentext.com>, "Dr. Marc Diefenbruch" <mdiefenb@opentext.com>
6
+ Project-URL: Homepage, https://github.com/opentext/pyxecm
7
+ Keywords: opentext,extendedecm,contentserver,otds,appworks,archivecenter
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
14
+ Requires-Python: >=3.10
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: requests<3
18
+ Requires-Dist: requests_toolbelt
19
+ Requires-Dist: setuptools
20
+ Requires-Dist: kubernetes
21
+ Requires-Dist: zipfile36
22
+ Requires-Dist: suds
23
+ Requires-Dist: python-hcl2
24
+ Requires-Dist: xmltodict
25
+ Requires-Dist: lxml
26
+ Requires-Dist: openpyxl
27
+ Requires-Dist: pandas
28
+ Requires-Dist: python-magic
29
+ Requires-Dist: websockets
30
+ Requires-Dist: pydantic-settings
31
+ Requires-Dist: fastapi>=0.115.12
32
+ Requires-Dist: uvicorn
33
+ Requires-Dist: python-multipart
34
+ Requires-Dist: aiofiles
35
+ Requires-Dist: asyncio
36
+ Requires-Dist: jinja2
37
+ Requires-Dist: prometheus-fastapi-instrumentator
38
+ Requires-Dist: psycopg[binary,pool]>=3.2.6
39
+ Provides-Extra: browserautomation
40
+ Requires-Dist: chromedriver_autoinstaller; extra == "browserautomation"
41
+ Requires-Dist: playwright>=1.52.0; extra == "browserautomation"
42
+ Provides-Extra: dataloader
43
+ Requires-Dist: pandas; extra == "dataloader"
44
+ Requires-Dist: pyyaml; extra == "dataloader"
45
+ Requires-Dist: python-hcl2; extra == "dataloader"
46
+ Requires-Dist: tropycal; extra == "dataloader"
47
+ Requires-Dist: shapely; extra == "dataloader"
48
+ Requires-Dist: cartopy; extra == "dataloader"
49
+ Requires-Dist: psycopg; extra == "dataloader"
50
+ Provides-Extra: sap
51
+ Requires-Dist: pyrfc==2.8.3; extra == "sap"
52
+ Provides-Extra: profiling
53
+ Requires-Dist: pyinstrument; extra == "profiling"
54
+ Dynamic: license-file
55
+
56
+ # PYXECM
57
+
58
+ A python library to interact with Opentext Extended ECM REST API.
59
+ The product API documentation is available on [OpenText Developer](https://developer.opentext.com/ce/products/extendedecm)
60
+ Detailed documentation of this package is available [here](https://opentext.github.io/pyxecm/).
61
+
62
+ # Quick start
63
+
64
+ Install pyxecm with the desired extras into your python environment, extra options are:
65
+
66
+ - browserautomation
67
+ - dataloader
68
+ - sap
69
+
70
+ ```bash
71
+ pip install pyxecm
72
+ ```
73
+
74
+ ## Start using the Customizer
75
+
76
+ Create an `.env` file as described here: [sample-environment-variables](customizerapisettings/#sample-environment-variables)
77
+
78
+ ```bash
79
+ python -m pyxecm.customizer.api
80
+ ```
81
+
82
+
83
+ Access the Customizer API at [http://localhost:8000/api](http://localhost:8000/api)
84
+
85
+
86
+ ## Start using the package libraries
87
+ ```python
88
+ from pyxecm import OTCS
89
+
90
+ otcs_object = OTCS(
91
+ protocol="https",
92
+ hostname="otcs.domain.tld",
93
+ port="443",
94
+ public_url="otcs.domain.tld",
95
+ username="admin",
96
+ password="********",
97
+ base_path="/cs/llisapi.dll",
98
+ )
99
+
100
+ otcs_object.authenticate()
101
+
102
+ nodes = otcs_object.get_subnodes(2000)
103
+
104
+ for node in nodes["results"]:
105
+ print(node["data"]["properties"]["id"], node["data"]["properties"]["name"])
106
+ ```
107
+
108
+
109
+ # Disclaimer
110
+
111
+ !!! quote ""
112
+ Copyright © 2025 Open Text Corporation, All Rights Reserved.
113
+ The above copyright notice and this permission notice shall be included in all
114
+ copies or substantial portions of the Software.
115
+
116
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
117
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
118
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
119
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
120
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
121
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
122
+ SOFTWARE.
pyxecm-2.0.1/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # PYXECM
2
+
3
+ A python library to interact with Opentext Extended ECM REST API.
4
+ The product API documentation is available on [OpenText Developer](https://developer.opentext.com/ce/products/extendedecm)
5
+ Detailed documentation of this package is available [here](https://opentext.github.io/pyxecm/).
6
+
7
+ # Quick start
8
+
9
+ Install pyxecm with the desired extras into your python environment, extra options are:
10
+
11
+ - browserautomation
12
+ - dataloader
13
+ - sap
14
+
15
+ ```bash
16
+ pip install pyxecm
17
+ ```
18
+
19
+ ## Start using the Customizer
20
+
21
+ Create an `.env` file as described here: [sample-environment-variables](customizerapisettings/#sample-environment-variables)
22
+
23
+ ```bash
24
+ python -m pyxecm.customizer.api
25
+ ```
26
+
27
+
28
+ Access the Customizer API at [http://localhost:8000/api](http://localhost:8000/api)
29
+
30
+
31
+ ## Start using the package libraries
32
+ ```python
33
+ from pyxecm import OTCS
34
+
35
+ otcs_object = OTCS(
36
+ protocol="https",
37
+ hostname="otcs.domain.tld",
38
+ port="443",
39
+ public_url="otcs.domain.tld",
40
+ username="admin",
41
+ password="********",
42
+ base_path="/cs/llisapi.dll",
43
+ )
44
+
45
+ otcs_object.authenticate()
46
+
47
+ nodes = otcs_object.get_subnodes(2000)
48
+
49
+ for node in nodes["results"]:
50
+ print(node["data"]["properties"]["id"], node["data"]["properties"]["name"])
51
+ ```
52
+
53
+
54
+ # Disclaimer
55
+
56
+ !!! quote ""
57
+ Copyright © 2025 Open Text Corporation, All Rights Reserved.
58
+ The above copyright notice and this permission notice shall be included in all
59
+ copies or substantial portions of the Software.
60
+
61
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
62
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
63
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
64
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
65
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
66
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
67
+ SOFTWARE.
@@ -0,0 +1,183 @@
1
+ [build-system]
2
+ build-backend = 'setuptools.build_meta'
3
+ requires = ['setuptools >= 61.0']
4
+
5
+ [project]
6
+ classifiers = [
7
+ 'Development Status :: 4 - Beta',
8
+ 'Programming Language :: Python :: 3',
9
+ 'License :: OSI Approved :: Apache Software License',
10
+ 'Operating System :: OS Independent',
11
+ 'Intended Audience :: Developers',
12
+ 'Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System',
13
+ ]
14
+ dependencies = [
15
+ 'requests < 3',
16
+ 'requests_toolbelt',
17
+ 'setuptools',
18
+ 'kubernetes',
19
+ 'zipfile36',
20
+ 'suds',
21
+ 'python-hcl2',
22
+ 'xmltodict',
23
+ 'lxml',
24
+ 'openpyxl',
25
+ 'pandas',
26
+ 'python-magic',
27
+ 'websockets',
28
+ 'pydantic-settings',
29
+ 'fastapi>=0.115.12',
30
+ 'uvicorn',
31
+ 'python-multipart',
32
+ 'aiofiles',
33
+ 'asyncio',
34
+ 'jinja2',
35
+ 'prometheus-fastapi-instrumentator',
36
+ "psycopg[binary,pool]>=3.2.6",
37
+ ]
38
+ description = 'A Python library to interact with Opentext Extended ECM REST API'
39
+ keywords = [
40
+ 'opentext',
41
+ 'extendedecm',
42
+ 'contentserver',
43
+ 'otds',
44
+ 'appworks',
45
+ 'archivecenter',
46
+ ]
47
+ name = 'pyxecm'
48
+ readme = 'README.md'
49
+ requires-python = '>=3.10'
50
+ version = "2.0.1"
51
+
52
+ [[project.authors]]
53
+ email = 'kgatzweiler@opentext.com'
54
+ name = 'Kai Gatzweiler'
55
+
56
+ [[project.authors]]
57
+ email = 'mdiefenb@opentext.com'
58
+ name = 'Dr. Marc Diefenbruch'
59
+
60
+ [project.optional-dependencies]
61
+ browserautomation = ['chromedriver_autoinstaller', "playwright>=1.52.0"]
62
+ dataloader = [
63
+ 'pandas',
64
+ 'pyyaml',
65
+ 'python-hcl2',
66
+ 'tropycal',
67
+ 'shapely',
68
+ 'cartopy',
69
+ 'psycopg',
70
+ ]
71
+ sap = ['pyrfc==2.8.3']
72
+ profiling = ['pyinstrument']
73
+
74
+ [project.urls]
75
+ Homepage = 'https://github.com/opentext/pyxecm'
76
+
77
+ [tool]
78
+ [tool.setuptools]
79
+ packages = [
80
+ 'pyxecm',
81
+ 'pyxecm.customizer',
82
+ 'pyxecm.customizer.api',
83
+ 'pyxecm.customizer.api.auth',
84
+ 'pyxecm.customizer.api.common',
85
+ 'pyxecm.customizer.api.v1_csai',
86
+ 'pyxecm.customizer.api.terminal',
87
+ 'pyxecm.customizer.api.v1_maintenance',
88
+ 'pyxecm.customizer.api.v1_otcs',
89
+ 'pyxecm.customizer.api.v1_payload',
90
+ 'pyxecm.maintenance_page',
91
+ 'pyxecm.maintenance_page.templates',
92
+ 'pyxecm.maintenance_page.static',
93
+ 'pyxecm.helper',
94
+ ]
95
+
96
+ [tool.setuptools.package-data]
97
+ 'pyxecm.maintenance_page.templates' = ['*']
98
+ 'pyxecm.maintenance_page.static' = ['*']
99
+
100
+ [tool.ruff.lint]
101
+ # https://docs.astral.sh/ruff/rules/
102
+ select = ["ALL"]
103
+
104
+ # E4: Enforces Python-specific formatting and style rules, often related to imports and code layout (e.g., E402, module-level import not at top of file).
105
+ # E7: Relates to errors in Python syntax or usage, such as invalid expressions.
106
+ # E9: Catches Python runtime errors (e.g., undefined variables, unsupported operations).
107
+ # F: Stands for "Flake8" rules, which include a broad range of Python style and error checks (e.g., unused imports, undefined variables, etc.).
108
+ # FIX: Selects rules that Ruff can automatically fix (e.g., applying auto-corrections for code style violations).
109
+ # I: Relates to "Import" rules, which enforce best practices for managing Python imports (e.g., sorting imports, unused imports, etc.).
110
+ # UP032: Prevents Ruff from converting .format() calls to f-strings.
111
+ # D204 and D205: Prevents Ruff from enforcing changes to empty lines after docstrings.
112
+
113
+ ignore = [
114
+ "FIX002",
115
+ "TD002",
116
+ "TD003",
117
+ "BLE001",
118
+ "ERA001",
119
+ "S105",
120
+ "S106",
121
+ "S107",
122
+ "S113",
123
+ "S311",
124
+ "S314",
125
+ "S603",
126
+ "S608",
127
+ "RUF005",
128
+ "RUF012",
129
+ "E501",
130
+ "PERF203",
131
+ "UP038",
132
+ "PLW2901",
133
+ "PD002",
134
+ "PD901",
135
+ "UP032",
136
+ "D202",
137
+ "D203",
138
+ "D213",
139
+ "PLR0911",
140
+ "PLR0912",
141
+ "PLR0913",
142
+ "PLR0915",
143
+ "PLR2004",
144
+ "PTH",
145
+ "PTH123",
146
+ "PTH103",
147
+ "PTH104",
148
+ "PTH107",
149
+ "PTH110",
150
+ "PTH112",
151
+ "PTH113",
152
+ "PTH118",
153
+ "PTH119",
154
+ "PTH120",
155
+ "PTH122",
156
+ "FBT001",
157
+ "FBT002",
158
+ "RET504",
159
+ "RET505",
160
+ "C901",
161
+ "B019",
162
+ "TRY400",
163
+ "COM812",
164
+ ]
165
+ fixable = ["ALL"]
166
+ unfixable = []
167
+
168
+ [dependency-groups]
169
+ dev = [
170
+ 'pdoc3',
171
+ 'mkdocs',
172
+ 'mkdocstrings[python]',
173
+ 'mkdocs-material',
174
+ 'mkdocs-git-revision-date-localized-plugin',
175
+ 'pymdown-extensions',
176
+ "ruff",
177
+ 'python-decouple',
178
+ 'settings-doc',
179
+ ]
180
+
181
+ [tool.ruff]
182
+ line-length = 120
183
+ exclude = []
@@ -1,11 +1,14 @@
1
1
  """pyxecm - A python library to interact with Opentext Extended ECM REST API."""
2
2
 
3
+ from .avts import AVTS
4
+ from .coreshare import CoreShare
3
5
  from .otac import OTAC
6
+ from .otawp import OTAWP
7
+ from .otca import OTCA
4
8
  from .otcs import OTCS
5
9
  from .otds import OTDS
6
10
  from .otiv import OTIV
7
- from .otpd import OTPD
8
11
  from .otmm import OTMM
9
- from .otawp import OTAWP
10
- from .avts import AVTS
11
- from .coreshare import CoreShare
12
+ from .otpd import OTPD
13
+
14
+ __all__ = ["AVTS", "OTAC", "OTAWP", "OTCA", "OTCS", "OTDS", "OTIV", "OTMM", "OTPD", "CoreShare"]