sdata 0.25.0__tar.gz → 0.25.2__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.
Files changed (106) hide show
  1. {sdata-0.25.0/sdata.egg-info → sdata-0.25.2}/PKG-INFO +16 -3
  2. {sdata-0.25.0 → sdata-0.25.2}/README.md +1 -1
  3. sdata-0.25.2/pyproject.toml +3 -0
  4. {sdata-0.25.0 → sdata-0.25.2}/sdata/__init__.py +1 -1
  5. {sdata-0.25.0 → sdata-0.25.2}/sdata/data.py +29 -6
  6. sdata-0.25.2/sdata/iolib/json1sqlitestore.py +596 -0
  7. sdata-0.25.2/sdata/iolib/jsonsqlitestore.py +691 -0
  8. sdata-0.25.2/sdata/iolib/owncloudfs.py +105 -0
  9. {sdata-0.25.0 → sdata-0.25.2}/sdata/suuid.py +18 -0
  10. {sdata-0.25.0 → sdata-0.25.2/sdata.egg-info}/PKG-INFO +16 -3
  11. {sdata-0.25.0 → sdata-0.25.2}/sdata.egg-info/SOURCES.txt +5 -0
  12. sdata-0.25.2/tests/iolib/test_jsonsqlitestore.py +156 -0
  13. {sdata-0.25.0 → sdata-0.25.2}/LICENSE-MIT +0 -0
  14. {sdata-0.25.0 → sdata-0.25.2}/MANIFEST.in +0 -0
  15. {sdata-0.25.0 → sdata-0.25.2}/sdata/blob.py +0 -0
  16. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/__init__.py +0 -0
  17. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/__init__.py +0 -0
  18. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/default.py +0 -0
  19. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/dictionary.py +0 -0
  20. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/mapping.py +0 -0
  21. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/merge.py +0 -0
  22. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/attrdict/mixins.py +0 -0
  23. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/__init__.py +0 -0
  24. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_common.py +0 -0
  25. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_dump.py +0 -0
  26. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_exceptions.py +0 -0
  27. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_exif.py +0 -0
  28. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_insert.py +0 -0
  29. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_load.py +0 -0
  30. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_remove.py +0 -0
  31. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_transplant.py +0 -0
  32. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/_webp.py +0 -0
  33. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/piexif/helper.py +0 -0
  34. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/__init__.py +0 -0
  35. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/collections/__init__.py +0 -0
  36. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/collections/rangebucketmap.py +0 -0
  37. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/collections/rangemap.py +0 -0
  38. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/collections/rangeset.py +0 -0
  39. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/range/__init__.py +0 -0
  40. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/range/cut.py +0 -0
  41. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/ranger/range/range.py +0 -0
  42. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/semver.py +0 -0
  43. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/simple_graph_db/LICENSE +0 -0
  44. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/simple_graph_db/__init__.py +0 -0
  45. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/simple_graph_db/database.py +0 -0
  46. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/simple_graph_db/schema.sql +0 -0
  47. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sobol_seq.py +0 -0
  48. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sortedcontainers/LICENSE +0 -0
  49. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sortedcontainers/__init__.py +0 -0
  50. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sortedcontainers/sorteddict.py +0 -0
  51. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sortedcontainers/sortedlist.py +0 -0
  52. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sortedcontainers/sortedset.py +0 -0
  53. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/sqlitedict.py +0 -0
  54. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/timeflake/__init__.py +0 -0
  55. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/timeflake/flake.py +0 -0
  56. {sdata-0.25.0 → sdata-0.25.2}/sdata/contrib/timeflake/utils.py +0 -0
  57. {sdata-0.25.0 → sdata-0.25.2}/sdata/doe.py +0 -0
  58. {sdata-0.25.0 → sdata-0.25.2}/sdata/experiments/__init__.py +0 -0
  59. {sdata-0.25.0 → sdata-0.25.2}/sdata/experiments/ks2.py +0 -0
  60. {sdata-0.25.0 → sdata-0.25.2}/sdata/experiments/lapshear.py +0 -0
  61. {sdata-0.25.0 → sdata-0.25.2}/sdata/experiments/material.py +0 -0
  62. {sdata-0.25.0 → sdata-0.25.2}/sdata/image.py +0 -0
  63. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/__init__.py +0 -0
  64. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/db.py +0 -0
  65. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/hashtree.py +0 -0
  66. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/hdf.py +0 -0
  67. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/isomme.py +0 -0
  68. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/pgp.py +0 -0
  69. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/pud.py +0 -0
  70. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/simple_signature.py +0 -0
  71. {sdata-0.25.0 → sdata-0.25.2}/sdata/iolib/vault.py +0 -0
  72. {sdata-0.25.0 → sdata-0.25.2}/sdata/metadata.py +0 -0
  73. {sdata-0.25.0 → sdata-0.25.2}/sdata/node.py +0 -0
  74. {sdata-0.25.0 → sdata-0.25.2}/sdata/parameter.py +0 -0
  75. {sdata-0.25.0 → sdata-0.25.2}/sdata/parameters_deprecated.py +0 -0
  76. {sdata-0.25.0 → sdata-0.25.2}/sdata/timestamp.py +0 -0
  77. {sdata-0.25.0 → sdata-0.25.2}/sdata/tools.py +0 -0
  78. {sdata-0.25.0 → sdata-0.25.2}/sdata/workbook.py +0 -0
  79. {sdata-0.25.0 → sdata-0.25.2}/sdata.egg-info/dependency_links.txt +0 -0
  80. {sdata-0.25.0 → sdata-0.25.2}/sdata.egg-info/requires.txt +0 -0
  81. {sdata-0.25.0 → sdata-0.25.2}/sdata.egg-info/top_level.txt +0 -0
  82. {sdata-0.25.0 → sdata-0.25.2}/setup.cfg +0 -0
  83. {sdata-0.25.0 → sdata-0.25.2}/setup.py +0 -0
  84. {sdata-0.25.0 → sdata-0.25.2}/tests/__init__.py +0 -0
  85. {sdata-0.25.0 → sdata-0.25.2}/tests/iolib/__init__.py +0 -0
  86. {sdata-0.25.0 → sdata-0.25.2}/tests/iolib/pud/__init__.py +0 -0
  87. {sdata-0.25.0 → sdata-0.25.2}/tests/iolib/pud/test_pud.py +0 -0
  88. {sdata-0.25.0 → sdata-0.25.2}/tests/iolib/test_hasttree.py +0 -0
  89. {sdata-0.25.0 → sdata-0.25.2}/tests/iolib/test_hdf.py +0 -0
  90. {sdata-0.25.0 → sdata-0.25.2}/tests/test_attribute.py +0 -0
  91. {sdata-0.25.0 → sdata-0.25.2}/tests/test_blob.py +0 -0
  92. {sdata-0.25.0 → sdata-0.25.2}/tests/test_data.py +0 -0
  93. {sdata-0.25.0 → sdata-0.25.2}/tests/test_image.py +0 -0
  94. {sdata-0.25.0 → sdata-0.25.2}/tests/test_io.py +0 -0
  95. {sdata-0.25.0 → sdata-0.25.2}/tests/test_ks2.py +0 -0
  96. {sdata-0.25.0 → sdata-0.25.2}/tests/test_metadata.py +0 -0
  97. {sdata-0.25.0 → sdata-0.25.2}/tests/test_parameter.py +0 -0
  98. {sdata-0.25.0 → sdata-0.25.2}/tests/test_sqlite.py +0 -0
  99. {sdata-0.25.0 → sdata-0.25.2}/tests/test_suuid.py +0 -0
  100. {sdata-0.25.0 → sdata-0.25.2}/tests/test_table.py +0 -0
  101. {sdata-0.25.0 → sdata-0.25.2}/tests/test_testprogram.py +0 -0
  102. {sdata-0.25.0 → sdata-0.25.2}/tests/test_timeflake.py +0 -0
  103. {sdata-0.25.0 → sdata-0.25.2}/tests/test_timestamp.py +0 -0
  104. {sdata-0.25.0 → sdata-0.25.2}/tests/test_tools.py +0 -0
  105. {sdata-0.25.0 → sdata-0.25.2}/tests/test_vault.py +0 -0
  106. {sdata-0.25.0 → sdata-0.25.2}/tests/test_workbook.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: sdata
3
- Version: 0.25.0
3
+ Version: 0.25.2
4
4
  Summary: a structured data format
5
5
  Home-page: https://github.com/lepy/sdata
6
6
  Author: Lepy
@@ -34,6 +34,19 @@ Requires-Dist: xlsxwriter
34
34
  Requires-Dist: pytz
35
35
  Requires-Dist: requests
36
36
  Requires-Dist: Pillow
37
+ Dynamic: author
38
+ Dynamic: author-email
39
+ Dynamic: classifier
40
+ Dynamic: description
41
+ Dynamic: description-content-type
42
+ Dynamic: home-page
43
+ Dynamic: keywords
44
+ Dynamic: license
45
+ Dynamic: license-file
46
+ Dynamic: maintainer
47
+ Dynamic: maintainer-email
48
+ Dynamic: requires-dist
49
+ Dynamic: summary
37
50
 
38
51
 
39
52
  [![PyPI version](https://badge.fury.io/py/sdata.svg)](https://badge.fury.io/py/sdata)
@@ -94,7 +107,7 @@ force force 1.234 float kN x force
94
107
 
95
108
 
96
109
  * [Das sdata-Format - slides](https://lepy.github.io/sdata/ipynb/Das_sdata_Format.slides.html#)
97
-
110
+ * https://deepwiki.com/lepy/sdata
98
111
 
99
112
  ## Demo App
100
113
 
@@ -57,7 +57,7 @@ force force 1.234 float kN x force
57
57
 
58
58
 
59
59
  * [Das sdata-Format - slides](https://lepy.github.io/sdata/ipynb/Das_sdata_Format.slides.html#)
60
-
60
+ * https://deepwiki.com/lepy/sdata
61
61
 
62
62
  ## Demo App
63
63
 
@@ -0,0 +1,3 @@
1
+ [build-system]
2
+ requires = ["setuptools>=64.0.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
@@ -1,7 +1,7 @@
1
1
  # -*-coding: utf-8-*-
2
2
  from __future__ import division
3
3
 
4
- __version__ = '0.25.0'
4
+ __version__ = '0.25.2'
5
5
  __revision__ = None
6
6
  __version_info__ = tuple([int(num) for num in __version__.split('.')])
7
7
 
@@ -838,6 +838,20 @@ class Data(object):
838
838
  """
839
839
  return [(x.name, x.dir()) for x in self.group.values()]
840
840
 
841
+ def to_dataframe(self):
842
+ """Export the DataFrame with additional metadata and description.
843
+
844
+ Returns:
845
+ pandas.DataFrame: A copy of the DataFrame with added attributes.
846
+ """
847
+ df = self.df.copy()
848
+ df.attrs["!sdata"] = {
849
+ "metadata": self.metadata.to_dict(),
850
+ "description": self.description
851
+ }
852
+ return df
853
+
854
+
841
855
  def to_parquet(self, filepath=None, **kwargs):
842
856
  """
843
857
 
@@ -846,7 +860,7 @@ class Data(object):
846
860
  df = self.df.copy()
847
861
  #df["!sdata_index"] = df.index
848
862
  #df.reset_index(inplace=True)
849
- df.attrs = {"metadata": self.metadata.to_dict(),
863
+ df.attrs["!sdata"] = {"metadata": self.metadata.to_dict(),
850
864
  "description": self.description}
851
865
  df.to_parquet(filepath, engine=engine)
852
866
 
@@ -862,12 +876,21 @@ class Data(object):
862
876
  df = pd.read_parquet(filepath)
863
877
  tt = cls(name=filepath)
864
878
  tt.table = df
865
- attrs = df.attrs
866
- tt.metadata = tt.metadata.from_dict(attrs["metadata"])
867
- tt.description = attrs.get("description")
879
+
880
+ attrs = df.attrs.get("!sdata")
881
+ try:
882
+ tt.metadata = tt.metadata.from_dict(attrs["metadata"])
883
+ except:
884
+ logger.warning(f"ignore metadata {filepath}")
885
+ try:
886
+ tt.description = attrs.get("description")
887
+ except:
888
+ logger.warning(f"ignore description {filepath}")
889
+ if attrs is not None:
890
+ tt.df.attrs.pop("!sdata")
891
+ else:
892
+ raise Exception("parquet file '{}' not available".format(filepath))
868
893
  return tt
869
- else:
870
- raise Exception("parquet file '{}' not available".format(filepath))
871
894
  except Exception as exp:
872
895
  raise
873
896