Tinkoff / invest-python

Tinkoff Invest Python gRPC client
https://tinkoff.github.io/invest-python/
Apache License 2.0
313 stars 90 forks source link

[Feature] Возвращаемые данные #228

Open FerrusM opened 1 year ago

FerrusM commented 1 year ago

Описание

  1. Даты, возвращаемые официальным python sdk, относятся к классу 'datetime.datetime', который включает также время, которое не всегда должно возвращаться. Например, поля maturity_date, state_reg_date, placement_date класса Bond, или поля coupon_date, fix_date, coupon_start_date, coupon_end_date класса Coupon и т.д. Почему бы для возврата параметров, которые должны содержать только даты, не использовать, например, класс datetime.date? Зачем возвращать лишние данные? Это путает.
  2. Иногда встречаются "пустые" datetime.datetime. Они выглядят так: "1970-01-01 00:00:00+00:00". Их можно получить в поле time класса LastPrice при запросе информации о цене последней сделки или в поле ipo_date класса Share и ещё много где. Если посмотреть, например, на даты IPO акций, то можно заметить, что некоторые акции содержат дату, меньшую, чем та, которая в sdk является "пустой" (акции US0028241000, US0003611052 и т.д.). Таким образом, "пустая" дата может быть принята за непустую, что может привести к ошибкам.
  3. Метод GetLastPrices иногда возвращает пустые данные. Как правило, в таких данных поле time имеет значение "1970-01-01 00:00:00+00:00", а поле price значение 0.0. Приходится вручную отсеивать такие LastPrice. Было бы неплохо, если бы в возвращаемых данных явно указывалось то, что данные отсутствуют.

Желаемое решение

  1. Изменить тип возвращаемых дат (которые не должны содержать время) с datetime.datetime на datetime.date. 2, 3. В случае отсутствия запрашиваемых данных возвращать None, а не пустые данные.

Дополнительно

No response