873 Commits

Author SHA1 Message Date
HigherOrderLogic
3e70a4e798
Fix typo in add_cog doc 2022-03-14 01:33:34 -04:00
Stocker
5aa696ccfa
Fix typing issues and improve typing completeness across the library
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: Josh <josh.ja.butt@gmail.com>
2022-03-13 23:52:10 -04:00
Rapptz
603681940f [tasks] Only correct for clock drift if an explicit time is given 2022-03-13 22:51:10 -04:00
Rapptz
f2586e9fe7 [tasks] Handle imaginary or ambiguous times due to DST transitions 2022-03-13 22:45:18 -04:00
Josh
a1c618215e
[commads] Change cog/extension load/unload methods to be async 2022-03-13 21:03:45 -04:00
Rapptz
a339e01047 [tasks] Compare using full datetime rather than sole time
Comparisons using just the time object without an attached date
are pretty buggy and incomplete -- comparisons only make sense when
given a particular instant of time.

Ref: #7676
2022-03-13 20:45:05 -04:00
Rapptz
64c6639f4b [tasks] Handle loop functions running multiple times due to clock drift 2022-03-13 11:36:00 -04:00
Rapptz
6a43d60acf [tasks] Refactor tasks to not store a time index state
It's better to recompute it every time rather than suffer from
maintaining the extra state.
2022-03-13 06:20:44 -04:00
Han Seung Min - 한승민
93af158b0c
Refactor loop code to allow usage of asyncio.run 2022-03-13 04:54:14 -04:00
Rapptz
0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz
d68f2db7cb [commands] Always respect guild IDs passed to cog adding and removal
Fixes #7657
2022-03-12 06:58:55 -05:00
Rapptz
9dea6caf20 Ensure cog app commands is a list rather than a dict
There was a remnant of it being a dict in the metaclass.
2022-03-11 21:30:49 -05:00
Sebastian Law
04535e4e1d
[tasks] use None instead of MISSING for internal attributes 2022-03-10 23:12:22 -05:00
Neon Jonn
adb69e7157
Fix some spelling mistakes 2022-03-10 20:45:16 -05:00
Rapptz
d210f799ee [commands] Fix cog eject behaviour with application commands
This was using the old attribute I forgot to change.
2022-03-10 05:33:54 -05:00
mysistersbrother
340f09a1c0
[commands] Update ScheduledEventConverter docs for clarity
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: ashish  <68690233+asheeeshh@users.noreply.github.com>
2022-03-10 00:20:11 -05:00
Rapptz
446bfa78b0 [commands] Allow Cog and app_commands interopability
This changeset allows app commands defined inside Cog to work as
expected. Likewise, by deriving app_commands.Group and Cog you can
make the cog function as a top level command on Discord.
2022-03-09 20:26:54 -05:00
Devon R
432de92e8a
Update translations, add Crowdin CLI config 2022-03-09 20:07:48 -05:00
z03h
93fba264ad
[commands] add ScheduledEvent converter 2022-03-09 17:56:50 -05:00
Aaron Hennessey
bf3eb0a7fe
[commands] Fix for _Bot Context generic in converters 2022-03-09 17:55:55 -05:00
Lilly Rose Berner
b308b54b89
[tasks] Fix change_interval raising when called during execution 2022-03-07 17:35:42 -05:00
Stocker
13355f3712
Fix HelpCommand.invoked_with raising an error
This would happen if the context hasn't been set yet.
2022-03-06 23:02:01 -05:00
Chrovo
aa725f4a4a
[docs] Fix typo in tasks docs 2022-03-06 19:03:36 -05:00
Josh
9d3fa3d29b
[commands] Simplify typing of command hooks 2022-03-06 03:44:20 -05:00
Josh
eaf94e84bc
Fix unbound ParamSpec to use ... over Any 2022-03-06 01:44:48 -05:00
Rapptz
625c416f18 [commands] Fix command parameter handling in HelpCommand 2022-03-06 01:39:43 -05:00
Alex Nørgaard
bfaee44b1f
[commands] Fix types for Bot.is_owner 2022-03-05 22:06:21 -05:00
jack1142
00b61e2148
Parameters->Attributes in NSFWChannelRequired's doc for consistency 2022-03-05 19:15:48 -05:00
Sebastian Law
5439a67056
[tasks] Fix sleep handling behaviour depending on interval type
Relative time intervals can be thought of as:

  for _ in range(count):
    await body()
    await asyncio.sleep(interval)

While explicit time intervals should be thought of as:

  times = [1pm, 2pm, 3pm, 12am]
  current = 0
  for _ in range(count):
    time = times.wrapping_index(current)  # magic to wrap around
    await utils.sleep_until(time)
    await body()
    current += 1
2022-03-05 05:12:22 -05:00
Josh
147948af9b
Use typing.Self throughout library 2022-03-01 07:53:24 -05:00
Nihaal Sangha
90cabd1673
Fix various typos 2022-02-27 21:19:19 -05:00
Sebastian Law
f1ac25809c
[tasks] Fix behavior when task overruns interval
In a scenario with `tasks.loop(seconds=5)`:

The task takes 30 seconds to run on the first two iterations, and then
is nearly instant for iterations afterward. The behavior should be
that the task runs at:

t = 0  (on time)
t = 30 (late, should've been at t = 5)
t = 60 (late, should've been at t = 10)
t = 60 (late, should've been at t = 15)
t = 60 (late, should've been at t = 20)
t = 60 (late, should've been at t = 25)
... 6 more iterations
t = 60 (on time)
t = 65 (on time)

In a scenario with a loop with explicit times set at UTC 1pm, 2pm, 
3pm, 4pm, and 5pm:

- The task takes 6 hour to run on the first iteration, and then is
  nearly instant for iterations afterward. Assuming the task is started
  at noon, the behavior should be that the task runs at `t = 0` and
  then at `t = 3600` 4 times ("catching up" on the missed iterations
  at 2pm, 3pm, 4pm, and 5pm).

- The task takes 30 days to run on the first iteration, and then is
  nearly instant for iterations afterward. Assuming the task is started
  at noon, the behavior should be that the task runs at `t = 0` and
  then at `t = 43200` 149 times ("catching up" on the missed
  iterations for the past month).

This behavior should be documented in the ext.tasks docs
2022-02-26 01:48:27 -05:00
Rapptz
8226f0df2c [commands] Require number of parameters at instantiation time
This allows it to bypass annotation evaluation for arguments that don't
matter like self and context.
2022-02-25 10:55:45 -05:00
Josh
39c5a4fdc3
Fix type-errors in commands extension 2022-02-23 08:04:49 -05:00
Josh
a315786869
Handle type-errors in upcoming pyright release 2022-02-22 08:51:11 -05:00
mniip
cd1dd7d670
[commands] Properly eject listeners with custom names 2022-02-21 21:42:00 -05:00
Sebastian Law
19ad64adda
[tasks] Fix initial loop execution running prematurely 2022-02-21 20:45:03 -05:00
Rapptz
88b520b5ab Reformat code using black
Segments where readability was hampered were fixed by appropriate
format skipping directives. New code should hopefully be black
compatible. The moment they remove the -S option is probably the moment
I stop using black though.
2022-02-20 08:04:58 -05:00
Josh
4dbe1af32f
Update sphinx and fix documentation issues 2022-02-19 22:35:32 -05:00
jack1142
dc19c6c7d5
Add positional-only arguments in more places 2022-02-19 20:28:01 -05:00
Vaskel
4e331704ae
[commands] Fix typing problems in commands.converter 2022-02-18 23:04:56 -05:00
Josh
61974411df
[commands] Fix issue in PartialMessageConverter._resolve channel 2022-02-18 23:00:52 -05:00
Josh
b1571ccc25
[commands] Fix Command.cog being reset after update 2022-02-18 08:31:45 -05:00
Nadir Chowdhury
a2a7b0f076
[tasks] Improve typing parity 2021-08-27 17:18:15 -04:00
ShashankKumarSaxena
b2ac327bd8
[commands] Fix a small typo in Context.invoke docs 2021-08-27 16:02:10 -04:00
Rapptz
2d8f299b6b Use MISSING instead of None for HelpCommand.context
It's basically just late-init
2021-08-25 09:53:55 -04:00
Josh
9727b56503
Fix references in docs 2021-08-22 05:50:28 -04:00
Rapptz
ea2d972666 Make global log variable in modules private 2021-08-22 02:33:51 -04:00
Josh
166152647c
[commands] Make GroupMixin Generic 2021-08-21 14:35:05 -04:00
Rapptz
9246bbc8e3 [commands] De-indent after hook call
Close #7412
2021-08-20 20:08:27 -04:00