TM1py 2.2.1__tar.gz → 2.2.3__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.
- {tm1py-2.2.1 → tm1py-2.2.3}/PKG-INFO +2 -2
- {tm1py-2.2.1 → tm1py-2.2.3}/README.md +1 -1
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ElementService.py +6 -3
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/FileService.py +17 -1
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/SubsetService.py +12 -1
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py.egg-info/PKG-INFO +2 -2
- {tm1py-2.2.1 → tm1py-2.2.3}/pyproject.toml +1 -1
- {tm1py-2.2.1 → tm1py-2.2.3}/LICENSE +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Exceptions/Exceptions.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Exceptions/__init__.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Annotation.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Application.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Axis.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Chore.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/ChoreFrequency.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/ChoreStartTime.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/ChoreTask.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Cube.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Dimension.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Element.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/ElementAttribute.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Git.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/GitCommit.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/GitPlan.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/GitProject.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/GitRemote.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Hierarchy.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/MDXView.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/NativeView.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Process.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/ProcessDebugBreakpoint.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Rules.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Sandbox.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Server.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/Subset.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/TM1Object.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/User.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/View.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Objects/__init__.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/AnnotationService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ApplicationService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/AuditLogService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/CellService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ChoreService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ConfigurationService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/CubeService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/DimensionService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/GitService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/HierarchyService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/JobService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/LoggerService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ManageService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/MessageLogService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/MonitoringService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ObjectService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/PowerBiService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ProcessService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/RestService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/SandboxService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/SecurityService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ServerService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/SessionService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/TM1Service.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ThreadService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/TransactionLogService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/UserService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/ViewService.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Services/__init__.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Utils/MDXUtils.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Utils/Utils.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/Utils/__init__.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py/__init__.py +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py.egg-info/SOURCES.txt +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py.egg-info/dependency_links.txt +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py.egg-info/requires.txt +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/TM1py.egg-info/top_level.txt +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/setup.cfg +0 -0
- {tm1py-2.2.1 → tm1py-2.2.3}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TM1py
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.3
|
|
4
4
|
Summary: A python module for TM1.
|
|
5
5
|
Author-email: Marius Wirtz <MWirtz@cubewise.com>
|
|
6
6
|
License: MIT
|
|
@@ -38,7 +38,7 @@ Requires-Dist: ruff; extra == "dev"
|
|
|
38
38
|
Dynamic: license-file
|
|
39
39
|
|
|
40
40
|
<h1 align="center">
|
|
41
|
-
<img src="Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
41
|
+
<img src="https://raw.githubusercontent.com/cubewise-code/tm1py/master/Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
42
42
|
|
|
43
43
|

|
|
44
44
|

|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<h1 align="center">
|
|
2
|
-
<img src="Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
2
|
+
<img src="https://raw.githubusercontent.com/cubewise-code/tm1py/master/Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
3
3
|
|
|
4
4
|

|
|
5
5
|

|
|
@@ -1187,7 +1187,7 @@ class ElementService(ObjectService):
|
|
|
1187
1187
|
to return, can be None or empty
|
|
1188
1188
|
:param element_properties: list of element properties (e.g., Name, UniqueName, Type, Level, Index,
|
|
1189
1189
|
Attributes/Color) to return, can be empty
|
|
1190
|
-
:return: dictionary of members, unique names, weights, types, and parents
|
|
1190
|
+
:return: dictionary of members, unique names, weights, types, and parents or async id when return_async_id is True
|
|
1191
1191
|
"""
|
|
1192
1192
|
|
|
1193
1193
|
top = f"$top={top_records};" if top_records else ""
|
|
@@ -1241,8 +1241,11 @@ class ElementService(ObjectService):
|
|
|
1241
1241
|
|
|
1242
1242
|
payload = {"MDX": mdx}
|
|
1243
1243
|
response = self._rest.POST(url, json.dumps(payload, ensure_ascii=False), **kwargs)
|
|
1244
|
-
|
|
1245
|
-
|
|
1244
|
+
if kwargs.get("return_async_id", False):
|
|
1245
|
+
return response
|
|
1246
|
+
else:
|
|
1247
|
+
raw_dict = response.json()
|
|
1248
|
+
return [tuples["Members"] for tuples in raw_dict["Tuples"]]
|
|
1246
1249
|
|
|
1247
1250
|
def remove_edge(self, dimension_name: str, hierarchy_name: str, parent: str, component: str, **kwargs) -> Response:
|
|
1248
1251
|
"""Remove one edge from hierarchy. Fails if parent or child element doesn't exist.
|
|
@@ -78,9 +78,25 @@ class FileService(ObjectService):
|
|
|
78
78
|
path = Path(folder_name)
|
|
79
79
|
url = self._construct_content_url(path, exclude_path_end=True, extension="Contents")
|
|
80
80
|
|
|
81
|
-
body = {"@odata.type": "#ibm.tm1.api.v1.Folder", "Name":
|
|
81
|
+
body = {"@odata.type": "#ibm.tm1.api.v1.Folder", "Name": path.name}
|
|
82
82
|
self._rest.POST(url, json.dumps(body), **kwargs)
|
|
83
83
|
|
|
84
|
+
@require_version(version="12")
|
|
85
|
+
def create_folder(self, folder_name: Union[str, Path], **kwargs):
|
|
86
|
+
"""Create folder(s)
|
|
87
|
+
|
|
88
|
+
Supports recursive creation (e.g., 'folderA/folderB/folderC')
|
|
89
|
+
|
|
90
|
+
:param folder_name: folder name or path to nested folders
|
|
91
|
+
:return: None
|
|
92
|
+
"""
|
|
93
|
+
path = Path(folder_name)
|
|
94
|
+
folder_path = Path()
|
|
95
|
+
for part in path.parts:
|
|
96
|
+
folder_path = folder_path.joinpath(part)
|
|
97
|
+
if not self.exists(folder_path, **kwargs):
|
|
98
|
+
self._create_folder(folder_name=folder_path, **kwargs)
|
|
99
|
+
|
|
84
100
|
def _construct_content_url(self, path: Path, exclude_path_end: bool = True, extension: str = "Contents") -> str:
|
|
85
101
|
"""Dynamically construct URL to use in FileService functions
|
|
86
102
|
|
|
@@ -201,7 +201,12 @@ class SubsetService(ObjectService):
|
|
|
201
201
|
return self._rest.DELETE(url=url, **kwargs)
|
|
202
202
|
|
|
203
203
|
def get_element_names(
|
|
204
|
-
self,
|
|
204
|
+
self,
|
|
205
|
+
dimension_name: str,
|
|
206
|
+
hierarchy_name: str,
|
|
207
|
+
subset: Optional[Union[str, Subset]] = None,
|
|
208
|
+
private: bool = False,
|
|
209
|
+
**kwargs,
|
|
205
210
|
) -> List[str]:
|
|
206
211
|
"""
|
|
207
212
|
Retrieve element names from a static or dynamic subset.
|
|
@@ -213,6 +218,12 @@ class SubsetService(ObjectService):
|
|
|
213
218
|
:param kwargs: Additional arguments.
|
|
214
219
|
:return: List of element names.
|
|
215
220
|
"""
|
|
221
|
+
# backward compatibility for subset_name
|
|
222
|
+
if "subset_name" in kwargs:
|
|
223
|
+
if subset is not None:
|
|
224
|
+
raise ValueError("Only one parameter 'subset' or 'subset_name' may be provided.")
|
|
225
|
+
subset = kwargs.pop("subset_name")
|
|
226
|
+
|
|
216
227
|
if isinstance(subset, str):
|
|
217
228
|
subset = self.get(subset, dimension_name, hierarchy_name, private=private, **kwargs)
|
|
218
229
|
elif not isinstance(subset, Subset):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TM1py
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.3
|
|
4
4
|
Summary: A python module for TM1.
|
|
5
5
|
Author-email: Marius Wirtz <MWirtz@cubewise.com>
|
|
6
6
|
License: MIT
|
|
@@ -38,7 +38,7 @@ Requires-Dist: ruff; extra == "dev"
|
|
|
38
38
|
Dynamic: license-file
|
|
39
39
|
|
|
40
40
|
<h1 align="center">
|
|
41
|
-
<img src="Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
41
|
+
<img src="https://raw.githubusercontent.com/cubewise-code/tm1py/master/Images/Logo.svg" style="width: 70%; height: 70%; text-align: center"/>
|
|
42
42
|
|
|
43
43
|

|
|
44
44
|

|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|