kabukit 0.5.0__py3-none-any.whl → 0.5.1__py3-none-any.whl
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.
- kabukit/core/prices.py +16 -13
- kabukit/core/statements.py +17 -0
- kabukit/jquants/concurrent.py +2 -1
- {kabukit-0.5.0.dist-info → kabukit-0.5.1.dist-info}/METADATA +7 -7
- {kabukit-0.5.0.dist-info → kabukit-0.5.1.dist-info}/RECORD +7 -7
- {kabukit-0.5.0.dist-info → kabukit-0.5.1.dist-info}/WHEEL +0 -0
- {kabukit-0.5.0.dist-info → kabukit-0.5.1.dist-info}/entry_points.txt +0 -0
kabukit/core/prices.py
CHANGED
@@ -76,29 +76,32 @@ class Prices(Base):
|
|
76
76
|
.over("Code", "ReportDate")
|
77
77
|
.alias("CumulativeRatio"),
|
78
78
|
)
|
79
|
-
.
|
80
|
-
"Date",
|
81
|
-
"Code",
|
79
|
+
.with_columns(
|
82
80
|
(pl.col("IssuedShares", "TreasuryShares") * pl.col("CumulativeRatio"))
|
83
81
|
.round(0)
|
84
82
|
.cast(pl.Int64)
|
85
83
|
.name.prefix("Adjusted"),
|
86
84
|
)
|
85
|
+
.select("Date", "Code", "AdjustedIssuedShares", "AdjustedTreasuryShares")
|
87
86
|
)
|
88
87
|
|
89
88
|
data = self.data.join(adjusted, on=["Date", "Code"], how="left")
|
90
89
|
|
91
90
|
return self.__class__(data)
|
92
91
|
|
93
|
-
|
94
|
-
|
92
|
+
def with_forecast_profit(self, statements: Statements) -> Self:
|
93
|
+
"""時系列の予想純利益を列として追加する。
|
95
94
|
|
96
|
-
|
97
|
-
|
95
|
+
Args:
|
96
|
+
statements (Statements): 財務データを提供する`Statements`オブジェクト。
|
98
97
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
98
|
+
Returns:
|
99
|
+
Self: `ForecastProfit` 列が追加された、新しいPricesオブジェクト。
|
100
|
+
"""
|
101
|
+
data = self.data.join_asof(
|
102
|
+
statements.forecast_profit(),
|
103
|
+
on="Date",
|
104
|
+
by="Code",
|
105
|
+
check_sortedness=False,
|
106
|
+
)
|
107
|
+
return self.__class__(data)
|
kabukit/core/statements.py
CHANGED
@@ -22,3 +22,20 @@ class Statements(Base):
|
|
22
22
|
"TreasuryShares",
|
23
23
|
"AverageOutstandingShares",
|
24
24
|
)
|
25
|
+
|
26
|
+
def forecast_profit(self) -> DataFrame:
|
27
|
+
"""予想純利益を抽出する。
|
28
|
+
|
29
|
+
Returns:
|
30
|
+
DataFrame: Date, Code, ForecastProfit を含むDataFrame
|
31
|
+
"""
|
32
|
+
return (
|
33
|
+
self.data.with_columns(
|
34
|
+
pl.when(pl.col("TypeOfDocument").str.starts_with("FY"))
|
35
|
+
.then(pl.col("NextYearForecastProfit"))
|
36
|
+
.otherwise(pl.col("ForecastProfit"))
|
37
|
+
.alias("ForecastProfit"),
|
38
|
+
)
|
39
|
+
.filter(pl.col("ForecastProfit").is_not_null())
|
40
|
+
.select("Date", "Code", "ForecastProfit")
|
41
|
+
)
|
kabukit/jquants/concurrent.py
CHANGED
@@ -41,7 +41,7 @@ async def fetch(
|
|
41
41
|
DataFrame:
|
42
42
|
すべての銘柄の財務情報を含む単一のDataFrame。
|
43
43
|
"""
|
44
|
-
|
44
|
+
data = await concurrent.fetch(
|
45
45
|
JQuantsClient,
|
46
46
|
resource,
|
47
47
|
codes,
|
@@ -49,6 +49,7 @@ async def fetch(
|
|
49
49
|
progress=progress,
|
50
50
|
callback=callback,
|
51
51
|
)
|
52
|
+
return data.sort("Code", "Date")
|
52
53
|
|
53
54
|
|
54
55
|
async def fetch_all(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: kabukit
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.1
|
4
4
|
Summary: A Python toolkit for Japanese financial market data, supporting J-Quants and EDINET APIs.
|
5
5
|
Author: daizutabi
|
6
6
|
Author-email: daizutabi <daizutabi@gmail.com>
|
@@ -28,13 +28,13 @@ License: MIT License
|
|
28
28
|
Classifier: Development Status :: 4 - Beta
|
29
29
|
Classifier: Programming Language :: Python
|
30
30
|
Classifier: Programming Language :: Python :: 3.13
|
31
|
-
Requires-Dist: async-typer>=0.1
|
31
|
+
Requires-Dist: async-typer>=0.1.10
|
32
32
|
Requires-Dist: holidays>=0.81
|
33
|
-
Requires-Dist: httpx>=0.28
|
34
|
-
Requires-Dist: platformdirs>=4
|
35
|
-
Requires-Dist: polars>=1
|
36
|
-
Requires-Dist: python-dotenv>=1
|
37
|
-
Requires-Dist: typer>=0.19
|
33
|
+
Requires-Dist: httpx>=0.28.1
|
34
|
+
Requires-Dist: platformdirs>=4.4.0
|
35
|
+
Requires-Dist: polars>=1.34.0
|
36
|
+
Requires-Dist: python-dotenv>=1.1.1
|
37
|
+
Requires-Dist: typer>=0.19.2
|
38
38
|
Requires-Python: >=3.13
|
39
39
|
Project-URL: Documentation, https://daizutabi.github.io/kabukit/
|
40
40
|
Project-URL: Issues, https://github.com/daizutabi/kabukit/issues
|
@@ -13,16 +13,16 @@ kabukit/core/base.py,sha256=YQfGw3P2QshRdut3KhtrAleVvnFsIPOw5oGA9azypAA,1695
|
|
13
13
|
kabukit/core/client.py,sha256=tVq1r3zpOfjmOtnRI1KPZHgTgBZYIpJzfw15i2kAM48,676
|
14
14
|
kabukit/core/info.py,sha256=5BX7mDavF6g-b0KzHgKIFHUS5701BoaHtw1JcHSsy94,174
|
15
15
|
kabukit/core/list.py,sha256=AjnXzC9XIu21l6IBEHHAS5VAnfxTfkAA9m1WAOZJNa8,174
|
16
|
-
kabukit/core/prices.py,sha256=
|
16
|
+
kabukit/core/prices.py,sha256=d-fV6VU1GrdSPeiJY8yijhGPil7BKAAAmCp6p5Zqzes,4168
|
17
17
|
kabukit/core/reports.py,sha256=ch_xe84GbB17JTfmY3ArQqneQ2XOuvrAykBTAyNmWuM,177
|
18
|
-
kabukit/core/statements.py,sha256=
|
18
|
+
kabukit/core/statements.py,sha256=HJ0m5JVSpR2LEKZKbkpNn9JTvr7sABN269qPPnfuvaQ,1140
|
19
19
|
kabukit/edinet/__init__.py,sha256=PKa4D-jVpeoOkdVp9NwwpgAiGEBjqvmJLmpzF-9SlVk,101
|
20
20
|
kabukit/edinet/client.py,sha256=BlM7pjXpKweOo-ses41JiKinqRn4qerMN5NF7hgYKgg,3275
|
21
21
|
kabukit/edinet/concurrent.py,sha256=2YPzIFuuOB8-gL3CnHIlP486QH5d21qjKNKGCFK7Hzk,4707
|
22
22
|
kabukit/edinet/doc.py,sha256=6ZDgmm8DHmEMOA4NjNz-dHLMc7IzzYn-nVyMQGLWb8I,1220
|
23
23
|
kabukit/jquants/__init__.py,sha256=xY0H6x4_51ZBqbrT2TdmGGFbTD-hosZiDzVIz4UXPv0,112
|
24
24
|
kabukit/jquants/client.py,sha256=shAyJoOHUa3h1fFfHdlm2ZYdQL3Oauy2S9VTJfNb_RI,11523
|
25
|
-
kabukit/jquants/concurrent.py,sha256=
|
25
|
+
kabukit/jquants/concurrent.py,sha256=n_HMIQEkj1OqDo75iybzcpzVJkP-pNzjNnv3XTA5sxQ,3331
|
26
26
|
kabukit/jquants/info.py,sha256=AUymo6EtLdJ_L-0yNG1gd7rJ8Jkjw7tvsDM5Vw4QNFA,843
|
27
27
|
kabukit/jquants/prices.py,sha256=oApQpdgzHwPw11XHpdg8ccZS7kybGtV8APZlpD2L3Yw,882
|
28
28
|
kabukit/jquants/schema.py,sha256=aILl9cp9JDOaT2o3UlfavPGQC5s7n0ZkVBGKiTzdogs,9768
|
@@ -33,7 +33,7 @@ kabukit/utils/concurrent.py,sha256=m2zVqJUz4xFVpNbEc9YEaj3Jmbl82njupdm4_rBOoYQ,4
|
|
33
33
|
kabukit/utils/config.py,sha256=Jp-2TCnIj_QqA71FzYCkHXbvXvhw_1JVl4PR0foA1vM,618
|
34
34
|
kabukit/utils/date.py,sha256=DEC6Ac5LS8eiW6JtrmcD3U1pX4qzXtx4ale0swpO4Ag,937
|
35
35
|
kabukit/utils/params.py,sha256=qcaJbf6CWPUoZAZsYDTaZSnBUWeAersbWnR_iiYW9GM,1108
|
36
|
-
kabukit-0.5.
|
37
|
-
kabukit-0.5.
|
38
|
-
kabukit-0.5.
|
39
|
-
kabukit-0.5.
|
36
|
+
kabukit-0.5.1.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
|
37
|
+
kabukit-0.5.1.dist-info/entry_points.txt,sha256=vvX771TemoM-35vVizW3JJ70HvRXnd2tX4P1Btzyoxs,46
|
38
|
+
kabukit-0.5.1.dist-info/METADATA,sha256=0HQs_ZrD9Xp6ztWj-X9yIcjvYuC0S3bAfZ5XEfH4HyA,3207
|
39
|
+
kabukit-0.5.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|