sovai 0.2.18__tar.gz → 0.2.20__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 (91) hide show
  1. {sovai-0.2.18 → sovai-0.2.20}/PKG-INFO +1 -1
  2. {sovai-0.2.18 → sovai-0.2.20}/pyproject.toml +1 -1
  3. {sovai-0.2.18 → sovai-0.2.20}/sovai/get_data.py +18 -4
  4. {sovai-0.2.18 → sovai-0.2.20}/LICENSE +0 -0
  5. {sovai-0.2.18 → sovai-0.2.20}/README.md +0 -0
  6. {sovai-0.2.18 → sovai-0.2.20}/sovai/__init__.py +0 -0
  7. {sovai-0.2.18 → sovai-0.2.20}/sovai/api_config.py +0 -0
  8. {sovai-0.2.18 → sovai-0.2.20}/sovai/assets/dropdown.css +0 -0
  9. {sovai-0.2.18 → sovai-0.2.20}/sovai/assets/features_mapping.parq +0 -0
  10. {sovai-0.2.18 → sovai-0.2.20}/sovai/basic_auth.py +0 -0
  11. {sovai-0.2.18 → sovai-0.2.20}/sovai/computations/__init__.py +0 -0
  12. {sovai-0.2.18 → sovai-0.2.20}/sovai/computations/functions.py +0 -0
  13. {sovai-0.2.18 → sovai-0.2.20}/sovai/errors/__init__.py +0 -0
  14. {sovai-0.2.18 → sovai-0.2.20}/sovai/errors/sovai_errors.py +0 -0
  15. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/__init__.py +0 -0
  16. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/anomalies.py +0 -0
  17. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/ask_df_llm.py +0 -0
  18. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/change_point_generator.py +0 -0
  19. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/clustering.py +0 -0
  20. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/core_kshape.py +0 -0
  21. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/cum_sum_torch.py +0 -0
  22. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/cusum.py +0 -0
  23. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/dimensionality_reduction.py +0 -0
  24. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/feature_extraction.py +0 -0
  25. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/feature_importance.py +0 -0
  26. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/feature_neutralizer.py +0 -0
  27. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/filter_df.py +0 -0
  28. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/fractional_differencing.py +0 -0
  29. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/nowcasting.py +0 -0
  30. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/pairwise.py +0 -0
  31. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/pandas_extensions.py +0 -0
  32. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/parallel_functions.py +0 -0
  33. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/pfa_feature_selector.py +0 -0
  34. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/regime_change.py +0 -0
  35. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/regime_change_pca.py +0 -0
  36. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/shapley_global_importance.py +0 -0
  37. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/shapley_importance.py +0 -0
  38. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/signal_evaluation.py +0 -0
  39. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/technical_indicators.py +0 -0
  40. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/time_decomposition.py +0 -0
  41. {sovai-0.2.18 → sovai-0.2.20}/sovai/extensions/weight_optimization.py +0 -0
  42. {sovai-0.2.18 → sovai-0.2.20}/sovai/get_compute.py +0 -0
  43. {sovai-0.2.18 → sovai-0.2.20}/sovai/get_plots.py +0 -0
  44. {sovai-0.2.18 → sovai-0.2.20}/sovai/get_reports.py +0 -0
  45. {sovai-0.2.18 → sovai-0.2.20}/sovai/get_tools.py +0 -0
  46. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/__init__.py +0 -0
  47. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/accounting/__init__.py +0 -0
  48. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/accounting/accounting_plots.py +0 -0
  49. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/allocation/__init__.py +0 -0
  50. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/allocation/allocation_plots.py +0 -0
  51. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/bankruptcy/__init__.py +0 -0
  52. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
  53. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/breakout/__init__.py +0 -0
  54. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/breakout/breakout_plots.py +0 -0
  55. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/corp_risk/__init__.py +0 -0
  56. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
  57. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/earnings_surprise/__init__.py +0 -0
  58. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
  59. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/insider/__init__.py +0 -0
  60. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/insider/insider_plots.py +0 -0
  61. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/institutional/__init__.py +0 -0
  62. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/institutional/institutional_plots.py +0 -0
  63. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/news/__init__.py +0 -0
  64. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/news/news_plots.py +0 -0
  65. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/ratios/__init__.py +0 -0
  66. {sovai-0.2.18 → sovai-0.2.20}/sovai/plots/ratios/ratios_plots.py +0 -0
  67. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/accounting/__inti__.py +0 -0
  68. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
  69. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/bankruptcy/__inti__.py +0 -0
  70. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
  71. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/general/__inti__.py +0 -0
  72. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/general/general_plots.py +0 -0
  73. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/news/__inti__.py +0 -0
  74. {sovai-0.2.18 → sovai-0.2.20}/sovai/reports/news/news_econometric_analysis.py +0 -0
  75. {sovai-0.2.18 → sovai-0.2.20}/sovai/studies/nowcasting.py +0 -0
  76. {sovai-0.2.18 → sovai-0.2.20}/sovai/token_auth.py +0 -0
  77. {sovai-0.2.18 → sovai-0.2.20}/sovai/tools/sec/__inti__.py +0 -0
  78. {sovai-0.2.18 → sovai-0.2.20}/sovai/tools/sec/llm_code_generator.py +0 -0
  79. {sovai-0.2.18 → sovai-0.2.20}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
  80. {sovai-0.2.18 → sovai-0.2.20}/sovai/tools/sec/sec_edgar_search.py +0 -0
  81. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/__init__.py +0 -0
  82. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/client_side.py +0 -0
  83. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/converter.py +0 -0
  84. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/datetime_formats.py +0 -0
  85. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/file_management.py +0 -0
  86. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/get_tickers.py +0 -0
  87. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/helpers.py +0 -0
  88. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/pandas_extensions copy.py +0 -0
  89. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/plot.py +0 -0
  90. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/port_manager.py +0 -0
  91. {sovai-0.2.18 → sovai-0.2.20}/sovai/utils/stream.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sovai
3
- Version: 0.2.18
3
+ Version: 0.2.20
4
4
  Summary: python for asset management
5
5
  License: Proprietary License
6
6
  Author: Derek Snow
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "sovai"
3
- version = "0.2.18"
3
+ version = "0.2.20"
4
4
  description = "python for asset management"
5
5
  authors = ["Derek Snow <d.snow@outlook.com>"]
6
6
  license = "Proprietary License"
@@ -620,7 +620,7 @@ def data(
620
620
  verbose_mode.vprint(f"header: not pyarrow")
621
621
  data = stream_data(res)
622
622
 
623
- if HAS_FULL_INSTALL:
623
+ if HAS_FULL_INSTALL and not use_polars and not isinstance(data, CustomDataFrame):
624
624
  data = CustomDataFrame(data)
625
625
  else:
626
626
  data = pd.DataFrame(data)
@@ -631,13 +631,27 @@ def data(
631
631
  # Example usage in your existing code:
632
632
  if is_all(tickers):
633
633
  verbose_mode.vprint("All ticker Initialized")
634
- url = res.text.strip('"')
635
- verbose_mode.vprint(url, " (download link)")
636
- data = read_parquet(url, use_polars=use_polars)
634
+ urls = [u.strip() for u in res.text.strip('"').split(',') if u.strip()]
635
+ data = None
636
+ for i, url in enumerate(urls):
637
+ verbose_mode.vprint(f"Attempting URL {i+1}: {url} (download link)")
638
+ try:
639
+ data = read_parquet(url, use_polars=use_polars)
640
+ verbose_mode.vprint(f"Successfully downloaded data from URL {i+1}")
641
+ break
642
+ except Exception as e:
643
+ verbose_mode.vprint(f"Failed to download from URL {i+1}: {str(e)}")
644
+
645
+ if data is None:
646
+ raise Exception("Failed to download data from all provided URLs")
637
647
 
638
648
  # Apply filters
639
649
  data = filter_data(data, columns=columns, start_date=start_date, end_date=end_date, use_polars=use_polars)
640
650
 
651
+ # Wrap the result with CustomDataFrame if HAS_FULL_INSTALL is True
652
+ if HAS_FULL_INSTALL and not use_polars:
653
+ data = CustomDataFrame(data)
654
+
641
655
  verbose_mode.vprint("It reached the DF")
642
656
  try:
643
657
  from sovai.extensions.pandas_extensions import CustomDataFrame
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes