You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What kind of feature are you missing? Where do you notice a shortcoming of PTB?
API 7.2 introduced BusinessOpeningHours and BOHInterval. Parsing this information for different use cases can require some logic on the bot side. It would be nice to have functionality that allows to
check if the business is open at a given time
get the opening hours for a given day
Both should be able to deal with timezones
Describe the solution you'd like
Add a method BOH.get_opening_hours_for_day(dtm.date, tzinfo=None) -> tuple[tuple[dtm.datetime, dtm.datetime], …].
The user would provide a specific day and optionally a timezone/tzinfo object and get as return value a sequence of the opening intervals for that day in the desired timezone. If no tzinfo is provided, `BOH.time_zone_namez should be used
Add a method BOH.is_open(dtm.datetime) -> bool, i.e. a method that would allow you to check if the business is open at that specified time. If the parameter is tz-aware, the return value should be considered for that timezone. If it's timezone naive, it should be considered in BOH.time_zone_name.
Handling of timezones currently requires additional dependencies like pytz. Once we drop support for Python3.8, we can instead use zoneinfo which as added to the std-lib in py3.9. Adding the 1st-party lib tzdata as required dependency to PTB would probably not be a bummer to me, though I'd also be okay with not doing that and instead giving hints to users that they might need to install that.
The text was updated successfully, but these errors were encountered:
What kind of feature are you missing? Where do you notice a shortcoming of PTB?
API 7.2 introduced
BusinessOpeningHours
andBOHInterval
. Parsing this information for different use cases can require some logic on the bot side. It would be nice to have functionality that allows toBoth should be able to deal with timezones
Describe the solution you'd like
Add a method
BOH.get_opening_hours_for_day(dtm.date, tzinfo=None) -> tuple[tuple[dtm.datetime, dtm.datetime], …]
.The user would provide a specific day and optionally a timezone/tzinfo object and get as return value a sequence of the opening intervals for that day in the desired timezone. If no tzinfo is provided, `BOH.time_zone_namez should be used
Add a method
BOH.is_open(dtm.datetime) -> bool
, i.e. a method that would allow you to check if the business is open at that specified time. If the parameter is tz-aware, the return value should be considered for that timezone. If it's timezone naive, it should be considered inBOH.time_zone_name
.Describe alternatives you've considered
No response
Additional context
See discussion in #4183
Handling of timezones currently requires additional dependencies like pytz. Once we drop support for Python3.8, we can instead use
zoneinfo
which as added to the std-lib in py3.9. Adding the 1st-party libtzdata
as required dependency to PTB would probably not be a bummer to me, though I'd also be okay with not doing that and instead giving hints to users that they might need to install that.The text was updated successfully, but these errors were encountered: