数分後に下記のような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