sdata 0.25.4__tar.gz → 0.25.6__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.
- {sdata-0.25.4/sdata.egg-info → sdata-0.25.6}/PKG-INFO +1 -1
- {sdata-0.25.4 → sdata-0.25.6}/sdata/__init__.py +1 -1
- {sdata-0.25.4 → sdata-0.25.6}/sdata/blob.py +3 -3
- {sdata-0.25.4 → sdata-0.25.6}/sdata/data.py +30 -12
- sdata-0.25.6/sdata/file.py +42 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/suuid.py +1 -1
- {sdata-0.25.4 → sdata-0.25.6/sdata.egg-info}/PKG-INFO +1 -1
- {sdata-0.25.4 → sdata-0.25.6}/sdata.egg-info/SOURCES.txt +1 -0
- {sdata-0.25.4 → sdata-0.25.6}/LICENSE-MIT +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/MANIFEST.in +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/README.md +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/pyproject.toml +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/base.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/default.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/dictionary.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/mapping.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/merge.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/attrdict/mixins.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_common.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_dump.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_exceptions.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_exif.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_insert.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_load.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_remove.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_transplant.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/_webp.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/piexif/helper.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/collections/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/collections/rangebucketmap.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/collections/rangemap.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/collections/rangeset.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/range/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/range/cut.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/ranger/range/range.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/semver.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/simple_graph_db/LICENSE +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/simple_graph_db/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/simple_graph_db/database.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/simple_graph_db/schema.sql +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sobol_seq.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sortedcontainers/LICENSE +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sortedcontainers/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sortedcontainers/sorteddict.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sortedcontainers/sortedlist.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sortedcontainers/sortedset.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/sqlitedict.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/timeflake/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/timeflake/flake.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/contrib/timeflake/utils.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/doe.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/experiments/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/experiments/ks2.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/experiments/lapshear.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/experiments/material.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/image.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/db.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/hashtree.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/hdf.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/isomme.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/json1sqlitestore.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/jsonsqlitestore.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/owncloudfs.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/pgp.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/pud.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/simple_signature.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/iolib/vault.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/metadata.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/node.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/parameter.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/parameters_deprecated.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/timestamp.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/tools.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata/workbook.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata.egg-info/dependency_links.txt +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata.egg-info/requires.txt +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/sdata.egg-info/top_level.txt +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/setup.cfg +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/setup.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/pud/__init__.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/pud/test_pud.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/test_hasttree.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/test_hdf.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/iolib/test_jsonsqlitestore.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_attribute.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_blob.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_data.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_image.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_io.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_ks2.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_metadata.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_parameter.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_sqlite.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_suuid.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_table.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_testprogram.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_timeflake.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_timestamp.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_tools.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_vault.py +0 -0
- {sdata-0.25.4 → sdata-0.25.6}/tests/test_workbook.py +0 -0
|
@@ -5,14 +5,14 @@ import collections
|
|
|
5
5
|
import pandas as pd
|
|
6
6
|
import numpy as np
|
|
7
7
|
from sdata.timestamp import TimeStamp
|
|
8
|
-
from sdata.
|
|
8
|
+
from sdata.base import Base
|
|
9
9
|
from sdata.metadata import Metadata, Attribute
|
|
10
10
|
import json
|
|
11
11
|
import os
|
|
12
12
|
import hashlib
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
class Blob(
|
|
15
|
+
class Blob(Base):
|
|
16
16
|
"""Binary Large Object as reference
|
|
17
17
|
|
|
18
18
|
.. warning::
|
|
@@ -31,7 +31,7 @@ class Blob(Data):
|
|
|
31
31
|
:param kwargs:
|
|
32
32
|
|
|
33
33
|
"""
|
|
34
|
-
|
|
34
|
+
super().__init__(**kwargs)
|
|
35
35
|
self.metadata.add("blob_name", kwargs.get("name", ""))
|
|
36
36
|
self.metadata.add("blob_type", "unknown")
|
|
37
37
|
self.url = kwargs.get("url", "")
|
|
@@ -1139,7 +1139,33 @@ class Data(object):
|
|
|
1139
1139
|
fh.write(exportstr)
|
|
1140
1140
|
|
|
1141
1141
|
@classmethod
|
|
1142
|
-
def from_csv(cls,
|
|
1142
|
+
def from_csv(cls, filepath, sep=";"):
|
|
1143
|
+
"""import sdata.Data from csv
|
|
1144
|
+
|
|
1145
|
+
:param filepath:
|
|
1146
|
+
:param sep: separator (default=";")
|
|
1147
|
+
:return: sdata.Data
|
|
1148
|
+
"""
|
|
1149
|
+
data = cls()
|
|
1150
|
+
df = pd.read_csv(filepath, sep=";", comment="#", index_col=0)
|
|
1151
|
+
|
|
1152
|
+
|
|
1153
|
+
#attr
|
|
1154
|
+
sio = open(filepath, "r")
|
|
1155
|
+
sio.seek(0)
|
|
1156
|
+
attritute_list = []
|
|
1157
|
+
for line in sio:
|
|
1158
|
+
if line.startswith("#;"):
|
|
1159
|
+
line = line.rstrip("\n")
|
|
1160
|
+
line = line.split(sep)
|
|
1161
|
+
attritute_list.append(line[1:8])
|
|
1162
|
+
data.metadata = Metadata.from_list(attritute_list)
|
|
1163
|
+
data.table = df
|
|
1164
|
+
return data
|
|
1165
|
+
|
|
1166
|
+
|
|
1167
|
+
@classmethod
|
|
1168
|
+
def from_csv_string(cls, s=None, sep=";"):
|
|
1143
1169
|
"""import sdata.Data from csv
|
|
1144
1170
|
|
|
1145
1171
|
:param s: csv str
|
|
@@ -1153,20 +1179,12 @@ class Data(object):
|
|
|
1153
1179
|
data = cls()
|
|
1154
1180
|
df = None
|
|
1155
1181
|
try:
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
sio.seek(0)
|
|
1160
|
-
elif s is not None:
|
|
1161
|
-
sio = StringIO(s)
|
|
1162
|
-
df = pd.read_csv(sio, sep=";", comment="#")
|
|
1163
|
-
sio.seek(0)
|
|
1164
|
-
else:
|
|
1165
|
-
logger.error("data.from_csv: no csv data available")
|
|
1182
|
+
sio = StringIO(s)
|
|
1183
|
+
df = pd.read_csv(sio, sep=";", comment="#")
|
|
1184
|
+
sio.seek(0)
|
|
1166
1185
|
except Exception as exp:
|
|
1167
1186
|
logging.error(f"{exp}")
|
|
1168
1187
|
raise
|
|
1169
|
-
return
|
|
1170
1188
|
|
|
1171
1189
|
attritute_list = []
|
|
1172
1190
|
for line in sio:
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from sdata import SUUID, Base
|
|
2
|
+
import os
|
|
3
|
+
|
|
4
|
+
class File(Base):
|
|
5
|
+
def __init__(self, **kwargs):
|
|
6
|
+
super().__init__(**kwargs)
|
|
7
|
+
|
|
8
|
+
def exists(self, path):
|
|
9
|
+
filepath = os.path.join(path, self.name)
|
|
10
|
+
return os.path.exists(path)
|
|
11
|
+
|
|
12
|
+
class Directory(Base):
|
|
13
|
+
def __init__(self, **kwargs):
|
|
14
|
+
super().__init__(**kwargs)
|
|
15
|
+
self.path = kwargs.get("path", os.getcwd())
|
|
16
|
+
self.files = {}
|
|
17
|
+
|
|
18
|
+
def register_files(self, path):
|
|
19
|
+
self.path = path
|
|
20
|
+
for f in os.listdir(self.path):
|
|
21
|
+
self.add(File(name=f))
|
|
22
|
+
|
|
23
|
+
def add(self, f):
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
self.files[f.name] = f
|
|
28
|
+
|
|
29
|
+
def ls(self):
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
"""
|
|
33
|
+
return list(self.files.keys())
|
|
34
|
+
|
|
35
|
+
if __name__ == '__main__':
|
|
36
|
+
f = File(name="a.txt")
|
|
37
|
+
print(f)
|
|
38
|
+
|
|
39
|
+
d = Directory(name="/folder")
|
|
40
|
+
d.add(f)
|
|
41
|
+
print(d.ls())
|
|
42
|
+
print(d)
|
|
@@ -163,7 +163,7 @@ class SUUID:
|
|
|
163
163
|
:return: suuid
|
|
164
164
|
"""
|
|
165
165
|
name = cls._clean_name(name)
|
|
166
|
-
uid = cls.get_uuid_from_name(name=name, ns_name=ns_name)
|
|
166
|
+
uid = cls.get_uuid_from_name(name=class_name+name, ns_name=ns_name)
|
|
167
167
|
suuid = cls(class_name=class_name, name=name, huuid=uid.hex)
|
|
168
168
|
return suuid
|
|
169
169
|
|
|
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
|
|
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
|