sovai 0.2.23__tar.gz → 0.2.24__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.
- {sovai-0.2.23 → sovai-0.2.24}/PKG-INFO +2 -1
- {sovai-0.2.23 → sovai-0.2.24}/pyproject.toml +2 -1
- {sovai-0.2.23 → sovai-0.2.24}/sovai/__init__.py +1 -1
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/bankruptcy/bankruptcy_plots.py +9 -16
- {sovai-0.2.23 → sovai-0.2.24}/LICENSE +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/README.md +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/api_config.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/assets/dropdown.css +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/assets/features_mapping.parq +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/basic_auth.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/computations/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/computations/functions.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/errors/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/errors/sovai_errors.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/anomalies.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/ask_df_llm.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/change_point_generator.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/clustering.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/core_kshape.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/cum_sum_torch.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/cusum.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/dimensionality_reduction.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/feature_extraction.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/feature_importance.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/feature_neutralizer.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/filter_df.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/fractional_differencing.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/nowcasting.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/pairwise.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/pandas_extensions.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/parallel_functions.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/pfa_feature_selector.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/regime_change.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/regime_change_pca.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/shapley_global_importance.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/shapley_importance.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/signal_evaluation.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/technical_indicators.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/time_decomposition.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/extensions/weight_optimization.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/get_compute.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/get_data.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/get_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/get_reports.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/get_tools.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/accounting/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/accounting/accounting_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/allocation/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/allocation/allocation_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/bankruptcy/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/breakout/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/breakout/breakout_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/corp_risk/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/earnings_surprise/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/insider/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/insider/insider_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/institutional/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/institutional/institutional_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/news/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/news/news_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/ratios/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/plots/ratios/ratios_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/accounting/__inti__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/bankruptcy/__inti__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/general/__inti__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/general/general_plots.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/news/__inti__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/reports/news/news_econometric_analysis.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/studies/nowcasting.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/token_auth.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/tools/sec/__inti__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/tools/sec/llm_code_generator.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/tools/sec/sec_edgar_search.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/__init__.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/client_side.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/converter.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/datetime_formats.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/file_management.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/get_tickers.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/helpers.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/pandas_extensions copy.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/plot.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/port_manager.py +0 -0
- {sovai-0.2.23 → sovai-0.2.24}/sovai/utils/stream.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sovai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.24
|
|
4
4
|
Summary: python for asset management
|
|
5
5
|
License: Proprietary License
|
|
6
6
|
Author: Derek Snow
|
|
@@ -15,6 +15,7 @@ Provides-Extra: full
|
|
|
15
15
|
Requires-Dist: boto3 (>=1.20)
|
|
16
16
|
Requires-Dist: dash (>=2.0) ; extra == "full"
|
|
17
17
|
Requires-Dist: dash-bootstrap-components (>=1.6.0) ; extra == "full"
|
|
18
|
+
Requires-Dist: edgar-tool (>=1.3.3,<2.0.0)
|
|
18
19
|
Requires-Dist: great-tables (>=0.9) ; extra == "full"
|
|
19
20
|
Requires-Dist: ipywidgets (>=8.1.3) ; extra == "full"
|
|
20
21
|
Requires-Dist: joblib (>=1.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "sovai"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.24"
|
|
4
4
|
description = "python for asset management"
|
|
5
5
|
authors = ["Derek Snow <d.snow@outlook.com>"]
|
|
6
6
|
license = "Proprietary License"
|
|
@@ -60,6 +60,7 @@ ipywidgets = {version = ">=8.1.3", optional = true}
|
|
|
60
60
|
polars-talib = {version = "0.1.3", optional = true}
|
|
61
61
|
dash-bootstrap-components = {version = ">=1.6.0", optional = true}
|
|
62
62
|
rapidfuzz = "^3.9.7"
|
|
63
|
+
edgar-tool = "^1.3.3"
|
|
63
64
|
|
|
64
65
|
[tool.poetry.extras]
|
|
65
66
|
full = [
|
|
@@ -7,7 +7,7 @@ from .basic_auth import basic_auth
|
|
|
7
7
|
from .token_auth import token_auth
|
|
8
8
|
from .utils.file_management import save_or_update_tickers, save_or_update_codes
|
|
9
9
|
import warnings
|
|
10
|
-
warnings.filterwarnings("ignore", category=FutureWarning
|
|
10
|
+
warnings.filterwarnings("ignore", category=FutureWarning)
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
__version__ = "0.1.25"
|
|
@@ -124,9 +124,10 @@ def plot_bankruptcy_monthly_line(df, tickers=None):
|
|
|
124
124
|
# Set default tickers if None is provided
|
|
125
125
|
if tickers is None:
|
|
126
126
|
tickers = ["TSLA", "LULU"]
|
|
127
|
-
|
|
127
|
+
|
|
128
128
|
# Convert the tickers list to a string (limit to 5 tickers)
|
|
129
129
|
tickers_str = ", ".join(tickers[:5])
|
|
130
|
+
|
|
130
131
|
ticker_input = widgets.Text(value=tickers_str, description="Tickers:")
|
|
131
132
|
probability_column_selector = widgets.Dropdown(
|
|
132
133
|
options=df.columns, value="probability", description="Probability"
|
|
@@ -140,15 +141,13 @@ def plot_bankruptcy_monthly_line(df, tickers=None):
|
|
|
140
141
|
same_plot_selector = widgets.Checkbox(value=False, description="Same Plot")
|
|
141
142
|
dark_mode_selector = widgets.Checkbox(value=True, description="Dark Mode")
|
|
142
143
|
|
|
143
|
-
#
|
|
144
|
-
|
|
145
|
-
description="Plot", layout=widgets.Layout(border="solid 1px blue")
|
|
146
|
-
)
|
|
144
|
+
# Create an output widget to display the plot
|
|
145
|
+
output = widgets.Output()
|
|
147
146
|
|
|
148
147
|
# Create a function to update the plot
|
|
149
148
|
def update_plot(change):
|
|
150
149
|
with output:
|
|
151
|
-
clear_output(wait=True)
|
|
150
|
+
output.clear_output(wait=True)
|
|
152
151
|
try:
|
|
153
152
|
tickers = [ticker.strip() for ticker in ticker_input.value.split(",")]
|
|
154
153
|
plot_ticker_probabilities(
|
|
@@ -175,18 +174,8 @@ def plot_bankruptcy_monthly_line(df, tickers=None):
|
|
|
175
174
|
same_plot_selector.observe(update_plot, names="value")
|
|
176
175
|
dark_mode_selector.observe(update_plot, names="value")
|
|
177
176
|
|
|
178
|
-
# Remove the on_click event from plot_button as it's no longer needed
|
|
179
|
-
# plot_button.on_click(on_plot_button_clicked)
|
|
180
|
-
|
|
181
|
-
# Create an output widget to display the plot
|
|
182
|
-
output = widgets.Output()
|
|
183
|
-
|
|
184
|
-
# Initially, display the current plot
|
|
185
|
-
update_plot(None) # Pass None because the event parameter is not used
|
|
186
|
-
|
|
187
177
|
# Function to toggle the visibility of the widget controls
|
|
188
178
|
def toggle_controls(b):
|
|
189
|
-
# Modify to collapse the controls
|
|
190
179
|
controls_container.layout.display = (
|
|
191
180
|
"none" if controls_container.layout.display == "flex" else "flex"
|
|
192
181
|
)
|
|
@@ -207,6 +196,10 @@ def plot_bankruptcy_monthly_line(df, tickers=None):
|
|
|
207
196
|
# Display the widgets and the output widget
|
|
208
197
|
display(controls_container, output)
|
|
209
198
|
|
|
199
|
+
# Initially, display the current plot
|
|
200
|
+
update_plot(None) # Pass None because the event parameter is not used
|
|
201
|
+
|
|
202
|
+
|
|
210
203
|
|
|
211
204
|
def plot_pca_clusters(df, target="target", max_lag=12, max_date=None):
|
|
212
205
|
"""
|
|
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
|
|
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
|
|
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
|
|
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
|