gapless-crypto-data 2.8.0__tar.gz → 2.9.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 (195) hide show
  1. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.gitignore +2 -0
  2. gapless_crypto_data-2.8.0/README.md → gapless_crypto_data-2.9.0/PKG-INFO +183 -37
  3. gapless_crypto_data-2.8.0/PKG-INFO → gapless_crypto_data-2.9.0/README.md +135 -85
  4. gapless_crypto_data-2.9.0/docs/milestones/MILESTONE_v2.9.0.yaml +396 -0
  5. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/advanced_api_examples.py +85 -2
  6. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/pyproject.toml +5 -3
  7. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/__init__.py +6 -3
  8. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/api.py +5 -1
  9. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/cli.py +5 -8
  10. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/collectors/binance_public_data_collector.py +101 -0
  11. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/gap_filling/universal_gap_filler.py +24 -6
  12. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20240101-20240102_v2.5.0.csv +1 -1
  13. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20240101-20240102_v2.5.0.metadata.json +2 -2
  14. gapless_crypto_data-2.9.0/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20250917-20250917_v2.5.0.csv +12 -0
  15. gapless_crypto_data-2.9.0/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20250917-20250917_v2.5.0.metadata.json +95 -0
  16. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240102_v2.5.0.csv +1 -1
  17. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240102_v2.5.0.metadata.json +2 -2
  18. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20240101-20240101_v2.5.0.csv +1 -1
  19. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1h_20240101-20240101_v2.5.0.metadata.json +2 -2
  20. gapless_crypto_data-2.9.0/tests/test_1s_1d_gap_filling.py +659 -0
  21. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_cli.py +2 -2
  22. gapless_crypto_data-2.9.0/tests/test_gapless_validation_1d_2018_present.py +323 -0
  23. gapless_crypto_data-2.9.0/tests/test_monthly_to_daily_fallback.py +191 -0
  24. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/uv.lock +1 -1
  25. gapless_crypto_data-2.8.0/.gapless_checkpoints/joblib_cache/.gitignore +0 -2
  26. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183058_36e7d2ec.json +0 -36
  27. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183100_7e130f98.json +0 -37
  28. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183101_515b4690.json +0 -43
  29. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183103_828c36f1.json +0 -36
  30. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183117_9d842ca2.json +0 -36
  31. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183118_35b71e32.json +0 -37
  32. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183120_e201f120.json +0 -43
  33. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183121_7aa0a4fd.json +0 -36
  34. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183841_63564a52.json +0 -36
  35. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183843_01458e87.json +0 -37
  36. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183844_30f0e3c0.json +0 -43
  37. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_183846_8c1e44b4.json +0 -36
  38. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_184500_9b6f812c.json +0 -36
  39. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_184502_ae48d84a.json +0 -37
  40. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_184503_b094245f.json +0 -43
  41. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_184505_665fb523.json +0 -36
  42. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_184510_fe5d92fa.json +0 -36
  43. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_185913_7e391e5f.json +0 -36
  44. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_185915_9eeeaea3.json +0 -37
  45. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_185917_315392bf.json +0 -43
  46. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_185918_82d9bb0d.json +0 -36
  47. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_190357_002f8cec.json +0 -36
  48. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_190358_be23058d.json +0 -37
  49. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_190359_c676ca87.json +0 -43
  50. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_190401_ccacb147.json +0 -36
  51. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250917_190406_d23113c8.json +0 -36
  52. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_082857_e107aef5.json +0 -36
  53. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_082858_efc4eae8.json +0 -37
  54. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_082859_84bade3f.json +0 -43
  55. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_082901_45048a4f.json +0 -36
  56. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_082906_558fd67a.json +0 -36
  57. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_132005_8396fab6.json +0 -36
  58. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_132006_b9593562.json +0 -37
  59. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_132008_360234c8.json +0 -43
  60. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_132009_335a0621.json +0 -36
  61. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_132014_d611fcb8.json +0 -36
  62. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_203023_b06289be.json +0 -36
  63. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_203024_d9a539b2.json +0 -37
  64. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_203026_19201fbf.json +0 -43
  65. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_203028_131eb03c.json +0 -36
  66. gapless_crypto_data-2.8.0/.gapless_checkpoints/progress_report_20250918_203036_cadae0d8.json +0 -36
  67. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183058_36e7d2ec.json +0 -22
  68. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183100_7e130f98.json +0 -23
  69. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183101_515b4690.json +0 -29
  70. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183103_828c36f1.json +0 -22
  71. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183117_9d842ca2.json +0 -22
  72. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183118_35b71e32.json +0 -23
  73. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183120_e201f120.json +0 -29
  74. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183121_7aa0a4fd.json +0 -22
  75. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183841_63564a52.json +0 -22
  76. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183843_01458e87.json +0 -23
  77. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183844_30f0e3c0.json +0 -29
  78. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_183846_8c1e44b4.json +0 -22
  79. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_184500_9b6f812c.json +0 -22
  80. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_184502_ae48d84a.json +0 -23
  81. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_184503_b094245f.json +0 -29
  82. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_184505_665fb523.json +0 -22
  83. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_184510_fe5d92fa.json +0 -22
  84. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_185913_7e391e5f.json +0 -22
  85. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_185915_9eeeaea3.json +0 -23
  86. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_185917_315392bf.json +0 -29
  87. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_185918_82d9bb0d.json +0 -22
  88. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_190357_002f8cec.json +0 -22
  89. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_190358_be23058d.json +0 -23
  90. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_190359_c676ca87.json +0 -29
  91. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_190401_ccacb147.json +0 -22
  92. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250917_190406_d23113c8.json +0 -22
  93. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_082857_e107aef5.json +0 -22
  94. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_082858_efc4eae8.json +0 -23
  95. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_082859_84bade3f.json +0 -29
  96. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_082901_45048a4f.json +0 -22
  97. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_082906_558fd67a.json +0 -22
  98. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_132005_8396fab6.json +0 -22
  99. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_132006_b9593562.json +0 -23
  100. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_132008_360234c8.json +0 -29
  101. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_132009_335a0621.json +0 -22
  102. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_132014_d611fcb8.json +0 -22
  103. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_203023_b06289be.json +0 -22
  104. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_203024_d9a539b2.json +0 -23
  105. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_203026_19201fbf.json +0 -29
  106. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_203028_131eb03c.json +0 -22
  107. gapless_crypto_data-2.8.0/.gapless_checkpoints/session_20250918_203036_cadae0d8.json +0 -22
  108. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.gitattributes +0 -0
  109. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.github/workflows/ci-cd.yml +0 -0
  110. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.github/workflows/publish.yml +0 -0
  111. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.pre-commit-config.yaml +0 -0
  112. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/.python-version +0 -0
  113. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/AUTHORS.md +0 -0
  114. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/CHANGELOG.md +0 -0
  115. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/CLAUDE.md +0 -0
  116. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/CONTRIBUTING.md +0 -0
  117. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/LICENSE +0 -0
  118. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/MANIFEST.in +0 -0
  119. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/CURRENT_ARCHITECTURE_STATUS.yaml +0 -0
  120. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/PUBLISHING.md +0 -0
  121. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/PYPI_PUBLISHING_CONFIGURATION.yaml +0 -0
  122. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/README.md +0 -0
  123. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/api/dual-parameter-enhancement.yaml +0 -0
  124. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/api/quick-start.md +0 -0
  125. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/guides/pypi-documentation.md +0 -0
  126. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.0.yaml +0 -0
  127. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.1.yaml +0 -0
  128. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.2.yaml +0 -0
  129. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.3.yaml +0 -0
  130. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.4.yaml +0 -0
  131. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.0.5.yaml +0 -0
  132. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.1.0.yaml +0 -0
  133. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.1.1.yaml +0 -0
  134. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.2.0.yaml +0 -0
  135. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.3.0.yaml +0 -0
  136. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.4.0.yaml +0 -0
  137. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.5.0.yaml +0 -0
  138. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.6.0.yaml +0 -0
  139. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.6.1.yaml +0 -0
  140. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.7.0.yaml +0 -0
  141. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/milestones/MILESTONE_v2.8.0.yaml +0 -0
  142. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/docs/release-notes.md +0 -0
  143. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/README.md +0 -0
  144. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/basic_data_collection.py +0 -0
  145. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/cli_usage_examples.sh +0 -0
  146. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/complete_workflow.py +0 -0
  147. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/gap_filling_example.py +0 -0
  148. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/safe_data_collection.py +0 -0
  149. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/examples/simple_api_examples.py +0 -0
  150. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/collectors/__init__.py +0 -0
  151. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/collectors/concurrent_collection_orchestrator.py +0 -0
  152. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/collectors/httpx_downloader.py +0 -0
  153. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/collectors/hybrid_url_generator.py +0 -0
  154. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/gap_filling/__init__.py +0 -0
  155. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/gap_filling/safe_file_operations.py +0 -0
  156. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/regression/__init__.py +0 -0
  157. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/regression/regression_detector.py +0 -0
  158. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/resume/__init__.py +0 -0
  159. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/resume/intelligent_checkpointing.py +0 -0
  160. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20250819-20250831_v2.5.0.csv +0 -0
  161. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1d_20250819-20250831_v2.5.0.metadata.json +0 -0
  162. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240101_v2.5.0.csv +0 -0
  163. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-1h_20240101-20240101_v2.5.0.metadata.json +0 -0
  164. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-4h_20240101-20240101_v2.5.0.csv +0 -0
  165. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_BTCUSDT-4h_20240101-20240101_v2.5.0.metadata.json +0 -0
  166. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1d_20250819-20250831_v2.5.0.csv +0 -0
  167. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-1d_20250819-20250831_v2.5.0.metadata.json +0 -0
  168. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-4h_20240101-20240201_v2.5.0.csv +0 -0
  169. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_ETHUSDT-4h_20240101-20240201_v2.5.0.metadata.json +0 -0
  170. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1d_20250819-20250831_v2.5.0.csv +0 -0
  171. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1d_20250819-20250831_v2.5.0.metadata.json +0 -0
  172. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20240101-20240101_v2.5.0.csv +0 -0
  173. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/sample_data/binance_spot_SOLUSDT-1h_20240101-20240101_v2.5.0.metadata.json +0 -0
  174. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/streaming/__init__.py +0 -0
  175. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/streaming/memory_streaming.py +0 -0
  176. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/utils/__init__.py +0 -0
  177. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/src/gapless_crypto_data/utils/error_handling.py +0 -0
  178. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/__init__.py +0 -0
  179. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/conftest.py +0 -0
  180. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/fixtures/test_data/binance_spot_BTCUSDT-1h_20240101-20240101_v2.5.0.csv +0 -0
  181. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/fixtures/test_data/binance_spot_BTCUSDT-1h_20240101-20240101_v2.5.0.metadata.json +0 -0
  182. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/fixtures/test_data_large/binance_spot_BTCUSDT-1h_20140101-20240101_v2.5.0.csv +0 -0
  183. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/fixtures/test_data_large/binance_spot_BTCUSDT-1h_20140101-20240101_v2.5.0.metadata.json +0 -0
  184. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/fixtures/test_data_large/binance_spot_BTCUSDT-1h_20140101-20240101_v2.5.0_gapped.csv.bak +0 -0
  185. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_atomic_operations.py +0 -0
  186. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_binance_collector.py +0 -0
  187. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_cli_integration.py +0 -0
  188. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_concurrent_download.py +0 -0
  189. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_gap_filler.py +0 -0
  190. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_integration.py +0 -0
  191. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_output_dir_dataframe_fix.py +0 -0
  192. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_package.py +0 -0
  193. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_regression.py +0 -0
  194. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_simple_api.py +0 -0
  195. {gapless_crypto_data-2.8.0 → gapless_crypto_data-2.9.0}/tests/test_streaming.py +0 -0
@@ -12,3 +12,5 @@ venv/
12
12
  env/
13
13
  test-env/
14
14
  *-env/
15
+ # Gapless Crypto Data checkpoint files (auto-generated during collection)
16
+ .gapless_checkpoints/
@@ -1,3 +1,51 @@
1
+ Metadata-Version: 2.4
2
+ Name: gapless-crypto-data
3
+ Version: 2.9.0
4
+ Summary: Ultra-fast cryptocurrency data collection with zero gaps guarantee. 22x faster via Binance public repository with complete 13-timeframe support (1s-1d) and intelligent monthly-to-daily fallback. Provides 11-column microstructure format with order flow metrics.
5
+ Project-URL: Homepage, https://github.com/Eon-Labs/gapless-crypto-data
6
+ Project-URL: Documentation, https://github.com/Eon-Labs/gapless-crypto-data#readme
7
+ Project-URL: Repository, https://github.com/Eon-Labs/gapless-crypto-data.git
8
+ Project-URL: Issues, https://github.com/Eon-Labs/gapless-crypto-data/issues
9
+ Project-URL: Changelog, https://github.com/Eon-Labs/gapless-crypto-data/blob/main/CHANGELOG.md
10
+ Author-email: Eon Labs <terry@eonlabs.com>
11
+ Maintainer-email: Terry Li <terry@eonlabs.com>
12
+ License: MIT
13
+ License-File: AUTHORS.md
14
+ License-File: LICENSE
15
+ Keywords: 13-timeframes,1s-1d,22x-faster,OHLCV,api,authentic-data,backward-compatibility,binance,ccxt,collection,crypto,cryptocurrency,data,download,dual-parameter,fetch-data,financial-data,function-based,gap-filling,gapless,interval,liquidity,microstructure,monthly-daily-fallback,order-flow,pandas,performance,taker-volume,time-series,timeframe,trading,ultra-high-frequency,zero-gaps
16
+ Classifier: Development Status :: 5 - Production/Stable
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: Financial and Insurance Industry
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.9
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Topic :: Office/Business :: Financial :: Investment
28
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
29
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
+ Requires-Python: >=3.9
31
+ Requires-Dist: httpx>=0.25.0
32
+ Requires-Dist: joblib>=1.5.2
33
+ Requires-Dist: pandas>=2.0.0
34
+ Requires-Dist: polars>=1.33.1
35
+ Requires-Dist: pyarrow>=21.0.0
36
+ Requires-Dist: pyod>=2.0.5
37
+ Provides-Extra: dev
38
+ Requires-Dist: black>=23.0.0; extra == 'dev'
39
+ Requires-Dist: mypy>=1.5.0; extra == 'dev'
40
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
41
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
42
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
43
+ Provides-Extra: test
44
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
45
+ Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
46
+ Requires-Dist: pytest>=7.0.0; extra == 'test'
47
+ Description-Content-Type: text/markdown
48
+
1
49
  # Gapless Crypto Data
2
50
 
3
51
  [![PyPI version](https://badge.fury.io/py/gapless-crypto-data.svg)](https://badge.fury.io/py/gapless-crypto-data)
@@ -5,18 +53,22 @@
5
53
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
54
  [![UV Managed](https://img.shields.io/badge/uv-managed-blue.svg)](https://github.com/astral-sh/uv)
7
55
 
8
- Cryptocurrency data collection with gap detection and filling capabilities. Provides 11-column microstructure format through Binance public data repository.
56
+ Ultra-fast cryptocurrency data collection with zero gaps guarantee. Provides 11-column microstructure format through Binance public data repository with intelligent monthly-to-daily fallback for seamless coverage.
9
57
 
10
58
  ## Features
11
59
 
12
- - Data collection via Binance public data repository
13
- - 11-column microstructure format with order flow and liquidity metrics
14
- - Gap detection and filling with API validation
15
- - UV-based Python tooling
16
- - Atomic file operations
17
- - Multi-symbol & multi-timeframe support (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h)
18
- - CCXT-compatible dual parameter support (timeframe/interval)
19
- - Backward compatibility with 5-year deprecation period
60
+ - **22x faster** data collection via Binance public data repository
61
+ - **Zero gaps guarantee** through intelligent monthly-to-daily fallback
62
+ - **Complete 13-timeframe support**: 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d
63
+ - **Ultra-high frequency** to daily data collection (1-second to 1-day intervals)
64
+ - **11-column microstructure format** with order flow and liquidity metrics
65
+ - **Intelligent fallback system** automatically switches to daily files when monthly files unavailable
66
+ - **Gap detection and filling** with authentic Binance API data only
67
+ - **UV-based Python tooling** for modern dependency management
68
+ - **Atomic file operations** ensuring data integrity
69
+ - **Multi-symbol & multi-timeframe** concurrent collection
70
+ - **CCXT-compatible** dual parameter support (timeframe/interval)
71
+ - **Production-grade** with comprehensive test coverage
20
72
 
21
73
  ## Quick Start
22
74
 
@@ -39,11 +91,17 @@ pip install gapless-crypto-data
39
91
  ### CLI Usage
40
92
 
41
93
  ```bash
42
- # Collect data for multiple timeframes (default output location)
43
- gapless-crypto-data --symbol SOLUSDT --timeframes 1m,3m,5m,15m,30m,1h,2h,4h
94
+ # Collect data for multiple timeframes (all 13 timeframes supported)
95
+ gapless-crypto-data --symbol SOLUSDT --timeframes 1s,1m,5m,1h,4h,1d
96
+
97
+ # Ultra-high frequency data collection (1-second intervals)
98
+ gapless-crypto-data --symbol BTCUSDT --timeframes 1s,1m,3m
99
+
100
+ # Extended timeframes with intelligent fallback
101
+ gapless-crypto-data --symbol ETHUSDT --timeframes 6h,8h,12h,1d
44
102
 
45
103
  # Collect multiple symbols at once (native multi-symbol support)
46
- gapless-crypto-data --symbol BTCUSDT,ETHUSDT,SOLUSDT --timeframes 1h,4h
104
+ gapless-crypto-data --symbol BTCUSDT,ETHUSDT,SOLUSDT --timeframes 1h,4h,1d
47
105
 
48
106
  # Collect specific date range with custom output directory
49
107
  gapless-crypto-data --symbol BTCUSDT --timeframes 1h --start 2023-01-01 --end 2023-12-31 --output-dir ./crypto_data
@@ -405,16 +463,23 @@ gapless-crypto-data/
405
463
 
406
464
  ## 🔍 Supported Timeframes
407
465
 
408
- | Timeframe | Code | Description |
409
- |-----------|------|-------------|
410
- | 1 minute | `1m` | Highest resolution |
411
- | 3 minutes | `3m` | Short-term analysis |
412
- | 5 minutes | `5m` | Common trading timeframe |
413
- | 15 minutes| `15m`| Medium-term signals |
414
- | 30 minutes| `30m`| Longer-term patterns |
415
- | 1 hour | `1h` | Popular for backtesting |
416
- | 2 hours | `2h` | Extended analysis |
417
- | 4 hours | `4h` | Daily cycle patterns |
466
+ All 13 Binance timeframes supported for complete market coverage:
467
+
468
+ | Timeframe | Code | Description | Use Case |
469
+ |-----------|------|-------------|----------|
470
+ | 1 second | `1s` | Ultra-high frequency | HFT, microstructure analysis |
471
+ | 1 minute | `1m` | High resolution | Scalping, order flow |
472
+ | 3 minutes | `3m` | Short-term analysis | Quick trend detection |
473
+ | 5 minutes | `5m` | Common trading timeframe | Day trading signals |
474
+ | 15 minutes| `15m`| Medium-term signals | Swing trading entry |
475
+ | 30 minutes| `30m`| Longer-term patterns | Position management |
476
+ | 1 hour | `1h` | Popular for backtesting | Strategy development |
477
+ | 2 hours | `2h` | Extended analysis | Multi-timeframe confluence |
478
+ | 4 hours | `4h` | Daily cycle patterns | Trend following |
479
+ | 6 hours | `6h` | Quarter-day analysis | Position sizing |
480
+ | 8 hours | `8h` | Third-day cycles | Risk management |
481
+ | 12 hours | `12h`| Half-day patterns | Overnight positions |
482
+ | 1 day | `1d` | Daily analysis | Long-term trends |
418
483
 
419
484
  ## ⚠️ Requirements
420
485
 
@@ -564,23 +629,104 @@ success = merger.merge_gap_data_safe(
564
629
  )
565
630
  ```
566
631
 
567
- ### Data Format
632
+ ## Output Formats
633
+
634
+ ### DataFrame Structure (Python API)
635
+
636
+ Returns pandas DataFrame with 11-column microstructure format:
637
+
638
+ | Column | Type | Description | Example |
639
+ |--------|------|-------------|---------|
640
+ | `date` | datetime64[ns] | Open timestamp | `2024-01-01 12:00:00` |
641
+ | `open` | float64 | Opening price | `42150.50` |
642
+ | `high` | float64 | Highest price | `42200.00` |
643
+ | `low` | float64 | Lowest price | `42100.25` |
644
+ | `close` | float64 | Closing price | `42175.75` |
645
+ | `volume` | float64 | Base asset volume | `15.250000` |
646
+ | `close_time` | datetime64[ns] | Close timestamp | `2024-01-01 12:59:59` |
647
+ | `quote_asset_volume` | float64 | Quote asset volume | `643238.125` |
648
+ | `number_of_trades` | int64 | Trade count | `1547` |
649
+ | `taker_buy_base_asset_volume` | float64 | Taker buy base volume | `7.825000` |
650
+ | `taker_buy_quote_asset_volume` | float64 | Taker buy quote volume | `329891.750` |
651
+
652
+ ### CSV File Structure
653
+
654
+ CSV files include header comments with metadata followed by data:
655
+
656
+ ```csv
657
+ # Binance Spot Market Data v2.5.0
658
+ # Generated: 2025-09-18T23:09:25.391126+00:00Z
659
+ # Source: Binance Public Data Repository
660
+ # Market: SPOT | Symbol: BTCUSDT | Timeframe: 1h
661
+ # Coverage: 48 bars
662
+ # Period: 2024-01-01 00:00:00 to 2024-01-02 23:00:00
663
+ # Collection: direct_download in 0.0s
664
+ # Data Hash: 5fba9d2e5d3db849...
665
+ # Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
666
+ #
667
+ date,open,high,low,close,volume,close_time,quote_asset_volume,number_of_trades,taker_buy_base_asset_volume,taker_buy_quote_asset_volume
668
+ 2024-01-01 00:00:00,42283.58,42554.57,42261.02,42475.23,1271.68108,2024-01-01 00:59:59,53957248.973789,47134,682.57581,28957416.819645
669
+ ```
670
+
671
+ ### Metadata JSON Structure
672
+
673
+ Each CSV file includes comprehensive metadata in `.metadata.json`:
674
+
675
+ ```json
676
+ {
677
+ "version": "v2.5.0",
678
+ "generator": "BinancePublicDataCollector",
679
+ "data_source": "Binance Public Data Repository",
680
+ "symbol": "BTCUSDT",
681
+ "timeframe": "1h",
682
+ "enhanced_microstructure_format": {
683
+ "total_columns": 11,
684
+ "analysis_capabilities": [
685
+ "order_flow_analysis",
686
+ "liquidity_metrics",
687
+ "market_microstructure",
688
+ "trade_weighted_prices",
689
+ "institutional_data_patterns"
690
+ ]
691
+ },
692
+ "gap_analysis": {
693
+ "total_gaps_detected": 0,
694
+ "data_completeness_score": 1.0,
695
+ "gap_filling_method": "authentic_binance_api"
696
+ },
697
+ "data_integrity": {
698
+ "chronological_order": true,
699
+ "corruption_detected": false
700
+ }
701
+ }
702
+ ```
703
+
704
+ ### Streaming Output (Memory-Efficient)
705
+
706
+ For large datasets, Polars streaming provides constant memory usage:
568
707
 
569
- All classes work with the standardized 11-column microstructure format:
708
+ ```python
709
+ from gapless_crypto_data.streaming import StreamingDataProcessor
710
+
711
+ processor = StreamingDataProcessor(chunk_size=10_000, memory_limit_mb=100)
712
+ for chunk in processor.stream_csv_chunks("large_dataset.csv"):
713
+ # Process chunk with constant memory usage
714
+ print(f"Chunk shape: {chunk.shape}")
715
+ ```
716
+
717
+ ### File Naming Convention
718
+
719
+ Output files follow consistent naming pattern:
720
+
721
+ ```
722
+ binance_spot_{SYMBOL}-{TIMEFRAME}_{START_DATE}-{END_DATE}_v{VERSION}.csv
723
+ binance_spot_{SYMBOL}-{TIMEFRAME}_{START_DATE}-{END_DATE}_v{VERSION}.metadata.json
724
+ ```
570
725
 
571
- | Column | Description | Example |
572
- |--------|-------------|---------|
573
- | `date` | Open timestamp | `2024-01-01 12:00:00` |
574
- | `open` | Opening price | `42150.50` |
575
- | `high` | Highest price | `42200.00` |
576
- | `low` | Lowest price | `42100.25` |
577
- | `close` | Closing price | `42175.75` |
578
- | `volume` | Base asset volume | `15.250000` |
579
- | `close_time` | Close timestamp | `2024-01-01 12:59:59` |
580
- | `quote_asset_volume` | Quote asset volume | `643238.125` |
581
- | `number_of_trades` | Trade count | `1547` |
582
- | `taker_buy_base_asset_volume` | Taker buy base volume | `7.825000` |
583
- | `taker_buy_quote_asset_volume` | Taker buy quote volume | `329891.750` |
726
+ Examples:
727
+ - `binance_spot_BTCUSDT-1h_20240101-20240102_v2.5.0.csv`
728
+ - `binance_spot_ETHUSDT-4h_20240101-20240201_v2.5.0.csv`
729
+ - `binance_spot_SOLUSDT-1d_20240101-20241231_v2.5.0.csv`
584
730
 
585
731
  ### Error Handling
586
732
 
@@ -1,51 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: gapless-crypto-data
3
- Version: 2.8.0
4
- Summary: Cryptocurrency data collection with gap detection and filling capabilities. Provides 11-column microstructure format with dual parameter support (timeframe/interval) for CCXT compatibility.
5
- Project-URL: Homepage, https://github.com/Eon-Labs/gapless-crypto-data
6
- Project-URL: Documentation, https://github.com/Eon-Labs/gapless-crypto-data#readme
7
- Project-URL: Repository, https://github.com/Eon-Labs/gapless-crypto-data.git
8
- Project-URL: Issues, https://github.com/Eon-Labs/gapless-crypto-data/issues
9
- Project-URL: Changelog, https://github.com/Eon-Labs/gapless-crypto-data/blob/main/CHANGELOG.md
10
- Author-email: Eon Labs <terry@eonlabs.com>
11
- Maintainer-email: Terry Li <terry@eonlabs.com>
12
- License: MIT
13
- License-File: AUTHORS.md
14
- License-File: LICENSE
15
- Keywords: OHLCV,api,authentic-data,backward-compatibility,binance,ccxt,collection,crypto,cryptocurrency,data,download,dual-parameter,fetch-data,financial-data,function-based,gap-filling,interval,liquidity,microstructure,order-flow,pandas,taker-volume,time-series,timeframe,trading
16
- Classifier: Development Status :: 5 - Production/Stable
17
- Classifier: Intended Audience :: Developers
18
- Classifier: Intended Audience :: Financial and Insurance Industry
19
- Classifier: License :: OSI Approved :: MIT License
20
- Classifier: Operating System :: OS Independent
21
- Classifier: Programming Language :: Python :: 3
22
- Classifier: Programming Language :: Python :: 3.9
23
- Classifier: Programming Language :: Python :: 3.10
24
- Classifier: Programming Language :: Python :: 3.11
25
- Classifier: Programming Language :: Python :: 3.12
26
- Classifier: Programming Language :: Python :: 3.13
27
- Classifier: Topic :: Office/Business :: Financial :: Investment
28
- Classifier: Topic :: Scientific/Engineering :: Information Analysis
29
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
- Requires-Python: >=3.9
31
- Requires-Dist: httpx>=0.25.0
32
- Requires-Dist: joblib>=1.5.2
33
- Requires-Dist: pandas>=2.0.0
34
- Requires-Dist: polars>=1.33.1
35
- Requires-Dist: pyarrow>=21.0.0
36
- Requires-Dist: pyod>=2.0.5
37
- Provides-Extra: dev
38
- Requires-Dist: black>=23.0.0; extra == 'dev'
39
- Requires-Dist: mypy>=1.5.0; extra == 'dev'
40
- Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
41
- Requires-Dist: pytest>=7.0.0; extra == 'dev'
42
- Requires-Dist: ruff>=0.1.0; extra == 'dev'
43
- Provides-Extra: test
44
- Requires-Dist: pytest-asyncio>=0.21.0; extra == 'test'
45
- Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
46
- Requires-Dist: pytest>=7.0.0; extra == 'test'
47
- Description-Content-Type: text/markdown
48
-
49
1
  # Gapless Crypto Data
50
2
 
51
3
  [![PyPI version](https://badge.fury.io/py/gapless-crypto-data.svg)](https://badge.fury.io/py/gapless-crypto-data)
@@ -53,18 +5,22 @@ Description-Content-Type: text/markdown
53
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
54
6
  [![UV Managed](https://img.shields.io/badge/uv-managed-blue.svg)](https://github.com/astral-sh/uv)
55
7
 
56
- Cryptocurrency data collection with gap detection and filling capabilities. Provides 11-column microstructure format through Binance public data repository.
8
+ Ultra-fast cryptocurrency data collection with zero gaps guarantee. Provides 11-column microstructure format through Binance public data repository with intelligent monthly-to-daily fallback for seamless coverage.
57
9
 
58
10
  ## Features
59
11
 
60
- - Data collection via Binance public data repository
61
- - 11-column microstructure format with order flow and liquidity metrics
62
- - Gap detection and filling with API validation
63
- - UV-based Python tooling
64
- - Atomic file operations
65
- - Multi-symbol & multi-timeframe support (1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h)
66
- - CCXT-compatible dual parameter support (timeframe/interval)
67
- - Backward compatibility with 5-year deprecation period
12
+ - **22x faster** data collection via Binance public data repository
13
+ - **Zero gaps guarantee** through intelligent monthly-to-daily fallback
14
+ - **Complete 13-timeframe support**: 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d
15
+ - **Ultra-high frequency** to daily data collection (1-second to 1-day intervals)
16
+ - **11-column microstructure format** with order flow and liquidity metrics
17
+ - **Intelligent fallback system** automatically switches to daily files when monthly files unavailable
18
+ - **Gap detection and filling** with authentic Binance API data only
19
+ - **UV-based Python tooling** for modern dependency management
20
+ - **Atomic file operations** ensuring data integrity
21
+ - **Multi-symbol & multi-timeframe** concurrent collection
22
+ - **CCXT-compatible** dual parameter support (timeframe/interval)
23
+ - **Production-grade** with comprehensive test coverage
68
24
 
69
25
  ## Quick Start
70
26
 
@@ -87,11 +43,17 @@ pip install gapless-crypto-data
87
43
  ### CLI Usage
88
44
 
89
45
  ```bash
90
- # Collect data for multiple timeframes (default output location)
91
- gapless-crypto-data --symbol SOLUSDT --timeframes 1m,3m,5m,15m,30m,1h,2h,4h
46
+ # Collect data for multiple timeframes (all 13 timeframes supported)
47
+ gapless-crypto-data --symbol SOLUSDT --timeframes 1s,1m,5m,1h,4h,1d
48
+
49
+ # Ultra-high frequency data collection (1-second intervals)
50
+ gapless-crypto-data --symbol BTCUSDT --timeframes 1s,1m,3m
51
+
52
+ # Extended timeframes with intelligent fallback
53
+ gapless-crypto-data --symbol ETHUSDT --timeframes 6h,8h,12h,1d
92
54
 
93
55
  # Collect multiple symbols at once (native multi-symbol support)
94
- gapless-crypto-data --symbol BTCUSDT,ETHUSDT,SOLUSDT --timeframes 1h,4h
56
+ gapless-crypto-data --symbol BTCUSDT,ETHUSDT,SOLUSDT --timeframes 1h,4h,1d
95
57
 
96
58
  # Collect specific date range with custom output directory
97
59
  gapless-crypto-data --symbol BTCUSDT --timeframes 1h --start 2023-01-01 --end 2023-12-31 --output-dir ./crypto_data
@@ -453,16 +415,23 @@ gapless-crypto-data/
453
415
 
454
416
  ## 🔍 Supported Timeframes
455
417
 
456
- | Timeframe | Code | Description |
457
- |-----------|------|-------------|
458
- | 1 minute | `1m` | Highest resolution |
459
- | 3 minutes | `3m` | Short-term analysis |
460
- | 5 minutes | `5m` | Common trading timeframe |
461
- | 15 minutes| `15m`| Medium-term signals |
462
- | 30 minutes| `30m`| Longer-term patterns |
463
- | 1 hour | `1h` | Popular for backtesting |
464
- | 2 hours | `2h` | Extended analysis |
465
- | 4 hours | `4h` | Daily cycle patterns |
418
+ All 13 Binance timeframes supported for complete market coverage:
419
+
420
+ | Timeframe | Code | Description | Use Case |
421
+ |-----------|------|-------------|----------|
422
+ | 1 second | `1s` | Ultra-high frequency | HFT, microstructure analysis |
423
+ | 1 minute | `1m` | High resolution | Scalping, order flow |
424
+ | 3 minutes | `3m` | Short-term analysis | Quick trend detection |
425
+ | 5 minutes | `5m` | Common trading timeframe | Day trading signals |
426
+ | 15 minutes| `15m`| Medium-term signals | Swing trading entry |
427
+ | 30 minutes| `30m`| Longer-term patterns | Position management |
428
+ | 1 hour | `1h` | Popular for backtesting | Strategy development |
429
+ | 2 hours | `2h` | Extended analysis | Multi-timeframe confluence |
430
+ | 4 hours | `4h` | Daily cycle patterns | Trend following |
431
+ | 6 hours | `6h` | Quarter-day analysis | Position sizing |
432
+ | 8 hours | `8h` | Third-day cycles | Risk management |
433
+ | 12 hours | `12h`| Half-day patterns | Overnight positions |
434
+ | 1 day | `1d` | Daily analysis | Long-term trends |
466
435
 
467
436
  ## ⚠️ Requirements
468
437
 
@@ -612,23 +581,104 @@ success = merger.merge_gap_data_safe(
612
581
  )
613
582
  ```
614
583
 
615
- ### Data Format
584
+ ## Output Formats
585
+
586
+ ### DataFrame Structure (Python API)
587
+
588
+ Returns pandas DataFrame with 11-column microstructure format:
589
+
590
+ | Column | Type | Description | Example |
591
+ |--------|------|-------------|---------|
592
+ | `date` | datetime64[ns] | Open timestamp | `2024-01-01 12:00:00` |
593
+ | `open` | float64 | Opening price | `42150.50` |
594
+ | `high` | float64 | Highest price | `42200.00` |
595
+ | `low` | float64 | Lowest price | `42100.25` |
596
+ | `close` | float64 | Closing price | `42175.75` |
597
+ | `volume` | float64 | Base asset volume | `15.250000` |
598
+ | `close_time` | datetime64[ns] | Close timestamp | `2024-01-01 12:59:59` |
599
+ | `quote_asset_volume` | float64 | Quote asset volume | `643238.125` |
600
+ | `number_of_trades` | int64 | Trade count | `1547` |
601
+ | `taker_buy_base_asset_volume` | float64 | Taker buy base volume | `7.825000` |
602
+ | `taker_buy_quote_asset_volume` | float64 | Taker buy quote volume | `329891.750` |
603
+
604
+ ### CSV File Structure
605
+
606
+ CSV files include header comments with metadata followed by data:
607
+
608
+ ```csv
609
+ # Binance Spot Market Data v2.5.0
610
+ # Generated: 2025-09-18T23:09:25.391126+00:00Z
611
+ # Source: Binance Public Data Repository
612
+ # Market: SPOT | Symbol: BTCUSDT | Timeframe: 1h
613
+ # Coverage: 48 bars
614
+ # Period: 2024-01-01 00:00:00 to 2024-01-02 23:00:00
615
+ # Collection: direct_download in 0.0s
616
+ # Data Hash: 5fba9d2e5d3db849...
617
+ # Compliance: Zero-Magic-Numbers, Temporal-Integrity, Official-Binance-Source
618
+ #
619
+ date,open,high,low,close,volume,close_time,quote_asset_volume,number_of_trades,taker_buy_base_asset_volume,taker_buy_quote_asset_volume
620
+ 2024-01-01 00:00:00,42283.58,42554.57,42261.02,42475.23,1271.68108,2024-01-01 00:59:59,53957248.973789,47134,682.57581,28957416.819645
621
+ ```
622
+
623
+ ### Metadata JSON Structure
624
+
625
+ Each CSV file includes comprehensive metadata in `.metadata.json`:
626
+
627
+ ```json
628
+ {
629
+ "version": "v2.5.0",
630
+ "generator": "BinancePublicDataCollector",
631
+ "data_source": "Binance Public Data Repository",
632
+ "symbol": "BTCUSDT",
633
+ "timeframe": "1h",
634
+ "enhanced_microstructure_format": {
635
+ "total_columns": 11,
636
+ "analysis_capabilities": [
637
+ "order_flow_analysis",
638
+ "liquidity_metrics",
639
+ "market_microstructure",
640
+ "trade_weighted_prices",
641
+ "institutional_data_patterns"
642
+ ]
643
+ },
644
+ "gap_analysis": {
645
+ "total_gaps_detected": 0,
646
+ "data_completeness_score": 1.0,
647
+ "gap_filling_method": "authentic_binance_api"
648
+ },
649
+ "data_integrity": {
650
+ "chronological_order": true,
651
+ "corruption_detected": false
652
+ }
653
+ }
654
+ ```
655
+
656
+ ### Streaming Output (Memory-Efficient)
657
+
658
+ For large datasets, Polars streaming provides constant memory usage:
616
659
 
617
- All classes work with the standardized 11-column microstructure format:
660
+ ```python
661
+ from gapless_crypto_data.streaming import StreamingDataProcessor
662
+
663
+ processor = StreamingDataProcessor(chunk_size=10_000, memory_limit_mb=100)
664
+ for chunk in processor.stream_csv_chunks("large_dataset.csv"):
665
+ # Process chunk with constant memory usage
666
+ print(f"Chunk shape: {chunk.shape}")
667
+ ```
668
+
669
+ ### File Naming Convention
670
+
671
+ Output files follow consistent naming pattern:
672
+
673
+ ```
674
+ binance_spot_{SYMBOL}-{TIMEFRAME}_{START_DATE}-{END_DATE}_v{VERSION}.csv
675
+ binance_spot_{SYMBOL}-{TIMEFRAME}_{START_DATE}-{END_DATE}_v{VERSION}.metadata.json
676
+ ```
618
677
 
619
- | Column | Description | Example |
620
- |--------|-------------|---------|
621
- | `date` | Open timestamp | `2024-01-01 12:00:00` |
622
- | `open` | Opening price | `42150.50` |
623
- | `high` | Highest price | `42200.00` |
624
- | `low` | Lowest price | `42100.25` |
625
- | `close` | Closing price | `42175.75` |
626
- | `volume` | Base asset volume | `15.250000` |
627
- | `close_time` | Close timestamp | `2024-01-01 12:59:59` |
628
- | `quote_asset_volume` | Quote asset volume | `643238.125` |
629
- | `number_of_trades` | Trade count | `1547` |
630
- | `taker_buy_base_asset_volume` | Taker buy base volume | `7.825000` |
631
- | `taker_buy_quote_asset_volume` | Taker buy quote volume | `329891.750` |
678
+ Examples:
679
+ - `binance_spot_BTCUSDT-1h_20240101-20240102_v2.5.0.csv`
680
+ - `binance_spot_ETHUSDT-4h_20240101-20240201_v2.5.0.csv`
681
+ - `binance_spot_SOLUSDT-1d_20240101-20241231_v2.5.0.csv`
632
682
 
633
683
  ### Error Handling
634
684