数分後に下記のようなissueを投稿する。
背景
後述の例の通り、始まりと終わりの年月日を引数として要求するメソッドが複数存在する。それらについて、あるものは datetime をとり、別のものは str をとる。
なお、 str の場合、yyyymmdd の形式で8桁の数値を str で要求する。
提案
提案の内容
下記の通り、年月日を要求するメソッドについて、その型を yyyymmdd 形式の str に統一する事を提案する。
一例として、下記の通り修正のイメージを示す。
def get_price_range(
self,
- start_dt: datetime = datetime(2017, 1, 1, tzinfo=tz.gettz("Asia/Tokyo")),
- end_dt: datetime = datetime.now(tz.gettz("Asia/Tokyo")),
+ from_yyyymmdd: str = '20170101',
+ to_yyyymmdd_dt: str = None,
) -> pd.DataFrame:
提案の理由
datatime ではなく str を選択した理由は、 datatime で受け取っている理由が、 pd.date_range()に渡すためである。 pd.date_range() は8桁の数値で str を渡しても、 datetime と同じように解釈してくれる。このため、引数として受け取った str をそのまま渡してやれば良いと考えられる。
pd.date_range('20220101', '20220214') # => DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08', '2022-01-09', '2022-01-10', '2022-01-11', '2022-01-12', '2022-01-13', '2022-01-14', '2022-01-15', '2022-01-16', '2022-01-17', '2022-01-18', '2022-01-19', '2022-01-20', '2022-01-21', '2022-01-22', '2022-01-23', '2022-01-24', '2022-01-25', '2022-01-26', '2022-01-27', '2022-01-28', '2022-01-29', '2022-01-30', '2022-01-31', '2022-02-01', '2022-02-02', '2022-02-03', '2022-02-04', '2022-02-05', '2022-02-06', '2022-02-07', '2022-02-08', '2022-02-09', '2022-02-10', '2022-02-11', '2022-02-12', '2022-02-13', '2022-02-14'], dtype='datetime64[ns]', freq='D')
Google colaboratoryでの実行結果:

例
str の箇所
https://github.com/J-Quants/jquants-api-client-python/blob/7be06db4cdbc945abfcf375399a9f5752c920471/jquantsapi/client.py#L229-L231 https://github.com/J-Quants/jquants-api-client-python/blob/7be06db4cdbc945abfcf375399a9f5752c920471/jquantsapi/client.py#L309