Fall back to `Contract.exchange` in `has_holiday()`
Use `con.exchange` as fallback when `con.primaryExchange` is empty in `has_holiday()` to handle contracts like futures that don't always set a `primaryExchange`. Deats, - extract `con: Contract` from `con_deats.contract` for reuse. - use `con.primaryExchange or con.exchange` to ensure a valid exchange code is always passed to the calendar lookup. - add `Contract` to `TYPE_CHECKING` imports. (this commit msg was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codeib_async_CONT
parent
2c45f90c5d
commit
6fa805b0a4
|
|
@ -43,6 +43,7 @@ from pendulum import (
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from ib_async import (
|
from ib_async import (
|
||||||
TradingSession,
|
TradingSession,
|
||||||
|
Contract,
|
||||||
ContractDetails,
|
ContractDetails,
|
||||||
)
|
)
|
||||||
from exchange_calendars.exchange_calendars import (
|
from exchange_calendars.exchange_calendars import (
|
||||||
|
|
@ -82,7 +83,12 @@ def has_holiday(
|
||||||
|
|
||||||
'''
|
'''
|
||||||
tz: str = con_deats.timeZoneId
|
tz: str = con_deats.timeZoneId
|
||||||
exch: str = con_deats.contract.primaryExchange
|
con: Contract = con_deats.contract
|
||||||
|
exch: str = (
|
||||||
|
con.primaryExchange
|
||||||
|
or
|
||||||
|
con.exchange
|
||||||
|
)
|
||||||
|
|
||||||
# XXX, ad-hoc handle any IB exchange which are non-std
|
# XXX, ad-hoc handle any IB exchange which are non-std
|
||||||
# via lookup table..
|
# via lookup table..
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue