kabukit 0.5.4__tar.gz → 0.6.0__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 (40) hide show
  1. {kabukit-0.5.4 → kabukit-0.6.0}/PKG-INFO +1 -1
  2. {kabukit-0.5.4 → kabukit-0.6.0}/pyproject.toml +1 -1
  3. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/client.py +30 -1
  4. kabukit-0.6.0/src/kabukit/jquants/topix.py +16 -0
  5. {kabukit-0.5.4 → kabukit-0.6.0}/LICENSE +0 -0
  6. {kabukit-0.5.4 → kabukit-0.6.0}/README.md +0 -0
  7. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/__init__.py +0 -0
  8. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/analysis/__init__.py +0 -0
  9. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/analysis/indicators.py +0 -0
  10. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/analysis/preprocess.py +0 -0
  11. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/analysis/screener.py +0 -0
  12. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/analysis/visualization.py +0 -0
  13. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/cli/__init__.py +0 -0
  14. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/cli/app.py +0 -0
  15. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/cli/auth.py +0 -0
  16. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/cli/get.py +0 -0
  17. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/__init__.py +0 -0
  18. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/base.py +0 -0
  19. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/client.py +0 -0
  20. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/info.py +0 -0
  21. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/list.py +0 -0
  22. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/prices.py +0 -0
  23. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/reports.py +0 -0
  24. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/core/statements.py +0 -0
  25. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/edinet/__init__.py +0 -0
  26. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/edinet/client.py +0 -0
  27. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/edinet/concurrent.py +0 -0
  28. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/edinet/doc.py +0 -0
  29. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/__init__.py +0 -0
  30. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/concurrent.py +0 -0
  31. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/info.py +0 -0
  32. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/prices.py +0 -0
  33. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/schema.py +0 -0
  34. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/jquants/statements.py +0 -0
  35. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/py.typed +0 -0
  36. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/utils/__init__.py +0 -0
  37. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/utils/concurrent.py +0 -0
  38. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/utils/config.py +0 -0
  39. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/utils/date.py +0 -0
  40. {kabukit-0.5.4 → kabukit-0.6.0}/src/kabukit/utils/params.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kabukit
3
- Version: 0.5.4
3
+ Version: 0.6.0
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>
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "kabukit"
7
- version = "0.5.4"
7
+ version = "0.6.0"
8
8
  description = "A Python toolkit for Japanese financial market data, supporting J-Quants and EDINET APIs."
9
9
  readme = "README.md"
10
10
  license = { file = "LICENSE" }
@@ -12,7 +12,7 @@ from kabukit.core.client import Client
12
12
  from kabukit.utils.config import load_dotenv, set_key
13
13
  from kabukit.utils.params import get_params
14
14
 
15
- from . import info, prices, statements
15
+ from . import info, prices, statements, topix
16
16
 
17
17
  if TYPE_CHECKING:
18
18
  from collections.abc import AsyncIterator
@@ -342,3 +342,32 @@ class JQuantsClient(Client):
342
342
  return df
343
343
 
344
344
  return df.with_columns(pl.col("^.*Date$").str.to_date("%Y-%m-%d", strict=False))
345
+
346
+ async def get_topix(
347
+ self,
348
+ from_: str | datetime.date | None = None,
349
+ to: str | datetime.date | None = None,
350
+ ) -> DataFrame:
351
+ """日次のTOPIX指数データを取得する。
352
+
353
+ Args:
354
+ from_: 取得期間の開始日。
355
+ to: 取得期間の終了日。
356
+
357
+ Returns:
358
+ 日次のTOPIX指数データを含むPolars DataFrame。
359
+
360
+ Raises:
361
+ HTTPStatusError: APIリクエストが失敗した場合。
362
+ """
363
+ params = get_params(from_=from_, to=to)
364
+
365
+ url = "/indices/topix"
366
+ name = "topix"
367
+
368
+ dfs = [df async for df in self.iter_pages(url, params, name)]
369
+ df = pl.concat(dfs)
370
+ if df.is_empty():
371
+ return df
372
+
373
+ return topix.clean(df)
@@ -0,0 +1,16 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ import polars as pl
6
+
7
+ if TYPE_CHECKING:
8
+ from polars import DataFrame
9
+
10
+
11
+ def clean(df: DataFrame) -> DataFrame:
12
+ return df.select(
13
+ pl.col("Date").str.to_date("%Y-%m-%d"),
14
+ pl.lit("TOPIX").alias("Code"),
15
+ pl.exclude("Date"),
16
+ )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes