logs-py 3.0.7__py3-none-any.whl → 3.0.9__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 logs-py might be problematic. Click here for more details.
- LOGS/Converter/Converter.py +3 -3
- LOGS/Converter/{ExportParamters.py → ExportParameters.py} +1 -1
- LOGS/Entities/Dataset.py +12 -14
- LOGS/Entities/DatasetRequestParameter.py +0 -1
- LOGS/Entities/FileEntry.py +40 -27
- LOGS/Entities/Inventory.py +0 -9
- LOGS/Entity/Entity.py +1 -1
- LOGS/LOGSConnection.py +1 -1
- {logs_py-3.0.7.dist-info → logs_py-3.0.9.dist-info}/METADATA +2 -2
- {logs_py-3.0.7.dist-info → logs_py-3.0.9.dist-info}/RECORD +12 -12
- {logs_py-3.0.7.dist-info → logs_py-3.0.9.dist-info}/WHEEL +1 -1
- {logs_py-3.0.7.dist-info → logs_py-3.0.9.dist-info}/top_level.txt +0 -0
LOGS/Converter/Converter.py
CHANGED
|
@@ -2,7 +2,7 @@ from typing import Any, Dict, List, Optional
|
|
|
2
2
|
|
|
3
3
|
from LOGS.Auxiliary import Tools
|
|
4
4
|
from LOGS.Converter.ConverterParameter import IConverterParameter
|
|
5
|
-
from LOGS.Converter.
|
|
5
|
+
from LOGS.Converter.ExportParameters import ExportParameters
|
|
6
6
|
from LOGS.Entity.SerializableContent import SerializableContent
|
|
7
7
|
|
|
8
8
|
|
|
@@ -67,13 +67,13 @@ class Converter(SerializableContent):
|
|
|
67
67
|
self._id = self.checkAndConvertNullable(value, str, "id")
|
|
68
68
|
|
|
69
69
|
@property
|
|
70
|
-
def requestParameter(self) -> Optional[
|
|
70
|
+
def requestParameter(self) -> Optional[ExportParameters]:
|
|
71
71
|
if self.parameters is None:
|
|
72
72
|
return None
|
|
73
73
|
|
|
74
74
|
p: Dict[str, Any] = {p.id: None for p in self.parameters if p.id}
|
|
75
75
|
p["_parentId"] = self.id
|
|
76
|
-
return
|
|
76
|
+
return ExportParameters(
|
|
77
77
|
ref=p,
|
|
78
78
|
types={
|
|
79
79
|
p.id: IConverterParameter.TypeMapper(p.type)
|
LOGS/Entities/Dataset.py
CHANGED
|
@@ -3,7 +3,7 @@ from dataclasses import dataclass
|
|
|
3
3
|
from datetime import datetime
|
|
4
4
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Sequence, Union, cast
|
|
5
5
|
|
|
6
|
-
from deprecation import deprecated
|
|
6
|
+
from deprecation import deprecated # type: ignore
|
|
7
7
|
|
|
8
8
|
from LOGS.Auxiliary.Constants import Constants
|
|
9
9
|
from LOGS.Auxiliary.Decorators import Endpoint, UiEndpoint
|
|
@@ -25,7 +25,7 @@ from LOGS.Auxiliary.ParameterHelper import ParameterHelper
|
|
|
25
25
|
from LOGS.Auxiliary.Tools import Tools
|
|
26
26
|
from LOGS.Converter import Converter
|
|
27
27
|
from LOGS.Converter.Conversion import Conversion
|
|
28
|
-
from LOGS.Converter.
|
|
28
|
+
from LOGS.Converter.ExportParameters import ExportParameters
|
|
29
29
|
from LOGS.Entities.DatasetInfo import DatasetInfo
|
|
30
30
|
from LOGS.Entities.DatasetModels import DatasetSourceType, ViewableEntityTypes
|
|
31
31
|
from LOGS.Entities.DatasetRelations import DatasetRelations
|
|
@@ -140,6 +140,8 @@ class Dataset(
|
|
|
140
140
|
connection: Optional[LOGSConnection] = None,
|
|
141
141
|
files: Optional[Sequence[Constants.FILE_TYPE]] = None,
|
|
142
142
|
format: Optional[Union[str, "FormatMinimal"]] = None,
|
|
143
|
+
pathPrefixToStrip: Optional[str] = None,
|
|
144
|
+
pathPrefixToAdd: Optional[str] = None,
|
|
143
145
|
):
|
|
144
146
|
super().__init__(ref=ref, id=id, connection=connection)
|
|
145
147
|
|
|
@@ -169,6 +171,10 @@ class Dataset(
|
|
|
169
171
|
)
|
|
170
172
|
|
|
171
173
|
self._files = FileEntry.entriesFromFiles(files)
|
|
174
|
+
if self._files is not None:
|
|
175
|
+
for file in self._files:
|
|
176
|
+
if pathPrefixToStrip and file.path:
|
|
177
|
+
file.modifyPathPrefix(pathPrefixToStrip, pathPrefixToAdd)
|
|
172
178
|
|
|
173
179
|
def fromDict(self, ref) -> None:
|
|
174
180
|
if isinstance(ref, dict):
|
|
@@ -375,7 +381,7 @@ class Dataset(
|
|
|
375
381
|
self._parameterHelper = ParameterHelper(self.parameters)
|
|
376
382
|
return self._parameterHelper.get(key, removeUnit)
|
|
377
383
|
|
|
378
|
-
def _requestReport(self, exportId: str, parameters: Optional[
|
|
384
|
+
def _requestReport(self, exportId: str, parameters: Optional[ExportParameters]):
|
|
379
385
|
connection, endpoint, id = self._getConnectionData()
|
|
380
386
|
converterEndpoint: Any = endpoint + [id, "exports", exportId]
|
|
381
387
|
payload = parameters.toDict() if parameters else {}
|
|
@@ -393,7 +399,7 @@ class Dataset(
|
|
|
393
399
|
return conversion
|
|
394
400
|
|
|
395
401
|
def exportTo(
|
|
396
|
-
self, exportId: str, parameters: Optional[Union[
|
|
402
|
+
self, exportId: str, parameters: Optional[Union[ExportParameters, dict]] = None
|
|
397
403
|
):
|
|
398
404
|
|
|
399
405
|
if self._noExports:
|
|
@@ -412,14 +418,14 @@ class Dataset(
|
|
|
412
418
|
if parameters is not None and p is not None:
|
|
413
419
|
if isinstance(parameters, dict):
|
|
414
420
|
p.fromDict(parameters)
|
|
415
|
-
elif isinstance(parameters,
|
|
421
|
+
elif isinstance(parameters, ExportParameters):
|
|
416
422
|
if parameters._parentId is None or parameters._parentId != p._parentId:
|
|
417
423
|
raise LOGSException(
|
|
418
424
|
f"The passed export parameters is not generated by and valid export format. (Expected class '{p.identifier}')"
|
|
419
425
|
)
|
|
420
426
|
else:
|
|
421
427
|
raise LOGSException(
|
|
422
|
-
f"Invalid parameter type '{type(parameters).__name__}'. (Expected 'dict' or '{
|
|
428
|
+
f"Invalid parameter type '{type(parameters).__name__}'. (Expected 'dict' or '{ExportParameters.__name__}')"
|
|
423
429
|
)
|
|
424
430
|
|
|
425
431
|
return self._requestReport(exportId, p)
|
|
@@ -476,14 +482,6 @@ class Dataset(
|
|
|
476
482
|
def dateAdded(self, value):
|
|
477
483
|
self._dateAdded = self.checkAndConvertNullable(value, datetime, "dateAdded")
|
|
478
484
|
|
|
479
|
-
@property
|
|
480
|
-
def isDeleted(self) -> Optional[bool]:
|
|
481
|
-
return self._isDeleted
|
|
482
|
-
|
|
483
|
-
@isDeleted.setter
|
|
484
|
-
def isDeleted(self, value):
|
|
485
|
-
self._isDeleted = self.checkAndConvertNullable(value, bool, "isDeleted")
|
|
486
|
-
|
|
487
485
|
@property
|
|
488
486
|
def other(self) -> Optional[str]:
|
|
489
487
|
return self._other
|
|
@@ -94,7 +94,6 @@ class DatasetRequestParameter(
|
|
|
94
94
|
methodIds: Optional[List[int]] = None
|
|
95
95
|
names: Optional[List[str]] = None
|
|
96
96
|
operatorIds: Optional[List[int]] = None
|
|
97
|
-
orderBy: Optional[DatasetOrder] = None
|
|
98
97
|
organizationIds: Optional[List[int]] = None
|
|
99
98
|
originIds: Optional[List[int]] = None
|
|
100
99
|
parameters: Optional[Dict[str, Any]] = None
|
LOGS/Entities/FileEntry.py
CHANGED
|
@@ -28,6 +28,8 @@ class FileEntry(SerializableClass):
|
|
|
28
28
|
_typeMapper = {"fragments": FingerprintFragment}
|
|
29
29
|
_noSerialize = ["isDir", "name"]
|
|
30
30
|
id: Optional[str] = None
|
|
31
|
+
# The naming here is confusing. FullPath is part of the LOGS API but it refers
|
|
32
|
+
# to the full path in LOGS and not the actual file path.
|
|
31
33
|
fullPath: str = ""
|
|
32
34
|
path: str = ""
|
|
33
35
|
isDir: bool = False
|
|
@@ -43,37 +45,42 @@ class FileEntry(SerializableClass):
|
|
|
43
45
|
fullPath: Optional[str] = None,
|
|
44
46
|
state: Optional[FormatFileState] = None,
|
|
45
47
|
):
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"fullPath": _fullPath,
|
|
58
|
-
"isDir": os.path.isdir(_fullPath),
|
|
59
|
-
"name": os.path.basename(_fullPath),
|
|
60
|
-
}
|
|
61
|
-
super().__init__(ref)
|
|
48
|
+
if isinstance(ref, FileEntry):
|
|
49
|
+
super().__init__(self._fieldsFromPath(ref.path))
|
|
50
|
+
self.fullPath = ref.fullPath
|
|
51
|
+
self.state = ref.state
|
|
52
|
+
elif isinstance(ref, os.DirEntry) and ref.path:
|
|
53
|
+
super().__init__(self._fieldsFromPath(ref.path))
|
|
54
|
+
elif isinstance(ref, str) or fullPath is not None:
|
|
55
|
+
super().__init__(
|
|
56
|
+
self._fieldsFromPath(str(ref if fullPath is None else fullPath))
|
|
57
|
+
)
|
|
58
|
+
|
|
62
59
|
if fullPath is not None:
|
|
63
60
|
self.fullPath = fullPath
|
|
64
|
-
self.path = _path
|
|
65
61
|
if state is not None:
|
|
66
62
|
self.state = state
|
|
67
63
|
|
|
64
|
+
@classmethod
|
|
65
|
+
def _fieldsFromPath(cls, path: str):
|
|
66
|
+
_path = os.path.realpath(path)
|
|
67
|
+
return {
|
|
68
|
+
"id": uuid.uuid4().hex,
|
|
69
|
+
"fullPath": _path,
|
|
70
|
+
"path": _path,
|
|
71
|
+
"isDir": os.path.isdir(_path),
|
|
72
|
+
"name": os.path.basename(_path),
|
|
73
|
+
}
|
|
74
|
+
|
|
68
75
|
def __str__(self):
|
|
69
76
|
return "<%s %s%a>" % (
|
|
70
77
|
type(self).__name__,
|
|
71
78
|
("<dir> " if self.isDir else ""),
|
|
72
|
-
self.
|
|
79
|
+
self.path,
|
|
73
80
|
)
|
|
74
81
|
|
|
75
82
|
def addFragment(self, fragments: List[FingerprintFragment]):
|
|
76
|
-
with open(self.
|
|
83
|
+
with open(self.path, "rb") as read:
|
|
77
84
|
if self.fragments is None:
|
|
78
85
|
self.fragments = []
|
|
79
86
|
for fragment in fragments:
|
|
@@ -84,11 +91,11 @@ class FileEntry(SerializableClass):
|
|
|
84
91
|
self.fragments.append(fragment)
|
|
85
92
|
|
|
86
93
|
def addHash(self):
|
|
87
|
-
with open(self.
|
|
94
|
+
with open(self.path, "rb") as read:
|
|
88
95
|
self.hash = sha256(read.read()).hexdigest()
|
|
89
96
|
|
|
90
97
|
def addMtime(self):
|
|
91
|
-
self.mtime = datetime.fromtimestamp(os.path.getmtime(self.
|
|
98
|
+
self.mtime = datetime.fromtimestamp(os.path.getmtime(self.path))
|
|
92
99
|
|
|
93
100
|
@classmethod
|
|
94
101
|
def entriesFromFiles(
|
|
@@ -108,16 +115,22 @@ class FileEntry(SerializableClass):
|
|
|
108
115
|
if isinstance(file, (str, os.DirEntry, FileEntry)):
|
|
109
116
|
f = FileEntry(file)
|
|
110
117
|
if f.isDir:
|
|
111
|
-
with os.scandir(f.
|
|
118
|
+
with os.scandir(f.path) as entries:
|
|
112
119
|
files.extend(entries)
|
|
113
120
|
else:
|
|
114
|
-
if not os.path.isfile(f.
|
|
115
|
-
f.fullPath, os.R_OK
|
|
116
|
-
):
|
|
121
|
+
if not os.path.isfile(f.path) or not os.access(f.path, os.R_OK):
|
|
117
122
|
if not ignoreReadErrors:
|
|
118
|
-
raise PermissionError("Could not read file %a" % f.
|
|
123
|
+
raise PermissionError("Could not read file %a" % f.path)
|
|
119
124
|
else:
|
|
120
|
-
f.id =
|
|
125
|
+
f.id = uuid.uuid4().hex
|
|
121
126
|
result.append(f)
|
|
122
127
|
|
|
123
128
|
return result
|
|
129
|
+
|
|
130
|
+
def modifyPathPrefix(
|
|
131
|
+
self, prefixToStrip: Optional[str] = None, prefixToAdd: Optional[str] = None
|
|
132
|
+
):
|
|
133
|
+
if prefixToStrip and self.fullPath.startswith(prefixToStrip):
|
|
134
|
+
self.fullPath = self.fullPath[len(prefixToStrip) :]
|
|
135
|
+
if prefixToAdd and not self.fullPath.startswith(prefixToAdd):
|
|
136
|
+
self.fullPath = os.path.join(prefixToAdd, self.fullPath)
|
LOGS/Entities/Inventory.py
CHANGED
|
@@ -38,7 +38,6 @@ class Inventory(
|
|
|
38
38
|
_rootCustomType: Optional["InventoryMinimal"] = None
|
|
39
39
|
_isRootItem: Optional[bool] = None
|
|
40
40
|
_isHierarchyItem: Optional[bool] = None
|
|
41
|
-
_isDeleted: Optional[bool] = None
|
|
42
41
|
_ancestors: Optional[List["InventoryMinimal"]] = None
|
|
43
42
|
_parent: Optional["InventoryMinimal"] = None
|
|
44
43
|
|
|
@@ -70,14 +69,6 @@ class Inventory(
|
|
|
70
69
|
value, bool, "isHierarchyItem"
|
|
71
70
|
)
|
|
72
71
|
|
|
73
|
-
@property
|
|
74
|
-
def isDeleted(self) -> Optional[bool]:
|
|
75
|
-
return self._isDeleted
|
|
76
|
-
|
|
77
|
-
@isDeleted.setter
|
|
78
|
-
def isDeleted(self, value):
|
|
79
|
-
self._isDeleted = self.checkAndConvertNullable(value, bool, "isDeleted")
|
|
80
|
-
|
|
81
72
|
@property
|
|
82
73
|
def ancestors(self) -> Optional[List["InventoryMinimal"]]:
|
|
83
74
|
return self._ancestors
|
LOGS/Entity/Entity.py
CHANGED
|
@@ -144,7 +144,7 @@ class Entity(ConnectedEntity):
|
|
|
144
144
|
self._endpoint + [self.id], parameters={"deletePermanently": permanently}
|
|
145
145
|
)
|
|
146
146
|
if hasattr(self, "isDeleted"):
|
|
147
|
-
self
|
|
147
|
+
setattr(self, "isDeleted", True)
|
|
148
148
|
|
|
149
149
|
if permanently:
|
|
150
150
|
self.connection = None
|
LOGS/LOGSConnection.py
CHANGED
|
@@ -370,7 +370,7 @@ class LOGSConnection:
|
|
|
370
370
|
content: Any = ""
|
|
371
371
|
if isinstance(entry.content, FileEntry):
|
|
372
372
|
# content = entry.content.toJson(compact=True)
|
|
373
|
-
with open(entry.content.
|
|
373
|
+
with open(entry.content.path, "rb") as read:
|
|
374
374
|
content = read.read()
|
|
375
375
|
else:
|
|
376
376
|
content = json.dumps(entry.content)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
LOGS/LOGS.py,sha256=c596CnYdNeyRcuuqHzoBjFaHspbtp8LatoqkQx6GDYY,44548
|
|
2
|
-
LOGS/LOGSConnection.py,sha256=
|
|
2
|
+
LOGS/LOGSConnection.py,sha256=lsp0J4KvovJogDzBy89uc9KC4kT72_U3_rMJyFjnAAE,21577
|
|
3
3
|
LOGS/LOGSOptions.py,sha256=eDymNMLvms_DcM_71poUxcn7FkUH5K-zSZw28gMsVzs,271
|
|
4
4
|
LOGS/ServerMetaData.py,sha256=8D5jl3JVDT-1aV0P8mBddYORWwiRO-ohfKviIOvuA_Y,3358
|
|
5
5
|
LOGS/__init__.py,sha256=zFHOekiFfVI2SnyMhBJCCofrKTn1gXXC-rUk8A9mRw4,260
|
|
@@ -14,9 +14,9 @@ LOGS/Auxiliary/ReplaceMessage.py,sha256=ilzfyNidpUQguDglqxehZRJw6diF3-FH5mk3rVLr
|
|
|
14
14
|
LOGS/Auxiliary/Tools.py,sha256=Zd2YncaU_qiv3uu8pNbk5C_uYy8_xT-OagxQjn9hTnc,10079
|
|
15
15
|
LOGS/Auxiliary/__init__.py,sha256=345a0imJBwsfWkGqkEyD1frAcouaUc0B6QdMSVJB_ak,351
|
|
16
16
|
LOGS/Converter/Conversion.py,sha256=lXIRlnwgSDok6-ayxXOcNDJI4JDrYvmeSq85-BopaNE,7778
|
|
17
|
-
LOGS/Converter/Converter.py,sha256=
|
|
17
|
+
LOGS/Converter/Converter.py,sha256=0V6vcHY8x9NjJhYP3YOQtXB4qDEuGu78qqw0K2HFzWQ,2681
|
|
18
18
|
LOGS/Converter/ConverterParameter.py,sha256=bZ-VtU9ZGn4HD9BTI494QWRakpKZc_8dAG4lHIZky04,2576
|
|
19
|
-
LOGS/Converter/
|
|
19
|
+
LOGS/Converter/ExportParameters.py,sha256=2HyPWbTXiS1sRrA7BsAdlLczHEdIrljyV8BU4uxnHU0,3017
|
|
20
20
|
LOGS/Converter/__init__.py,sha256=2zs2B7nMYi6CqUdIWhX0ndkurO43Q3nDL_t0DanBf6c,315
|
|
21
21
|
LOGS/Entities/AutoloadClientInfo.py,sha256=B8gnKFLTStwTd01STfFFr4bHGwQo2Hq_vsH9KD0fOsg,2620
|
|
22
22
|
LOGS/Entities/AutoloadFileInfo.py,sha256=dcyTOLPmXUOStqslZ5YKZQx-PINSPQTW6FoOKDWzx5c,335
|
|
@@ -53,7 +53,7 @@ LOGS/Entities/DataSourceRelations.py,sha256=eIszpHjZqz6v4WyhaPNu8efSzedsJLNrYR9b
|
|
|
53
53
|
LOGS/Entities/DataSourceRequestParameter.py,sha256=zAfC61NvVt4XO3HhIy1PLViN3AEBJo7Q6Fa_EtyqNvA,1610
|
|
54
54
|
LOGS/Entities/DataSourceStatus.py,sha256=LIMesU020i1clMiTxvO3hAoESf4B1-fXsDGMMtWLdsM,427
|
|
55
55
|
LOGS/Entities/DataSources.py,sha256=UU5ey98_vX4WQknyWITMy-dPOV-wgjblXxu5uXpnVso,481
|
|
56
|
-
LOGS/Entities/Dataset.py,sha256=
|
|
56
|
+
LOGS/Entities/Dataset.py,sha256=qKIEGuIaBy5SFSzUAckBFk5ACm7xxsl8nVcu9gydQhk,27523
|
|
57
57
|
LOGS/Entities/DatasetCreator.py,sha256=GJ2e0pcYt5ziVqREViBM_uq45K3rm3FG_3NqIOjrO3Y,3253
|
|
58
58
|
LOGS/Entities/DatasetInfo.py,sha256=GVs9dxE2ufMfiuhgKXDcN-GEi2VrZPM1TMBLwtsfMU0,4972
|
|
59
59
|
LOGS/Entities/DatasetMatchTypes.py,sha256=6C60F0GcioNyfRWIIh2XGQJokZxFdBZY9UpKv1y3M7w,4363
|
|
@@ -61,7 +61,7 @@ LOGS/Entities/DatasetMatching.py,sha256=1tLYQKFMssOQIPuCh06dr70oYCpjj4bXer6VAO3p
|
|
|
61
61
|
LOGS/Entities/DatasetMinimal.py,sha256=AfSMihe4mU53D3dib1MzW7ZAtfvFytVyGpMMi3Fr2Cw,246
|
|
62
62
|
LOGS/Entities/DatasetModels.py,sha256=ilJUJP1LWQXSXbvZ4NF0oHUpLPV9yd0sPVNiS60veec,695
|
|
63
63
|
LOGS/Entities/DatasetRelations.py,sha256=lXV99yA6VvCcwobZK4WRIefYdqV3rcmBsHoQwLurjHY,1075
|
|
64
|
-
LOGS/Entities/DatasetRequestParameter.py,sha256
|
|
64
|
+
LOGS/Entities/DatasetRequestParameter.py,sha256=-P94r-AHf5UjHzQRKf-mF4a78emPcsf0eI-lzUTA0Ac,4264
|
|
65
65
|
LOGS/Entities/DatasetUploadParameter.py,sha256=bfH3Nm3BZs-hvWhFzWfxWSL-9hHJCRfW_PHwORtY_tw,470
|
|
66
66
|
LOGS/Entities/Datasets.py,sha256=wGeHowTv62F91oDtyJIVQzRl7qJsPT0SQlNoKBwWfs0,5022
|
|
67
67
|
LOGS/Entities/Datatrack.py,sha256=HpzDD9tJmvQGhm6W9vBqJ_yXC8oex0Cf0ygLfjZpbug,5297
|
|
@@ -80,7 +80,7 @@ LOGS/Entities/ExperimentMinimal.py,sha256=45NzqBQNwxC96qlEyf8ESLk76ATHem6F765m9s
|
|
|
80
80
|
LOGS/Entities/ExperimentRelations.py,sha256=NgHv9xbOrsqi7JkExB34-zXsBh5UtZHVv_uheTt-tns,658
|
|
81
81
|
LOGS/Entities/ExperimentRequestParameter.py,sha256=qz0a1JejJ0cAr-oSJVKQGnYSKinQABwdqCFjNQsP9VQ,1248
|
|
82
82
|
LOGS/Entities/Experiments.py,sha256=U9O4JaKpOTui2vWEZ9WeOPHXkI-GMO__vFFYqB5t7Ws,453
|
|
83
|
-
LOGS/Entities/FileEntry.py,sha256=
|
|
83
|
+
LOGS/Entities/FileEntry.py,sha256=iJtf_ByBwiCyd5ETXoMOcQG0oTbKviiE2dUwZCJNS74,4556
|
|
84
84
|
LOGS/Entities/FileExcludePattern.py,sha256=LhJfgiKrdTwYhXWBrb0PBMUh4H9vO1dFLFGC2gfHlz8,201
|
|
85
85
|
LOGS/Entities/Format.py,sha256=yH4k1wLyhq09oD0N1SATJN-M4xbAZJLwQV8rMlXYWCA,2377
|
|
86
86
|
LOGS/Entities/FormatFormat.py,sha256=H7uTmPyDZZjAf5IPjx4sTt40rLnigxE-CmWH9n4klFo,1416
|
|
@@ -114,7 +114,7 @@ LOGS/Entities/InstrumentRelations.py,sha256=sXlLo_TQiRnkWAOkAAYlYxqquas9KBVEJVW6
|
|
|
114
114
|
LOGS/Entities/InstrumentRequestParameter.py,sha256=mDPAtXMHVLaYiGnXSUVXGzitG6xFMr75FzCOLD5sUME,1433
|
|
115
115
|
LOGS/Entities/Instruments.py,sha256=0KgCWU5J9nFOM9qQw5s6tRyAdnCzOnjuvAtSwpdbyiU,453
|
|
116
116
|
LOGS/Entities/Inventories.py,sha256=0MluOe-xuNVRqLh6sayaHXM2LMUc43RV7D5b5QOd5Zg,450
|
|
117
|
-
LOGS/Entities/Inventory.py,sha256=
|
|
117
|
+
LOGS/Entities/Inventory.py,sha256=9CWMJChz06KlCgCr2lX-ajMiX0tzCXP--eSMflblIDc,2842
|
|
118
118
|
LOGS/Entities/InventoryMinimal.py,sha256=yunVsM9OiayIHjdwGHM2UxdgaK7fLj2l8Pdurb6zVxI,594
|
|
119
119
|
LOGS/Entities/InventoryRelations.py,sha256=IFlkthKdUcKwFCVz4nxASwtOpog56p2zqoRqjJQZwIE,661
|
|
120
120
|
LOGS/Entities/InventoryRequestParameter.py,sha256=xIL5kGc4mtoVqtsWHDf_IESn_ELMMH9124jq3uGUzTw,1949
|
|
@@ -214,7 +214,7 @@ LOGS/Entities/LabNotebookEntryContent/TextMarkConverter.py,sha256=esycxCZBj9-KaP
|
|
|
214
214
|
LOGS/Entities/LabNotebookEntryContent/TextMarks.py,sha256=CQTyP7xtSTC0__kq9hgdEul2D2XxCoro9koYxnX3HSM,1998
|
|
215
215
|
LOGS/Entities/LabNotebookEntryContent/__init__.py,sha256=VIL4R44IXUOPOADapm1QilZ1uC0g6roAqlOYKAQkLHU,1092
|
|
216
216
|
LOGS/Entity/ConnectedEntity.py,sha256=O3YOGaHArWnk9LPpFIfHBm01PscX7MN5yY3gWpVihRQ,2802
|
|
217
|
-
LOGS/Entity/Entity.py,sha256=
|
|
217
|
+
LOGS/Entity/Entity.py,sha256=Dx_s0UF0I9gI8HD80ZMeY32mWQkF_1kfdwNGqczNNTU,6311
|
|
218
218
|
LOGS/Entity/EntityConnector.py,sha256=936-3WpUB087u7YxpzR8T3V3HX4RITsOlp5fZWmc8k0,2106
|
|
219
219
|
LOGS/Entity/EntityIterator.py,sha256=EF29TdSvC0rTMMnQgCe5X99mYAYNjZydtLaQc3n7-6k,8165
|
|
220
220
|
LOGS/Entity/EntityMinimal.py,sha256=GysThwk8YbT8xqbHvJqmYKgPf8ckALO5pG-J_SNT0vw,3237
|
|
@@ -254,7 +254,7 @@ LOGS/Parameters/ParameterElement.py,sha256=fr6AlO_flKRygZZFx1OILP4P-2lV2Tx4PAe6W
|
|
|
254
254
|
LOGS/Parameters/ParameterList.py,sha256=ijukB1__iKI5cefmOIIWz0wKaPz9Cx8KpD7Y7Gz2Pn0,1478
|
|
255
255
|
LOGS/Parameters/ParameterTable.py,sha256=7Lew4DPgWmKcpV1T-1Pvt00kEI05FB383QqO-LHAjds,1758
|
|
256
256
|
LOGS/Parameters/__init__.py,sha256=KpMSuBPx964v2YMZ1BqVp8vjrgSpuiW9KYBm-aejRuc,312
|
|
257
|
-
logs_py-3.0.
|
|
258
|
-
logs_py-3.0.
|
|
259
|
-
logs_py-3.0.
|
|
260
|
-
logs_py-3.0.
|
|
257
|
+
logs_py-3.0.9.dist-info/METADATA,sha256=C-jyeUN24wtHKYyrBuoJUlF7sNZWRA7_U4iXpu65vKQ,2339
|
|
258
|
+
logs_py-3.0.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
259
|
+
logs_py-3.0.9.dist-info/top_level.txt,sha256=Ckn2LiAmGaR7k3tdEnKAc04z_uboMD4gLreYghRNdCs,5
|
|
260
|
+
logs_py-3.0.9.dist-info/RECORD,,
|
|
File without changes
|