sovai 0.2.53__tar.gz → 0.2.55__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.53 → sovai-0.2.55}/PKG-INFO +6 -6
  2. {sovai-0.2.53 → sovai-0.2.55}/pyproject.toml +15 -6
  3. {sovai-0.2.53 → sovai-0.2.55}/sovai/__init__.py +2 -1
  4. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/news/news_plots.py +27 -23
  5. {sovai-0.2.53 → sovai-0.2.55}/LICENSE +0 -0
  6. {sovai-0.2.53 → sovai-0.2.55}/README.md +0 -0
  7. {sovai-0.2.53 → sovai-0.2.55}/data/codes.parq +0 -0
  8. {sovai-0.2.53 → sovai-0.2.55}/data/tickers.parq +0 -0
  9. {sovai-0.2.53 → sovai-0.2.55}/sovai/.DS_Store +0 -0
  10. {sovai-0.2.53 → sovai-0.2.55}/sovai/api_config.py +0 -0
  11. {sovai-0.2.53 → sovai-0.2.55}/sovai/assets/dropdown.css +0 -0
  12. {sovai-0.2.53 → sovai-0.2.55}/sovai/assets/features_mapping.parq +0 -0
  13. {sovai-0.2.53 → sovai-0.2.55}/sovai/basic_auth.py +0 -0
  14. {sovai-0.2.53 → sovai-0.2.55}/sovai/computations/__init__.py +0 -0
  15. {sovai-0.2.53 → sovai-0.2.55}/sovai/computations/functions.py +0 -0
  16. {sovai-0.2.53 → sovai-0.2.55}/sovai/errors/__init__.py +0 -0
  17. {sovai-0.2.53 → sovai-0.2.55}/sovai/errors/sovai_errors.py +0 -0
  18. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/__init__.py +0 -0
  19. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/anomalies.py +0 -0
  20. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/ask_df_llm.py +0 -0
  21. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/change_point_generator.py +0 -0
  22. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/clustering.py +0 -0
  23. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/core_kshape.py +0 -0
  24. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/cum_sum_torch.py +0 -0
  25. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/cusum.py +0 -0
  26. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/dimensionality_reduction.py +0 -0
  27. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_extraction.py +0 -0
  28. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_importance.py +0 -0
  29. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/feature_neutralizer.py +0 -0
  30. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/filter_df.py +0 -0
  31. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/fractional_differencing.py +0 -0
  32. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/nowcasting.py +0 -0
  33. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pairwise.py +0 -0
  34. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pandas_extensions.py +0 -0
  35. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/parallel_functions.py +0 -0
  36. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/pfa_feature_selector.py +0 -0
  37. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/regime_change.py +0 -0
  38. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/regime_change_pca.py +0 -0
  39. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/shapley_global_importance.py +0 -0
  40. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/shapley_importance.py +0 -0
  41. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/signal_evaluation.py +0 -0
  42. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/technical_indicators.py +0 -0
  43. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/time_decomposition.py +0 -0
  44. {sovai-0.2.53 → sovai-0.2.55}/sovai/extensions/weight_optimization.py +0 -0
  45. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_compute.py +0 -0
  46. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_data copy.py +0 -0
  47. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_data.py +0 -0
  48. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_plots.py +0 -0
  49. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_reports.py +0 -0
  50. {sovai-0.2.53 → sovai-0.2.55}/sovai/get_tools.py +0 -0
  51. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/__init__.py +0 -0
  52. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/accounting/__init__.py +0 -0
  53. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/accounting/accounting_plots.py +0 -0
  54. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/allocation/__init__.py +0 -0
  55. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/allocation/allocation_plots.py +0 -0
  56. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/bankruptcy/__init__.py +0 -0
  57. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
  58. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/breakout/__init__.py +0 -0
  59. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/breakout/breakout_plots.py +0 -0
  60. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/corp_risk/__init__.py +0 -0
  61. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
  62. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/earnings_surprise/__init__.py +0 -0
  63. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
  64. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/insider/__init__.py +0 -0
  65. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/insider/insider_plots.py +0 -0
  66. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/institutional/__init__.py +0 -0
  67. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/institutional/institutional_plots.py +0 -0
  68. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/news/__init__.py +0 -0
  69. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/ratios/__init__.py +0 -0
  70. {sovai-0.2.53 → sovai-0.2.55}/sovai/plots/ratios/ratios_plots.py +0 -0
  71. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/accounting/__init__.py +0 -0
  72. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
  73. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/bankruptcy/__init__.py +0 -0
  74. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
  75. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/general/__init__.py +0 -0
  76. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/general/general_plots.py +0 -0
  77. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/news/__inti__.py +0 -0
  78. {sovai-0.2.53 → sovai-0.2.55}/sovai/reports/news/news_econometric_analysis.py +0 -0
  79. {sovai-0.2.53 → sovai-0.2.55}/sovai/studies/nowcasting.py +0 -0
  80. {sovai-0.2.53 → sovai-0.2.55}/sovai/token_auth.py +0 -0
  81. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/authentication/__init__.py +0 -0
  82. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/authentication/authentication.py +0 -0
  83. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/__init__.py +0 -0
  84. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/graphs.py +0 -0
  85. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/llm_code_generator.py +0 -0
  86. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
  87. {sovai-0.2.53 → sovai-0.2.55}/sovai/tools/sec/sec_edgar_search.py +0 -0
  88. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/__init__.py +0 -0
  89. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side.py +0 -0
  90. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3.py +0 -0
  91. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high copy 2.py +0 -0
  92. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high copy.py +0 -0
  93. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/client_side_s3_part_high.py +0 -0
  94. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/converter.py +0 -0
  95. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/datetime_formats.py +0 -0
  96. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/file_management.py +0 -0
  97. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/get_tickers.py +0 -0
  98. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/helpers.py +0 -0
  99. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/pandas_extensions copy.py +0 -0
  100. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/plot.py +0 -0
  101. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/port_manager.py +0 -0
  102. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/stream.py +0 -0
  103. {sovai-0.2.53 → sovai-0.2.55}/sovai/utils/verbose_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sovai
3
- Version: 0.2.53
3
+ Version: 0.2.55
4
4
  Summary: python for asset management
5
5
  License: Proprietary License
6
6
  Author: Derek Snow
@@ -8,12 +8,12 @@ Author-email: d.snow@outlook.com
8
8
  Requires-Python: >=3.10
9
9
  Classifier: License :: Other/Proprietary License
10
10
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
11
  Classifier: Programming Language :: Python :: 3.12
14
12
  Classifier: Programming Language :: Python :: 3.13
15
13
  Provides-Extra: full
16
- Requires-Dist: boto3 (>=1.20)
14
+ Requires-Dist: aiobotocore (==2.21.1)
15
+ Requires-Dist: boto3 (==1.37.1)
16
+ Requires-Dist: botocore (==1.37.1)
17
17
  Requires-Dist: dash ; extra == "full"
18
18
  Requires-Dist: dash-bootstrap-components ; extra == "full"
19
19
  Requires-Dist: edgar-tool (>=1.3.3)
@@ -22,7 +22,6 @@ Requires-Dist: fastapi-cache2[redis] (>=0.2.1)
22
22
  Requires-Dist: fsspec (==2024.10.0)
23
23
  Requires-Dist: gcsfs (==2024.10.0)
24
24
  Requires-Dist: great-tables ; extra == "full"
25
- Requires-Dist: ipywidgets (>=8.1.6,<9.0.0)
26
25
  Requires-Dist: ipywidgets ; extra == "full"
27
26
  Requires-Dist: joblib (>=1.0)
28
27
  Requires-Dist: lightgbm ; extra == "full"
@@ -34,7 +33,6 @@ Requires-Dist: numpy (>=1.20)
34
33
  Requires-Dist: openai ; extra == "full"
35
34
  Requires-Dist: pandas (>=1.0)
36
35
  Requires-Dist: pexpect ; extra == "full"
37
- Requires-Dist: plotly (>=6.0.1,<7.0.0)
38
36
  Requires-Dist: plotly ; extra == "full"
39
37
  Requires-Dist: polars (>=1.2)
40
38
  Requires-Dist: polars-talib ; extra == "full"
@@ -46,10 +44,12 @@ Requires-Dist: rapidfuzz (>=3.9.7)
46
44
  Requires-Dist: requests (>=2.20)
47
45
  Requires-Dist: ruptures ; extra == "full"
48
46
  Requires-Dist: s3fs (==2024.10.0)
47
+ Requires-Dist: s3transfer (==0.11.3)
49
48
  Requires-Dist: scikit-learn ; extra == "full"
50
49
  Requires-Dist: scipy ; extra == "full"
51
50
  Requires-Dist: seaborn (>=0.13.2)
52
51
  Requires-Dist: shap ; extra == "full"
52
+ Requires-Dist: skfolio (>=0.9.0,<0.10.0)
53
53
  Requires-Dist: skfolio ; extra == "full"
54
54
  Requires-Dist: statsforecast ; extra == "full"
55
55
  Requires-Dist: tensorly ; extra == "full"
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "sovai"
7
- version = "0.2.53"
7
+ version = "0.2.55"
8
8
  description = "python for asset management"
9
9
  authors = [
10
10
  {name = "Derek Snow", email = "d.snow@outlook.com"}
@@ -20,7 +20,10 @@ dependencies = [
20
20
  "python-dateutil>=2.8",
21
21
  "python-dotenv>=0.10",
22
22
  "polars>=1.2",
23
- "boto3>=1.20",
23
+ "boto3==1.37.1",
24
+ "botocore==1.37.1",
25
+ "s3transfer==0.11.3",
26
+ "aiobotocore==2.21.1",
24
27
  "joblib>=1.0",
25
28
  "rapidfuzz>=3.9.7",
26
29
  "edgar-tool>=1.3.3",
@@ -33,9 +36,8 @@ dependencies = [
33
36
  "gcsfs==2024.10.0",
34
37
  "fastapi-cache>=0.1.0",
35
38
  "fastapi-cache2[redis]>=0.2.1",
36
- "plotly (>=6.0.1,<7.0.0)",
37
39
  "tqdm (>=4.67.1,<5.0.0)",
38
- "ipywidgets (>=8.1.6,<9.0.0)"
40
+ "skfolio (>=0.9.0,<0.10.0)"
39
41
  ]
40
42
 
41
43
  [tool.poetry]
@@ -65,7 +67,7 @@ exclude = [
65
67
 
66
68
  # Keep Poetry's dependencies section for detailed version specs
67
69
  [tool.poetry.dependencies]
68
- python = "^3.10"
70
+ python = "^3.12"
69
71
  pandas = ">=1.0"
70
72
  numpy = ">=1.20"
71
73
  pyarrow = ">=5.0"
@@ -73,12 +75,16 @@ requests = ">=2.20"
73
75
  python-dateutil = ">=2.8"
74
76
  python-dotenv = ">=0.10"
75
77
  polars = "^1.2"
76
- boto3 = ">=1.20"
78
+ boto3 = "1.37.1"
79
+ botocore = "1.37.1"
80
+ s3transfer = "0.11.3"
81
+ aiobotocore = "2.21.1"
77
82
  joblib = ">=1.0"
78
83
  rapidfuzz = "^3.9.7"
79
84
  edgar-tool = "^1.3.3"
80
85
  scipy = {version = ">=1.0", optional = true}
81
86
  matplotlib = {version = ">=3.0", optional = true}
87
+ plotly = {version = ">=5.0", optional = true}
82
88
  scikit-learn = {version = ">=1.0", optional = true}
83
89
  numba = {version = ">=0.50", optional = true}
84
90
  dash = {version = ">=2.0", optional = true}
@@ -94,6 +100,7 @@ pexpect = {version = ">=4.9.0", optional = true}
94
100
  lightgbm = {version = ">=4.5.0", optional = true}
95
101
  polars-talib = {version = "0.1.3", optional = true}
96
102
  dash-bootstrap-components = {version = ">=1.6.0", optional = true}
103
+ ipywidgets = {version = ">=8.1.6,<9.0.0", optional = true} # Added here as optional
97
104
  yachalk = "^0.1.6"
98
105
  pyvis = "^0.3.2"
99
106
  networkx = "^3.3"
@@ -139,3 +146,5 @@ traitlets = "^5.14.3"
139
146
  jupyterlab = "^4.2.5"
140
147
  pytest = "^7.0"
141
148
  black = "^22.0"
149
+ jupyter = "^1.1.1"
150
+ ipykernel = "^6.29.5"
@@ -32,7 +32,8 @@ try:
32
32
  from .get_tools import sec_search, sec_filing, code, sec_graph
33
33
  HAS_FULL_INSTALL = True
34
34
  except ImportError as e:
35
- print(f"ImportError: {e}")
35
+ print("this is the lean installation, for full use sovai[full]")
36
+ # print(f"ImportError: {e}")
36
37
  HAS_FULL_INSTALL = False
37
38
 
38
39
 
@@ -4,7 +4,34 @@ import ipywidgets as widgets
4
4
  from ipywidgets import interact
5
5
  from sovai import data
6
6
 
7
+
8
+ import pandas as pd
9
+ import numpy as np
10
+ import plotly.graph_objects as go
11
+ from plotly.subplots import make_subplots
12
+ import dash
13
+ from dash import dcc, html
14
+ from dash.dependencies import Input, Output, State
7
15
  import random
16
+ from scipy.optimize import minimize
17
+ from scipy import stats
18
+ from sovai.utils.port_manager import get_unique_port
19
+
20
+
21
+ import pandas as pd
22
+ import numpy as np
23
+
24
+ import random
25
+
26
+
27
+ import dash
28
+ from dash import dcc, html, Input, Output, State
29
+ import dash_bootstrap_components as dbc
30
+ import plotly.graph_objs as go
31
+ import pandas as pd
32
+ import numpy as np
33
+
34
+
8
35
 
9
36
  # Global dictionary to keep track of apps and their ports
10
37
  app_ports = {}
@@ -118,23 +145,6 @@ def plot_above_sentiment_returns(df_news=None, tickers=None):
118
145
  fig.show()
119
146
 
120
147
 
121
-
122
- import pandas as pd
123
- import numpy as np
124
- import plotly.graph_objects as go
125
- from plotly.subplots import make_subplots
126
- import dash
127
- from dash import dcc, html
128
- from dash.dependencies import Input, Output, State
129
- import random
130
- from scipy.optimize import minimize
131
- from scipy import stats
132
- from sovai.utils.port_manager import get_unique_port
133
-
134
-
135
-
136
- import pandas as pd
137
- import numpy as np
138
148
  # from statsmodels.tsa.stattools import adfuller, coint
139
149
  # from statsmodels.tsa.vector_ar.vecm import VECM
140
150
 
@@ -550,12 +560,6 @@ def plot_news_daily(ticker='NVDA'):
550
560
  # plot_news_daily(ticker='AAPL')
551
561
 
552
562
 
553
- import dash
554
- from dash import dcc, html, Input, Output, State
555
- import dash_bootstrap_components as dbc
556
- import plotly.graph_objs as go
557
- import pandas as pd
558
- import numpy as np
559
563
 
560
564
  def dash_news_ts_analysis(df_sentiment, df_polarity, df_topic):
561
565
  # Dynamically get all topics from df_sentiment
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