sovai 0.2.35__tar.gz → 0.2.38__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.35 → sovai-0.2.38}/PKG-INFO +3 -3
- sovai-0.2.38/data/codes.parq +0 -0
- sovai-0.2.38/data/tickers.parq +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/pyproject.toml +2 -2
- sovai-0.2.35/sovai/get_data.py → sovai-0.2.38/sovai/get_data copy.py +37 -22
- sovai-0.2.38/sovai/get_data.py +1391 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/authentication/authentication.py +3 -3
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/client_side_s3.py +1 -1
- sovai-0.2.38/sovai/utils/client_side_s3_part_high copy 2.py +432 -0
- sovai-0.2.38/sovai/utils/client_side_s3_part_high copy.py +407 -0
- sovai-0.2.38/sovai/utils/client_side_s3_part_high.py +733 -0
- sovai-0.2.35/sovai/utils/client_side_s3 copy.py +0 -206
- {sovai-0.2.35 → sovai-0.2.38}/LICENSE +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/README.md +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/.DS_Store +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/api_config.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/assets/dropdown.css +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/assets/features_mapping.parq +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/basic_auth.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/computations/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/computations/functions.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/errors/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/errors/sovai_errors.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/anomalies.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/ask_df_llm.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/change_point_generator.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/clustering.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/core_kshape.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/cum_sum_torch.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/cusum.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/dimensionality_reduction.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/feature_extraction.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/feature_importance.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/feature_neutralizer.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/filter_df.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/fractional_differencing.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/nowcasting.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/pairwise.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/pandas_extensions.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/parallel_functions.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/pfa_feature_selector.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/regime_change.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/regime_change_pca.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/shapley_global_importance.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/shapley_importance.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/signal_evaluation.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/technical_indicators.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/time_decomposition.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/extensions/weight_optimization.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/get_compute.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/get_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/get_reports.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/get_tools.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/accounting/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/accounting/accounting_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/allocation/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/allocation/allocation_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/bankruptcy/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/breakout/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/breakout/breakout_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/corp_risk/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/earnings_surprise/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/insider/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/insider/insider_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/institutional/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/institutional/institutional_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/news/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/news/news_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/ratios/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/plots/ratios/ratios_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/accounting/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/bankruptcy/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/general/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/general/general_plots.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/news/__inti__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/reports/news/news_econometric_analysis.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/studies/nowcasting.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/token_auth.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/authentication/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/sec/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/sec/graphs.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/sec/llm_code_generator.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/tools/sec/sec_edgar_search.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/__init__.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/client_side.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/converter.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/datetime_formats.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/file_management.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/get_tickers.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/helpers.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/pandas_extensions copy.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/plot.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/port_manager.py +0 -0
- {sovai-0.2.35 → sovai-0.2.38}/sovai/utils/stream.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: sovai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.38
|
|
4
4
|
Summary: python for asset management
|
|
5
5
|
License: Proprietary License
|
|
6
6
|
Author: Derek Snow
|
|
@@ -30,7 +30,7 @@ Requires-Dist: openai (>=1.0) ; extra == "full"
|
|
|
30
30
|
Requires-Dist: pandas (>=1.0)
|
|
31
31
|
Requires-Dist: pexpect (>=4.9.0) ; extra == "full"
|
|
32
32
|
Requires-Dist: plotly (>=5.0) ; extra == "full"
|
|
33
|
-
Requires-Dist: polars (>=
|
|
33
|
+
Requires-Dist: polars (>=1.2,<2.0)
|
|
34
34
|
Requires-Dist: polars-talib (==0.1.3) ; extra == "full"
|
|
35
35
|
Requires-Dist: pyarrow (>=5.0)
|
|
36
36
|
Requires-Dist: python-dateutil (>=2.8)
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "sovai"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.38"
|
|
4
4
|
description = "python for asset management"
|
|
5
5
|
authors = ["Derek Snow <d.snow@outlook.com>"]
|
|
6
6
|
license = "Proprietary License"
|
|
@@ -37,7 +37,7 @@ pyarrow = ">=5.0"
|
|
|
37
37
|
requests = ">=2.20"
|
|
38
38
|
python-dateutil = ">=2.8"
|
|
39
39
|
python-dotenv = ">=0.10"
|
|
40
|
-
polars = "
|
|
40
|
+
polars = "^1.2"
|
|
41
41
|
boto3 = ">=1.20"
|
|
42
42
|
joblib = ">=1.0"
|
|
43
43
|
rapidfuzz = "^3.9.7"
|
|
@@ -20,8 +20,11 @@ from sovai.errors.sovai_errors import InvalidInputData
|
|
|
20
20
|
from sovai.utils.converter import convert_data2df
|
|
21
21
|
from sovai.utils.stream import stream_data, stream_data_pyarrow
|
|
22
22
|
from sovai.utils.datetime_formats import datetime_format
|
|
23
|
+
|
|
23
24
|
from sovai.utils.client_side import client_side_frame
|
|
24
25
|
from sovai.utils.client_side_s3 import load_frame_s3
|
|
26
|
+
from sovai.utils.client_side_s3_part_high import load_frame_s3_partitioned_high
|
|
27
|
+
|
|
25
28
|
|
|
26
29
|
## Note run these for TEST - IT COULD BE HERE some silent problems
|
|
27
30
|
try:
|
|
@@ -234,9 +237,9 @@ endpoint_to_ticker = {
|
|
|
234
237
|
"/news/sentiment_score": None,
|
|
235
238
|
"/insider/trading": "",
|
|
236
239
|
"/wikipedia/views": "",
|
|
237
|
-
"/spending/contracts": "",
|
|
240
|
+
# "/spending/contracts": "",
|
|
238
241
|
"/spending/details": "",
|
|
239
|
-
"/spending/transactions": "",
|
|
242
|
+
# "/spending/transactions": "",
|
|
240
243
|
"/spending/products": "",
|
|
241
244
|
"/spending/location": "",
|
|
242
245
|
"/spending/compensation": "",
|
|
@@ -296,6 +299,9 @@ def normalize_endpoint(endpoint):
|
|
|
296
299
|
|
|
297
300
|
## If you also want access by full file, please also add to endpoint_to_ticker
|
|
298
301
|
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
# Define your endpoint sets
|
|
299
305
|
client_side_endpoints_gcs = {
|
|
300
306
|
"ratios/relative",
|
|
301
307
|
"market/prices",
|
|
@@ -306,7 +312,6 @@ client_side_endpoints_gcs = {
|
|
|
306
312
|
"lobbying/public",
|
|
307
313
|
}
|
|
308
314
|
|
|
309
|
-
## If you also want access by full file, please also add to endpoint_to_ticker
|
|
310
315
|
client_side_endpoints_s3 = {
|
|
311
316
|
"sec/10k",
|
|
312
317
|
"trials/predict",
|
|
@@ -314,9 +319,23 @@ client_side_endpoints_s3 = {
|
|
|
314
319
|
"trials/all/predict",
|
|
315
320
|
"trials/all/decribe",
|
|
316
321
|
"trials/all",
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
client_side_endpoints_s3_part_high = {
|
|
325
|
+
"patents/applications",
|
|
326
|
+
"patents/grants",
|
|
327
|
+
"clinical_trials",
|
|
328
|
+
"spending/awards"
|
|
329
|
+
|
|
317
330
|
|
|
318
331
|
}
|
|
319
332
|
|
|
333
|
+
# Create a list of handlers
|
|
334
|
+
handlers = [
|
|
335
|
+
(client_side_endpoints_gcs, client_side_frame, "Grabbing GCS client side"),
|
|
336
|
+
(client_side_endpoints_s3, load_frame_s3, "Grabbing S3 client side"),
|
|
337
|
+
(client_side_endpoints_s3_part_high, load_frame_s3_partitioned_high, "Grabbing S3 Partitioned High client side"),
|
|
338
|
+
]
|
|
320
339
|
|
|
321
340
|
|
|
322
341
|
# In your main function or wherever this logic is implemented:
|
|
@@ -604,26 +623,22 @@ def data(
|
|
|
604
623
|
|
|
605
624
|
normalized_endpoint = normalize_endpoint(endpoint)
|
|
606
625
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
)
|
|
616
|
-
|
|
626
|
+
# ACTAULLY I DON'T CARE, TICKERS CAN BE NONE FOR PATENTS
|
|
627
|
+
|
|
628
|
+
# Iterate through the handlers to find a matching handler
|
|
629
|
+
for endpoint_set, handler_func, message in handlers:
|
|
630
|
+
if (
|
|
631
|
+
normalized_endpoint in endpoint_set and
|
|
632
|
+
(tickers is not None or start_date is not None) and
|
|
633
|
+
frequency is None
|
|
634
|
+
):
|
|
635
|
+
verbose_mode.vprint(message)
|
|
636
|
+
_query_cache[cache_key] = handler_func(
|
|
637
|
+
normalized_endpoint, tickers, columns, start_date, end_date
|
|
638
|
+
)
|
|
639
|
+
return _query_cache[cache_key]
|
|
640
|
+
|
|
617
641
|
|
|
618
|
-
elif (
|
|
619
|
-
normalized_endpoint in client_side_endpoints_s3
|
|
620
|
-
and tickers is not None
|
|
621
|
-
and frequency is None
|
|
622
|
-
):
|
|
623
|
-
verbose_mode.vprint("Grabbing s3 client side")
|
|
624
|
-
_query_cache[cache_key] = load_frame_s3(
|
|
625
|
-
normalized_endpoint, tickers, columns, start_date, end_date)
|
|
626
|
-
return _query_cache[cache_key]
|
|
627
642
|
try:
|
|
628
643
|
if tickers is not None and not is_all(tickers):
|
|
629
644
|
params = ticker_mapper(params,verbose)
|