logs-py 3.0.8__py3-none-any.whl → 3.0.10__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/Entities/Dataset.py +7 -9
- LOGS/Entities/FileEntry.py +40 -27
- LOGS/Entities/Inventory.py +0 -9
- LOGS/Entities/ProjectPersonPermission.py +26 -3
- LOGS/Entities/__init__.py +1 -0
- LOGS/Entity/Entity.py +1 -1
- LOGS/LOGSConnection.py +1 -1
- {logs_py-3.0.8.dist-info → logs_py-3.0.10.dist-info}/METADATA +2 -2
- {logs_py-3.0.8.dist-info → logs_py-3.0.10.dist-info}/RECORD +11 -11
- {logs_py-3.0.8.dist-info → logs_py-3.0.10.dist-info}/WHEEL +1 -1
- {logs_py-3.0.8.dist-info → logs_py-3.0.10.dist-info}/top_level.txt +0 -0
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
|
|
@@ -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):
|
|
@@ -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
|
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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Optional
|
|
1
|
+
from typing import TYPE_CHECKING, Any, Callable, Optional, Tuple
|
|
2
2
|
|
|
3
3
|
from LOGS.Auxiliary.MinimalModelGenerator import MinimalFromSingle
|
|
4
4
|
from LOGS.Entity.SerializableContent import SerializableContent
|
|
@@ -16,6 +16,17 @@ class ProjectPersonPermission(SerializableContent):
|
|
|
16
16
|
_add: Optional[bool] = None
|
|
17
17
|
_read: Optional[bool] = None
|
|
18
18
|
|
|
19
|
+
def _fromRef(
|
|
20
|
+
self,
|
|
21
|
+
ref,
|
|
22
|
+
selfClass,
|
|
23
|
+
convertOtherType: Tuple[type, Callable[[Any], Any]] | None = None,
|
|
24
|
+
):
|
|
25
|
+
if isinstance(ref, dict) and "read" in ref:
|
|
26
|
+
self._read = ref["read"]
|
|
27
|
+
del ref["read"]
|
|
28
|
+
return super()._fromRef(ref, selfClass, convertOtherType)
|
|
29
|
+
|
|
19
30
|
@property
|
|
20
31
|
def person(self) -> Optional["PersonMinimal"]:
|
|
21
32
|
return self._person
|
|
@@ -39,6 +50,9 @@ class ProjectPersonPermission(SerializableContent):
|
|
|
39
50
|
@administer.setter
|
|
40
51
|
def administer(self, value):
|
|
41
52
|
self._administer = self.checkAndConvertNullable(value, bool, "administer")
|
|
53
|
+
if self._administer:
|
|
54
|
+
self._edit = True
|
|
55
|
+
self._add = True
|
|
42
56
|
|
|
43
57
|
@property
|
|
44
58
|
def edit(self) -> Optional[bool]:
|
|
@@ -47,6 +61,10 @@ class ProjectPersonPermission(SerializableContent):
|
|
|
47
61
|
@edit.setter
|
|
48
62
|
def edit(self, value):
|
|
49
63
|
self._edit = self.checkAndConvertNullable(value, bool, "edit")
|
|
64
|
+
if self._edit:
|
|
65
|
+
self._add = True
|
|
66
|
+
else:
|
|
67
|
+
self._administer = False
|
|
50
68
|
|
|
51
69
|
@property
|
|
52
70
|
def add(self) -> Optional[bool]:
|
|
@@ -55,11 +73,16 @@ class ProjectPersonPermission(SerializableContent):
|
|
|
55
73
|
@add.setter
|
|
56
74
|
def add(self, value):
|
|
57
75
|
self._add = self.checkAndConvertNullable(value, bool, "add")
|
|
76
|
+
if not self._add:
|
|
77
|
+
self._edit = False
|
|
78
|
+
self._administer = False
|
|
58
79
|
|
|
59
80
|
@property
|
|
60
81
|
def read(self) -> Optional[bool]:
|
|
61
82
|
return self._read
|
|
62
83
|
|
|
63
84
|
@read.setter
|
|
64
|
-
def read(self,
|
|
65
|
-
|
|
85
|
+
def read(self, _):
|
|
86
|
+
raise Exception(
|
|
87
|
+
"Every person added to a project has automatically read permissions."
|
|
88
|
+
)
|
LOGS/Entities/__init__.py
CHANGED
|
@@ -98,6 +98,7 @@ from .PersonRequestParameter import *
|
|
|
98
98
|
from .Persons import *
|
|
99
99
|
from .Project import *
|
|
100
100
|
from .ProjectMinimal import *
|
|
101
|
+
from .ProjectPersonPermission import *
|
|
101
102
|
from .ProjectRelations import *
|
|
102
103
|
from .ProjectRequestParameter import *
|
|
103
104
|
from .Projects import *
|
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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -150,7 +150,7 @@ LOGS/Entities/PersonRequestParameter.py,sha256=x40tZWowl5jvHlUrMok_H8FIC0miC5ai3
|
|
|
150
150
|
LOGS/Entities/Persons.py,sha256=cj4SKaJZvitaIe7Fd1M9_qqNdAEEG38iuMPNiKPDPUA,413
|
|
151
151
|
LOGS/Entities/Project.py,sha256=oySJq4IQLTAnqMm4xXSnkEKnCu1chJtJBnr_t_fLYbU,3136
|
|
152
152
|
LOGS/Entities/ProjectMinimal.py,sha256=Xw8wnA2iSixEkVaisY_b4Z3Ujudum3MG6tBUfbiAk0s,246
|
|
153
|
-
LOGS/Entities/ProjectPersonPermission.py,sha256=
|
|
153
|
+
LOGS/Entities/ProjectPersonPermission.py,sha256=9CE6wdNjOLsRqK659kbhh3n57XSqM2ZoQGu2tmprtKk,2530
|
|
154
154
|
LOGS/Entities/ProjectRelations.py,sha256=xHHx7B_TbJ5Qz9-bbtjZMPN5YnJyMCTchV2lfJeKYm0,1758
|
|
155
155
|
LOGS/Entities/ProjectRequestParameter.py,sha256=nPrhuYi95N6vrwVk2JgZ-i2PJlZYriLxuNVKbHx3ktQ,1892
|
|
156
156
|
LOGS/Entities/Projects.py,sha256=8xvaHUrH8Y8g8WOcRN0Sa7BXH1QJnPB39SrfP3GpXXE,425
|
|
@@ -178,7 +178,7 @@ LOGS/Entities/TrackXY.py,sha256=klLXkgK9hkXdSIiTPbpGxnWoBf-fymOxJ4BJtcc97Cc,1332
|
|
|
178
178
|
LOGS/Entities/TrackXYComplex.py,sha256=Ts8UusoZY81P8OX4gWgHfSEKiUflT3cr8oUoqFXuc0I,1698
|
|
179
179
|
LOGS/Entities/TrackXYComplexData.py,sha256=xWd3_jdXa347Gh53NYIMo66nFirA60Zd2KxaPs4KHaY,1368
|
|
180
180
|
LOGS/Entities/TrackXYData.py,sha256=6AbwG2qa2HN858ROLaLpzkuIlwsb8tN8wznaiKplRdo,819
|
|
181
|
-
LOGS/Entities/__init__.py,sha256=
|
|
181
|
+
LOGS/Entities/__init__.py,sha256=CxPw9F8WKDAn1z514YIJ_tZoq3oPHhC9TodDP7Kuz2g,3800
|
|
182
182
|
LOGS/Entities/FormattedTable/DatatypeFormattedTable.py,sha256=M5rL0UZdXfylHANrTXKqAnnrML_rEUeMMBFyQEIyto4,3588
|
|
183
183
|
LOGS/Entities/FormattedTable/DatatypeFormattedTableCell.py,sha256=1nBVgWqRecnUWHFwiO0oAqgChYtNSE3VQBxIAjPRjWk,2792
|
|
184
184
|
LOGS/Entities/FormattedTable/DatatypeFormattedTableSettings.py,sha256=Eox_JyXtm6g29lt5kG_RBwD45ioWTg7F_5T36oZbPpY,308
|
|
@@ -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.10.dist-info/METADATA,sha256=fIkFhEJpvXtJ-ScAK7-6nE1JN_4O-tZqc4HZPP8E_rE,2340
|
|
258
|
+
logs_py-3.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
259
|
+
logs_py-3.0.10.dist-info/top_level.txt,sha256=Ckn2LiAmGaR7k3tdEnKAc04z_uboMD4gLreYghRNdCs,5
|
|
260
|
+
logs_py-3.0.10.dist-info/RECORD,,
|
|
File without changes
|