shareddata 6.86.0__tar.gz → 6.86.1__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 (190) hide show
  1. shareddata-6.86.1/PKG-INFO +164 -0
  2. shareddata-6.86.1/README.md +89 -0
  3. {shareddata-6.86.0 → shareddata-6.86.1}/setup.py +2 -2
  4. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/apidocs.yml +1 -1
  5. shareddata-6.86.1/src/shareddata.egg-info/PKG-INFO +164 -0
  6. shareddata-6.86.0/PKG-INFO +0 -245
  7. shareddata-6.86.0/README.md +0 -170
  8. shareddata-6.86.0/src/shareddata.egg-info/PKG-INFO +0 -245
  9. {shareddata-6.86.0 → shareddata-6.86.1}/LICENSE +0 -0
  10. {shareddata-6.86.0 → shareddata-6.86.1}/MANIFEST.in +0 -0
  11. {shareddata-6.86.0 → shareddata-6.86.1}/pyproject.toml +0 -0
  12. {shareddata-6.86.0 → shareddata-6.86.1}/setup.cfg +0 -0
  13. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/ServerGunicorn.py +0 -0
  14. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/ServerWaitress.py +0 -0
  15. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/__init__.py +0 -0
  16. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/apidocs-dark.css +0 -0
  17. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/auth.py +0 -0
  18. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/constants.py +0 -0
  19. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/download_paths.py +0 -0
  20. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/download_slots.py +0 -0
  21. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/install/worker.ps1 +0 -0
  22. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/install/worker.sh +0 -0
  23. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/listcache.py +0 -0
  24. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/__init__.py +0 -0
  25. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/cache.py +0 -0
  26. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/collections.py +0 -0
  27. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/data.py +0 -0
  28. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/downloads.py +0 -0
  29. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/metadata.py +0 -0
  30. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/operations.py +0 -0
  31. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/schedules.py +0 -0
  32. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/sqlite.py +0 -0
  33. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/system.py +0 -0
  34. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/tables.py +0 -0
  35. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/timeseries.py +0 -0
  36. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/web_routes.py +0 -0
  37. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/routes/workers.py +0 -0
  38. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/API/utils.py +0 -0
  39. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Auth/__init__.py +0 -0
  40. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Auth/bootstrap.py +0 -0
  41. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Auth/migrate.py +0 -0
  42. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Auth/store.py +0 -0
  43. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Auth/workers.py +0 -0
  44. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/CacheRedis.py +0 -0
  45. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/CollectionMongoDB.py +0 -0
  46. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/__init__.py +0 -0
  47. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/catalog.py +0 -0
  48. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/config.py +0 -0
  49. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/errors.py +0 -0
  50. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/indexes.py +0 -0
  51. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/readers.py +0 -0
  52. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/resolve.py +0 -0
  53. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/DataAPI/service.py +0 -0
  54. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Database.py +0 -0
  55. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Defaults.py +0 -0
  56. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/AWSEC2.py +0 -0
  57. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/AWSS3.py +0 -0
  58. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/AutoDocstrings.py +0 -0
  59. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/ClientAPI.py +0 -0
  60. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/ClientSocket.py +0 -0
  61. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/ClientWebSocket.py +0 -0
  62. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/LogHandlerAPI.py +0 -0
  63. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/LogReader.py +0 -0
  64. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/MongoDBClient.py +0 -0
  65. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/SaveTables.py +0 -0
  66. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/ServerSocket.py +0 -0
  67. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/ServerWebSocket.py +0 -0
  68. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/StreamsCache.py +0 -0
  69. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/StreamsPersist.py +0 -0
  70. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/SyncTable.py +0 -0
  71. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/TunnelWebSocket.py +0 -0
  72. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/IO/__init__.py +0 -0
  73. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Listing.py +0 -0
  74. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/LockWaiters.py +0 -0
  75. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Logger.py +0 -0
  76. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/MCP/__init__.py +0 -0
  77. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/MCP/__main__.py +0 -0
  78. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/MCP/client.py +0 -0
  79. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/MCP/server.py +0 -0
  80. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Metadata.py +0 -0
  81. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/MultiProc.py +0 -0
  82. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/OpenFIGI.py +0 -0
  83. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Redaction.py +0 -0
  84. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/ArchiveOldCollections.py +0 -0
  85. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/BatchJob.py +0 -0
  86. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/ContainerHealth.py +0 -0
  87. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/JobStore.py +0 -0
  88. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/RoutineCommand.py +0 -0
  89. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/RoutineOrigin.py +0 -0
  90. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/Schedule.py +0 -0
  91. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/ScheduleMirror.py +0 -0
  92. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/ScheduleMonitor.py +0 -0
  93. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/ScheduleStore.py +0 -0
  94. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/Scheduler.py +0 -0
  95. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/UpdateActiveJobs.py +0 -0
  96. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/Worker.py +0 -0
  97. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/WorkerBootstrap.py +0 -0
  98. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/WorkerLib.py +0 -0
  99. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/WorkerPool.py +0 -0
  100. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Routines/__init__.py +0 -0
  101. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/SQLite.py +0 -0
  102. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/SharedData.py +0 -0
  103. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/SharedNumpy.py +0 -0
  104. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/StreamKafka.py +0 -0
  105. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Symbol.py +0 -0
  106. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Table.py +0 -0
  107. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableDisk.py +0 -0
  108. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndex.py +0 -0
  109. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndexJitFunctions.py +0 -0
  110. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndexJitFunctionsManual.py +0 -0
  111. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndexJitGenerate.py +0 -0
  112. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndexJitHash.py +0 -0
  113. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableIndexJitLoc.py +0 -0
  114. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableProtocol.py +0 -0
  115. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableRead.py +0 -0
  116. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TableRewrite.py +0 -0
  117. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TimeSeriesDisk.py +0 -0
  118. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/TimeseriesContainer.py +0 -0
  119. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Users.py +0 -0
  120. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Utils.py +0 -0
  121. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/ADDING_A_PAGE.md +0 -0
  122. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/__init__.py +0 -0
  123. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/activity_logger.py +0 -0
  124. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/app.py +0 -0
  125. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/dashAgGridComponentFunctions.js +0 -0
  126. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/dashAgGridFunctions.js +0 -0
  127. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/google_logo.png +0 -0
  128. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/kafka_keys.js +0 -0
  129. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/logs.css +0 -0
  130. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/sched.css +0 -0
  131. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/assets/styles.css +0 -0
  132. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/auth.py +0 -0
  133. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/backends.py +0 -0
  134. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/config.py +0 -0
  135. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/containers.py +0 -0
  136. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/identity.py +0 -0
  137. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/kafka_view.py +0 -0
  138. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/mongo_view.py +0 -0
  139. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/proc.py +0 -0
  140. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/redis_view.py +0 -0
  141. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/route_health.py +0 -0
  142. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/route_registry.py +0 -0
  143. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/sched.py +0 -0
  144. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/schedule_editor.py +0 -0
  145. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/server.py +0 -0
  146. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/services.py +0 -0
  147. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/shell.py +0 -0
  148. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/standalone.py +0 -0
  149. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/account.js +0 -0
  150. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/custom.css +0 -0
  151. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/favicon.ico +0 -0
  152. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/favicon.png +0 -0
  153. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/logo.png +0 -0
  154. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/logo_96x96.png +0 -0
  155. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/shareddata-mark.svg +0 -0
  156. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/shell.css +0 -0
  157. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/shell.js +0 -0
  158. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/standalone.css +0 -0
  159. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/static/standalone.js +0 -0
  160. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/suggest.py +0 -0
  161. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/account.html +0 -0
  162. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/base.html +0 -0
  163. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/claim.html +0 -0
  164. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/claim_done.html +0 -0
  165. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/dash.html +0 -0
  166. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/index.html +0 -0
  167. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/login.html +0 -0
  168. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/login_2fa.html +0 -0
  169. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/partials/navbar.html +0 -0
  170. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/partials/scripts.html +0 -0
  171. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/recovery_codes.html +0 -0
  172. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/shell.html +0 -0
  173. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/templates/standalone.html +0 -0
  174. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/twofactor.py +0 -0
  175. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/utils.py +0 -0
  176. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/Web/workerpool.py +0 -0
  177. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/__init__.py +0 -0
  178. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/build_info.py +0 -0
  179. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/fleet.py +0 -0
  180. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/preflight.py +0 -0
  181. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/private_files.py +0 -0
  182. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/release_backup.py +0 -0
  183. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/server.py +0 -0
  184. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/services.py +0 -0
  185. {shareddata-6.86.0 → shareddata-6.86.1}/src/SharedData/sharedmutexwin.pyd +0 -0
  186. {shareddata-6.86.0 → shareddata-6.86.1}/src/shareddata.egg-info/SOURCES.txt +0 -0
  187. {shareddata-6.86.0 → shareddata-6.86.1}/src/shareddata.egg-info/dependency_links.txt +0 -0
  188. {shareddata-6.86.0 → shareddata-6.86.1}/src/shareddata.egg-info/entry_points.txt +0 -0
  189. {shareddata-6.86.0 → shareddata-6.86.1}/src/shareddata.egg-info/requires.txt +0 -0
  190. {shareddata-6.86.0 → shareddata-6.86.1}/src/shareddata.egg-info/top_level.txt +0 -0
@@ -0,0 +1,164 @@
1
+ Metadata-Version: 2.4
2
+ Name: shareddata
3
+ Version: 6.86.1
4
+ Summary: Memory-mapped record and time-series store with an HTTP API and a distributed scheduler
5
+ Home-page: https://shareddata.net
6
+ Author: shareddata
7
+ Author-email: admin@shareddata.net
8
+ License: MIT
9
+ Project-URL: Homepage, https://shareddata.net
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=3.11, <3.13
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: ipykernel<8,>=7.4
19
+ Requires-Dist: python-json-logger<5,>=4.2
20
+ Requires-Dist: python-dotenv<2,>=1.2.4
21
+ Requires-Dist: pandas<3,>=2.2
22
+ Requires-Dist: scipy<1.18,>=1.14
23
+ Requires-Dist: numpy<1.27,>=1.26.4
24
+ Requires-Dist: numba==0.59.1
25
+ Requires-Dist: XlsxWriter<4,>=3.2.9
26
+ Requires-Dist: openpyxl<4,>=3.1.5
27
+ Requires-Dist: tqdm<5,>=4.70.1
28
+ Requires-Dist: cffi<3,>=2.1
29
+ Requires-Dist: tzlocal<6,>=5.4.4
30
+ Requires-Dist: websockets<18,>=17.1
31
+ Requires-Dist: lz4<5,>=4.4.5
32
+ Requires-Dist: flask<4,>=3.1.3
33
+ Requires-Dist: waitress<4,>=3.0.2
34
+ Requires-Dist: requests<3,>=2.34.2
35
+ Requires-Dist: flasgger==0.9.7.1
36
+ Requires-Dist: pymongo<5,>=4.18.2
37
+ Requires-Dist: setuptools>=84
38
+ Requires-Dist: filelock<5,>=4.0.9
39
+ Requires-Dist: gunicorn<27,>=26.2
40
+ Requires-Dist: aiohttp<4,>=3.14.3
41
+ Requires-Dist: boto3<2,>=1.43
42
+ Requires-Dist: confluent-kafka<3,>=2.15.1
43
+ Requires-Dist: aiokafka<1,>=0.14
44
+ Requires-Dist: redis<9,>=8.1
45
+ Requires-Dist: Authlib<2,>=1.8
46
+ Requires-Dist: PyJWT<3,>=2.8
47
+ Requires-Dist: argon2-cffi<26,>=25.1
48
+ Requires-Dist: flask-jwt-extended<5,>=4.6
49
+ Requires-Dist: cryptography<51,>=50.0.2
50
+ Requires-Dist: segno<2,>=1.6
51
+ Requires-Dist: psutil<8,>=5.9
52
+ Requires-Dist: mcp>=1.27
53
+ Requires-Dist: httpx>=0.27
54
+ Provides-Extra: test
55
+ Requires-Dist: pytest<10,>=8.3.4; extra == "test"
56
+ Requires-Dist: pytest-asyncio<2,>=0.24; extra == "test"
57
+ Requires-Dist: playwright<2,>=1.63; extra == "test"
58
+ Provides-Extra: s3
59
+ Provides-Extra: kafka
60
+ Provides-Extra: redis
61
+ Provides-Extra: all
62
+ Dynamic: author
63
+ Dynamic: author-email
64
+ Dynamic: classifier
65
+ Dynamic: description
66
+ Dynamic: description-content-type
67
+ Dynamic: home-page
68
+ Dynamic: license
69
+ Dynamic: license-file
70
+ Dynamic: project-url
71
+ Dynamic: provides-extra
72
+ Dynamic: requires-dist
73
+ Dynamic: requires-python
74
+ Dynamic: summary
75
+
76
+ # SharedData
77
+
78
+ SharedData is an open-source memory-mapped store for records and time series —
79
+ in the workload category of tick stores such as kdb+ — plus the scheduler and
80
+ worker fleet that produce the data. Local processes map the same files through
81
+ the operating system's page cache; indexed writes coordinate through a
82
+ per-table process lock. Remote clients use an authenticated HTTP API; shared
83
+ memory does not span hosts.
84
+
85
+ Website and manual: <https://shareddata.net>
86
+
87
+ ## Install
88
+
89
+ Python 3.11 or 3.12:
90
+
91
+ ```sh
92
+ python -m pip install shareddata
93
+ ```
94
+
95
+ The [quick start](https://shareddata.net/docs/QUICK_START/) uses illustrative
96
+ records in isolated storage. See [configuration](https://shareddata.net/docs/CONFIGURATION/)
97
+ for public environment names and [Windows limitations](https://shareddata.net/docs/WINDOWS/)
98
+ for native requirements and rewrite behavior.
99
+
100
+ ## A record in one minute
101
+
102
+ Save as `example.py` after setting up isolated storage in the
103
+ [quick start](https://shareddata.net/docs/QUICK_START/), then run `python example.py`:
104
+
105
+ ```python
106
+ from SharedData.SharedData import SharedData
107
+ import pandas as pd
108
+
109
+ store = SharedData(__file__, user="example")
110
+ index = pd.MultiIndex.from_tuples(
111
+ [(pd.Timestamp("2026-01-02"), "EXAMPLE")],
112
+ names=["date", "symbol"],
113
+ )
114
+ rows = pd.DataFrame({"close": [100.0]}, index=index)
115
+ records = store.table(
116
+ "MarketData", "D1", "DEMO", "PRICES",
117
+ value=rows,
118
+ )
119
+ print(records.loc["2026-01-02", "EXAMPLE"])
120
+ ```
121
+
122
+ ## Containers and execution
123
+
124
+ - [Tables](https://shareddata.net/docs/core/table/): structured NumPy records and primary-key lookup.
125
+ - [Time series](https://shareddata.net/docs/core/timeseries/): timestamped float matrices.
126
+ - Collections, Redis caches, Kafka streams and optional S3 integration.
127
+ - [HTTP API](https://shareddata.net/docs/guide/swagger/): authenticated remote access.
128
+ - [Measured latency](https://shareddata.net/docs/performance/): what the containers cost in practice.
129
+
130
+ ## A store and the fleet that fills it
131
+
132
+ A routine is any program the Scheduler owns — a feed collector, a parser, a
133
+ consolidation job, an API server. A schedule lists the routines that should
134
+ stay alive or run at their times. Batch routines wait for their batch dependencies
135
+ to complete; realtime routines wait for their realtime dependencies to be running.
136
+ Dependencies between the two kinds are not enforced at runtime. Commands travel
137
+ through a per-host worker pool that validates the requested source revision
138
+ before every launch; routines report heartbeats and lifecycle messages through
139
+ the logging plane, and the Scheduler writes queryable state into the store.
140
+
141
+ - [Orchestration](https://shareddata.net/docs/orchestration/): the routine model, the Scheduler's tick and the worker pool.
142
+ - [Use cases](https://shareddata.net/docs/use-cases/): the workloads a production deployment runs, generalized.
143
+ - [Schedules](https://shareddata.net/docs/scheduler-store/) and [batch jobs](https://shareddata.net/docs/job-store/): where the state lives.
144
+
145
+ ## Data by symbol
146
+
147
+ The [semantic data API](https://shareddata.net/docs/data-api/) resolves a
148
+ symbol or entity to a dataset and includes provenance. It is a convenience,
149
+ not the fast path: producers keep using direct container interfaces for
150
+ performance-critical work.
151
+
152
+ ## Client integration
153
+
154
+ [Client integration](https://shareddata.net/docs/ecosystem/) covers
155
+ authenticated API access, the MCP server for compatible agent clients, and
156
+ worker access.
157
+
158
+ ## Development and license
159
+
160
+ Submit changes through the repository's review process. Read the
161
+ [development guide](https://shareddata.net/docs/DEVELOPMENT/) and run the
162
+ checks relevant to your change; [building and publishing](https://shareddata.net/docs/guide/building/)
163
+ explains how the public site is produced and audited. SharedData is released
164
+ under the MIT license; see `LICENSE` in the source distribution.
@@ -0,0 +1,89 @@
1
+ # SharedData
2
+
3
+ SharedData is an open-source memory-mapped store for records and time series —
4
+ in the workload category of tick stores such as kdb+ — plus the scheduler and
5
+ worker fleet that produce the data. Local processes map the same files through
6
+ the operating system's page cache; indexed writes coordinate through a
7
+ per-table process lock. Remote clients use an authenticated HTTP API; shared
8
+ memory does not span hosts.
9
+
10
+ Website and manual: <https://shareddata.net>
11
+
12
+ ## Install
13
+
14
+ Python 3.11 or 3.12:
15
+
16
+ ```sh
17
+ python -m pip install shareddata
18
+ ```
19
+
20
+ The [quick start](https://shareddata.net/docs/QUICK_START/) uses illustrative
21
+ records in isolated storage. See [configuration](https://shareddata.net/docs/CONFIGURATION/)
22
+ for public environment names and [Windows limitations](https://shareddata.net/docs/WINDOWS/)
23
+ for native requirements and rewrite behavior.
24
+
25
+ ## A record in one minute
26
+
27
+ Save as `example.py` after setting up isolated storage in the
28
+ [quick start](https://shareddata.net/docs/QUICK_START/), then run `python example.py`:
29
+
30
+ ```python
31
+ from SharedData.SharedData import SharedData
32
+ import pandas as pd
33
+
34
+ store = SharedData(__file__, user="example")
35
+ index = pd.MultiIndex.from_tuples(
36
+ [(pd.Timestamp("2026-01-02"), "EXAMPLE")],
37
+ names=["date", "symbol"],
38
+ )
39
+ rows = pd.DataFrame({"close": [100.0]}, index=index)
40
+ records = store.table(
41
+ "MarketData", "D1", "DEMO", "PRICES",
42
+ value=rows,
43
+ )
44
+ print(records.loc["2026-01-02", "EXAMPLE"])
45
+ ```
46
+
47
+ ## Containers and execution
48
+
49
+ - [Tables](https://shareddata.net/docs/core/table/): structured NumPy records and primary-key lookup.
50
+ - [Time series](https://shareddata.net/docs/core/timeseries/): timestamped float matrices.
51
+ - Collections, Redis caches, Kafka streams and optional S3 integration.
52
+ - [HTTP API](https://shareddata.net/docs/guide/swagger/): authenticated remote access.
53
+ - [Measured latency](https://shareddata.net/docs/performance/): what the containers cost in practice.
54
+
55
+ ## A store and the fleet that fills it
56
+
57
+ A routine is any program the Scheduler owns — a feed collector, a parser, a
58
+ consolidation job, an API server. A schedule lists the routines that should
59
+ stay alive or run at their times. Batch routines wait for their batch dependencies
60
+ to complete; realtime routines wait for their realtime dependencies to be running.
61
+ Dependencies between the two kinds are not enforced at runtime. Commands travel
62
+ through a per-host worker pool that validates the requested source revision
63
+ before every launch; routines report heartbeats and lifecycle messages through
64
+ the logging plane, and the Scheduler writes queryable state into the store.
65
+
66
+ - [Orchestration](https://shareddata.net/docs/orchestration/): the routine model, the Scheduler's tick and the worker pool.
67
+ - [Use cases](https://shareddata.net/docs/use-cases/): the workloads a production deployment runs, generalized.
68
+ - [Schedules](https://shareddata.net/docs/scheduler-store/) and [batch jobs](https://shareddata.net/docs/job-store/): where the state lives.
69
+
70
+ ## Data by symbol
71
+
72
+ The [semantic data API](https://shareddata.net/docs/data-api/) resolves a
73
+ symbol or entity to a dataset and includes provenance. It is a convenience,
74
+ not the fast path: producers keep using direct container interfaces for
75
+ performance-critical work.
76
+
77
+ ## Client integration
78
+
79
+ [Client integration](https://shareddata.net/docs/ecosystem/) covers
80
+ authenticated API access, the MCP server for compatible agent clients, and
81
+ worker access.
82
+
83
+ ## Development and license
84
+
85
+ Submit changes through the repository's review process. Read the
86
+ [development guide](https://shareddata.net/docs/DEVELOPMENT/) and run the
87
+ checks relevant to your change; [building and publishing](https://shareddata.net/docs/guide/building/)
88
+ explains how the public site is produced and audited. SharedData is released
89
+ under the MIT license; see `LICENSE` in the source distribution.
@@ -66,8 +66,8 @@ test_requires = [
66
66
 
67
67
  setup(
68
68
  name='shareddata',
69
- version='6.86.0',
70
- description='Memory Mapped / Shared Memory Database with S3 repository',
69
+ version='6.86.1',
70
+ description='Memory-mapped record and time-series store with an HTTP API and a distributed scheduler',
71
71
  author='shareddata',
72
72
  author_email='admin@shareddata.net',
73
73
  url='https://shareddata.net',
@@ -2,7 +2,7 @@
2
2
  openapi: 3.0.3
3
3
  info:
4
4
  title: SharedData API
5
- version: 6.86.0
5
+ version: 6.86.1
6
6
  description: |
7
7
  HTTP API of a SharedData server. The same operations are available from Python
8
8
  through `SharedData.IO.ClientAPI` (for example `ClientAPI.get_table(...)`).
@@ -0,0 +1,164 @@
1
+ Metadata-Version: 2.4
2
+ Name: shareddata
3
+ Version: 6.86.1
4
+ Summary: Memory-mapped record and time-series store with an HTTP API and a distributed scheduler
5
+ Home-page: https://shareddata.net
6
+ Author: shareddata
7
+ Author-email: admin@shareddata.net
8
+ License: MIT
9
+ Project-URL: Homepage, https://shareddata.net
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: >=3.11, <3.13
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: ipykernel<8,>=7.4
19
+ Requires-Dist: python-json-logger<5,>=4.2
20
+ Requires-Dist: python-dotenv<2,>=1.2.4
21
+ Requires-Dist: pandas<3,>=2.2
22
+ Requires-Dist: scipy<1.18,>=1.14
23
+ Requires-Dist: numpy<1.27,>=1.26.4
24
+ Requires-Dist: numba==0.59.1
25
+ Requires-Dist: XlsxWriter<4,>=3.2.9
26
+ Requires-Dist: openpyxl<4,>=3.1.5
27
+ Requires-Dist: tqdm<5,>=4.70.1
28
+ Requires-Dist: cffi<3,>=2.1
29
+ Requires-Dist: tzlocal<6,>=5.4.4
30
+ Requires-Dist: websockets<18,>=17.1
31
+ Requires-Dist: lz4<5,>=4.4.5
32
+ Requires-Dist: flask<4,>=3.1.3
33
+ Requires-Dist: waitress<4,>=3.0.2
34
+ Requires-Dist: requests<3,>=2.34.2
35
+ Requires-Dist: flasgger==0.9.7.1
36
+ Requires-Dist: pymongo<5,>=4.18.2
37
+ Requires-Dist: setuptools>=84
38
+ Requires-Dist: filelock<5,>=4.0.9
39
+ Requires-Dist: gunicorn<27,>=26.2
40
+ Requires-Dist: aiohttp<4,>=3.14.3
41
+ Requires-Dist: boto3<2,>=1.43
42
+ Requires-Dist: confluent-kafka<3,>=2.15.1
43
+ Requires-Dist: aiokafka<1,>=0.14
44
+ Requires-Dist: redis<9,>=8.1
45
+ Requires-Dist: Authlib<2,>=1.8
46
+ Requires-Dist: PyJWT<3,>=2.8
47
+ Requires-Dist: argon2-cffi<26,>=25.1
48
+ Requires-Dist: flask-jwt-extended<5,>=4.6
49
+ Requires-Dist: cryptography<51,>=50.0.2
50
+ Requires-Dist: segno<2,>=1.6
51
+ Requires-Dist: psutil<8,>=5.9
52
+ Requires-Dist: mcp>=1.27
53
+ Requires-Dist: httpx>=0.27
54
+ Provides-Extra: test
55
+ Requires-Dist: pytest<10,>=8.3.4; extra == "test"
56
+ Requires-Dist: pytest-asyncio<2,>=0.24; extra == "test"
57
+ Requires-Dist: playwright<2,>=1.63; extra == "test"
58
+ Provides-Extra: s3
59
+ Provides-Extra: kafka
60
+ Provides-Extra: redis
61
+ Provides-Extra: all
62
+ Dynamic: author
63
+ Dynamic: author-email
64
+ Dynamic: classifier
65
+ Dynamic: description
66
+ Dynamic: description-content-type
67
+ Dynamic: home-page
68
+ Dynamic: license
69
+ Dynamic: license-file
70
+ Dynamic: project-url
71
+ Dynamic: provides-extra
72
+ Dynamic: requires-dist
73
+ Dynamic: requires-python
74
+ Dynamic: summary
75
+
76
+ # SharedData
77
+
78
+ SharedData is an open-source memory-mapped store for records and time series —
79
+ in the workload category of tick stores such as kdb+ — plus the scheduler and
80
+ worker fleet that produce the data. Local processes map the same files through
81
+ the operating system's page cache; indexed writes coordinate through a
82
+ per-table process lock. Remote clients use an authenticated HTTP API; shared
83
+ memory does not span hosts.
84
+
85
+ Website and manual: <https://shareddata.net>
86
+
87
+ ## Install
88
+
89
+ Python 3.11 or 3.12:
90
+
91
+ ```sh
92
+ python -m pip install shareddata
93
+ ```
94
+
95
+ The [quick start](https://shareddata.net/docs/QUICK_START/) uses illustrative
96
+ records in isolated storage. See [configuration](https://shareddata.net/docs/CONFIGURATION/)
97
+ for public environment names and [Windows limitations](https://shareddata.net/docs/WINDOWS/)
98
+ for native requirements and rewrite behavior.
99
+
100
+ ## A record in one minute
101
+
102
+ Save as `example.py` after setting up isolated storage in the
103
+ [quick start](https://shareddata.net/docs/QUICK_START/), then run `python example.py`:
104
+
105
+ ```python
106
+ from SharedData.SharedData import SharedData
107
+ import pandas as pd
108
+
109
+ store = SharedData(__file__, user="example")
110
+ index = pd.MultiIndex.from_tuples(
111
+ [(pd.Timestamp("2026-01-02"), "EXAMPLE")],
112
+ names=["date", "symbol"],
113
+ )
114
+ rows = pd.DataFrame({"close": [100.0]}, index=index)
115
+ records = store.table(
116
+ "MarketData", "D1", "DEMO", "PRICES",
117
+ value=rows,
118
+ )
119
+ print(records.loc["2026-01-02", "EXAMPLE"])
120
+ ```
121
+
122
+ ## Containers and execution
123
+
124
+ - [Tables](https://shareddata.net/docs/core/table/): structured NumPy records and primary-key lookup.
125
+ - [Time series](https://shareddata.net/docs/core/timeseries/): timestamped float matrices.
126
+ - Collections, Redis caches, Kafka streams and optional S3 integration.
127
+ - [HTTP API](https://shareddata.net/docs/guide/swagger/): authenticated remote access.
128
+ - [Measured latency](https://shareddata.net/docs/performance/): what the containers cost in practice.
129
+
130
+ ## A store and the fleet that fills it
131
+
132
+ A routine is any program the Scheduler owns — a feed collector, a parser, a
133
+ consolidation job, an API server. A schedule lists the routines that should
134
+ stay alive or run at their times. Batch routines wait for their batch dependencies
135
+ to complete; realtime routines wait for their realtime dependencies to be running.
136
+ Dependencies between the two kinds are not enforced at runtime. Commands travel
137
+ through a per-host worker pool that validates the requested source revision
138
+ before every launch; routines report heartbeats and lifecycle messages through
139
+ the logging plane, and the Scheduler writes queryable state into the store.
140
+
141
+ - [Orchestration](https://shareddata.net/docs/orchestration/): the routine model, the Scheduler's tick and the worker pool.
142
+ - [Use cases](https://shareddata.net/docs/use-cases/): the workloads a production deployment runs, generalized.
143
+ - [Schedules](https://shareddata.net/docs/scheduler-store/) and [batch jobs](https://shareddata.net/docs/job-store/): where the state lives.
144
+
145
+ ## Data by symbol
146
+
147
+ The [semantic data API](https://shareddata.net/docs/data-api/) resolves a
148
+ symbol or entity to a dataset and includes provenance. It is a convenience,
149
+ not the fast path: producers keep using direct container interfaces for
150
+ performance-critical work.
151
+
152
+ ## Client integration
153
+
154
+ [Client integration](https://shareddata.net/docs/ecosystem/) covers
155
+ authenticated API access, the MCP server for compatible agent clients, and
156
+ worker access.
157
+
158
+ ## Development and license
159
+
160
+ Submit changes through the repository's review process. Read the
161
+ [development guide](https://shareddata.net/docs/DEVELOPMENT/) and run the
162
+ checks relevant to your change; [building and publishing](https://shareddata.net/docs/guide/building/)
163
+ explains how the public site is produced and audited. SharedData is released
164
+ under the MIT license; see `LICENSE` in the source distribution.
@@ -1,245 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: shareddata
3
- Version: 6.86.0
4
- Summary: Memory Mapped / Shared Memory Database with S3 repository
5
- Home-page: https://shareddata.net
6
- Author: shareddata
7
- Author-email: admin@shareddata.net
8
- License: MIT
9
- Project-URL: Homepage, https://shareddata.net
10
- Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.11
12
- Classifier: Programming Language :: Python :: 3.12
13
- Classifier: License :: OSI Approved :: MIT License
14
- Classifier: Operating System :: OS Independent
15
- Requires-Python: >=3.11, <3.13
16
- Description-Content-Type: text/markdown
17
- License-File: LICENSE
18
- Requires-Dist: ipykernel<8,>=7.4
19
- Requires-Dist: python-json-logger<5,>=4.2
20
- Requires-Dist: python-dotenv<2,>=1.2.4
21
- Requires-Dist: pandas<3,>=2.2
22
- Requires-Dist: scipy<1.18,>=1.14
23
- Requires-Dist: numpy<1.27,>=1.26.4
24
- Requires-Dist: numba==0.59.1
25
- Requires-Dist: XlsxWriter<4,>=3.2.9
26
- Requires-Dist: openpyxl<4,>=3.1.5
27
- Requires-Dist: tqdm<5,>=4.70.1
28
- Requires-Dist: cffi<3,>=2.1
29
- Requires-Dist: tzlocal<6,>=5.4.4
30
- Requires-Dist: websockets<18,>=17.1
31
- Requires-Dist: lz4<5,>=4.4.5
32
- Requires-Dist: flask<4,>=3.1.3
33
- Requires-Dist: waitress<4,>=3.0.2
34
- Requires-Dist: requests<3,>=2.34.2
35
- Requires-Dist: flasgger==0.9.7.1
36
- Requires-Dist: pymongo<5,>=4.18.2
37
- Requires-Dist: setuptools>=84
38
- Requires-Dist: filelock<5,>=4.0.9
39
- Requires-Dist: gunicorn<27,>=26.2
40
- Requires-Dist: aiohttp<4,>=3.14.3
41
- Requires-Dist: boto3<2,>=1.43
42
- Requires-Dist: confluent-kafka<3,>=2.15.1
43
- Requires-Dist: aiokafka<1,>=0.14
44
- Requires-Dist: redis<9,>=8.1
45
- Requires-Dist: Authlib<2,>=1.8
46
- Requires-Dist: PyJWT<3,>=2.8
47
- Requires-Dist: argon2-cffi<26,>=25.1
48
- Requires-Dist: flask-jwt-extended<5,>=4.6
49
- Requires-Dist: cryptography<51,>=50.0.2
50
- Requires-Dist: segno<2,>=1.6
51
- Requires-Dist: psutil<8,>=5.9
52
- Requires-Dist: mcp>=1.27
53
- Requires-Dist: httpx>=0.27
54
- Provides-Extra: test
55
- Requires-Dist: pytest<10,>=8.3.4; extra == "test"
56
- Requires-Dist: pytest-asyncio<2,>=0.24; extra == "test"
57
- Requires-Dist: playwright<2,>=1.63; extra == "test"
58
- Provides-Extra: s3
59
- Provides-Extra: kafka
60
- Provides-Extra: redis
61
- Provides-Extra: all
62
- Dynamic: author
63
- Dynamic: author-email
64
- Dynamic: classifier
65
- Dynamic: description
66
- Dynamic: description-content-type
67
- Dynamic: home-page
68
- Dynamic: license
69
- Dynamic: license-file
70
- Dynamic: project-url
71
- Dynamic: provides-extra
72
- Dynamic: requires-dist
73
- Dynamic: requires-python
74
- Dynamic: summary
75
-
76
- # SharedData
77
-
78
- A comprehensive ultrafast Python library for financial data.
79
-
80
- ## 📖 Table of Contents
81
-
82
- - [🏗️ Core Features](#-core-features)
83
- - [⚡ Quick Start](#-quick-start)
84
- - [🔧 Configuration](#-configuration)
85
- - [🚀 Advanced Usage](#-advanced-usage)
86
- - [🔄 Development & Documentation](#-development--documentation)
87
- - [📄 License](#-license)
88
- - [🤝 Contributing](#-contributing)
89
-
90
- ## 🏗️ Core Features
91
-
92
- SharedData provides a comprehensive set of features for high-performance financial data management:
93
-
94
- - **🗃️ Database Schema & Indexing** - Optimized schemas for financial data types
95
- - **🌐 Storage & Integration** - Multi-storage support (Local, S3, MongoDB, Redis)
96
- - **📈 Performance & Scalability** - Parallel processing and advanced querying
97
- - **📊 Data Containers** - Tables, Collections, Time Series, Streams, Cache, Metadata
98
- - **⚡ Multiprocessing & Parallel Computing** - Sophisticated parallel processing library
99
- - **🤖 Distributed Worker System** - Automated task execution and job scheduling
100
- - **📋 Comprehensive Logging System** - Enterprise-grade logging with multiple destinations
101
- - **🌐 Remote API Client** - REST API for remote data access and operations
102
-
103
- **[Read the manual](docs/index.md)** — [Table](docs/core/table.md) and [Time series](docs/core/timeseries.md) are the core. The HTTP spec is [Swagger](docs/guide/swagger.md).
104
-
105
- ## ⚡ Quick Start
106
-
107
- Get up and running with SharedData in minutes:
108
-
109
- ### Installation
110
-
111
- ```bash
112
- # Create virtual environment
113
- python -m venv venv
114
- source venv/bin/activate
115
-
116
- # Install SharedData
117
- pip install -r requirements.txt
118
- pip install -e .
119
- ```
120
-
121
- ### Basic Usage
122
-
123
- ```python
124
- import pandas as pd
125
- from SharedData.SharedData import SharedData
126
-
127
- # Initialize SharedData
128
- shdata = SharedData(__file__, user='master')
129
-
130
- # Quick example - Tables
131
- dates = pd.date_range('2025-01-01', '2025-01-10', freq='D')
132
- symbols = ['AAPL', 'GOOGL', 'MSFT']
133
- idx = pd.MultiIndex.from_product([dates, symbols], names=['date', 'symbol'])
134
- df = pd.DataFrame({'price': 100, 'volume': 1000}, index=idx)
135
-
136
- # Write and read data
137
- tbl = shdata.table('MarketData', 'D1', 'TEST', 'PRICES', value=df)
138
- tbl.write()
139
- data = tbl.loc['2025-01-05':, 'AAPL'] # Fast symbol lookup
140
- print(f"Retrieved {data.shape[0]} rows")
141
- ```
142
-
143
- **📚 [Read the complete Quick Start guide →](https://shareddata.net/docs/QUICK_START.md)**
144
-
145
- ## 🔧 Configuration
146
-
147
- Configure SharedData with environment variables for your specific needs:
148
-
149
- ```bash
150
- # Required Variables
151
- SHAREDDATA_SECRET_KEY="your-secret-key"
152
- SHAREDDATA_TOKEN="your-auth-token"
153
- AWS_ACCESS_KEY_ID="your-aws-access-key"
154
- S3_BUCKET="s3://your-bucket-name"
155
- MONGODB_HOST="your-mongodb-host"
156
- SHAREDDATA_ENDPOINT="http://your-server:port"
157
- ```
158
-
159
- **📚 [Read the complete Configuration guide →](https://shareddata.net/docs/CONFIGURATION.md)**
160
-
161
- ## 🚀 Advanced Usage
162
-
163
- For power users and complex scenarios:
164
-
165
- - **Advanced Data Operations** - Complex queries and aggregations
166
- - **Performance Optimization** - Memory management and parallel processing
167
- - **Distributed Computing** - Worker pools and distributed data processing
168
- - **Custom Extensions** - Custom data containers and worker types
169
- - **Production Deployment** - High availability and monitoring
170
- - **Monitoring & Debugging** - Performance profiling and health checks
171
-
172
- **[Logging templates](docs/patterns/logging.md)** — log at the scheduler boundary; do not log inside the row loop.
173
-
174
- ## 🧭 Data by Symbol
175
-
176
- Fetch data by what it is instead of where it is stored. The server picks the source, the
177
- container and the partitions, and every answer says where its rows came from:
178
-
179
- ```python
180
- bars = shdata.dataframe('marketdata', 'AAPL', period='M15', start='2026-10-05')
181
- bars.attrs['provenance']['dataset'] # which container answered
182
-
183
- from SharedData.IO.ClientAPI import ClientAPI
184
- surface = ClientAPI.get_vol('AAPL', product='tenor', tenor='1M')
185
- ```
186
-
187
- Market data, signals, portfolios, risk factors and volatility are served this way over
188
- `GET /api/data/...`. This is a convenience, not the fast path: producers and other
189
- performance-critical code keep using `table()`, `timeseries()` and `collection()`.
190
-
191
- **📚 [Read the Data by Symbol guide →](https://shareddata.net/docs/data-api.md)**
192
-
193
- ## 🔄 Development & Documentation
194
-
195
- For developers contributing to SharedData:
196
-
197
- ### Building Documentation
198
-
199
- ```bash
200
- # Generate documentation from docstrings
201
- make gitea
202
-
203
- # Alternative methods
204
- python generate_docs.py
205
- python update_docs.py
206
- make all
207
- ```
208
-
209
- ### Running Tests
210
-
211
- ```bash
212
- python -m pytest tests/
213
- ```
214
-
215
- **📚 [Read the complete Development guide →](https://shareddata.net/docs/DEVELOPMENT.md)**
216
-
217
- ## 📄 License
218
-
219
- MIT: free to use, change and distribute, commercially too. See the [LICENSE](https://shareddata.net/LICENSE) file.
220
-
221
- ## 🤝 Contributing
222
-
223
- 1. Fork the repository
224
- 2. Create a feature branch
225
- 3. Make your changes
226
- 4. Update documentation: `make gitea`
227
- 5. Submit a pull request
228
-
229
- **📚 [Read the complete Contributing guide →](https://shareddata.net/docs/DEVELOPMENT.md#contributing-guidelines)**
230
-
231
- ---
232
-
233
- ## 📚 Documentation Index
234
-
235
- - **[Manual](docs/index.md)** — current Read the Docs home
236
- - **[Table](docs/core/table.md)** and **[Time series](docs/core/timeseries.md)**
237
- - **[Swagger](docs/guide/swagger.md)** — `src/SharedData/API/apidocs.yml`, version 6.86.0
238
- - **[⚡ Quick Start](https://shareddata.net/docs/QUICK_START.md)** - Get started with SharedData in minutes
239
- - **[🔧 Configuration](https://shareddata.net/docs/CONFIGURATION.md)** - Complete configuration reference
240
- - **[Logging templates](docs/patterns/logging.md)** — scheduler heartbeat vs a quiet data loop
241
- - **[🔄 Development](https://shareddata.net/docs/DEVELOPMENT.md)** - Contributing and development guidelines
242
-
243
- ---
244
-
245
- [⬆️ Back to top](#shareddata)