marpledata 3.0.0.dev1__tar.gz → 3.1.0__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 (355) hide show
  1. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/.gitignore +9 -1
  2. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/CONTRIBUTING.md +13 -1
  3. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/PKG-INFO +84 -16
  4. marpledata-3.1.0/README.md +178 -0
  5. marpledata-3.1.0/docs/DEPLOYMENT.md +24 -0
  6. marpledata-3.1.0/docs/_static/custom.css +4 -0
  7. marpledata-3.1.0/docs/_static/favicon.png +0 -0
  8. marpledata-3.1.0/docs/_static/logo.png +0 -0
  9. marpledata-3.1.0/docs/api/db.rst +12 -0
  10. marpledata-3.1.0/docs/api/insight.rst +8 -0
  11. marpledata-3.1.0/docs/api/marple.Insight.rst +33 -0
  12. marpledata-3.1.0/docs/api/marple.db.DB.rst +49 -0
  13. marpledata-3.1.0/docs/api/marple.db.DataStream.rst +49 -0
  14. marpledata-3.1.0/docs/api/marple.db.Dataset.rst +58 -0
  15. marpledata-3.1.0/docs/api/marple.db.DatasetList.rst +40 -0
  16. marpledata-3.1.0/docs/api/marple.db.Signal.rst +47 -0
  17. marpledata-3.1.0/docs/api.rst +8 -0
  18. marpledata-3.1.0/docs/conf.py +128 -0
  19. marpledata-3.1.0/docs/getting-started.rst +54 -0
  20. marpledata-3.1.0/docs/index.rst +12 -0
  21. marpledata-3.1.0/docs/tutorials.rst +46 -0
  22. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/example.py +23 -24
  23. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/pyproject.toml +8 -2
  24. marpledata-3.1.0/src/marple/__init__.py +6 -0
  25. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/src/marple/db/__init__.py +276 -168
  26. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/src/marple/db/constants.py +2 -0
  27. marpledata-3.1.0/src/marple/db/dataset.py +512 -0
  28. marpledata-3.1.0/src/marple/db/datastream.py +201 -0
  29. marpledata-3.1.0/src/marple/db/signal.py +81 -0
  30. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/src/marple/insight.py +42 -15
  31. marpledata-3.1.0/src/marple/utils.py +141 -0
  32. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/tests/test_sdk.py +73 -113
  33. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/uv.lock +360 -1
  34. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26570/signal=210048/mdb_019c43c1ebce7e11b435f8d52748acf7.parquet +0 -0
  35. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26570/signal=210049/mdb_019c43c1ebcb7741ae849d66acd413d1.parquet +0 -0
  36. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26570/signal=210052/mdb_019c43c1ebd278539d848a29d05dc395.parquet +0 -0
  37. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26570/signal=210056/mdb_019c43c1ec617b408800519e2c4beb16.parquet +0 -0
  38. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26570/signal=210058/mdb_019c43c1ec957c62a54a12229f52182c.parquet +0 -0
  39. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26572/signal=210051/mdb_019c43c2497e711095999e2705ab1dfb.parquet +0 -0
  40. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26574/signal=210052/mdb_019c4405a89778a1b468b7e37800cf70.parquet +0 -0
  41. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26574/signal=210056/mdb_019c4405a93d7623a46729699752a73f.parquet +0 -0
  42. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26574/signal=210057/mdb_019c4405a94a74b28567dc37d530ff78.parquet +0 -0
  43. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26574/signal=210058/mdb_019c4405a9607242a4a399fa63621da6.parquet +0 -0
  44. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26574/signal=210059/mdb_019c4405a9637fe1a0299efe98f8f1f4.parquet +0 -0
  45. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26584/signal=210050/mdb_019c4406aaa67453afd4545924e6a44f.parquet +0 -0
  46. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26590/signal=210046/mdb_019c46ab27ae78e3bb3f61dd0cb7d269.parquet +0 -0
  47. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26590/signal=210050/mdb_019c46ab27b17e41ad16e7be8db27871.parquet +0 -0
  48. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26590/signal=210057/mdb_019c46ab28617f82a0590ded50bec9eb.parquet +0 -0
  49. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26590/signal=210058/mdb_019c46ab286f70a3abec3e9e732eeaa3.parquet +0 -0
  50. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26590/signal=210060/mdb_019c46ab28897253bb08c87c834d0998.parquet +0 -0
  51. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=26600/signal=210052/mdb_019c46ac123f7b42a56bcf59136290e5.parquet +0 -0
  52. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=395/signal=7431/mdb_019c437664237a33b1a18f053a9864ed.parquet +0 -0
  53. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=395/signal=7434/mdb_019c4376642578c283e6799e27e5269b.parquet +0 -0
  54. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=395/signal=7435/mdb_019c4376642578c283e6798d55eaaa66.parquet +0 -0
  55. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=395/signal=7437/mdb_019c437664877110af469c3e82f8e688.parquet +0 -0
  56. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=395/signal=7440/mdb_019c437664bd7a10bf1e93bdd2f0d7f9.parquet +0 -0
  57. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=397/signal=7429/mdb_019c4376738e768395724fc867b28b37.parquet +0 -0
  58. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=397/signal=7429/test.py +0 -17
  59. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=399/signal=7430/mdb_019c43c0eaff77f1bc1d7165b9617be6.parquet +0 -0
  60. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=399/signal=7436/mdb_019c43c0eb027f4089aa5259bfa65974.parquet +0 -0
  61. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=399/signal=7439/mdb_019c43c0ebab76e181e32df35adb4ef1.parquet +0 -0
  62. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=399/signal=7441/mdb_019c43c0ebc97810b720617e79ece6a8.parquet +0 -0
  63. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=399/signal=7443/mdb_019c43c0ebf371b3af252f621e5077d9.parquet +0 -0
  64. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=401/signal=7442/mdb_019c43c0fbc77bf3a9b6820a13ba17d3.parquet +0 -0
  65. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=430/signal=7431/mdb_019c46fd80797dd296f1ef5c17e13b40.parquet +0 -0
  66. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=431/signal=7431/mdb_019c46fd815579e28c3acd86fdc0720c.parquet +0 -0
  67. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=440/signal=7431/mdb_019c46fdea5f74718ab1339de3f9340a.parquet +0 -0
  68. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=441/signal=7431/mdb_019c46fdef297463b7ed866fa7247ee5.parquet +0 -0
  69. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=450/signal=7431/mdb_019c46ff7e0072c18dbb9a047be156f5.parquet +0 -0
  70. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=451/signal=7431/mdb_019c46ff83277c7196ee6d278dd0a3f2.parquet +0 -0
  71. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=460/signal=7431/mdb_019c4700e7bc7531ab077c984295cb49.parquet +0 -0
  72. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=461/signal=7431/mdb_019c4700e84474a1a7af8ffa44c3d0cf.parquet +0 -0
  73. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=470/signal=7431/mdb_019c47018c7f7cc28d440bdbf434a877.parquet +0 -0
  74. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=471/signal=7431/mdb_019c47018cd57f0191b62e59ccc55024.parquet +0 -0
  75. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=480/signal=7431/mdb_019c4702aebd72909d218465fbdeeafb.parquet +0 -0
  76. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=481/signal=7431/mdb_019c4702af807f30a730043f6700d78c.parquet +0 -0
  77. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=490/signal=7431/mdb_019c4703245b7d608cab402c47c2786e.parquet +0 -0
  78. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=491/signal=7431/mdb_019c4703250d7eb28509c3db7058e9d5.parquet +0 -0
  79. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=500/signal=7431/mdb_019c47039e5f70a381ae82b10fe0e1a4.parquet +0 -0
  80. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=501/signal=7431/mdb_019c47039f0e7ee288bebd3d4c99df24.parquet +0 -0
  81. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=510/signal=7431/mdb_019c47044e5a74019295a4f610986832.parquet +0 -0
  82. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=511/signal=7431/mdb_019c4704535370b2b97edcd57543fdad.parquet +0 -0
  83. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=520/signal=7431/mdb_019c4705b3f57a72bdb50db3bc615759.parquet +0 -0
  84. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=521/signal=7431/mdb_019c4705b8517312a7ef2e52190135a4.parquet +0 -0
  85. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=530/signal=7431/mdb_019c4705dad67ce18030708aae48e070.parquet +0 -0
  86. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=531/signal=7431/mdb_019c4705e0067a51b171814f29672134.parquet +0 -0
  87. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=540/signal=7431/mdb_019c470626157a609f21dbe9d1266a15.parquet +0 -0
  88. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=541/signal=7431/mdb_019c47062b437bf1a4c129ad6d566630.parquet +0 -0
  89. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=550/signal=7431/mdb_019c47064acd7e31b5e27b244694289c.parquet +0 -0
  90. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=551/signal=7431/mdb_019c47064b9e7693a641426187203033.parquet +0 -0
  91. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=560/signal=7431/mdb_019c4707779374f3a3e93f5aa6e75645.parquet +0 -0
  92. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=561/signal=7431/mdb_019c47077c7e7dd1a7d13c0555890436.parquet +0 -0
  93. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=570/signal=7431/mdb_019c470819327dd38732f1f6aa0cf41e.parquet +0 -0
  94. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=571/signal=7431/mdb_019c47081a327863a83c62a57a7798b9.parquet +0 -0
  95. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=580/signal=7431/mdb_019c4708f0c87a2090e9cfb134718319.parquet +0 -0
  96. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=581/signal=7431/mdb_019c4708f16977b38ef79888598a889c.parquet +0 -0
  97. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=600/signal=7436/mdb_019c4758f4367bc180389d09c90db6b8.parquet +0 -0
  98. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=600/signal=7441/mdb_019c4758f4f077e3862839043418528a.parquet +0 -0
  99. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=601/signal=7436/mdb_019c4758f4f07e02b0d43536b6ee6258.parquet +0 -0
  100. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=601/signal=7441/mdb_019c4758f5d27d71996d95d0a6bc1525.parquet +0 -0
  101. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=602/signal=7429/mdb_019c4758fca07e7290ae1e96a4500a8d.parquet +0 -0
  102. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=602/signal=7430/mdb_019c4758fca07e7290ae1e80abb44620.parquet +0 -0
  103. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=602/signal=7436/mdb_019c4758fca17441ade1a5ec337b7c5f.parquet +0 -0
  104. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=602/signal=7439/mdb_019c4758fd0f74408842121bdd0413c2.parquet +0 -0
  105. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=602/signal=7441/mdb_019c4758fd387d60a8724f9a304c3f7c.parquet +0 -0
  106. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=618/signal=7435/mdb_019c47602e8971f1923b2c3369faee6b.parquet +0 -0
  107. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=618/signal=7443/mdb_019c47602f717643a7f321b4526d043d.parquet +0 -0
  108. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=619/signal=7435/mdb_019c47602f607063827e550834c1f9d6.parquet +0 -0
  109. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=619/signal=7443/mdb_019c4760306b7bc38b097cf5255b3d29.parquet +0 -0
  110. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=620/signal=7429/mdb_019c476037b07163bc8d9818102bc730.parquet +0 -0
  111. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=620/signal=7435/mdb_019c476037b277409f01d660f9c28e81.parquet +0 -0
  112. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=620/signal=7439/mdb_019c4760383e70c1ab842f96d466343c.parquet +0 -0
  113. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=620/signal=7441/mdb_019c4760385270f399e6d38fbe652e08.parquet +0 -0
  114. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=620/signal=7443/mdb_019c4760386073d1871f41d6d16f6671.parquet +0 -0
  115. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=626/signal=7430/mdb_019c4760807c7f5385b910a66229b58e.parquet +0 -0
  116. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=626/signal=7440/mdb_019c4760813775d1ac81aa513c2f9b2b.parquet +0 -0
  117. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=627/signal=7430/mdb_019c4760811571f3b0189772f652050c.parquet +0 -0
  118. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=627/signal=7440/mdb_019c476082167142a03bd3b63c13abee.parquet +0 -0
  119. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=628/signal=7430/mdb_019c476089b177e09a3824345a58e470.parquet +0 -0
  120. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=628/signal=7434/mdb_019c476089b279f282c507099db5a95d.parquet +0 -0
  121. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=628/signal=7437/mdb_019c47608a0572b1bd7d3d841ab0a095.parquet +0 -0
  122. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=628/signal=7440/mdb_019c47608a3b7e539ef65a63f3f29717.parquet +0 -0
  123. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=628/signal=7443/mdb_019c47608a5672c0bc1124f2c83e1f6b.parquet +0 -0
  124. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=634/signal=7432/mdb_019c4762765f780088150e950c5d3eb9.parquet +0 -0
  125. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=634/signal=7435/mdb_019c4762765e7c60b62bc7033665bb58.parquet +0 -0
  126. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=634/signal=7436/mdb_019c4762765f780088150ea9afd9b538.parquet +0 -0
  127. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=634/signal=7440/mdb_019c476277057ba397e244b5c633648c.parquet +0 -0
  128. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=634/signal=7442/mdb_019c4762771d7e81bd537986115019ed.parquet +0 -0
  129. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=635/signal=7435/mdb_019c4762773e769180d19c539952c5b2.parquet +0 -0
  130. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=635/signal=7436/mdb_019c4762773d7a708aa731dbf68762e4.parquet +0 -0
  131. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=636/signal=7435/mdb_019c4762801b78c3962ce8e6aa7d69ea.parquet +0 -0
  132. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=636/signal=7436/mdb_019c4762801b78c3962ce8d6592a1e5f.parquet +0 -0
  133. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=642/signal=7430/mdb_019c4764e64a7453981bafd3eeb44223.parquet +0 -0
  134. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=642/signal=7441/mdb_019c4764e6fc73b39061ccb8748738eb.parquet +0 -0
  135. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=643/signal=7429/mdb_019c4764e71e7c93932070444c48b696.parquet +0 -0
  136. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=643/signal=7430/mdb_019c4764e71f7422bdfe9d2d5950f972.parquet +0 -0
  137. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=643/signal=7432/mdb_019c4764e7207c50ba0f00eb90057191.parquet +0 -0
  138. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=643/signal=7439/mdb_019c4764e7f9780189518cfffc4ed591.parquet +0 -0
  139. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=643/signal=7441/mdb_019c4764e819792085069106c067f5e9.parquet +0 -0
  140. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=644/signal=7430/mdb_019c4764ef687fb2a134d3f9340ee0a3.parquet +0 -0
  141. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=644/signal=7441/mdb_019c4764f00874a3bd4e27a86bba1a1d.parquet +0 -0
  142. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=650/signal=7434/mdb_019c47661f3f77a290620f01f6a6df5b.parquet +0 -0
  143. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=650/signal=7440/mdb_019c47661ffe79139754bf28b66b893e.parquet +0 -0
  144. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=651/signal=7430/mdb_019c4766203e7bc29e3112a07c12ce46.parquet +0 -0
  145. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=651/signal=7434/mdb_019c4766204076d1ab809cce93676293.parquet +0 -0
  146. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=651/signal=7439/mdb_019c476621077570a2b1681cbd2c5bfb.parquet +0 -0
  147. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=651/signal=7440/mdb_019c4766210c76a1bc4b2e9bc7a210dd.parquet +0 -0
  148. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=651/signal=7443/mdb_019c4766213375c2b4c103dc2309baca.parquet +0 -0
  149. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=652/signal=7434/mdb_019c476628d57862ac956ffccf82b3a8.parquet +0 -0
  150. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=652/signal=7440/mdb_019c476629857133ac6210053695b4ee.parquet +0 -0
  151. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=658/signal=7433/mdb_019c4766f6d37eb0beccc9b6dededaba.parquet +0 -0
  152. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=658/signal=7434/mdb_019c4766f6d47763a19357b66b7ae19a.parquet +0 -0
  153. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=658/signal=7436/mdb_019c4766f6d47763a1935798d3094d05.parquet +0 -0
  154. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=658/signal=7440/mdb_019c4766f755751089a1c813e4f569fa.parquet +0 -0
  155. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=658/signal=7442/mdb_019c4766f8437783bfb998c6b2ffb38b.parquet +0 -0
  156. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=659/signal=7433/mdb_019c4766f7a176a2b697eec9c49826b8.parquet +0 -0
  157. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=659/signal=7436/mdb_019c4766f79e71a2a7afa7a566de6397.parquet +0 -0
  158. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=660/signal=7433/mdb_019c4766ff967b918139a58ab13b097a.parquet +0 -0
  159. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=660/signal=7436/mdb_019c4766ff967b918139a56ce1207a34.parquet +0 -0
  160. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=666/signal=7429/mdb_019c4767d2a772429a09d6e8b18baa55.parquet +0 -0
  161. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=666/signal=7433/mdb_019c4767d2a879718c08cd0c68c408cf.parquet +0 -0
  162. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=667/signal=7429/mdb_019c4767d35e76b2b4cd2dd8d0b24994.parquet +0 -0
  163. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=667/signal=7433/mdb_019c4767d3607753a0dc305e7b66060e.parquet +0 -0
  164. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=668/signal=7429/mdb_019c4767db287460923e75032f65a669.parquet +0 -0
  165. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=668/signal=7432/mdb_019c4767db297792ab5e16ebc18c733f.parquet +0 -0
  166. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=668/signal=7433/mdb_019c4767db287460923e753be61865ea.parquet +0 -0
  167. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=668/signal=7434/mdb_019c4767db297792ab5e16fdacc6cdf8.parquet +0 -0
  168. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=668/signal=7439/mdb_019c4767dbc17c218a4de03cd8bf0a6a.parquet +0 -0
  169. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=674/signal=7429/mdb_019c47686fd67340b5b91acfdc6e5c18.parquet +0 -0
  170. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=674/signal=7434/mdb_019c47686fd779608a3a258048f2aefc.parquet +0 -0
  171. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=674/signal=7436/mdb_019c47686fd779608a3a25a13c3631f1.parquet +0 -0
  172. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=674/signal=7439/mdb_019c4768706b719087d2ef6edf52ad71.parquet +0 -0
  173. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=674/signal=7443/mdb_019c4768716878a296c7104690e04e27.parquet +0 -0
  174. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=675/signal=7429/mdb_019c476870e177e1b209ba609e8aeeea.parquet +0 -0
  175. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=675/signal=7443/mdb_019c476872da7af1b9076211f0b73aa1.parquet +0 -0
  176. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=676/signal=7429/mdb_019c476879c3758083ca942d6c668d3d.parquet +0 -0
  177. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=676/signal=7443/mdb_019c47687b4f7ef0b73f9de288973e0d.parquet +0 -0
  178. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=682/signal=7431/mdb_019c4777cdc072f388a73c1cf2b709f2.parquet +0 -0
  179. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=682/signal=7434/mdb_019c4777cdc17ba2b934b348027068d5.parquet +0 -0
  180. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=682/signal=7437/mdb_019c4777ce207340ae80286b29076e94.parquet +0 -0
  181. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=682/signal=7442/mdb_019c4777cf7878b3b2fe2c52c37fe20f.parquet +0 -0
  182. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=682/signal=7443/mdb_019c4777cf7878b3b2fe2c6757fdb7bf.parquet +0 -0
  183. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=683/signal=7434/mdb_019c4777ce9d7430a70c2e5af3c8382e.parquet +0 -0
  184. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=683/signal=7442/mdb_019c4777d0477730b835a7aceb1a5bd9.parquet +0 -0
  185. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=684/signal=7434/mdb_019c4777d6077b13aea1b4027adf7cf9.parquet +0 -0
  186. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=684/signal=7442/mdb_019c4777d7617452aeac495b7909c695.parquet +0 -0
  187. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=690/signal=7436/mdb_019c47784ff674f281706d0f2ff0a4f2.parquet +0 -0
  188. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=690/signal=7437/mdb_019c477850497521b29f17277b4a444c.parquet +0 -0
  189. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=691/signal=7436/mdb_019c477850f87c108c7ea74a11278aef.parquet +0 -0
  190. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=691/signal=7437/mdb_019c4778514975518320b4067da3e1a8.parquet +0 -0
  191. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=692/signal=7432/mdb_019c4778587d71c08bc508dbb84802a5.parquet +0 -0
  192. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=692/signal=7435/mdb_019c4778587d71c08bc508af1a3ab27f.parquet +0 -0
  193. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=692/signal=7436/mdb_019c4778587e7860bbc269e9c64197a8.parquet +0 -0
  194. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=692/signal=7437/mdb_019c477858c27d82935b9944596aacca.parquet +0 -0
  195. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=692/signal=7439/mdb_019c477858fc73d0b9170228d11abb43.parquet +0 -0
  196. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=698/signal=7433/mdb_019c477b80247db099382901f14d3c70.parquet +0 -0
  197. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=698/signal=7443/mdb_019c477b82027660a13812fed5751753.parquet +0 -0
  198. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=699/signal=7431/mdb_019c477b7f2c7d308c67800e7c73e621.parquet +0 -0
  199. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=699/signal=7433/mdb_019c477b7f2d7091802411bbcc273368.parquet +0 -0
  200. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=699/signal=7435/mdb_019c477b7f2d7091802411ecf8d76293.parquet +0 -0
  201. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=699/signal=7436/mdb_019c477b7f2d7091802411c45e77b96c.parquet +0 -0
  202. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=699/signal=7443/mdb_019c477b80b178d190150a5f00e1754c.parquet +0 -0
  203. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=700/signal=7433/mdb_019c477b88e976109d8c3dd40308d299.parquet +0 -0
  204. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=700/signal=7443/mdb_019c477b8a747641af0e1a9440f9f64c.parquet +0 -0
  205. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=708/signal=7431/mdb_019c477ce0997bf1a349533cd768a0e3.parquet +0 -0
  206. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=708/signal=7438/mdb_019c477ce1d479c29b9c80ea72073518.parquet +0 -0
  207. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=709/signal=7431/mdb_019c477ce54c7343b453d25ad9436f54.parquet +0 -0
  208. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=709/signal=7438/mdb_019c477ce69873e3a5f649fd91d6c087.parquet +0 -0
  209. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=710/signal=7431/mdb_019c477ce8957c63994de3eaa2522095.parquet +0 -0
  210. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=710/signal=7435/mdb_019c477ce8967c73bcae4d273374f9bb.parquet +0 -0
  211. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=710/signal=7436/mdb_019c477ce8977db295f827f96b6ec929.parquet +0 -0
  212. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=710/signal=7438/mdb_019c477ce9e27040870709bdb48d73cf.parquet +0 -0
  213. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=710/signal=7441/mdb_019c477cea2c7cb3ae3796092d8f0b32.parquet +0 -0
  214. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=718/signal=7438/mdb_019c477de4897491ac761859147db72c.parquet +0 -0
  215. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=718/signal=7440/mdb_019c477de4997702b1c7fa8e263092a3.parquet +0 -0
  216. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=719/signal=7430/mdb_019c477de4037a7298d755fbf0c7cfc6.parquet +0 -0
  217. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=719/signal=7432/mdb_019c477de4047a11befde5c24b1f3c17.parquet +0 -0
  218. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=719/signal=7438/mdb_019c477de59e76919914ac93f8a12234.parquet +0 -0
  219. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=719/signal=7440/mdb_019c477de5aa7631853432385a1331b2.parquet +0 -0
  220. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=719/signal=7442/mdb_019c477de5d976a08691ce3a0ef2647e.parquet +0 -0
  221. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=720/signal=7438/mdb_019c477dee0670f1a50fb308ab4c8d33.parquet +0 -0
  222. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=720/signal=7440/mdb_019c477dee177551b90097eebf7efd28.parquet +0 -0
  223. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=728/signal=7436/mdb_019c477e7c9d7d13ada306270548dd4c.parquet +0 -0
  224. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=728/signal=7442/mdb_019c477e7e177b30bc71e64d509ff222.parquet +0 -0
  225. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=729/signal=7429/mdb_019c477e7d607fe286367d8e760cfb31.parquet +0 -0
  226. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=729/signal=7431/mdb_019c477e7d6170709693f8ee47156f3c.parquet +0 -0
  227. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=729/signal=7436/mdb_019c477e7d6170709693f913410bee93.parquet +0 -0
  228. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=729/signal=7439/mdb_019c477e7eea7d63b6c6bf62afb3e63e.parquet +0 -0
  229. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=729/signal=7442/mdb_019c477e7f0877a0badecb49044e99c6.parquet +0 -0
  230. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=730/signal=7436/mdb_019c477e85ff7303ba60cd2f7b2207a3.parquet +0 -0
  231. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=730/signal=7442/mdb_019c477e87467a42b38d4fb8ae4a9b5a.parquet +0 -0
  232. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=738/signal=7429/mdb_019c477f50db73c38c920b77fd658cf7.parquet +0 -0
  233. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=738/signal=7432/mdb_019c477f50dc7b018046ae436d0a06c2.parquet +0 -0
  234. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=738/signal=7433/mdb_019c477f50dd7712b0c49c1496b858cf.parquet +0 -0
  235. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=738/signal=7435/mdb_019c477f50dc7b018046ae1c055696b0.parquet +0 -0
  236. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=738/signal=7439/mdb_019c477f5262727184b6a1a44c50d96f.parquet +0 -0
  237. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=739/signal=7433/mdb_019c477f502576008d34e4aabc8acd69.parquet +0 -0
  238. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=739/signal=7435/mdb_019c477f50267bf0a81b5cee6e3a695d.parquet +0 -0
  239. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=740/signal=7433/mdb_019c477f59927bf09768579a824bf9b1.parquet +0 -0
  240. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=740/signal=7435/mdb_019c477f59937d019c4beca464c4f827.parquet +0 -0
  241. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=748/signal=7429/mdb_019c4780632579519e8ddaa280b1b8f1.parquet +0 -0
  242. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=748/signal=7432/mdb_019c478063277d9384f4569f742cd8c7.parquet +0 -0
  243. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=748/signal=7437/mdb_019c4780643b77d18d2d25922703d522.parquet +0 -0
  244. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=748/signal=7438/mdb_019c4780644d7743b4591259dd8a0b2b.parquet +0 -0
  245. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=748/signal=7443/mdb_019c4780648879008a0336fad5510082.parquet +0 -0
  246. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=749/signal=7438/mdb_019c4780658c708398214a82e8e3741a.parquet +0 -0
  247. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=749/signal=7443/mdb_019c478065ba76208453c0cc8a4db391.parquet +0 -0
  248. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=750/signal=7438/mdb_019c47806d347f61b3f5ca58c7cc6e58.parquet +0 -0
  249. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=750/signal=7443/mdb_019c47806d677df2a2389aa418638b7b.parquet +0 -0
  250. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=760/signal=7440/mdb_019c47814b9f7ee1aec52d784b8e9985.parquet +0 -0
  251. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=760/signal=7443/mdb_019c47814bc47600926ef2384f4e227a.parquet +0 -0
  252. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=761/signal=7429/mdb_019c47814b2179c19836a48d0d7c7cdd.parquet +0 -0
  253. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=761/signal=7437/mdb_019c47814c7e7940a58b27d292320573.parquet +0 -0
  254. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=761/signal=7438/mdb_019c47814c8e7f01b93a077a7f61dccc.parquet +0 -0
  255. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=761/signal=7440/mdb_019c47814c9f785089dce016039d2208.parquet +0 -0
  256. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=761/signal=7443/mdb_019c47814cc373d0b0a680b59d9fd609.parquet +0 -0
  257. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=762/signal=7440/mdb_019c478154967762ac23c2fbae85b479.parquet +0 -0
  258. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=762/signal=7443/mdb_019c478154ac7bf2add8b944068ffe8b.parquet +0 -0
  259. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=772/signal=7430/mdb_019c478392827b30a18e060b4a90dd00.parquet +0 -0
  260. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=772/signal=7433/mdb_019c478392827b30a18e06268765b0c4.parquet +0 -0
  261. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=772/signal=7436/mdb_019c478392837252895cd6a507f9e5f4.parquet +0 -0
  262. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=772/signal=7439/mdb_019c478393b8787080e010ee4c8de5ba.parquet +0 -0
  263. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=772/signal=7442/mdb_019c478393cf77b28eb88a2f06c6ba86.parquet +0 -0
  264. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=773/signal=7430/mdb_019c4783938a7313bad2f325859e7855.parquet +0 -0
  265. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=773/signal=7442/mdb_019c478394e77701bcc9b06f6b351d88.parquet +0 -0
  266. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=774/signal=7430/mdb_019c47839b4f7d818c1968e56d7fb422.parquet +0 -0
  267. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=774/signal=7442/mdb_019c47839c857d208e705e041f5aa60d.parquet +0 -0
  268. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=780/signal=7430/mdb_019c478619757ce3a0acc4ed40b6ff15.parquet +0 -0
  269. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=780/signal=7443/mdb_019c47861ae870e28e381c1a67d330e7.parquet +0 -0
  270. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=781/signal=7430/mdb_019c47861a5b7af3b99fe9538e0f7384.parquet +0 -0
  271. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=781/signal=7443/mdb_019c47861bd17c339ade891f781706cd.parquet +0 -0
  272. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=782/signal=7430/mdb_019c478622367b10a047243953a29947.parquet +0 -0
  273. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=782/signal=7431/mdb_019c478622377be1b78fc0194c0518b6.parquet +0 -0
  274. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=782/signal=7437/mdb_019c4786234d7c51bff80abd1a369b80.parquet +0 -0
  275. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=782/signal=7440/mdb_019c47862362714093806c3c27e0a7e2.parquet +0 -0
  276. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=782/signal=7443/mdb_019c4786237f72d0bc651c9a95896813.parquet +0 -0
  277. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=788/signal=7431/mdb_019c478727f37a60b91f6900c67f8683.parquet +0 -0
  278. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=788/signal=7434/mdb_019c478727f37a60b91f692aedb50136.parquet +0 -0
  279. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=788/signal=7437/mdb_019c4787290b7010944d6961f473d784.parquet +0 -0
  280. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=788/signal=7438/mdb_019c4787292278d39c11d64bc7c56875.parquet +0 -0
  281. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=788/signal=7443/mdb_019c4787296b7e80b3f24db7c9aec877.parquet +0 -0
  282. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=789/signal=7434/mdb_019c478729017180b0562bbcac5117f4.parquet +0 -0
  283. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=789/signal=7443/mdb_019c47872a8774c298dc5b9287220e05.parquet +0 -0
  284. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=790/signal=7434/mdb_019c478731497122b30077131c2e2076.parquet +0 -0
  285. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=790/signal=7443/mdb_019c4787328c74429aebe7714d3f490c.parquet +0 -0
  286. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=796/signal=7431/mdb_019c4788cf167fd2bc38767cbd2d9de2.parquet +0 -0
  287. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=796/signal=7434/mdb_019c4788cf167fd2bc3876882645c3a5.parquet +0 -0
  288. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=797/signal=7431/mdb_019c4788d3ca76a1ac0e8dee6f4f2437.parquet +0 -0
  289. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=797/signal=7434/mdb_019c4788d3d27e62bf8556898988b324.parquet +0 -0
  290. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=798/signal=7430/mdb_019c4788d7e973d0919a464fd49bae35.parquet +0 -0
  291. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=798/signal=7431/mdb_019c4788d7eb7d23b9b0340ea6e32d87.parquet +0 -0
  292. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=798/signal=7433/mdb_019c4788d7ea7f93ae523c6a23b0272a.parquet +0 -0
  293. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=798/signal=7434/mdb_019c4788d7ea7f93ae523c842a6908c1.parquet +0 -0
  294. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=798/signal=7441/mdb_019c4788d92f7d728636394b89116c0a.parquet +0 -0
  295. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=808/signal=7433/mdb_019c4789900678f2b567801348ae623f.parquet +0 -0
  296. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=808/signal=7435/mdb_019c478990077151b474f5a98b31d565.parquet +0 -0
  297. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=809/signal=7433/mdb_019c478994b37433b7c85d4e6bc31d05.parquet +0 -0
  298. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=809/signal=7435/mdb_019c478994b37433b7c85d65fb8e0684.parquet +0 -0
  299. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=810/signal=7433/mdb_019c478999027580ad5a569de2db38b6.parquet +0 -0
  300. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=810/signal=7435/mdb_019c478999037de3a728824e6c34343b.parquet +0 -0
  301. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=810/signal=7440/mdb_019c47899a3870a3807f445c5f0622e1.parquet +0 -0
  302. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=810/signal=7441/mdb_019c47899a497860a1d7b06e45a32ef5.parquet +0 -0
  303. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=810/signal=7442/mdb_019c47899a4b7372adae16a43f2fc4b9.parquet +0 -0
  304. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=820/signal=7433/mdb_019c478a705e78d087caa04744d4f5ab.parquet +0 -0
  305. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=820/signal=7443/mdb_019c478a712373a2a59266d0b1785815.parquet +0 -0
  306. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=821/signal=7433/mdb_019c478a710f709298a11594a6cc0ae1.parquet +0 -0
  307. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=821/signal=7435/mdb_019c478a710f709298a115a5c608efe5.parquet +0 -0
  308. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=821/signal=7441/mdb_019c478a71e379b38e495c9baf6466da.parquet +0 -0
  309. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=821/signal=7442/mdb_019c478a71e87483ad17b97debc763b7.parquet +0 -0
  310. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=821/signal=7443/mdb_019c478a71ed7c2081d25621e643a89b.parquet +0 -0
  311. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=822/signal=7433/mdb_019c478a796d7473ad7a6586f6920121.parquet +0 -0
  312. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=822/signal=7443/mdb_019c478a7a0a7c9284217be1aa6b81d1.parquet +0 -0
  313. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=836/signal=7429/mdb_019c478bd19a7e2299ec54de54ca0057.parquet +0 -0
  314. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=836/signal=7430/mdb_019c478bd1987f428e2acbc0f768e893.parquet +0 -0
  315. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=836/signal=7433/mdb_019c478bd19b72f0bcd96e4b2a709d1e.parquet +0 -0
  316. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=836/signal=7436/mdb_019c478bd19a7e2299ec54e3df0e4d2c.parquet +0 -0
  317. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=836/signal=7442/mdb_019c478bd24578c3b31ca4c9bc86f7d9.parquet +0 -0
  318. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=837/signal=7429/mdb_019c478bd2fe72039ee11ad6753714b7.parquet +0 -0
  319. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=837/signal=7442/mdb_019c478bd3c77103acfb1c95abc8a06d.parquet +0 -0
  320. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=838/signal=7429/mdb_019c478bdb2e784194df83338cb8529f.parquet +0 -0
  321. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=838/signal=7442/mdb_019c478bdbed7b32902b40e67c69b311.parquet +0 -0
  322. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=852/signal=7429/mdb_019c478f486b7f92aa41f51165e7694d.parquet +0 -0
  323. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=852/signal=7437/mdb_019c478f48fd72a29443fe3915d0c5b0.parquet +0 -0
  324. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=852/signal=7438/mdb_019c478f49527a31aab2eaf78bf2555c.parquet +0 -0
  325. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=852/signal=7439/mdb_019c478f497678739c32f19262e641ac.parquet +0 -0
  326. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=852/signal=7440/mdb_019c478f498677439a30a52d6d4ef4b3.parquet +0 -0
  327. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=853/signal=7438/mdb_019c478f4adb7ca3852ab3c354054726.parquet +0 -0
  328. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=853/signal=7440/mdb_019c478f4b1275c3a91911b399b3b1d0.parquet +0 -0
  329. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=854/signal=7438/mdb_019c478f52ec72e1a7d4335b97a69590.parquet +0 -0
  330. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=854/signal=7440/mdb_019c478f52fa73f399cb510ce23f28ec.parquet +0 -0
  331. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=868/signal=7433/mdb_019c478fe4d874b19a3e10e17a8d17b7.parquet +0 -0
  332. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=868/signal=7437/mdb_019c478fe53574a19b40dbb871c8ac32.parquet +0 -0
  333. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=869/signal=7433/mdb_019c478fe6267f828b9bccb1091bf3cf.parquet +0 -0
  334. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=869/signal=7437/mdb_019c478fe6a27622b1ac18035c50ca9a.parquet +0 -0
  335. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=870/signal=7431/mdb_019c478feeae7181822bbd7772a3f396.parquet +0 -0
  336. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=870/signal=7433/mdb_019c478feeae7181822bbd66a8ca3054.parquet +0 -0
  337. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=870/signal=7437/mdb_019c478fef2070d09b5736ab6d95887a.parquet +0 -0
  338. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=870/signal=7440/mdb_019c478fef5e73f3bcb642883eb35b58.parquet +0 -0
  339. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=870/signal=7443/mdb_019c478fef767851b020ba9e7f8282e7.parquet +0 -0
  340. marpledata-3.0.0.dev1/.mdb_cache/default/dataset=882/signal=7431/mdb_019c47902f5e74128ce586b5dbf4f146.parquet +0 -0
  341. marpledata-3.0.0.dev1/README.md +0 -111
  342. marpledata-3.0.0.dev1/experiment.py +0 -21
  343. marpledata-3.0.0.dev1/src/marple/__init__.py +0 -7
  344. marpledata-3.0.0.dev1/src/marple/db/dataset.py +0 -263
  345. marpledata-3.0.0.dev1/src/marple/db/datastream.py +0 -80
  346. marpledata-3.0.0.dev1/src/marple/db/signal.py +0 -103
  347. marpledata-3.0.0.dev1/src/marple/files.py +0 -164
  348. marpledata-3.0.0.dev1/src/marple/utils.py +0 -42
  349. marpledata-3.0.0.dev1/tests/test_files.py +0 -48
  350. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/.python-version +0 -0
  351. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/LICENSE +0 -0
  352. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/examples_race.csv +0 -0
  353. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/pytest.xml +0 -0
  354. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/src/marple/py.typed +0 -0
  355. {marpledata-3.0.0.dev1 → marpledata-3.1.0}/tests/examples_race.csv +0 -0
@@ -1,3 +1,10 @@
1
+ lol.py
2
+ .mdb_cache/
3
+ matlab/bin/
4
+
5
+ python/docs/_build/
6
+ python/docs/api/marple.*.rst
7
+
1
8
  # Default ignored files
2
9
  /shelf/
3
10
  /workspace.xml
@@ -161,4 +168,5 @@ cython_debug/
161
168
  # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
162
169
  # and can be added to the global gitignore or merged into this file. For a more nuclear
163
170
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
164
- .idea/
171
+ .idea/
172
+ *.env
@@ -11,6 +11,17 @@ export INSIGHT_TOKEN=...
11
11
  uv run pytest -vs
12
12
  ```
13
13
 
14
+ ### Documentation
15
+
16
+ Build the Sphinx docs locally:
17
+
18
+ ```bash
19
+ uv sync --group docs
20
+ uv run sphinx-build -b html docs docs/_build/html
21
+ ```
22
+
23
+ Open `docs/_build/html/index.html` in your browser to view the site.
24
+
14
25
  ### Local build
15
26
 
16
27
  - `uv build`
@@ -18,7 +29,7 @@ uv run pytest -vs
18
29
  - `uv run python`
19
30
  - `import marple`
20
31
  - `marple.__version__`
21
- - `from marple import Marple, Insight, DB`
32
+ - `from marple import Insight, DB`
22
33
 
23
34
  ### Publishing (Test Pypi)
24
35
 
@@ -59,3 +70,4 @@ To ensure pip correctly updates our package, correct versioning is important. Us
59
70
  - `uv config pypi-token.pypi pypi-XXXXXXXXXXXXXXXXXXXXXXXXXXXX`
60
71
  - `uv build`
61
72
  - `uv publish`
73
+ - Run the GitLab pipeline `pages` to build & release the docs
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: marpledata
3
- Version: 3.0.0.dev1
3
+ Version: 3.1.0
4
4
  Summary: Marple SDK for Python
5
5
  Project-URL: Homepage, https://www.marpledata.com/
6
- Project-URL: Documentation, https://docs.marpledata.com/docs
6
+ Project-URL: Documentation, https://marpledata.gitlab.io/marple-sdk/
7
7
  Project-URL: Repository, https://gitlab.com/marpledata/marple-sdk/-/tree/main/python
8
8
  Project-URL: Issues, https://github.com/marpledata/marple-sdk/issues
9
9
  Author-email: Matthias Baert <support@marpledata.com>, Jan Scheers <jan@marpledata.com>
@@ -28,6 +28,7 @@ Requires-Dist: pandas>=2.3.3
28
28
  Requires-Dist: pyarrow>=22.0.0
29
29
  Requires-Dist: pydantic>=2.12.5
30
30
  Requires-Dist: requests>=2.32.5
31
+ Requires-Dist: tabulate>=0.9.0
31
32
  Description-Content-Type: text/markdown
32
33
 
33
34
  # Marple SDK
@@ -58,7 +59,8 @@ To get started:
58
59
 
59
60
  If you are using a VPC or self-hosted version, pass a custom `api_url` to `DB(...)` (it should end in `/api/v1`).
60
61
 
61
- ### Example: import a file and poll ingest status
62
+ ### Examples
63
+ #### Import a file and wait for it to import
62
64
 
63
65
  This is the typical flow for importing a new file into Marple DB:
64
66
 
@@ -75,23 +77,77 @@ db = DB(API_TOKEN, API_URL)
75
77
 
76
78
  db.check_connection()
77
79
 
78
- dataset_id = db.push_file(STREAM, "tests/examples_race.csv", metadata={"driver": "Mbaerto"})
80
+ stream = db.get_stream(STREAM)
81
+ dataset = stream.push_file("examples_race.csv", metadata={"driver": "Mbaerto"})
82
+ # Wait at most 10s for the dataset to completely import and get the new state of the dataset
83
+ dataset = dataset.wait_for_import(timeout=10)
84
+ ```
85
+
86
+ #### Filter datasets and get resampled data
87
+ ```python
88
+ # See previous example for setup
89
+ import re
90
+ from marple.db import Dataset
91
+
92
+ datasets = stream.get_datasets() # Get all datasets in a specific Data Stream
93
+ # OR
94
+ # datasets = db.get_datasets() # Get all datasets in the datapool
95
+
96
+ datasets = (
97
+ datasets
98
+ .where_metadata({"car_id": [1, 2], "track": "track_1"})
99
+ .wait_for_import()
100
+ .where_imported()
101
+ .where_signal("car.speed", "max", greater_than=75)
102
+ .where_signal("car.engine.temp", "mean", greater_than=30)
103
+ .where_dataset("n_datapoints", greater_than=100000)
104
+ )
105
+
106
+ def custom_filter_function(dataset: Dataset) -> bool:
107
+ return (
108
+ dataset.metadata.get("weather") == "sunny"
109
+ or dataset.get_signal("car.engine.NGear").stats.get("avg", 0) ** 2 > 16
110
+ )
111
+
112
+ # Pass any function to filter the datasets on more complex conditions
113
+ datasets = datasets.where(custom_filter_function)
114
+
115
+ # Create an overview of the datasets as a pandas.DataFrame to save it to a CSV.
116
+ datasets.to_pandas().to_csv("all_datasets.csv")
117
+
118
+ # Get a dataframe per dataset of the matching signals which is resampled at a period of 0.17s.
119
+ # The regex patterns will match with car.wheel.rear.left.speed, car.wheel.rear.front.speed, ...
120
+ for dataset, data in datasets.get_data(
121
+ signals=[
122
+ "car.speed",
123
+ "car.engine.temp",
124
+ re.compile("car.wheel.*.speed"),
125
+ re.compile("car.wheel.*.trq"),
126
+ ],
127
+ resample_rule="0.17s",
128
+ ):
129
+ machine_learning_model.train(data)
130
+ ```
131
+
132
+ #### Delete a dataset that failed to import
133
+ ```python
134
+ datasets = stream.get_datasets()
135
+ datasets = datasets.where_dataset("import_status", equals="FAILED")
79
136
 
80
- while True:
81
- status = db.get_status(STREAM, dataset_id)
82
- if status.get("import_status") in {"FINISHED", "FAILED"}:
83
- break
84
- time.sleep(1)
137
+ # datasets is of type DatasetList which is a subclass of list so you can do all normal list operations on it.
138
+ if len(datasets) > 0:
139
+ datasets[0].delete()
85
140
  ```
86
141
 
87
142
  ### Common operations
88
143
 
89
144
  - **List streams**: `db.get_streams()`
90
- - **List datasets in a stream**: `db.get_datasets(stream_key)`
91
- - **Upload a file to a file-stream**: `db.push_file(stream_key, file_path, metadata={...})`
92
- - **Poll ingest status**: `db.get_status(stream_key, dataset_id)`
93
- - **Download original uploaded file**: `db.download_original(stream_key, dataset_id, destination_folder=".")`
94
- - **Download parquet for a signal**: `db.download_signal(stream_key, dataset_id, signal_id, destination_folder=".")`
145
+ - **List datasets in a stream**: `stream.get_datasets()`
146
+ - **Upload a file to a file-stream**: `stream.push_file(file_path, metadata={...})`
147
+ - **Wait for a dataset to import**: `dataset.wait_for_import(timeout=60)`
148
+ - **Download original uploaded file**: `dataset.download(destination_folder=".")`
149
+ - **Download parquet for a signal**: `dataset.get_signal(signal_name).download(destination_folder=".")`
150
+ - **Get a resampled df of multiple signals**: `dataset.get_data(signals=[...], resample_rule="1s")`
95
151
 
96
152
  For live/realtime streams (creating and appending data):
97
153
 
@@ -105,9 +161,14 @@ For advanced use cases, you can call API endpoints directly:
105
161
 
106
162
  ```python
107
163
  db.get("/health")
108
- db.post("/query", json={"query": "select 1"})
109
164
  ```
110
165
 
166
+ ### Notes on DB API changes
167
+
168
+ - Methods like `DB.push_file`, `DB.download_signal`, and `DB.update_metadata` are deprecated.
169
+ - Prefer stream/dataset methods instead: `stream.push_file`, `dataset.get_signal(...).download()`, and `dataset.update_metadata(...)`.
170
+ - These are still available for compatibility, but the examples above use the current API.
171
+
111
172
  ## Marple Insight
112
173
 
113
174
  ### Common operations
@@ -130,7 +191,7 @@ STREAM = "Car data"
130
191
  insight = Insight(INSIGHT_TOKEN, INSIGHT_URL)
131
192
  db = DB(DB_TOKEN, DB_URL)
132
193
 
133
- dataset_id = db.get_datasets(STREAM)[0]["id"]
194
+ dataset_id = db.get_datasets(STREAM)[0].id
134
195
  insight_dataset = insight.get_dataset_mdb(dataset_id)
135
196
 
136
197
  file_path = insight.export_data_mdb(
@@ -141,3 +202,10 @@ file_path = insight.export_data_mdb(
141
202
  )
142
203
  print("Wrote", file_path)
143
204
  ```
205
+
206
+ ### Calling endpoints directly
207
+ For advanced use cases, you can call API endpoints directly:
208
+ ```python
209
+ insight.get("/user/info")
210
+ insight.post("sources/search")
211
+ ```
@@ -0,0 +1,178 @@
1
+ # Marple SDK
2
+
3
+ An SDK to interact with [Marple](https://www.marpledata.com) DB & Insight
4
+
5
+ ## Installation and importing
6
+
7
+ Install the Marple SDK using your package manager:
8
+
9
+ - `poetry add marpledata`
10
+ - `uv add marpledata`
11
+ - `pip install marpledata`
12
+
13
+ The SDK currently exposes:
14
+
15
+ ```python
16
+ from marple import DB # Marple DB
17
+ from marple import Insight # Marple Insight
18
+ ```
19
+
20
+ ## Marple DB
21
+
22
+ To get started:
23
+
24
+ - Create a **stream** in the Marple DB UI
25
+ - Create an **API token** (in user settings)
26
+
27
+ If you are using a VPC or self-hosted version, pass a custom `api_url` to `DB(...)` (it should end in `/api/v1`).
28
+
29
+ ### Examples
30
+ #### Import a file and wait for it to import
31
+
32
+ This is the typical flow for importing a new file into Marple DB:
33
+
34
+ ```python
35
+ import time
36
+ from marple import DB
37
+
38
+ # Create a stream + API token in the Marple DB web application
39
+ STREAM = "Car data"
40
+ API_TOKEN = "<your api token>"
41
+ API_URL = "https://db.marpledata.com/api/v1" # optional if using the default SaaS
42
+
43
+ db = DB(API_TOKEN, API_URL)
44
+
45
+ db.check_connection()
46
+
47
+ stream = db.get_stream(STREAM)
48
+ dataset = stream.push_file("examples_race.csv", metadata={"driver": "Mbaerto"})
49
+ # Wait at most 10s for the dataset to completely import and get the new state of the dataset
50
+ dataset = dataset.wait_for_import(timeout=10)
51
+ ```
52
+
53
+ #### Filter datasets and get resampled data
54
+ ```python
55
+ # See previous example for setup
56
+ import re
57
+ from marple.db import Dataset
58
+
59
+ datasets = stream.get_datasets() # Get all datasets in a specific Data Stream
60
+ # OR
61
+ # datasets = db.get_datasets() # Get all datasets in the datapool
62
+
63
+ datasets = (
64
+ datasets
65
+ .where_metadata({"car_id": [1, 2], "track": "track_1"})
66
+ .wait_for_import()
67
+ .where_imported()
68
+ .where_signal("car.speed", "max", greater_than=75)
69
+ .where_signal("car.engine.temp", "mean", greater_than=30)
70
+ .where_dataset("n_datapoints", greater_than=100000)
71
+ )
72
+
73
+ def custom_filter_function(dataset: Dataset) -> bool:
74
+ return (
75
+ dataset.metadata.get("weather") == "sunny"
76
+ or dataset.get_signal("car.engine.NGear").stats.get("avg", 0) ** 2 > 16
77
+ )
78
+
79
+ # Pass any function to filter the datasets on more complex conditions
80
+ datasets = datasets.where(custom_filter_function)
81
+
82
+ # Create an overview of the datasets as a pandas.DataFrame to save it to a CSV.
83
+ datasets.to_pandas().to_csv("all_datasets.csv")
84
+
85
+ # Get a dataframe per dataset of the matching signals which is resampled at a period of 0.17s.
86
+ # The regex patterns will match with car.wheel.rear.left.speed, car.wheel.rear.front.speed, ...
87
+ for dataset, data in datasets.get_data(
88
+ signals=[
89
+ "car.speed",
90
+ "car.engine.temp",
91
+ re.compile("car.wheel.*.speed"),
92
+ re.compile("car.wheel.*.trq"),
93
+ ],
94
+ resample_rule="0.17s",
95
+ ):
96
+ machine_learning_model.train(data)
97
+ ```
98
+
99
+ #### Delete a dataset that failed to import
100
+ ```python
101
+ datasets = stream.get_datasets()
102
+ datasets = datasets.where_dataset("import_status", equals="FAILED")
103
+
104
+ # datasets is of type DatasetList which is a subclass of list so you can do all normal list operations on it.
105
+ if len(datasets) > 0:
106
+ datasets[0].delete()
107
+ ```
108
+
109
+ ### Common operations
110
+
111
+ - **List streams**: `db.get_streams()`
112
+ - **List datasets in a stream**: `stream.get_datasets()`
113
+ - **Upload a file to a file-stream**: `stream.push_file(file_path, metadata={...})`
114
+ - **Wait for a dataset to import**: `dataset.wait_for_import(timeout=60)`
115
+ - **Download original uploaded file**: `dataset.download(destination_folder=".")`
116
+ - **Download parquet for a signal**: `dataset.get_signal(signal_name).download(destination_folder=".")`
117
+ - **Get a resampled df of multiple signals**: `dataset.get_data(signals=[...], resample_rule="1s")`
118
+
119
+ For live/realtime streams (creating and appending data):
120
+
121
+ - **Create an empty dataset**: `db.add_dataset(stream_key, dataset_name, metadata=None)`
122
+ - **Upsert signal definitions**: `db.upsert_signals(stream_key, dataset_id, signals=[...])`
123
+ - **Append timeseries data**: `db.dataset_append(stream_key, dataset_id, data=df, shape="long"|"wide"|None)`
124
+
125
+ ### Calling endpoints directly
126
+
127
+ For advanced use cases, you can call API endpoints directly:
128
+
129
+ ```python
130
+ db.get("/health")
131
+ ```
132
+
133
+ ### Notes on DB API changes
134
+
135
+ - Methods like `DB.push_file`, `DB.download_signal`, and `DB.update_metadata` are deprecated.
136
+ - Prefer stream/dataset methods instead: `stream.push_file`, `dataset.get_signal(...).download()`, and `dataset.update_metadata(...)`.
137
+ - These are still available for compatibility, but the examples above use the current API.
138
+
139
+ ## Marple Insight
140
+
141
+ ### Common operations
142
+
143
+ - **List datasets in the workspace**: `insight.get_datasets()`
144
+ - **Get a Marple DB dataset (by dataset id)**: `insight.get_dataset_mdb(dataset_id)`
145
+ - **List signals in a dataset**: `insight.get_signals(dataset_filter)` / `insight.get_signals_mdb(dataset_id)`
146
+
147
+ ### Example: export a dataset (H5/MAT)
148
+
149
+ ```python
150
+ from marple import DB, Insight
151
+
152
+ INSIGHT_TOKEN = "<your api token>"
153
+ INSIGHT_URL = "https://insight.marpledata.com/api/v1" # optional if using the default SaaS
154
+ DB_TOKEN = "<your api token>"
155
+ DB_URL = "https://db.marpledata.com/api/v1" # optional if using the default SaaS
156
+ STREAM = "Car data"
157
+
158
+ insight = Insight(INSIGHT_TOKEN, INSIGHT_URL)
159
+ db = DB(DB_TOKEN, DB_URL)
160
+
161
+ dataset_id = db.get_datasets(STREAM)[0].id
162
+ insight_dataset = insight.get_dataset_mdb(dataset_id)
163
+
164
+ file_path = insight.export_data_mdb(
165
+ dataset_id,
166
+ format="h5",
167
+ signals=["car.speed"],
168
+ destination=".",
169
+ )
170
+ print("Wrote", file_path)
171
+ ```
172
+
173
+ ### Calling endpoints directly
174
+ For advanced use cases, you can call API endpoints directly:
175
+ ```python
176
+ insight.get("/user/info")
177
+ insight.post("sources/search")
178
+ ```
@@ -0,0 +1,24 @@
1
+ # Documentation Deployment
2
+
3
+ The Sphinx documentation can be manually built and deployed to GitLab Pages with a single click.
4
+
5
+ ## How to Deploy
6
+ Click **Run pipeline** to trigger it
7
+ The`pages` job will start and automatically build the docs and serve them as a static gitlab page under `https://marpledata.gitlab.io/marple-sdk/`
8
+
9
+ ## Local Development
10
+
11
+ To build docs locally:
12
+ ```bash
13
+ cd python
14
+ uv run sphinx-build -b html docs docs/_build/html
15
+ ```
16
+
17
+ Then open `docs/_build/html/index.html` in your browser.
18
+
19
+
20
+ **Sphinx configuration:** `python/docs/conf.py`
21
+ - Uses PyData theme
22
+ - Includes Pydantic filtering to hide internal methods
23
+ - 2-product structure (Insight, DB, Files)
24
+
@@ -0,0 +1,4 @@
1
+ :root {
2
+ /* The primary color used for links and active states */
3
+ --pst-color-primary: #0253A3;
4
+ }
Binary file
@@ -0,0 +1,12 @@
1
+ Marple DB
2
+ =========
3
+
4
+ .. autosummary::
5
+ :toctree: .
6
+ :nosignatures:
7
+
8
+ marple.db.DB
9
+ marple.db.DataStream
10
+ marple.db.Dataset
11
+ marple.db.DatasetList
12
+ marple.db.Signal
@@ -0,0 +1,8 @@
1
+ Marple Insight
2
+ ==============
3
+
4
+ .. autosummary::
5
+ :toctree: .
6
+ :nosignatures:
7
+
8
+ marple.Insight
@@ -0,0 +1,33 @@
1
+ marple.Insight
2
+ ==============
3
+
4
+ .. currentmodule:: marple
5
+
6
+ .. autoclass:: Insight
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~Insight.check_connection
17
+ ~Insight.delete
18
+ ~Insight.export_data
19
+ ~Insight.export_data_mdb
20
+ ~Insight.get
21
+ ~Insight.get_dataset
22
+ ~Insight.get_dataset_mdb
23
+ ~Insight.get_datasets
24
+ ~Insight.get_signals
25
+ ~Insight.get_signals_mdb
26
+ ~Insight.patch
27
+ ~Insight.post
28
+
29
+
30
+
31
+
32
+
33
+
@@ -0,0 +1,49 @@
1
+ marple.db.DB
2
+ ============
3
+
4
+ .. currentmodule:: marple.db
5
+
6
+ .. autoclass:: DB
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~DB.add_dataset
17
+ ~DB.check_connection
18
+ ~DB.create_stream
19
+ ~DB.dataset_append
20
+ ~DB.delete
21
+ ~DB.delete_dataset
22
+ ~DB.delete_stream
23
+ ~DB.download_original
24
+ ~DB.download_signal
25
+ ~DB.get
26
+ ~DB.get_dataset
27
+ ~DB.get_datasets
28
+ ~DB.get_signal
29
+ ~DB.get_signals
30
+ ~DB.get_status
31
+ ~DB.get_stream
32
+ ~DB.get_streams
33
+ ~DB.patch
34
+ ~DB.post
35
+ ~DB.push_file
36
+ ~DB.update_metadata
37
+ ~DB.upsert_signals
38
+
39
+
40
+
41
+
42
+
43
+ .. rubric:: Attributes
44
+
45
+ .. autosummary::
46
+
47
+ ~DB.client
48
+
49
+
@@ -0,0 +1,49 @@
1
+ marple.db.DataStream
2
+ ====================
3
+
4
+ .. currentmodule:: marple.db
5
+
6
+ .. autoclass:: DataStream
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~DataStream.delete
17
+ ~DataStream.get_dataset
18
+ ~DataStream.get_datasets
19
+ ~DataStream.push_file
20
+
21
+
22
+
23
+
24
+
25
+ .. rubric:: Attributes
26
+
27
+ .. autosummary::
28
+
29
+ ~DataStream.type
30
+ ~DataStream.id
31
+ ~DataStream.name
32
+ ~DataStream.description
33
+ ~DataStream.datapool
34
+ ~DataStream.layer_shifts
35
+ ~DataStream.version_id
36
+ ~DataStream.insight_workspace
37
+ ~DataStream.insight_project
38
+ ~DataStream.created_at
39
+ ~DataStream.last_updated
40
+ ~DataStream.last_ingested
41
+ ~DataStream.n_datasets
42
+ ~DataStream.n_datapoints
43
+ ~DataStream.cold_bytes
44
+ ~DataStream.hot_bytes
45
+ ~DataStream.plugin
46
+ ~DataStream.plugin_args
47
+ ~DataStream.signal_reduction
48
+
49
+
@@ -0,0 +1,58 @@
1
+ marple.db.Dataset
2
+ =================
3
+
4
+ .. currentmodule:: marple.db
5
+
6
+ .. autoclass:: Dataset
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~Dataset.delete
17
+ ~Dataset.download
18
+ ~Dataset.fetch
19
+ ~Dataset.get_data
20
+ ~Dataset.get_signal
21
+ ~Dataset.get_signals
22
+ ~Dataset.update_metadata
23
+ ~Dataset.wait_for_import
24
+
25
+
26
+
27
+
28
+
29
+ .. rubric:: Attributes
30
+
31
+ .. autosummary::
32
+
33
+ ~Dataset.id
34
+ ~Dataset.datastream_id
35
+ ~Dataset.datastream_version
36
+ ~Dataset.created_at
37
+ ~Dataset.created_by
38
+ ~Dataset.import_status
39
+ ~Dataset.import_progress
40
+ ~Dataset.import_message
41
+ ~Dataset.import_time
42
+ ~Dataset.path
43
+ ~Dataset.metadata
44
+ ~Dataset.cold_path
45
+ ~Dataset.cold_bytes
46
+ ~Dataset.hot_bytes
47
+ ~Dataset.backup_path
48
+ ~Dataset.backup_size
49
+ ~Dataset.plugin
50
+ ~Dataset.plugin_args
51
+ ~Dataset.n_datapoints
52
+ ~Dataset.n_signals
53
+ ~Dataset.timestamp_start
54
+ ~Dataset.timestamp_stop
55
+ ~Dataset.import_speed
56
+ ~Dataset.parquet_version
57
+
58
+
@@ -0,0 +1,40 @@
1
+ marple.db.DatasetList
2
+ =====================
3
+
4
+ .. currentmodule:: marple.db
5
+
6
+ .. autoclass:: DatasetList
7
+
8
+
9
+ .. automethod:: __init__
10
+
11
+
12
+ .. rubric:: Methods
13
+
14
+ .. autosummary::
15
+
16
+ ~DatasetList.append
17
+ ~DatasetList.clear
18
+ ~DatasetList.count
19
+ ~DatasetList.extend
20
+ ~DatasetList.from_dicts
21
+ ~DatasetList.get_data
22
+ ~DatasetList.index
23
+ ~DatasetList.insert
24
+ ~DatasetList.pop
25
+ ~DatasetList.remove
26
+ ~DatasetList.reverse
27
+ ~DatasetList.sort
28
+ ~DatasetList.to_pandas
29
+ ~DatasetList.wait_for_import
30
+ ~DatasetList.where
31
+ ~DatasetList.where_dataset
32
+ ~DatasetList.where_imported
33
+ ~DatasetList.where_metadata
34
+ ~DatasetList.where_signal
35
+
36
+
37
+
38
+
39
+
40
+