mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-10-23 00:42:56 +00:00
[tasks] Add support for explicit time parameter
This commit is contained in:
@@ -503,6 +503,13 @@ async def sane_wait_for(futures, *, timeout):
|
||||
return done
|
||||
|
||||
|
||||
def compute_timedelta(dt: datetime.datetime):
|
||||
if dt.tzinfo is None:
|
||||
dt = dt.astimezone()
|
||||
now = datetime.datetime.now(datetime.timezone.utc)
|
||||
return max((dt - now).total_seconds(), 0)
|
||||
|
||||
|
||||
async def sleep_until(when: datetime.datetime, result: Optional[T] = None) -> Optional[T]:
|
||||
"""|coro|
|
||||
|
||||
@@ -520,11 +527,8 @@ async def sleep_until(when: datetime.datetime, result: Optional[T] = None) -> Op
|
||||
result: Any
|
||||
If provided is returned to the caller when the coroutine completes.
|
||||
"""
|
||||
if when.tzinfo is None:
|
||||
when = when.astimezone()
|
||||
now = datetime.datetime.now(datetime.timezone.utc)
|
||||
delta = (when - now).total_seconds()
|
||||
return await asyncio.sleep(max(delta, 0), result)
|
||||
delta = compute_timedelta(when)
|
||||
return await asyncio.sleep(delta, result)
|
||||
|
||||
|
||||
def utcnow() -> datetime.datetime:
|
||||
|
Reference in New Issue
Block a user