sovai 0.2.50__tar.gz → 0.2.52__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 (103) hide show
  1. {sovai-0.2.50 → sovai-0.2.52}/PKG-INFO +35 -32
  2. {sovai-0.2.50 → sovai-0.2.52}/pyproject.toml +41 -12
  3. {sovai-0.2.50 → sovai-0.2.52}/sovai/__init__.py +6 -2
  4. {sovai-0.2.50 → sovai-0.2.52}/LICENSE +0 -0
  5. {sovai-0.2.50 → sovai-0.2.52}/README.md +0 -0
  6. {sovai-0.2.50 → sovai-0.2.52}/data/codes.parq +0 -0
  7. {sovai-0.2.50 → sovai-0.2.52}/data/tickers.parq +0 -0
  8. {sovai-0.2.50 → sovai-0.2.52}/sovai/.DS_Store +0 -0
  9. {sovai-0.2.50 → sovai-0.2.52}/sovai/api_config.py +0 -0
  10. {sovai-0.2.50 → sovai-0.2.52}/sovai/assets/dropdown.css +0 -0
  11. {sovai-0.2.50 → sovai-0.2.52}/sovai/assets/features_mapping.parq +0 -0
  12. {sovai-0.2.50 → sovai-0.2.52}/sovai/basic_auth.py +0 -0
  13. {sovai-0.2.50 → sovai-0.2.52}/sovai/computations/__init__.py +0 -0
  14. {sovai-0.2.50 → sovai-0.2.52}/sovai/computations/functions.py +0 -0
  15. {sovai-0.2.50 → sovai-0.2.52}/sovai/errors/__init__.py +0 -0
  16. {sovai-0.2.50 → sovai-0.2.52}/sovai/errors/sovai_errors.py +0 -0
  17. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/__init__.py +0 -0
  18. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/anomalies.py +0 -0
  19. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/ask_df_llm.py +0 -0
  20. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/change_point_generator.py +0 -0
  21. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/clustering.py +0 -0
  22. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/core_kshape.py +0 -0
  23. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/cum_sum_torch.py +0 -0
  24. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/cusum.py +0 -0
  25. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/dimensionality_reduction.py +0 -0
  26. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/feature_extraction.py +0 -0
  27. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/feature_importance.py +0 -0
  28. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/feature_neutralizer.py +0 -0
  29. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/filter_df.py +0 -0
  30. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/fractional_differencing.py +0 -0
  31. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/nowcasting.py +0 -0
  32. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/pairwise.py +0 -0
  33. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/pandas_extensions.py +0 -0
  34. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/parallel_functions.py +0 -0
  35. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/pfa_feature_selector.py +0 -0
  36. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/regime_change.py +0 -0
  37. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/regime_change_pca.py +0 -0
  38. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/shapley_global_importance.py +0 -0
  39. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/shapley_importance.py +0 -0
  40. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/signal_evaluation.py +0 -0
  41. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/technical_indicators.py +0 -0
  42. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/time_decomposition.py +0 -0
  43. {sovai-0.2.50 → sovai-0.2.52}/sovai/extensions/weight_optimization.py +0 -0
  44. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_compute.py +0 -0
  45. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_data copy.py +0 -0
  46. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_data.py +0 -0
  47. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_plots.py +0 -0
  48. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_reports.py +0 -0
  49. {sovai-0.2.50 → sovai-0.2.52}/sovai/get_tools.py +0 -0
  50. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/__init__.py +0 -0
  51. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/accounting/__init__.py +0 -0
  52. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/accounting/accounting_plots.py +0 -0
  53. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/allocation/__init__.py +0 -0
  54. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/allocation/allocation_plots.py +0 -0
  55. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/bankruptcy/__init__.py +0 -0
  56. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
  57. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/breakout/__init__.py +0 -0
  58. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/breakout/breakout_plots.py +0 -0
  59. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/corp_risk/__init__.py +0 -0
  60. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
  61. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/earnings_surprise/__init__.py +0 -0
  62. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
  63. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/insider/__init__.py +0 -0
  64. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/insider/insider_plots.py +0 -0
  65. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/institutional/__init__.py +0 -0
  66. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/institutional/institutional_plots.py +0 -0
  67. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/news/__init__.py +0 -0
  68. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/news/news_plots.py +0 -0
  69. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/ratios/__init__.py +0 -0
  70. {sovai-0.2.50 → sovai-0.2.52}/sovai/plots/ratios/ratios_plots.py +0 -0
  71. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/accounting/__init__.py +0 -0
  72. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
  73. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/bankruptcy/__init__.py +0 -0
  74. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
  75. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/general/__init__.py +0 -0
  76. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/general/general_plots.py +0 -0
  77. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/news/__inti__.py +0 -0
  78. {sovai-0.2.50 → sovai-0.2.52}/sovai/reports/news/news_econometric_analysis.py +0 -0
  79. {sovai-0.2.50 → sovai-0.2.52}/sovai/studies/nowcasting.py +0 -0
  80. {sovai-0.2.50 → sovai-0.2.52}/sovai/token_auth.py +0 -0
  81. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/authentication/__init__.py +0 -0
  82. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/authentication/authentication.py +0 -0
  83. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/sec/__init__.py +0 -0
  84. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/sec/graphs.py +0 -0
  85. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/sec/llm_code_generator.py +0 -0
  86. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
  87. {sovai-0.2.50 → sovai-0.2.52}/sovai/tools/sec/sec_edgar_search.py +0 -0
  88. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/__init__.py +0 -0
  89. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/client_side.py +0 -0
  90. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/client_side_s3.py +0 -0
  91. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high copy 2.py +0 -0
  92. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high copy.py +0 -0
  93. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high.py +0 -0
  94. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/converter.py +0 -0
  95. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/datetime_formats.py +0 -0
  96. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/file_management.py +0 -0
  97. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/get_tickers.py +0 -0
  98. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/helpers.py +0 -0
  99. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/pandas_extensions copy.py +0 -0
  100. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/plot.py +0 -0
  101. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/port_manager.py +0 -0
  102. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/stream.py +0 -0
  103. {sovai-0.2.50 → sovai-0.2.52}/sovai/utils/verbose_utils.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sovai
3
- Version: 0.2.50
3
+ Version: 0.2.52
4
4
  Summary: python for asset management
5
5
  License: Proprietary License
6
6
  Author: Derek Snow
7
7
  Author-email: d.snow@outlook.com
8
- Requires-Python: >=3.10,<4.0
8
+ Requires-Python: >=3.10
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
@@ -14,43 +14,46 @@ Classifier: Programming Language :: Python :: 3.12
14
14
  Classifier: Programming Language :: Python :: 3.13
15
15
  Provides-Extra: full
16
16
  Requires-Dist: boto3 (>=1.20)
17
- Requires-Dist: dash (>=2.0) ; extra == "full"
18
- Requires-Dist: dash-bootstrap-components (>=1.6.0) ; extra == "full"
19
- Requires-Dist: edgar-tool (>=1.3.3,<2.0.0)
20
- Requires-Dist: fastapi-cache (>=0.1.0,<0.2.0)
21
- Requires-Dist: fastapi-cache2[redis] (>=0.2.1,<0.3.0)
22
- Requires-Dist: gcsfs (>=2024.10.0,<2025.0.0)
23
- Requires-Dist: great-tables (>=0.9) ; extra == "full"
24
- Requires-Dist: ipywidgets (>=8.1.3) ; extra == "full"
17
+ Requires-Dist: dash ; extra == "full"
18
+ Requires-Dist: dash-bootstrap-components ; extra == "full"
19
+ Requires-Dist: edgar-tool (>=1.3.3)
20
+ Requires-Dist: fastapi-cache (>=0.1.0)
21
+ Requires-Dist: fastapi-cache2[redis] (>=0.2.1)
22
+ Requires-Dist: gcsfs (>=2024.9)
23
+ Requires-Dist: great-tables ; extra == "full"
24
+ Requires-Dist: ipywidgets (>=8.1.6,<9.0.0)
25
+ Requires-Dist: ipywidgets ; extra == "full"
25
26
  Requires-Dist: joblib (>=1.0)
26
- Requires-Dist: lightgbm (>=4.5.0) ; extra == "full"
27
- Requires-Dist: matplotlib (>=3.0) ; extra == "full"
28
- Requires-Dist: mfles (>=0.2) ; extra == "full"
29
- Requires-Dist: networkx (>=3.3,<4.0)
30
- Requires-Dist: numba (>=0.50) ; extra == "full"
27
+ Requires-Dist: lightgbm ; extra == "full"
28
+ Requires-Dist: matplotlib ; extra == "full"
29
+ Requires-Dist: mfles ; extra == "full"
30
+ Requires-Dist: networkx (>=3.3)
31
+ Requires-Dist: numba ; extra == "full"
31
32
  Requires-Dist: numpy (>=1.20)
32
- Requires-Dist: openai (>=1.0) ; extra == "full"
33
+ Requires-Dist: openai ; extra == "full"
33
34
  Requires-Dist: pandas (>=1.0)
34
- Requires-Dist: pexpect (>=4.9.0) ; extra == "full"
35
- Requires-Dist: plotly (>=5.0) ; extra == "full"
36
- Requires-Dist: polars (>=1.2,<2.0)
37
- Requires-Dist: polars-talib (==0.1.3) ; extra == "full"
35
+ Requires-Dist: pexpect ; extra == "full"
36
+ Requires-Dist: plotly (>=6.0.1,<7.0.0)
37
+ Requires-Dist: plotly ; extra == "full"
38
+ Requires-Dist: polars (>=1.2)
39
+ Requires-Dist: polars-talib ; extra == "full"
38
40
  Requires-Dist: pyarrow (>=5.0)
39
41
  Requires-Dist: python-dateutil (>=2.8)
40
42
  Requires-Dist: python-dotenv (>=0.10)
41
- Requires-Dist: pyvis (>=0.3.2,<0.4.0)
42
- Requires-Dist: rapidfuzz (>=3.9.7,<4.0.0)
43
+ Requires-Dist: pyvis (>=0.3.2)
44
+ Requires-Dist: rapidfuzz (>=3.9.7)
43
45
  Requires-Dist: requests (>=2.20)
44
- Requires-Dist: ruptures (>=1.0) ; extra == "full"
45
- Requires-Dist: s3fs (>=2024.10.0,<2025.0.0)
46
- Requires-Dist: scikit-learn (>=1.0) ; extra == "full"
47
- Requires-Dist: scipy (>=1.0) ; extra == "full"
48
- Requires-Dist: seaborn (>=0.13.2,<0.14.0)
49
- Requires-Dist: shap (>=0.40) ; extra == "full"
50
- Requires-Dist: skfolio (>=0.3) ; extra == "full"
51
- Requires-Dist: statsforecast (>=1.0) ; extra == "full"
52
- Requires-Dist: tensorly (>=0.6) ; extra == "full"
53
- Requires-Dist: yachalk (>=0.1.6,<0.2.0)
46
+ Requires-Dist: ruptures ; extra == "full"
47
+ Requires-Dist: s3fs (>=2024.9)
48
+ Requires-Dist: scikit-learn ; extra == "full"
49
+ Requires-Dist: scipy ; extra == "full"
50
+ Requires-Dist: seaborn (>=0.13.2)
51
+ Requires-Dist: shap ; extra == "full"
52
+ Requires-Dist: skfolio ; extra == "full"
53
+ Requires-Dist: statsforecast ; extra == "full"
54
+ Requires-Dist: tensorly ; extra == "full"
55
+ Requires-Dist: tqdm (>=4.67.1,<5.0.0)
56
+ Requires-Dist: yachalk (>=0.1.6)
54
57
  Description-Content-Type: text/markdown
55
58
 
56
59
  [![Sovai Python SDK package](https://github.com/sovai-research/SovAI/actions/workflows/main.yml/badge.svg)](https://github.com/sovai-research/SovAI/actions/workflows/main.yml)
@@ -1,10 +1,43 @@
1
- [tool.poetry]
1
+ [build-system]
2
+ requires = ["poetry-core>=1.0.0"]
3
+ build-backend = "poetry.core.masonry.api"
4
+
5
+ [project]
2
6
  name = "sovai"
3
- version = "0.2.50"
7
+ version = "0.2.52"
4
8
  description = "python for asset management"
5
- authors = ["Derek Snow <d.snow@outlook.com>"]
6
- license = "Proprietary License"
9
+ authors = [
10
+ {name = "Derek Snow", email = "d.snow@outlook.com"}
11
+ ]
12
+ license = {text = "Proprietary License"}
7
13
  readme = "README.md"
14
+ requires-python = ">=3.10"
15
+ dependencies = [
16
+ "pandas>=1.0",
17
+ "numpy>=1.20",
18
+ "pyarrow>=5.0",
19
+ "requests>=2.20",
20
+ "python-dateutil>=2.8",
21
+ "python-dotenv>=0.10",
22
+ "polars>=1.2",
23
+ "boto3>=1.20",
24
+ "joblib>=1.0",
25
+ "rapidfuzz>=3.9.7",
26
+ "edgar-tool>=1.3.3",
27
+ "yachalk>=0.1.6",
28
+ "pyvis>=0.3.2",
29
+ "networkx>=3.3",
30
+ "seaborn>=0.13.2",
31
+ "s3fs>=2024.9",
32
+ "gcsfs>=2024.9",
33
+ "fastapi-cache>=0.1.0",
34
+ "fastapi-cache2[redis]>=0.2.1",
35
+ "plotly (>=6.0.1,<7.0.0)",
36
+ "tqdm (>=4.67.1,<5.0.0)",
37
+ "ipywidgets (>=8.1.6,<9.0.0)"
38
+ ]
39
+
40
+ [tool.poetry]
8
41
  include = ["sovai/**/*", "data/**/*"]
9
42
  exclude = [
10
43
  "notebooks",
@@ -29,6 +62,7 @@ exclude = [
29
62
  "**/.ipynb_checkpoints",
30
63
  ]
31
64
 
65
+ # Keep Poetry's dependencies section for detailed version specs
32
66
  [tool.poetry.dependencies]
33
67
  python = "^3.10"
34
68
  pandas = ">=1.0"
@@ -44,7 +78,6 @@ rapidfuzz = "^3.9.7"
44
78
  edgar-tool = "^1.3.3"
45
79
  scipy = {version = ">=1.0", optional = true}
46
80
  matplotlib = {version = ">=3.0", optional = true}
47
- plotly = {version = ">=5.0", optional = true}
48
81
  scikit-learn = {version = ">=1.0", optional = true}
49
82
  numba = {version = ">=0.50", optional = true}
50
83
  dash = {version = ">=2.0", optional = true}
@@ -58,20 +91,19 @@ openai = {version = ">=1.0", optional = true}
58
91
  mfles = {version = ">=0.2", optional = true}
59
92
  pexpect = {version = ">=4.9.0", optional = true}
60
93
  lightgbm = {version = ">=4.5.0", optional = true}
61
- ipywidgets = {version = ">=8.1.3", optional = true}
62
94
  polars-talib = {version = "0.1.3", optional = true}
63
95
  dash-bootstrap-components = {version = ">=1.6.0", optional = true}
64
96
  yachalk = "^0.1.6"
65
97
  pyvis = "^0.3.2"
66
98
  networkx = "^3.3"
67
99
  seaborn = "^0.13.2"
68
- s3fs = "^2024.10.0"
69
- gcsfs = "^2024.10.0"
100
+ s3fs = "^2024.9"
101
+ gcsfs = "^2024.9"
70
102
  fastapi-cache = "^0.1.0"
71
103
  fastapi-cache2 = {extras = ["redis"], version = "^0.2.1"}
72
104
 
73
105
 
74
- [tool.poetry.extras]
106
+ [project.optional-dependencies]
75
107
  full = [
76
108
  "scipy",
77
109
  "matplotlib",
@@ -103,6 +135,3 @@ traitlets = "^5.14.3"
103
135
  jupyterlab = "^4.2.5"
104
136
  pytest = "^7.0"
105
137
  black = "^22.0"
106
-
107
-
108
- [build-system]
@@ -12,7 +12,11 @@ import warnings
12
12
  warnings.filterwarnings("ignore")
13
13
 
14
14
 
15
- __version__ = "0.1.25"
15
+ try:
16
+ from importlib.metadata import version
17
+ __version__ = version("sovai")
18
+ except:
19
+ __version__ = "0.2.49" # Fallback to current version in pyproject.toml
16
20
 
17
21
  # Call the function to ensure tickers data is up-to-date
18
22
  save_or_update_tickers()
@@ -35,4 +39,4 @@ except ImportError as e:
35
39
  __all__ = ['read_key', 'save_key', 'ApiConfig', 'data', 'basic_auth', 'token_auth']
36
40
 
37
41
  if HAS_FULL_INSTALL:
38
- __all__ += ['plot', 'report', 'compute', 'nowcast', 'extension', 'sec_search', 'sec_filing', 'code', 'sec_graph']
42
+ __all__ += ['plot', 'report', 'compute', 'nowcast', 'extension', 'sec_search', 'sec_filing', 'code', 'sec_graph']
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
File without changes
File without changes
File without changes
File without changes
File without changes