sovai 0.2.49__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.
- {sovai-0.2.49 → sovai-0.2.52}/PKG-INFO +35 -32
- {sovai-0.2.49 → sovai-0.2.52}/pyproject.toml +41 -12
- {sovai-0.2.49 → sovai-0.2.52}/sovai/__init__.py +6 -2
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high.py +5 -5
- {sovai-0.2.49 → sovai-0.2.52}/LICENSE +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/README.md +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/data/codes.parq +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/data/tickers.parq +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/.DS_Store +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/api_config.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/assets/dropdown.css +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/assets/features_mapping.parq +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/basic_auth.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/computations/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/computations/functions.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/errors/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/errors/sovai_errors.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/anomalies.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/ask_df_llm.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/change_point_generator.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/clustering.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/core_kshape.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/cum_sum_torch.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/cusum.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/dimensionality_reduction.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/feature_extraction.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/feature_importance.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/feature_neutralizer.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/filter_df.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/fractional_differencing.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/nowcasting.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/pairwise.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/pandas_extensions.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/parallel_functions.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/pfa_feature_selector.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/regime_change.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/regime_change_pca.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/shapley_global_importance.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/shapley_importance.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/signal_evaluation.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/technical_indicators.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/time_decomposition.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/extensions/weight_optimization.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_compute.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_data copy.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_data.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_reports.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/get_tools.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/accounting/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/accounting/accounting_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/allocation/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/allocation/allocation_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/bankruptcy/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/bankruptcy/bankruptcy_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/breakout/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/breakout/breakout_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/corp_risk/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/corp_risk/corp_risk_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/earnings_surprise/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/earnings_surprise/earnings_surprise_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/insider/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/insider/insider_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/institutional/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/institutional/institutional_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/news/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/news/news_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/ratios/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/plots/ratios/ratios_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/accounting/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/accounting/accounting_balance_sheet.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/bankruptcy/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/bankruptcy/bankruptcy_monthly_top.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/general/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/general/general_plots.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/news/__inti__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/reports/news/news_econometric_analysis.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/studies/nowcasting.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/token_auth.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/authentication/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/authentication/authentication.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/sec/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/sec/graphs.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/sec/llm_code_generator.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/sec/sec_10_k_8_k_filings.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/tools/sec/sec_edgar_search.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/__init__.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/client_side.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/client_side_s3.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high copy 2.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/client_side_s3_part_high copy.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/converter.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/datetime_formats.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/file_management.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/get_tickers.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/helpers.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/pandas_extensions copy.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/plot.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/port_manager.py +0 -0
- {sovai-0.2.49 → sovai-0.2.52}/sovai/utils/stream.py +0 -0
- {sovai-0.2.49 → 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.
|
|
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
|
|
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
|
|
18
|
-
Requires-Dist: dash-bootstrap-components
|
|
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.
|
|
23
|
-
Requires-Dist: great-tables
|
|
24
|
-
Requires-Dist: ipywidgets (>=8.1.
|
|
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
|
|
27
|
-
Requires-Dist: matplotlib
|
|
28
|
-
Requires-Dist: mfles
|
|
29
|
-
Requires-Dist: networkx (>=3.3
|
|
30
|
-
Requires-Dist: numba
|
|
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
|
|
33
|
+
Requires-Dist: openai ; extra == "full"
|
|
33
34
|
Requires-Dist: pandas (>=1.0)
|
|
34
|
-
Requires-Dist: pexpect
|
|
35
|
-
Requires-Dist: plotly (>=
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: polars
|
|
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
|
|
42
|
-
Requires-Dist: rapidfuzz (>=3.9.7
|
|
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
|
|
45
|
-
Requires-Dist: s3fs (>=2024.
|
|
46
|
-
Requires-Dist: scikit-learn
|
|
47
|
-
Requires-Dist: scipy
|
|
48
|
-
Requires-Dist: seaborn (>=0.13.2
|
|
49
|
-
Requires-Dist: shap
|
|
50
|
-
Requires-Dist: skfolio
|
|
51
|
-
Requires-Dist: statsforecast
|
|
52
|
-
Requires-Dist: tensorly
|
|
53
|
-
Requires-Dist:
|
|
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
|
[](https://github.com/sovai-research/SovAI/actions/workflows/main.yml)
|
|
@@ -1,10 +1,43 @@
|
|
|
1
|
-
[
|
|
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.
|
|
7
|
+
version = "0.2.52"
|
|
4
8
|
description = "python for asset management"
|
|
5
|
-
authors = [
|
|
6
|
-
|
|
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.
|
|
69
|
-
gcsfs = "^2024.
|
|
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
|
-
[
|
|
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
|
-
|
|
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']
|
|
@@ -358,7 +358,7 @@ class DataLoader:
|
|
|
358
358
|
# logger.info(f"[{path}] Filter applied. Found {fragment_count} fragments. Schema after filtering: {dataset.schema}")
|
|
359
359
|
verbose_mode.log(f"[{path}] Filter applied. Schema after filtering: {dataset.schema}")
|
|
360
360
|
except Exception as filter_e:
|
|
361
|
-
verbose_mode.log(f"[{path}] Error applying filters: {filter_e}"
|
|
361
|
+
verbose_mode.log(f"[{path}] Error applying filters: {filter_e}")
|
|
362
362
|
verbose_mode.log(f"--- Loading Partition Failed (Filter Error): {path} ---")
|
|
363
363
|
return pd.DataFrame()
|
|
364
364
|
|
|
@@ -380,7 +380,7 @@ class DataLoader:
|
|
|
380
380
|
# Proceed to convert empty table to empty DataFrame
|
|
381
381
|
|
|
382
382
|
except Exception as to_table_e:
|
|
383
|
-
verbose_mode.log(f"[{path}] Error during dataset.to_table(columns={columns}): {to_table_e}"
|
|
383
|
+
verbose_mode.log(f"[{path}] Error during dataset.to_table(columns={columns}): {to_table_e}")
|
|
384
384
|
verbose_mode.log(f"[{path}] Dataset schema at time of error: {dataset.schema}")
|
|
385
385
|
verbose_mode.log(f"--- Loading Partition Failed (to_table Error): {path} ---")
|
|
386
386
|
return pd.DataFrame()
|
|
@@ -407,7 +407,7 @@ class DataLoader:
|
|
|
407
407
|
|
|
408
408
|
except Exception as e:
|
|
409
409
|
# Catch-all for other errors (e.g., ds.dataset creation failed)
|
|
410
|
-
verbose_mode.log(f"Unhandled error processing partition {path}: {e}"
|
|
410
|
+
verbose_mode.log(f"Unhandled error processing partition {path}: {e}")
|
|
411
411
|
verbose_mode.log(f"--- Loading Partition Failed (Unhandled Error): {path} ---")
|
|
412
412
|
return pd.DataFrame()
|
|
413
413
|
|
|
@@ -434,7 +434,7 @@ class DataLoader:
|
|
|
434
434
|
end_date_pa = pa.scalar(end_date_obj, type=pa.date32())
|
|
435
435
|
filters.append(ds.field('date') <= end_date_pa)
|
|
436
436
|
except Exception as e:
|
|
437
|
-
verbose_mode.log(f"Failed to build date filters (start={start_date}, end={end_date}): {e}"
|
|
437
|
+
verbose_mode.log(f"Failed to build date filters (start={start_date}, end={end_date}): {e}")
|
|
438
438
|
# Decide if you want to raise or return empty filters
|
|
439
439
|
# return [] # Return empty filters if parsing fails?
|
|
440
440
|
|
|
@@ -479,7 +479,7 @@ class DataLoader:
|
|
|
479
479
|
|
|
480
480
|
except Exception as e:
|
|
481
481
|
# This catches errors raised *after* submit, e.g., during future.result() processing if not caught inside load_partition
|
|
482
|
-
verbose_mode.log(f"Task failed for partition {path} during result retrieval: {e}"
|
|
482
|
+
verbose_mode.log(f"Task failed for partition {path} during result retrieval: {e}")
|
|
483
483
|
|
|
484
484
|
verbose_mode.log(f"Parallel loading finished. Collected results from {len(results)} non-empty partitions.")
|
|
485
485
|
return results
|
|
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
|
|
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
|