From 3eb5ff4e3f0a841d28d8c742eba2e562f9fc2231 Mon Sep 17 00:00:00 2001
From: ChrisLovering [Breaking] #207: Enable more ruff linting rules. See [Support] #204: Document the instance attributes of [Support] #206: Bump ruff from 0.1.15 to 0.2.2, using the new lint config namespace, and linting with the new rules. An async transport method for statsd communication. Bases: An async implementation of Create a new Changelog#
Next 10.x feature release
+
diff --git a/main/development.html b/main/development.html
index c36a84a1..e31d79d3 100644
--- a/main/development.html
+++ b/main/development.html
@@ -279,86 +279,6 @@
v9.0.0
- GitHub release notes
for breaking changes.pydis_core.BotBase
.
StatsClientBase
statsd.client.base.StatsClientBase
that supports async stat communication.
AsyncStatsClient
.
asyncio.loop.create_datagram_endpoint
.
host (str
) – The host to connect to.
port (int
) – The port to connect to.
Use asyncio.loop.create_datagram_endpoint
from the loop given on init to create a socket.
Useful utilities and tools for Discord bot development.
Bases: Bot
A sub-class that implements many common features that Python Discord bots use.
ID of the guild that the bot belongs to.
The http session used for sending out HTTP requests.
The API client used for communications with the site service.
The url that statsd sends metrics to.
The redis session used to communicate with the Redis instance.
The statsd client that sends metrics.
All extensions that were found within the module
passed to
self.load_extensions
. Use self.extensions
to get the loaded extensions.
Initialise the base bot instance.
guild_id (int
) – The ID of the guild used for wait_until_guild_available()
.
allowed_roles (list
) – A list of role IDs that the bot is allowed to mention.
http_session (aiohttp.ClientSession) – The session to use for the bot.
redis_session (Optional
[RedisSession
]) – The async_rediscache.RedisSession to use for the bot.
api_client (Optional
[APIClient
]) – The pydis_core.site_api.APIClient
instance to use for the bot.
statsd_url (Optional
[str
]) – The URL of the statsd server to use for the bot. If not given,
+
redis_session (RedisSession
| None
) – The async_rediscache.RedisSession to use for the bot.
api_client (APIClient
| None
) – The pydis_core.site_api.APIClient
instance to use for the bot.
statsd_url (str
| None
) – The URL of the statsd server to use for the bot. If not given,
a dummy statsd client will be created.
Add the given cog
to the bot and log the operation.
Add command
as normal and then add its root aliases to the bot.
Not implemented! Re-instantiate the bot instead of attempting to re-use a closed one.
Close the Discord connection, and the aiohttp session, connector, statsd client, and resolver.
Load all the extensions within the given module
and save them to self.all_extensions
.
Log the given message to #dev-log.
Set the internal guild available event when self.guild_id becomes available.
If the cache appears to still be empty (no members, no channels, or no roles), the event will not be set and guild_available_but_cache_empty event will be emitted.
@@ -639,7 +559,7 @@ will not be set and guild_available_but_cache_empty event will be eClear the internal guild available event when self.guild_id becomes unavailable.
Ping all required services on setup to ensure they are up before starting.
Overwrite default Discord.py behaviour to process commands only after ensuring extensions are loaded.
This extension check is only relevant for clients that make use of pydis_core.BotBase.load_extensions
.
Remove a command/alias as normal and then remove its root aliases from the bot.
Individual root aliases cannot be removed by this function. To remove them, either remove the entire command or manually edit bot.all_commands.
An async init to startup generic services.
Connects to statsd, and calls
AsyncStatsClient.create_socket
@@ -700,7 +620,7 @@ and
Wait until the guild that matches the guild_id
given at init is available (and the cache is ready).
The on_ready event is inadequate because it only waits 2 seconds for a GUILD_CREATE gateway event before giving up and thus not populating the cache for unavailable guilds.
@@ -715,14 +635,14 @@ gateway event before giving up and thus not populating the cache for unavailableBases: Exception
Raised when attempting to paginate with empty contents.
Bases: Paginator
A class that aids in paginating code blocks for Discord messages.
This function overrides the Paginator.__init__ from inside discord.ext.commands.
It overrides in order to allow us to configure the maximum number of lines per page.
Adds a line to the current page.
If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -774,7 +694,7 @@ page at a reasonable size.
Use a paginator and set of reactions to provide pagination over a set of lines.
The reactions are used to switch page, or to finish with pagination.
When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -805,7 +725,7 @@ to any user with a moderation role.
Example: @@ -818,7 +738,7 @@ to any user with a moderation role.
Bases: BaseModel
The emojis that will be used for pagination.
Bases: Exception
Exception class for startup errors.
An API wrapper around the Site API.
Bases: object
A wrapper for the Django Site API.
Initialize a new APIClient
instance.
Close the aiohttp session.
Equivalent to APIClient.request()
with DELETE passed as the method.
Equivalent to APIClient.request()
with GET passed as the method.
Raise ResponseCodeError
for non-OK response if an exception should be raised.
Equivalent to APIClient.request()
with PATCH passed as the method.
Equivalent to APIClient.request()
with POST passed as the method.
Equivalent to APIClient.request()
with PUT passed as the method.
Send an HTTP request to the site API and return the JSON response.
The JSON response the API returns, or None
if the response code is 204.
Bases: ValueError
Raised in APIClient.request()
when a non-OK HTTP response is received.
Initialize a new ResponseCodeError
instance.
response (aiohttp.ClientResponse
) – The response object from the request.
response_json (Optional
[dict
]) – The JSON response returned from the request, if any.
response_text (Optional
[str
]) – The text of the request, if any.
response_json (dict
| None
) – The JSON response returned from the request, if any.
response_text (str
| None
) – The text of the request, if any.
Return a string representation of the error.
Utilities related to custom caches.
Bases: object
LRU cache implementation for coroutines.
Once the cache exceeds the maximum size, keys are deleted in FIFO order.
An offset may be optionally provided to be applied to the coroutine’s arguments when creating the cache key.
Decorator for async cache.
Initialise a new AsyncCache
instance.
Clear cache instance.
Useful helper functions for interacting with various discord channel objects.
Attempt to get or fetch the given channel_id
from the bots cache, and return it.
Return whether the given channel
in the the category with the id category_id
.
Bases: CheckFailure
Raised when a context-specific check fails.
Bases: ContextCheckFailure
Raised when the in_whitelist check fails.
Decorate a command to have a cooldown, which can be bypassed by users with specified roles.
Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.
Verify if the context’s author has any of the specified roles.
This check will always fail if the context is a DM, since DMs don’t have roles.
Verify if the context’s author doesn’t have any of the specified roles.
This check will always fail if the context is a DM, since DMs don’t have roles.
Check if a command was issued in a context that is whitelisted by channel, category, or roles.
Cleans a text argument or replied message’s content.
Helpers for setting a cooldown on commands.
Bases: CommandError
, Generic
[P
, R
]
Raised when a command is invoked while on cooldown.
Run the command this cooldown blocked.
The command’s signature.
The command’s return value.
alias of TypeVar(‘R’)
Prevent duplicate invocations of a command with the same arguments in a channel for cooldown_duration
seconds.
cooldown_duration (float
) – Length of the cooldown in seconds.
send_notice (bool
) – If True
, notify the user about the cooldown with a reply.
args_preprocessor (Optional
[Callable
[[ParamSpec
(P
)], Iterable
[object
]]]) – If specified, this function is called with the args and kwargs the function is called with,
+
args_preprocessor (Callable
[[ParamSpec
(P
)], Iterable
[object
]] | None
) – If specified, this function is called with the args and kwargs the function is called with,
its return value is then used to check for the cooldown instead of the raw arguments.
Handles discord.Forbidden
90001 errors, or re-raises if error
isn’t a 90001 error.
Utils for manipulating functions.
Bases: Exception
Raised on a conflict between the globals used to resolve annotations of a wrapped function and its wrapper.
Update the decorated function to look like wrapped
, and update globals for discord.py forwardref evaluation.
See update_wrapper_globals()
for more details on how the globals are updated.
Return a value from arguments based on a name or position.
Call decorator_func with the value of the arg at the given name/position.
Bind args and kwargs to func and return a mapping of parameter names to argument values.
Default parameter values are also set.
Create a copy of wrapper
, the copy’s globals are updated with wrapped
's globals.
For forwardrefs in command annotations, discord.py uses the __global__
attribute of the function
to resolve their values. This breaks for decorators that replace the function because they have
diff --git a/main/output/pydis_core.utils.html b/main/output/pydis_core.utils.html
index 77465188..23439858 100644
--- a/main/output/pydis_core.utils.html
+++ b/main/output/pydis_core.utils.html
@@ -279,86 +279,6 @@
v9.0.0
-
Useful utilities and tools for Discord bot development.
Applies all common monkey patches for our bots.
Return an unqualified name given a qualified module/package name
.
Bases: Button
A button that can be added to a view to delete the message containing the view on click.
This button itself carries out no interaction checks, these should be done by the parent view.
@@ -469,12 +389,12 @@Delete the original message on button click.
Bases: View
A view that allows the original invoker and moderators to interact with it.
allowed_users (Sequence
[int
]) – A sequence of user’s ids who are allowed to interact with the view.
allowed_roles (Sequence
[int
]) – A sequence of role ids that are allowed to interact with the view.
timeout (Optional
[float
]) – Timeout in seconds from last interaction with the UI before no longer accepting input.
+
timeout (float
| None
) – Timeout in seconds from last interaction with the UI before no longer accepting input.
If None
then there is no timeout.
message (Optional
[Message
]) – The message to remove the view from on timeout. This can also be set with
+
message (Message
| None
) – The message to remove the view from on timeout. This can also be set with
view.message = await ctx.send( ... )`
, or similar, after the view is instantiated.
Ensure the user clicking the button is the view invoker, or a moderator.
None
-
-async on_timeout()[source]#
+async on_timeout()[source]#
Remove the view from self.message
if set.
- Return type:
@@ -534,7 +454,7 @@ If None
-
-stop()[source]#
+stop()[source]#
Stop listening for interactions, and remove the view from self.message
if set.
- Return type:
@@ -547,7 +467,7 @@ If None
-
-user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
+user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
Return whether the user is in the allowed_users list, or has a role from allowed_roles.
- Parameters:
diff --git a/main/output/pydis_core.utils.lock.html b/main/output/pydis_core.utils.lock.html
index e918d21b..f73a651c 100644
--- a/main/output/pydis_core.utils.lock.html
+++ b/main/output/pydis_core.utils.lock.html
@@ -279,86 +279,6 @@
v9.0.0
-
-
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -454,12 +374,12 @@
lock#
-
-exception LockedResourceError(resource_type, resource_id)[source]#
+exception LockedResourceError(resource_type, resource_id)[source]#
Bases: RuntimeError
Exception raised when an operation is attempted on a locked resource.
-
-type[source]#
+type[source]#
Name of the locked resource’s type
- Type:
@@ -470,7 +390,7 @@
-
-id[source]#
+id[source]#
ID of the locked resource
- Type:
@@ -481,38 +401,38 @@
-
-__init__(resource_type, resource_id)[source]#
+__init__(resource_type, resource_id)[source]#
class SharedEvent[source]#
Bases: object
Context manager managing an internal event exposed through the wait coro.
While any code is executing in this context manager, the underlying event will not be set;
when all of the holders finish the event will be set.
__enter__()[source]#
Increment the count of the active holders and clear the internal event.
+
__exit__(_exc_type, _exc_val, _exc_tb)[source]#
Decrement the count of the active holders; if 0 is reached set the internal event.
+
__init__()[source]#
+
async wait()[source]#
Wait for all active holders to exit.
- Return type:
@@ -525,7 +445,7 @@ when all of the holders finish the event will be set.
-
-lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
+lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.
If decorating a command, this decorator must go before (below) the command decorator.
@@ -552,12 +472,12 @@ and return None.
-
-lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
+lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
Apply the lock decorator using the value of the arg at the given name/position as the ID.
See lock docs for more information.
- Parameters:
-func (Optional
[Callable
[[Any
], Hashable
| Awaitable
[Hashable
]]]) – An optional callable or awaitable which will return the ID given the argument value.
+func (Callable
[[Any
], Hashable
| Awaitable
[Hashable
]] | None
) – An optional callable or awaitable which will return the ID given the argument value.
- Return type:
-
diff --git a/main/output/pydis_core.utils.logging.html b/main/output/pydis_core.utils.logging.html
index 92822369..4304a88f 100644
--- a/main/output/pydis_core.utils.logging.html
+++ b/main/output/pydis_core.utils.logging.html
@@ -279,86 +279,6 @@
v9.0.0
-
-
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -455,12 +375,12 @@
Common logging related functions.
-
-class CustomLogger(name, level=0)[source]#
+class CustomLogger(name, level=0)[source]#
Bases: Logger
Custom implementation of the logging.Logger
class with an added trace
method.
-
-trace(msg, *args, **kwargs)[source]#
+trace(msg, *args, **kwargs)[source]#
Log the given message with the severity "TRACE"
.
To pass exception information, use the keyword argument exc_info with a true value:
logger.trace("Houston, we have an %s", "interesting problem", exc_info=1)
@@ -484,11 +404,11 @@
-
-get_logger(name=None)[source]#
+get_logger(name=None)[source]#
Utility to make mypy recognise that logger is of type CustomLogger
.
- Parameters:
-name (Optional
[str
]) – The name given to the logger.
+-
- Return type:
-
@@ -501,7 +421,7 @@
-
-log_format[source]#
+log_format[source]#
A logging.Formatter
that can be used to standardise logging across all projects using pydis_core.
diff --git a/main/output/pydis_core.utils.members.html b/main/output/pydis_core.utils.members.html
index 30e22f48..02d81418 100644
--- a/main/output/pydis_core.utils.members.html
+++ b/main/output/pydis_core.utils.members.html
@@ -279,86 +279,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -455,11 +375,11 @@
Useful helper functions for interactin with discord.Member
objects.
-
-async get_or_fetch_member(guild, member_id)[source]#
+async get_or_fetch_member(guild, member_id)[source]#
Attempt to get a member from cache; on failure fetch from the API.
- Return type:
--
+
-
- Returns:
The discord.Member
or None
to indicate the member could not be found.
@@ -469,7 +389,7 @@
-
-async handle_role_change(member, coro, role)[source]#
+async handle_role_change(member, coro, role)[source]#
Await the given coro
with role
as the sole argument.
Handle errors that we expect to be raised from
discord.Member.add_roles
and discord.Member.remove_roles
.
diff --git a/main/output/pydis_core.utils.messages.html b/main/output/pydis_core.utils.messages.html
index 01929335..705d637a 100644
--- a/main/output/pydis_core.utils.messages.html
+++ b/main/output/pydis_core.utils.messages.html
@@ -279,86 +279,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -454,7 +374,7 @@
messages#
-
-reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
+reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
Check if a reaction’s emoji and author are allowed and the message is message_id.
If the user is not allowed, remove the reaction. Ignore reactions made by the bot.
If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.
diff --git a/main/output/pydis_core.utils.pagination.html b/main/output/pydis_core.utils.pagination.html
index 4895d7fa..5c06cca5 100644
--- a/main/output/pydis_core.utils.pagination.html
+++ b/main/output/pydis_core.utils.pagination.html
@@ -279,86 +279,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -454,14 +374,14 @@
pagination#
-
-exception EmptyPaginatorEmbedError[source]#
+exception EmptyPaginatorEmbedError[source]#
Bases: Exception
Raised when attempting to paginate with empty contents.
-
-class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
+class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
Bases: Paginator
A class that aids in paginating code blocks for Discord messages.
@@ -478,14 +398,14 @@
-
-__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
+__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
This function overrides the Paginator.__init__ from inside discord.ext.commands.
It overrides in order to allow us to configure the maximum number of lines per page.
-
-add_line(line='', *, empty=False)[source]#
+add_line(line='', *, empty=False)[source]#
Adds a line to the current page.
If a line on a page exceeds max_size characters, then max_size will go up to
scale_to_size for a single line before creating a new page for the overflow words. If it
@@ -513,7 +433,7 @@ page at a reasonable size.
-
-async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
+async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
Use a paginator and set of reactions to provide pagination over a set of lines.
The reactions are used to switch page, or to finish with pagination.
When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may
@@ -544,7 +464,7 @@ to any user with a moderation role.
- Return type:
--
+
-
Example:
@@ -557,7 +477,7 @@ to any user with a moderation role.
-
-class PaginationEmojis(**data)[source]#
+class PaginationEmojis(**data)[source]#
Bases: BaseModel
The emojis that will be used for pagination.
diff --git a/main/output/pydis_core.utils.paste_service.html b/main/output/pydis_core.utils.paste_service.html
index db3f09ac..510213e3 100644
--- a/main/output/pydis_core.utils.paste_service.html
+++ b/main/output/pydis_core.utils.paste_service.html
@@ -279,86 +279,6 @@
v9.0.0
-
-
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -454,13 +374,13 @@
paste_service#
-
-MAX_PASTE_SIZE = 524288[source]#
+MAX_PASTE_SIZE = 524288[source]#
The maximum allows size of a paste, in bytes.
-
-class PasteFile(**data)[source]#
+class PasteFile(**data)[source]#
Bases: BaseModel
A file to be pasted to the paste service.
@@ -496,7 +416,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
-
-class PasteResponse(**data)[source]#
+class PasteResponse(**data)[source]#
Bases: BaseModel
A successful response from the paste service.
@@ -531,28 +451,28 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
-
-exception PasteTooLongError[source]#
+exception PasteTooLongError[source]#
Bases: Exception
Raised when content is too large to upload to the paste service.
-
-exception PasteUnsupportedLexerError[source]#
+exception PasteUnsupportedLexerError[source]#
Bases: Exception
Raised when an unsupported lexer is used.
-
-exception PasteUploadError[source]#
+exception PasteUploadError[source]#
Bases: Exception
Raised when an error is encountered uploading to the paste service.
-
-async send_to_paste_service(*, files, http_session, paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
+async send_to_paste_service(*, files, http_session, paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
Upload some contents to the paste service.
- Parameters:
diff --git a/main/output/pydis_core.utils.regex.html b/main/output/pydis_core.utils.regex.html
index 9ac3e308..0afd6558 100644
--- a/main/output/pydis_core.utils.regex.html
+++ b/main/output/pydis_core.utils.regex.html
@@ -279,86 +279,6 @@
v9.0.0
-
-
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -455,7 +375,7 @@
Common regular expressions.
-
-DISCORD_INVITE[source]#
+DISCORD_INVITE[source]#
Regex for Discord server invites.
Warning
@@ -469,7 +389,7 @@ such as
-
-FORMATTED_CODE_REGEX[source]#
+FORMATTED_CODE_REGEX[source]#
Regex for formatted code, using Discord’s code blocks.
@@ -477,7 +397,7 @@ such as
-
-RAW_CODE_REGEX[source]#
+RAW_CODE_REGEX[source]#
Regex for raw code, not using Discord’s code blocks.
diff --git a/main/output/pydis_core.utils.scheduling.html b/main/output/pydis_core.utils.scheduling.html
index b7d15836..366fa6db 100644
--- a/main/output/pydis_core.utils.scheduling.html
+++ b/main/output/pydis_core.utils.scheduling.html
@@ -279,86 +279,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -455,7 +375,7 @@
Generic python scheduler.
-
-class Scheduler(name)[source]#
+class Scheduler(name)[source]#
Bases: object
Schedule the execution of coroutines and keep track of them.
When instantiating a Scheduler
, a name must be provided. This name is used to distinguish the
@@ -469,7 +389,7 @@ the same ID used to schedule it.
Any exception raised in a scheduled task is logged when the task is done.
-
-__contains__(task_id)[source]#
+__contains__(task_id)[source]#
Return True
if a task with the given task_id
is currently scheduled.
- Parameters:
@@ -486,7 +406,7 @@ the same ID used to schedule it.
-
-__init__(name)[source]#
+__init__(name)[source]#
Initialize a new Scheduler
instance.
- Parameters:
@@ -497,7 +417,7 @@ the same ID used to schedule it.
-
-cancel(task_id)[source]#
+cancel(task_id)[source]#
Unschedule the task identified by task_id
. Log a warning if the task doesn’t exist.
- Parameters:
@@ -511,7 +431,7 @@ the same ID used to schedule it.
-
-cancel_all()[source]#
+cancel_all()[source]#
Unschedule all known tasks.
- Return type:
@@ -522,7 +442,7 @@ the same ID used to schedule it.
-
-schedule(task_id, coroutine)[source]#
+schedule(task_id, coroutine)[source]#
Schedule the execution of a coroutine
.
If a task with task_id
already exists, close coroutine
instead of scheduling it. This
prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-used elsewhere.
@@ -541,7 +461,7 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
-
-schedule_at(time, task_id, coroutine)[source]#
+schedule_at(time, task_id, coroutine)[source]#
Schedule coroutine
to be executed at the given time
.
If time
is timezone aware, then use that timezone to calculate now() when subtracting.
If time
is naïve, then use UTC.
@@ -564,14 +484,14 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
-
-schedule_later(delay, task_id, coroutine)[source]#
+schedule_later(delay, task_id, coroutine)[source]#
Schedule coroutine
to be executed after delay
seconds.
If a task with task_id
already exists, close coroutine
instead of scheduling it. This
prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-used elsewhere.
- Parameters:
-delay (int
| float
) – How long to wait before starting the task.
+delay (float
) – How long to wait before starting the task.
task_id (Hashable
) – A unique ID to create the task with.
coroutine (Coroutine
) – The function to be called.
@@ -586,7 +506,7 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
-
-create_task(coro, *, suppressed_exceptions=(), event_loop=None, **kwargs)[source]#
+create_task(coro, *, suppressed_exceptions=(), event_loop=None, **kwargs)[source]#
Wrapper for creating an asyncio.Task
which logs exceptions raised in the task.
If the event_loop
kwarg is provided, the task is created from that event loop,
otherwise the running loop is used.
diff --git a/main/py-modindex.html b/main/py-modindex.html
index 8a8ddb9a..cfa98670 100644
--- a/main/py-modindex.html
+++ b/main/py-modindex.html
@@ -277,86 +277,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
diff --git a/main/search.html b/main/search.html
index 32d125b7..4e32a626 100644
--- a/main/search.html
+++ b/main/search.html
@@ -276,86 +276,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
diff --git a/main/searchindex.js b/main/searchindex.js
index a5e64eca..69b6209f 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["changelog", "development", "index", "output/pydis_core", "output/pydis_core.async_stats", "output/pydis_core.exts", "output/pydis_core.site_api", "output/pydis_core.utils", "output/pydis_core.utils.caching", "output/pydis_core.utils.channel", "output/pydis_core.utils.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"next": [0, 3, 20], "10": 0, "x": 0, "featur": [0, 1, 3], "releas": 0, "support": [0, 4, 7, 23], "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 17, 23], "attribut": [0, 7, 14], "pydis_cor": [0, 1, 3, 15, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "ruff": 0, "from": [0, 1, 3, 4, 6, 7, 9, 14, 15, 18, 20, 21, 23], "0": [0, 8, 10, 15, 16, 17], "1": [0, 17], "15": 0, "2": [0, 3, 15], "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 14, 16, 17, 18, 20, 21, 22, 23], "new": [0, 1, 3, 4, 6, 8, 14, 20, 23], "lint": 0, "config": [0, 3, 20, 21], "namespac": [0, 16, 23], "rule": 0, "7": 0, "30th": 0, "januari": 0, "2024": 0, "194": 0, "add": [0, 3, 10, 12, 20], "util": [0, 1, 2, 3, 8, 14, 15, 17], "interact": [0, 3, 7, 9, 20], "user_has_access": [0, 3, 7, 15], "helper": [0, 9, 12, 18], "function": [0, 3, 7, 8, 9, 12, 16, 17, 18, 20, 23], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "whether": [0, 3, 6, 9, 10, 15, 20], "given": [0, 3, 4, 7, 9, 11, 14, 16, 17, 18, 23], "user": [0, 3, 10, 12, 15, 19, 20], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "allowed_us": [0, 15, 19], "list": [0, 1, 3, 15, 20, 21], "ha": [0, 7, 10, 15], "role": [0, 1, 3, 10, 15, 18, 19, 20], "allowed_rol": [0, 1, 3, 15, 19, 20], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "depend": [0, 9], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 17, 22], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 18, 20, 22], "command": [0, 1, 3, 7, 9, 10, 12, 14, 16, 20], "check": [0, 3, 6, 7, 9, 12, 13, 15, 19, 23], "other": [0, 1, 16, 23], "bot": [0, 1, 3, 7, 9, 19], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 15, 17, 20, 23], "reaction_check": [0, 3, 7, 19], "predic": 0, "dictat": 0, "right": [0, 3, 20], "specif": [0, 10], "set": [0, 1, 3, 12, 14, 15, 16, 20], "reaction": [0, 3, 19, 20], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 20, 21, 23], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 20], "which": [0, 1, 3, 7, 10, 12, 14, 16, 20, 23], "allow": [0, 1, 3, 15, 19, 20, 21], "over": [0, 3, 20], "content": [0, 3, 11, 20, 21], "emb": [0, 3, 20], "emoji": [0, 3, 19, 20], "facilit": 0, "navig": [0, 1, 3, 20], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "bug": 0, "200": 0, "do": [0, 1, 9, 16], "attempt": [0, 3, 9, 16, 18, 20], "read": 0, "respons": [0, 6, 21], "bodi": 0, "http": [0, 3, 6, 21, 22], "code": [0, 1, 3, 6, 16, 20, 22], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 15, 20, 21], "did": 0, "thi": [0, 1, 3, 7, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 23], "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 15], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 20], "have": [0, 9, 10, 14, 17], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "3": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 17], "warn": [0, 23], "level": [0, 7, 17], "asyncio": [0, 4, 23], "info": [0, 1], "default": [0, 1, 3, 10, 14, 20, 21], "log_format": [0, 3, 7, 17], "log": [0, 3, 7, 13, 18, 23], "standardis": [0, 17], "across": [0, 3, 17, 20], "all": [0, 1, 3, 4, 7, 16, 17, 23], "servic": [0, 1, 3, 21], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 14], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "ext": [0, 2, 3, 7, 9, 10, 11, 20], "process_command": [0, 2, 3], "ensur": [0, 3, 15, 22], "ar": [0, 1, 3, 8, 14, 15, 19, 20, 22], "process": [0, 3], "until": [0, 3, 16, 22], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "break": [0, 3, 14, 20], "188": 0, "send": [0, 3, 6, 15, 20], "multipl": 0, "file": [0, 1, 21], "onc": [0, 8], "past": [0, 21, 23], "call": [0, 3, 12, 14, 23], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 21], "must": [0, 14, 16, 23], "now": [0, 1, 23], "provid": [0, 1, 3, 8, 11, 13, 20, 23], "pastefil": [0, 3, 7, 21], "184": 0, "remov": [0, 3, 15, 19, 20, 21], "store": [0, 3, 7, 8, 20], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 15], "when": [0, 3, 4, 6, 7, 8, 10, 12, 14, 16, 20, 21, 23], "stop": [0, 7, 15], "addit": 0, "exist": [0, 1, 23], "timeout": [0, 3, 15, 20], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 20, 22, 23], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "includ": [0, 1, 13], "abc": 0, "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 14], "expiri": 0, "label": [0, 15], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "18th": 0, "182": 0, "lexer": [0, 21], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 20, 21], "pythondiscord": [0, 21], "com": [0, 21], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 20], "handl": [0, 13, 18, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "error": [0, 3, 6, 7, 13, 18, 21], "schedul": [0, 3, 7], "179": 0, "upload": [0, 21], "text": [0, 3, 6, 11, 20, 21], "our": [0, 1, 7], "6th": 0, "mai": [0, 3, 8, 16, 20], "175": 0, "wait": [0, 3, 7, 16, 23], "guild": [0, 1, 3, 10, 18], "avail": [0, 3, 16], "befor": [0, 3, 10, 15, 16, 20, 23], "cog": [0, 3, 5], "march": 0, "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 15, 20, 23], "been": 0, "also": [0, 3, 7, 14, 15, 16, 20], "need": [0, 1, 3, 20], "run": [0, 1, 12, 16, 23], "task": [0, 23], "23rd": 0, "170": 0, "save": [0, 3, 21], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 14, 20, 23], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 22], "member": [0, 3, 7, 15], "get_or_fetch_memb": [0, 3, 7, 18], "17th": 0, "novemb": 0, "151": 0, "python": [0, 1, 3, 21, 23], "11": 0, "162": 0, "being": [0, 7, 10, 18], "abl": 0, "button": [0, 15], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 14, 16], "success": [0, 21], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 17], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 22], "option": [0, 3, 4, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 20], "match": [0, 3, 14], "lead": 0, "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 21], "rediscach": 0, "v1": [0, 3, 20, 21], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 14, 23], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 16, 17, 20, 21, 23], "On": 0, "view": [0, 15], "its": [0, 3, 12, 14], "104": 0, "deletemessagebutton": [0, 3, 7, 15], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 17], "103": 0, "attach": 0, "parent": [0, 15], "gener": [0, 3, 12, 23], "98": 0, "close": [0, 2, 3, 6, 23], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 23], "91": 0, "miss": 0, "await": [0, 3, 12, 15, 16, 18, 20], "ping_servic": [0, 2, 3], "some": [0, 3, 20, 21], "case": [0, 3, 20], "pass": [0, 3, 6, 14, 17, 18, 23], "self": [0, 3, 15], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 18], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 17, 20], "older": 0, "doc": [0, 16], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "time": [0, 10, 23], "out": [0, 1, 3, 15], "75": 0, "invit": [0, 22], "longer": [0, 15], "safe": 0, "result": [0, 23], "captur": [0, 14, 22], "charact": [0, 3, 20], "up": [0, 1, 3, 20], "whitespac": [0, 22], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 20], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 20, 21], "so": [0, 1, 7], "should": [0, 1, 3, 6, 15, 20, 21], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 14, 18], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 14], "main": 0, "don": [0, 10, 23], "t": [0, 10, 11, 13, 14, 16, 23], "modul": [0, 3, 7, 14, 23], "start": [0, 3, 23], "_": 0, "66": 0, "each": [0, 3, 20], "own": [0, 14], "avoid": [0, 3, 20], "singl": [0, 3, 20], "crash": 0, "entir": [0, 3], "20th": 0, "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 14], "64": 0, "987235d": 0, "revert": 0, "chang": [0, 1, 3, 14, 20], "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 17], "basic": [0, 15], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 20, 23], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 21], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 16, 23], "_guild_avail": 0, "within": [0, 3], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 16, 20], "made": [0, 19], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 21], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 15, 16, 17, 20, 21, 23], "abstract": 0, "lot": 0, "share": [0, 14], "between": [0, 1, 14], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 17], "import": 0, "can": [0, 1, 3, 10, 15, 16, 17, 20, 23], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 18], "wrapper": [0, 6, 12, 14, 23], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 18], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 15, 17, 20], "intersphinx": 0, "12": 0, "block": [0, 3, 12, 20, 22], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 7], "poetri": [0, 1], "To": [1, 3, 17], "your": 1, "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 14], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "see": [1, 14, 15, 16], "below": [1, 16], "more": [1, 3, 14, 16, 20], "both": [1, 21], "what": 1, "go": [1, 3, 16, 20], "them": [1, 3, 14, 23], "you": [1, 9, 22], "ll": [1, 23], "write": 1, "might": [1, 10], "mean": 1, "modifi": [1, 18], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "requir": [1, 3, 20, 21, 23], "vari": 1, "re": [1, 3, 13, 19, 23], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "environ": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 15, 20, 21, 23], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 14, 19], "free": 1, "howev": 1, "like": [1, 14], "m": 1, "docker": 1, "compos": 1, "d": [1, 14], "configur": [1, 3, 20, 21], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "enabl": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 20], "invok": [1, 10, 12, 15], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 20, 21, 23], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 15, 16, 20, 23], "anyth": [1, 21], "reinstal": 1, "applic": 1, "http_session": [2, 3, 21], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 16], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 20], "add_lin": [2, 3, 7, 20], "paginationemoji": [2, 3, 7, 20], "model_computed_field": [2, 3, 7, 20, 21], "model_config": [2, 3, 7, 20, 21], "model_field": [2, 3, 7, 20, 21], "startuperror": [2, 3], "subpackag": 2, "submodul": 2, "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 20], "inform": [2, 16, 17], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 14, 16, 17], "kwarg": [3, 6, 12, 14, 15, 17, 23], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "implement": [3, 4, 8, 15, 17], "belong": 3, "int": [3, 4, 8, 9, 10, 14, 15, 20, 21, 23], "clientsess": [3, 6, 21], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 14, 15, 16, 17, 20, 21, 23], "redissess": 3, "were": 3, "found": [3, 14, 18, 23], "frozenset": [3, 14], "initialis": [3, 8], "server": [3, 22], "If": [3, 6, 10, 12, 14, 15, 16, 19, 20, 23], "oper": [3, 16, 20, 23], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 15, 23], "instead": [3, 12, 23], "connector": 3, "resolv": [3, 14], "sync_app_command": 3, "true": [3, 6, 10, 12, 16, 17, 19, 20, 21, 23], "bool": [3, 6, 9, 10, 12, 15, 16, 19, 20, 23], "intern": [3, 7, 16], "becom": [3, 16], "appear": 3, "still": [3, 20], "empti": [3, 20], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 14, 19], "relev": 3, "name": [3, 7, 14, 16, 17, 20, 21, 23], "alia": [3, 7, 12], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "becaus": [3, 14], "second": [3, 10, 12, 15, 20, 23], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 20, 21, 23], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 16, 18, 20, 21, 23], "suffix": [3, 20], "max_siz": [3, 8, 20, 21], "4000": [3, 20], "scale_to_s": [3, 20], "max_lin": [3, 20], "linesep": [3, 20], "n": [3, 20], "aid": [3, 20], "pagination_emoji": [3, 20], "insert": [3, 20], "everi": [3, 20], "e": [3, 20], "g": [3, 20], "three": [3, 20], "backtick": [3, 20], "append": [3, 20], "end": [3, 20], "maximum": [3, 8, 20, 21], "amount": [3, 20], "codepoint": [3, 20], "line": [3, 20], "scale": [3, 20], "overrid": [3, 20], "insid": [3, 20], "It": [3, 7, 16, 20], "order": [3, 8, 14, 16, 20, 23], "per": [3, 10, 20], "fals": [3, 10, 12, 16, 20, 21], "current": [3, 16, 20, 23], "exce": [3, 8, 20], "overflow": [3, 20], "word": [3, 20], "exceed": [3, 20], "excess": [3, 20], "place": [3, 20], "unti": [3, 20], "remain": [3, 20], "boundari": [3, 20], "truncat": [3, 20], "continu": [3, 20], "onto": [3, 20], "In": [3, 20], "alreadi": [3, 20, 23], "would": [3, 20], "caus": [3, 7, 20], "done": [3, 15, 20, 23], "best": [3, 20], "effort": [3, 20], "while": [3, 12, 16, 20], "keep": [3, 20, 23], "total": [3, 20], "length": [3, 12, 20], "reason": [3, 20], "size": [3, 8, 20, 21], "indic": [3, 18, 20], "classmethod": [3, 20], "ctx": [3, 10, 11, 15, 20], "500": [3, 20], "restrict_to_us": [3, 20], "300": [3, 20], "footer_text": [3, 20], "exception_on_empty_emb": [3, 20], "repli": [3, 11, 12, 13, 20], "switch": [3, 20], "finish": [3, 16, 20], "appli": [3, 7, 8, 10, 12, 16, 20, 21], "These": [3, 20], "five": [3, 20], "minut": [3, 20], "limit": [3, 20], "author": [3, 10, 19, 20], "ani": [3, 6, 10, 14, 16, 20, 22, 23], "moder": [3, 15, 19, 20], "context": [3, 10, 11, 16, 20], "hold": [3, 16, 20], "serv": [3, 20], "whom": [3, 20], "restrict": [3, 20], "anymor": [3, 20], "footer": [3, 20], "sequenc": [3, 7, 14, 15, 20], "exampl": [3, 20], "set_author": [3, 20], "icon_url": [3, 20], "icon": [3, 20], "data": [3, 20, 21], "basemodel": [3, 20, 21], "classvar": [3, 20, 21], "dict": [3, 6, 14, 20, 21], "computedfieldinfo": [3, 20, 21], "dictionari": [3, 20, 21], "comput": [3, 20, 21], "field": [3, 20, 21], "correspond": [3, 20, 21], "object": [3, 6, 7, 8, 9, 12, 16, 18, 20, 21, 23], "configdict": [3, 20, 21], "model": [3, 20, 21], "conform": [3, 20, 21], "pydant": [3, 20, 21], "fieldinfo": [3, 20, 21], "annot": [3, 14, 20, 21], "trashcan": [3, 20], "637136429717389331": [3, 20], "first": [3, 20], "last": [3, 10, 15, 20], "left": [3, 20], "metadata": [3, 20, 21], "about": [3, 12, 20, 21], "defin": [3, 20, 21], "map": [3, 14, 16, 20, 21], "replac": [3, 10, 14, 20, 21], "__fields__": [3, 20, 21], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "error_handl": [3, 7], "handle_forbidden_from_block": [3, 7, 13], "globalnameconflicterror": [3, 7, 14], "command_wrap": [3, 7, 14], "get_arg_valu": [3, 7, 14], "get_arg_value_wrapp": [3, 7, 14], "get_bound_arg": [3, 7, 14], "update_wrapper_glob": [3, 7, 14], "lockedresourceerror": [3, 7, 16], "sharedev": [3, 7, 16], "lock_arg": [3, 7, 16], "customlogg": [3, 7, 17], "get_logg": [3, 7, 17], "max_paste_s": [3, 7, 21], "pasterespons": [3, 7, 21], "pastetoolongerror": [3, 7, 21], "pasteunsupportedlexererror": [3, 7, 21], "pasteuploaderror": [3, 7, 21], "formatted_code_regex": [3, 7, 22], "raw_code_regex": [3, 7, 22], "create_task": [3, 7, 23], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 21], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 23], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 23], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 23], "authent": 6, "keyword": [6, 7, 14, 17], "argument": [6, 7, 8, 11, 12, 14, 16, 17, 18], "constructor": 6, "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "extra": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 14, 21], "represent": 6, "group": [7, 22], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 21], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 15], "interaction_check": [7, 15], "on_timeout": [7, 15], "__enter__": [7, 16], "__exit__": [7, 16], "__contains__": [7, 23], "cancel": [7, 23], "cancel_al": [7, 23], "schedule_at": [7, 23], "schedule_lat": [7, 23], "relat": [8, 17], "128": 8, "lru": 8, "coroutin": [8, 16, 18, 23], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 14, 16], "callabl": [8, 10, 12, 14, 16, 18], "wrap": [8, 14, 23], "target": 8, "item": 8, "channel_id": 9, "fetch": [9, 18], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 21], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "bypass_rol": 10, "bypass": 10, "note": 10, "before_invok": 10, "introduc": 10, "problem": [10, 17], "futur": [10, 23], "trigger": 10, "float": [10, 12, 15, 23], "durat": 10, "long": [10, 21, 23], "buckettyp": 10, "iter": [10, 12], "describ": 10, "behavior": 10, "typeerror": [10, 14], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 16, 23], "doesn": [10, 23], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 14, 23], "valu": [12, 14, 16, 17], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 16, 23], "same": [12, 23], "notifi": 12, "paramspec": [12, 14], "raw": [12, 22], "isn": [13, 14], "conflict": 14, "global": 14, "assign": 14, "__module__": 14, "__name__": 14, "__qualname__": 14, "__doc__": 14, "__annotations__": 14, "__dict__": 14, "ignored_conflict_nam": 14, "look": [14, 23], "forwardref": 14, "evalu": 14, "detail": 14, "_p": 14, "_r": 14, "behav": 14, "functool": 14, "name_or_po": [14, 16], "ordereddict": [14, 16], "doe": 14, "decorator_func": 14, "func": [14, 16], "accept": [14, 15], "bind": 14, "tupl": [14, 23], "For": 14, "__global__": 14, "state": 14, "won": 14, "reflect": 14, "typehint": 14, "style": 15, "secondari": 15, "click": 15, "itself": 15, "carri": 15, "buttonstyl": 15, "origin": 15, "180": 15, "who": 15, "ui": 15, "input": 15, "similar": [15, 22], "occur": 15, "listen": 15, "access": 15, "resource_typ": 16, "resource_id": 16, "runtimeerror": 16, "resourc": 16, "hashabl": [16, 23], "manag": 16, "expos": 16, "through": 16, "coro": [16, 18, 23], "execut": [16, 23], "underli": 16, "holder": 16, "increment": 16, "count": 16, "activ": 16, "_exc_typ": 16, "_exc_val": 16, "_exc_tb": 16, "decrement": 16, "reach": 16, "exit": 16, "raise_error": 16, "turn": 16, "mutual": 16, "exclus": 16, "identifi": [16, 23], "collis": 16, "among": 16, "perform": 16, "acquir": 16, "msg": 17, "sever": 17, "exc_info": 17, "houston": 17, "we": [17, 18], "interest": 17, "mypi": 17, "recognis": 17, "formatt": 17, "interactin": 18, "member_id": 18, "failur": 18, "could": 18, "sole": 18, "expect": 18, "add_rol": 18, "remove_rol": 18, "purpos": 18, "intend": 18, "message_id": 19, "allowed_emoji": 19, "allow_mod": 19, "even": 19, "524288": 21, "byte": 21, "format": [21, 22], "link": 21, "too": 21, "larg": 21, "unsupport": 21, "encount": 21, "paste_url": 21, "max": 21, "larger": 21, "reject": 21, "max_length": 21, "greater": 21, "regular": 22, "express": 22, "pattern": 22, "pleas": 22, "sanitis": 22, "output": 22, "someth": 22, "urllib": 22, "pars": 22, "quot": 22, "track": 23, "distinguish": 23, "suggest": 23, "immedi": 23, "uniqu": 23, "prematur": 23, "task_id": 23, "unschedul": 23, "known": 23, "unawait": 23, "elsewher": 23, "timezon": 23, "awar": 23, "calcul": 23, "subtract": 23, "na\u00efv": 23, "utc": 23, "datetim": 23, "delai": 23, "suppressed_except": 23, "event_loop": 23, "task_return": 23}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [14, 0, 0, "-", "function"], [15, 0, 0, "-", "interactions"], [16, 0, 0, "-", "lock"], [17, 0, 0, "-", "logging"], [18, 0, 0, "-", "members"], [19, 0, 0, "-", "messages"], [20, 0, 0, "-", "pagination"], [21, 0, 0, "-", "paste_service"], [22, 0, 0, "-", "regex"], [23, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[14, 4, 1, "", "GlobalNameConflictError"], [14, 5, 1, "", "command_wraps"], [14, 5, 1, "", "get_arg_value"], [14, 5, 1, "", "get_arg_value_wrapper"], [14, 5, 1, "", "get_bound_args"], [14, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[15, 1, 1, "", "DeleteMessageButton"], [15, 1, 1, "", "ViewWithUserAndRoleCheck"], [15, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "interaction_check"], [15, 2, 1, "", "on_timeout"], [15, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[16, 4, 1, "", "LockedResourceError"], [16, 1, 1, "", "SharedEvent"], [16, 5, 1, "", "lock"], [16, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[16, 2, 1, "", "__init__"], [16, 3, 1, "", "id"], [16, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[16, 2, 1, "", "__enter__"], [16, 2, 1, "", "__exit__"], [16, 2, 1, "", "__init__"], [16, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[17, 1, 1, "", "CustomLogger"], [17, 5, 1, "", "get_logger"], [17, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[17, 2, 1, "", "trace"]], "pydis_core.utils.members": [[18, 5, 1, "", "get_or_fetch_member"], [18, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[19, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[20, 4, 1, "", "EmptyPaginatorEmbedError"], [20, 1, 1, "", "LinePaginator"], [20, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "add_line"], [20, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[20, 3, 1, "", "model_computed_fields"], [20, 3, 1, "", "model_config"], [20, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[21, 6, 1, "", "MAX_PASTE_SIZE"], [21, 1, 1, "", "PasteFile"], [21, 1, 1, "", "PasteResponse"], [21, 4, 1, "", "PasteTooLongError"], [21, 4, 1, "", "PasteUnsupportedLexerError"], [21, 4, 1, "", "PasteUploadError"], [21, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[21, 3, 1, "", "model_computed_fields"], [21, 3, 1, "", "model_config"], [21, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[21, 3, 1, "", "model_computed_fields"], [21, 3, 1, "", "model_config"], [21, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[22, 6, 1, "", "DISCORD_INVITE"], [22, 6, 1, "", "FORMATTED_CODE_REGEX"], [22, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[23, 1, 1, "", "Scheduler"], [23, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[23, 2, 1, "", "__contains__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "cancel"], [23, 2, 1, "", "cancel_all"], [23, 2, 1, "", "schedule"], [23, 2, 1, "", "schedule_at"], [23, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": 3, "submodul": [3, 7], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": 11, "cooldown": 12, "error_handl": 13, "function": 14, "interact": 15, "lock": 16, "log": 17, "member": 18, "messag": 19, "pagin": 20, "paste_servic": 21, "regex": 22, "schedul": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"caching": [[8, "module-pydis_core.utils.caching"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "channel": [[9, "module-pydis_core.utils.channel"]], "site_api": [[6, "module-pydis_core.site_api"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Exts": [[5, "module-pydis_core.exts"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Changelog": [[0, "changelog"]], "error_handling": [[13, "module-pydis_core.utils.error_handling"]], "logging": [[17, "module-pydis_core.utils.logging"]], "interactions": [[15, "module-pydis_core.utils.interactions"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "lock": [[16, "module-pydis_core.utils.lock"]], "function": [[14, "module-pydis_core.utils.function"]], "paste_service": [[21, "module-pydis_core.utils.paste_service"]], "messages": [[19, "module-pydis_core.utils.messages"]], "members": [[18, "module-pydis_core.utils.members"]], "pagination": [[20, "module-pydis_core.utils.pagination"]], "scheduling": [[23, "module-pydis_core.utils.scheduling"]], "regex": [[22, "module-pydis_core.utils.regex"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [20, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [20, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [20, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.function"], [15, "module-pydis_core.utils.interactions"], [16, "module-pydis_core.utils.lock"], [17, "module-pydis_core.utils.logging"], [18, "module-pydis_core.utils.members"], [19, "module-pydis_core.utils.messages"], [20, "module-pydis_core.utils.pagination"], [21, "module-pydis_core.utils.paste_service"], [22, "module-pydis_core.utils.regex"], [23, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [20, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "globalnameconflicterror": [[14, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[14, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[15, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[16, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[16, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[16, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[17, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[17, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[18, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[19, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[19, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[20, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[21, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[21, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[21, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[21, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[22, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[23, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_later"]]}})
\ No newline at end of file
+Search.setIndex({"docnames": ["changelog", "development", "index", "output/pydis_core", "output/pydis_core.async_stats", "output/pydis_core.exts", "output/pydis_core.site_api", "output/pydis_core.utils", "output/pydis_core.utils.caching", "output/pydis_core.utils.channel", "output/pydis_core.utils.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"next": [0, 3, 20], "10": 0, "x": 0, "featur": [0, 1, 3], "releas": 0, "break": [0, 3, 14, 20], "207": 0, "enabl": [0, 1], "more": [0, 1, 3, 14, 16, 20], "ruff": 0, "lint": 0, "rule": 0, "see": [0, 1, 14, 15, 16], "github": 0, "note": [0, 10], "chang": [0, 1, 3, 14, 20], "support": [0, 4, 7, 23], "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 17, 23], "attribut": [0, 7, 14], "pydis_cor": [0, 1, 3, 15, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "from": [0, 1, 3, 4, 6, 7, 9, 14, 15, 18, 20, 21, 23], "0": [0, 8, 10, 15, 16, 17], "1": [0, 17], "15": 0, "2": [0, 3, 15], "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 14, 16, 17, 18, 20, 21, 22, 23], "new": [0, 1, 3, 4, 6, 8, 14, 20, 23], "config": [0, 3, 20, 21], "namespac": [0, 16, 23], "7": 0, "30th": 0, "januari": 0, "2024": 0, "194": 0, "add": [0, 3, 10, 12, 20], "util": [0, 1, 2, 3, 8, 14, 15, 17], "interact": [0, 3, 7, 9, 20], "user_has_access": [0, 3, 7, 15], "helper": [0, 9, 12, 18], "function": [0, 3, 7, 8, 9, 12, 16, 17, 18, 20, 23], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "whether": [0, 3, 6, 9, 10, 15, 20], "given": [0, 3, 4, 7, 9, 11, 14, 16, 17, 18, 23], "user": [0, 3, 10, 12, 15, 19, 20], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "allowed_us": [0, 15, 19], "list": [0, 1, 3, 15, 20, 21], "ha": [0, 7, 10, 15], "role": [0, 1, 3, 10, 15, 18, 19, 20], "allowed_rol": [0, 1, 3, 15, 19, 20], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "depend": [0, 9], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 17, 22], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 18, 20, 22], "command": [0, 1, 3, 7, 9, 10, 12, 14, 16, 20], "check": [0, 3, 6, 7, 9, 12, 13, 15, 19, 23], "other": [0, 1, 16, 23], "bot": [0, 1, 3, 7, 9, 19], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 15, 17, 20, 23], "reaction_check": [0, 3, 7, 19], "predic": 0, "dictat": 0, "right": [0, 3, 20], "specif": [0, 10], "set": [0, 1, 3, 12, 14, 15, 16, 20], "reaction": [0, 3, 19, 20], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 20, 21, 23], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 20], "which": [0, 1, 3, 7, 10, 12, 14, 16, 20, 23], "allow": [0, 1, 3, 15, 19, 20, 21], "over": [0, 3, 20], "content": [0, 3, 11, 20, 21], "emb": [0, 3, 20], "emoji": [0, 3, 19, 20], "facilit": 0, "navig": [0, 1, 3, 20], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "bug": 0, "200": 0, "do": [0, 1, 9, 16], "attempt": [0, 3, 9, 16, 18, 20], "read": 0, "respons": [0, 6, 21], "bodi": 0, "http": [0, 3, 6, 21, 22], "code": [0, 1, 3, 6, 16, 20, 22], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 15, 20, 21], "did": 0, "thi": [0, 1, 3, 7, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 23], "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 15], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 20], "have": [0, 9, 10, 14, 17], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "3": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 17], "warn": [0, 23], "level": [0, 7, 17], "asyncio": [0, 4, 23], "info": [0, 1], "default": [0, 1, 3, 10, 14, 20, 21], "log_format": [0, 3, 7, 17], "log": [0, 3, 7, 13, 18, 23], "standardis": [0, 17], "across": [0, 3, 17, 20], "all": [0, 1, 3, 4, 7, 16, 17, 23], "servic": [0, 1, 3, 21], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 14], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "ext": [0, 2, 3, 7, 9, 10, 11, 20], "process_command": [0, 2, 3], "ensur": [0, 3, 15, 22], "ar": [0, 1, 3, 8, 14, 15, 19, 20, 22], "process": [0, 3], "until": [0, 3, 16, 22], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "188": 0, "send": [0, 3, 6, 15, 20], "multipl": 0, "file": [0, 1, 21], "onc": [0, 8], "past": [0, 21, 23], "call": [0, 3, 12, 14, 23], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 21], "must": [0, 14, 16, 23], "now": [0, 1, 23], "provid": [0, 1, 3, 8, 11, 13, 20, 23], "pastefil": [0, 3, 7, 21], "184": 0, "remov": [0, 3, 15, 19, 20, 21], "store": [0, 3, 7, 8, 20], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 15], "when": [0, 3, 4, 6, 7, 8, 10, 12, 14, 16, 20, 21, 23], "stop": [0, 7, 15], "addit": 0, "exist": [0, 1, 23], "timeout": [0, 3, 15, 20], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 20, 22, 23], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "includ": [0, 1, 13], "abc": 0, "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 14], "expiri": 0, "label": [0, 15], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "18th": 0, "182": 0, "lexer": [0, 21], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 20, 21], "pythondiscord": [0, 21], "com": [0, 21], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 20], "handl": [0, 13, 18, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "error": [0, 3, 6, 7, 13, 18, 21], "schedul": [0, 3, 7], "179": 0, "upload": [0, 21], "text": [0, 3, 6, 11, 20, 21], "our": [0, 1, 7], "6th": 0, "mai": [0, 3, 8, 16, 20], "175": 0, "wait": [0, 3, 7, 16, 23], "guild": [0, 1, 3, 10, 18], "avail": [0, 3, 16], "befor": [0, 3, 10, 15, 16, 20, 23], "cog": [0, 3, 5], "march": 0, "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 15, 20, 23], "been": 0, "also": [0, 3, 7, 14, 15, 16, 20], "need": [0, 1, 3, 20], "run": [0, 1, 12, 16, 23], "task": [0, 23], "23rd": 0, "170": 0, "save": [0, 3, 21], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 14, 20, 23], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 22], "member": [0, 3, 7, 15], "get_or_fetch_memb": [0, 3, 7, 18], "17th": 0, "novemb": 0, "151": 0, "python": [0, 1, 3, 21, 23], "11": 0, "162": 0, "being": [0, 7, 10, 18], "abl": 0, "button": [0, 15], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 14, 16], "success": [0, 21], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 17], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 22], "option": [0, 8, 14, 16], "match": [0, 3, 14], "lead": 0, "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 21], "rediscach": 0, "v1": [0, 3, 20, 21], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 14, 23], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 16, 17, 20, 21, 23], "On": 0, "view": [0, 15], "its": [0, 3, 12, 14], "104": 0, "deletemessagebutton": [0, 3, 7, 15], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 17], "103": 0, "attach": 0, "parent": [0, 15], "gener": [0, 3, 12, 23], "98": 0, "close": [0, 2, 3, 6, 23], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 23], "91": 0, "miss": 0, "await": [0, 3, 12, 15, 16, 18, 20], "ping_servic": [0, 2, 3], "some": [0, 3, 20, 21], "case": [0, 3, 20], "pass": [0, 3, 6, 14, 17, 18, 23], "self": [0, 3, 15], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 18], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 17, 20], "older": 0, "doc": [0, 16], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "time": [0, 10, 23], "out": [0, 1, 3, 15], "75": 0, "invit": [0, 22], "longer": [0, 15], "safe": 0, "result": [0, 23], "captur": [0, 14, 22], "charact": [0, 3, 20], "up": [0, 1, 3, 20], "whitespac": [0, 22], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 20], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 20, 21], "so": [0, 1, 7], "should": [0, 1, 3, 6, 15, 20, 21], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 14, 18], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 14], "main": 0, "don": [0, 10, 23], "t": [0, 10, 11, 13, 14, 16, 23], "modul": [0, 3, 7, 14, 23], "start": [0, 3, 23], "_": 0, "66": 0, "each": [0, 3, 20], "own": [0, 14], "avoid": [0, 3, 20], "singl": [0, 3, 20], "crash": 0, "entir": [0, 3], "20th": 0, "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 14], "64": 0, "987235d": 0, "revert": 0, "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 17], "basic": [0, 15], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 20, 23], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 21], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 16, 23], "_guild_avail": 0, "within": [0, 3], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 16, 20], "made": [0, 19], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 21], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 15, 16, 17, 20, 21, 23], "abstract": 0, "lot": 0, "share": [0, 14], "between": [0, 1, 14], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 17], "import": 0, "can": [0, 1, 3, 10, 15, 16, 17, 20, 23], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 18], "wrapper": [0, 6, 12, 14, 23], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 18], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 15, 17, 20], "intersphinx": 0, "12": 0, "block": [0, 3, 12, 20, 22], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 7], "poetri": [0, 1], "To": [1, 3, 17], "your": 1, "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 14], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "below": [1, 16], "both": [1, 21], "what": 1, "go": [1, 3, 16, 20], "them": [1, 3, 14, 23], "you": [1, 9, 22], "ll": [1, 23], "write": 1, "might": [1, 10], "mean": 1, "modifi": [1, 18], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "requir": [1, 3, 20, 21, 23], "vari": 1, "re": [1, 3, 13, 19, 23], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "environ": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 15, 20, 21, 23], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 14, 19], "free": 1, "howev": 1, "like": [1, 14], "m": 1, "docker": 1, "compos": 1, "d": [1, 14], "configur": [1, 3, 20, 21], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 20], "invok": [1, 10, 12, 15], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 20, 21, 23], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 15, 16, 20, 23], "anyth": [1, 21], "reinstal": 1, "applic": 1, "http_session": [2, 3, 21], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 16], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 20], "add_lin": [2, 3, 7, 20], "paginationemoji": [2, 3, 7, 20], "model_computed_field": [2, 3, 7, 20, 21], "model_config": [2, 3, 7, 20, 21], "model_field": [2, 3, 7, 20, 21], "startuperror": [2, 3], "subpackag": 2, "submodul": 2, "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 20], "inform": [2, 16, 17], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 14, 16, 17], "kwarg": [3, 6, 12, 14, 15, 17, 23], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "implement": [3, 4, 8, 15, 17], "belong": 3, "int": [3, 4, 8, 9, 10, 14, 15, 20, 21], "clientsess": [3, 6, 21], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 14, 15, 16, 17, 20, 21, 23], "redissess": 3, "were": 3, "found": [3, 14, 18, 23], "frozenset": [3, 14], "initialis": [3, 8], "server": [3, 22], "If": [3, 6, 10, 12, 14, 15, 16, 19, 20, 23], "oper": [3, 16, 20, 23], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 15, 23], "instead": [3, 12, 23], "connector": 3, "resolv": [3, 14], "sync_app_command": 3, "true": [3, 6, 10, 12, 16, 17, 19, 20, 21, 23], "bool": [3, 6, 9, 10, 12, 15, 16, 19, 20, 23], "intern": [3, 7, 16], "becom": [3, 16], "appear": 3, "still": [3, 20], "empti": [3, 20], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 14, 19], "relev": 3, "name": [3, 7, 14, 16, 17, 20, 21, 23], "alia": [3, 7, 12], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "becaus": [3, 14], "second": [3, 10, 12, 15, 20, 23], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 20, 21, 23], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 16, 18, 20, 21, 23], "suffix": [3, 20], "max_siz": [3, 8, 20, 21], "4000": [3, 20], "scale_to_s": [3, 20], "max_lin": [3, 20], "linesep": [3, 20], "n": [3, 20], "aid": [3, 20], "pagination_emoji": [3, 20], "insert": [3, 20], "everi": [3, 20], "e": [3, 20], "g": [3, 20], "three": [3, 20], "backtick": [3, 20], "append": [3, 20], "end": [3, 20], "maximum": [3, 8, 20, 21], "amount": [3, 20], "codepoint": [3, 20], "line": [3, 20], "scale": [3, 20], "overrid": [3, 20], "insid": [3, 20], "It": [3, 7, 16, 20], "order": [3, 8, 14, 16, 20, 23], "per": [3, 10, 20], "fals": [3, 10, 12, 16, 20, 21], "current": [3, 16, 20, 23], "exce": [3, 8, 20], "overflow": [3, 20], "word": [3, 20], "exceed": [3, 20], "excess": [3, 20], "place": [3, 20], "unti": [3, 20], "remain": [3, 20], "boundari": [3, 20], "truncat": [3, 20], "continu": [3, 20], "onto": [3, 20], "In": [3, 20], "alreadi": [3, 20, 23], "would": [3, 20], "caus": [3, 7, 20], "done": [3, 15, 20, 23], "best": [3, 20], "effort": [3, 20], "while": [3, 12, 16, 20], "keep": [3, 20, 23], "total": [3, 20], "length": [3, 12, 20], "reason": [3, 20], "size": [3, 8, 20, 21], "indic": [3, 18, 20], "classmethod": [3, 20], "ctx": [3, 10, 11, 15, 20], "500": [3, 20], "restrict_to_us": [3, 20], "300": [3, 20], "footer_text": [3, 20], "exception_on_empty_emb": [3, 20], "repli": [3, 11, 12, 13, 20], "switch": [3, 20], "finish": [3, 16, 20], "appli": [3, 7, 8, 10, 12, 16, 20, 21], "These": [3, 20], "five": [3, 20], "minut": [3, 20], "limit": [3, 20], "author": [3, 10, 19, 20], "ani": [3, 6, 10, 14, 16, 20, 22, 23], "moder": [3, 15, 19, 20], "context": [3, 10, 11, 16, 20], "hold": [3, 16, 20], "serv": [3, 20], "whom": [3, 20], "restrict": [3, 20], "anymor": [3, 20], "footer": [3, 20], "sequenc": [3, 7, 14, 15, 20], "exampl": [3, 20], "set_author": [3, 20], "icon_url": [3, 20], "icon": [3, 20], "data": [3, 20, 21], "basemodel": [3, 20, 21], "classvar": [3, 20, 21], "dict": [3, 6, 14, 20, 21], "computedfieldinfo": [3, 20, 21], "dictionari": [3, 20, 21], "comput": [3, 20, 21], "field": [3, 20, 21], "correspond": [3, 20, 21], "object": [3, 6, 7, 8, 9, 12, 16, 18, 20, 21, 23], "configdict": [3, 20, 21], "model": [3, 20, 21], "conform": [3, 20, 21], "pydant": [3, 20, 21], "fieldinfo": [3, 20, 21], "annot": [3, 14, 20, 21], "trashcan": [3, 20], "637136429717389331": [3, 20], "first": [3, 20], "last": [3, 10, 15, 20], "left": [3, 20], "metadata": [3, 20, 21], "about": [3, 12, 20, 21], "defin": [3, 20, 21], "map": [3, 14, 16, 20, 21], "replac": [3, 10, 14, 20, 21], "__fields__": [3, 20, 21], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "error_handl": [3, 7], "handle_forbidden_from_block": [3, 7, 13], "globalnameconflicterror": [3, 7, 14], "command_wrap": [3, 7, 14], "get_arg_valu": [3, 7, 14], "get_arg_value_wrapp": [3, 7, 14], "get_bound_arg": [3, 7, 14], "update_wrapper_glob": [3, 7, 14], "lockedresourceerror": [3, 7, 16], "sharedev": [3, 7, 16], "lock_arg": [3, 7, 16], "customlogg": [3, 7, 17], "get_logg": [3, 7, 17], "max_paste_s": [3, 7, 21], "pasterespons": [3, 7, 21], "pastetoolongerror": [3, 7, 21], "pasteunsupportedlexererror": [3, 7, 21], "pasteuploaderror": [3, 7, 21], "formatted_code_regex": [3, 7, 22], "raw_code_regex": [3, 7, 22], "create_task": [3, 7, 23], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 21], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 23], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 23], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 23], "authent": 6, "keyword": [6, 7, 14, 17], "argument": [6, 7, 8, 11, 12, 14, 16, 17, 18], "constructor": 6, "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "extra": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 14, 21], "represent": 6, "group": [7, 22], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 21], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 15], "interaction_check": [7, 15], "on_timeout": [7, 15], "__enter__": [7, 16], "__exit__": [7, 16], "__contains__": [7, 23], "cancel": [7, 23], "cancel_al": [7, 23], "schedule_at": [7, 23], "schedule_lat": [7, 23], "relat": [8, 17], "128": 8, "lru": 8, "coroutin": [8, 16, 18, 23], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 14, 16], "callabl": [8, 10, 12, 14, 16, 18], "wrap": [8, 14, 23], "target": 8, "item": 8, "channel_id": 9, "fetch": [9, 18], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 21], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "type_": 10, "bypass_rol": 10, "bypass": 10, "before_invok": 10, "introduc": 10, "problem": [10, 17], "futur": [10, 23], "trigger": 10, "float": [10, 12, 15, 23], "durat": 10, "long": [10, 21, 23], "buckettyp": 10, "iter": [10, 12], "describ": 10, "behavior": 10, "typeerror": [10, 14], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 16, 23], "doesn": [10, 23], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 14, 23], "valu": [12, 14, 16, 17], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 16, 23], "same": [12, 23], "notifi": 12, "paramspec": [12, 14], "raw": [12, 22], "isn": [13, 14], "conflict": 14, "global": 14, "assign": 14, "__module__": 14, "__name__": 14, "__qualname__": 14, "__doc__": 14, "__annotations__": 14, "__dict__": 14, "ignored_conflict_nam": 14, "look": [14, 23], "forwardref": 14, "evalu": 14, "detail": 14, "_p": 14, "_r": 14, "behav": 14, "functool": 14, "name_or_po": [14, 16], "ordereddict": [14, 16], "doe": 14, "decorator_func": 14, "func": [14, 16], "accept": [14, 15], "bind": 14, "tupl": [14, 23], "For": 14, "__global__": 14, "state": 14, "won": 14, "reflect": 14, "typehint": 14, "style": 15, "secondari": 15, "click": 15, "itself": 15, "carri": 15, "buttonstyl": 15, "origin": 15, "180": 15, "who": 15, "ui": 15, "input": 15, "similar": [15, 22], "occur": 15, "listen": 15, "access": 15, "resource_typ": 16, "resource_id": 16, "runtimeerror": 16, "resourc": 16, "hashabl": [16, 23], "manag": 16, "expos": 16, "through": 16, "coro": [16, 18, 23], "execut": [16, 23], "underli": 16, "holder": 16, "increment": 16, "count": 16, "activ": 16, "_exc_typ": 16, "_exc_val": 16, "_exc_tb": 16, "decrement": 16, "reach": 16, "exit": 16, "raise_error": 16, "turn": 16, "mutual": 16, "exclus": 16, "identifi": [16, 23], "collis": 16, "among": 16, "perform": 16, "acquir": 16, "msg": 17, "sever": 17, "exc_info": 17, "houston": 17, "we": [17, 18], "interest": 17, "mypi": 17, "recognis": 17, "formatt": 17, "interactin": 18, "member_id": 18, "failur": 18, "could": 18, "sole": 18, "expect": 18, "add_rol": 18, "remove_rol": 18, "purpos": 18, "intend": 18, "message_id": 19, "allowed_emoji": 19, "allow_mod": 19, "even": 19, "524288": 21, "byte": 21, "format": [21, 22], "link": 21, "too": 21, "larg": 21, "unsupport": 21, "encount": 21, "paste_url": 21, "max": 21, "larger": 21, "reject": 21, "max_length": 21, "greater": 21, "regular": 22, "express": 22, "pattern": 22, "pleas": 22, "sanitis": 22, "output": 22, "someth": 22, "urllib": 22, "pars": 22, "quot": 22, "track": 23, "distinguish": 23, "suggest": 23, "immedi": 23, "uniqu": 23, "prematur": 23, "task_id": 23, "unschedul": 23, "known": 23, "unawait": 23, "elsewher": 23, "timezon": 23, "awar": 23, "calcul": 23, "subtract": 23, "na\u00efv": 23, "utc": 23, "datetim": 23, "delai": 23, "suppressed_except": 23, "event_loop": 23, "task_return": 23}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [14, 0, 0, "-", "function"], [15, 0, 0, "-", "interactions"], [16, 0, 0, "-", "lock"], [17, 0, 0, "-", "logging"], [18, 0, 0, "-", "members"], [19, 0, 0, "-", "messages"], [20, 0, 0, "-", "pagination"], [21, 0, 0, "-", "paste_service"], [22, 0, 0, "-", "regex"], [23, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[14, 4, 1, "", "GlobalNameConflictError"], [14, 5, 1, "", "command_wraps"], [14, 5, 1, "", "get_arg_value"], [14, 5, 1, "", "get_arg_value_wrapper"], [14, 5, 1, "", "get_bound_args"], [14, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[15, 1, 1, "", "DeleteMessageButton"], [15, 1, 1, "", "ViewWithUserAndRoleCheck"], [15, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "interaction_check"], [15, 2, 1, "", "on_timeout"], [15, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[16, 4, 1, "", "LockedResourceError"], [16, 1, 1, "", "SharedEvent"], [16, 5, 1, "", "lock"], [16, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[16, 2, 1, "", "__init__"], [16, 3, 1, "", "id"], [16, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[16, 2, 1, "", "__enter__"], [16, 2, 1, "", "__exit__"], [16, 2, 1, "", "__init__"], [16, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[17, 1, 1, "", "CustomLogger"], [17, 5, 1, "", "get_logger"], [17, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[17, 2, 1, "", "trace"]], "pydis_core.utils.members": [[18, 5, 1, "", "get_or_fetch_member"], [18, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[19, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[20, 4, 1, "", "EmptyPaginatorEmbedError"], [20, 1, 1, "", "LinePaginator"], [20, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "add_line"], [20, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[20, 3, 1, "", "model_computed_fields"], [20, 3, 1, "", "model_config"], [20, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[21, 6, 1, "", "MAX_PASTE_SIZE"], [21, 1, 1, "", "PasteFile"], [21, 1, 1, "", "PasteResponse"], [21, 4, 1, "", "PasteTooLongError"], [21, 4, 1, "", "PasteUnsupportedLexerError"], [21, 4, 1, "", "PasteUploadError"], [21, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[21, 3, 1, "", "model_computed_fields"], [21, 3, 1, "", "model_config"], [21, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[21, 3, 1, "", "model_computed_fields"], [21, 3, 1, "", "model_config"], [21, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[22, 6, 1, "", "DISCORD_INVITE"], [22, 6, 1, "", "FORMATTED_CODE_REGEX"], [22, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[23, 1, 1, "", "Scheduler"], [23, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[23, 2, 1, "", "__contains__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "cancel"], [23, 2, 1, "", "cancel_all"], [23, 2, 1, "", "schedule"], [23, 2, 1, "", "schedule_at"], [23, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": 3, "submodul": [3, 7], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": 11, "cooldown": 12, "error_handl": 13, "function": 14, "interact": 15, "lock": 16, "log": 17, "member": 18, "messag": 19, "pagin": 20, "paste_servic": 21, "regex": 22, "schedul": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"site_api": [[6, "module-pydis_core.site_api"]], "commands": [[11, "module-pydis_core.utils.commands"]], "checks": [[10, "module-pydis_core.utils.checks"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Exts": [[5, "module-pydis_core.exts"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "function": [[14, "module-pydis_core.utils.function"]], "logging": [[17, "module-pydis_core.utils.logging"]], "error_handling": [[13, "module-pydis_core.utils.error_handling"]], "lock": [[16, "module-pydis_core.utils.lock"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "interactions": [[15, "module-pydis_core.utils.interactions"]], "regex": [[22, "module-pydis_core.utils.regex"]], "pagination": [[20, "module-pydis_core.utils.pagination"]], "messages": [[19, "module-pydis_core.utils.messages"]], "scheduling": [[23, "module-pydis_core.utils.scheduling"]], "members": [[18, "module-pydis_core.utils.members"]], "paste_service": [[21, "module-pydis_core.utils.paste_service"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [20, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [20, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [20, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.function"], [15, "module-pydis_core.utils.interactions"], [16, "module-pydis_core.utils.lock"], [17, "module-pydis_core.utils.logging"], [18, "module-pydis_core.utils.members"], [19, "module-pydis_core.utils.messages"], [20, "module-pydis_core.utils.pagination"], [21, "module-pydis_core.utils.paste_service"], [22, "module-pydis_core.utils.regex"], [23, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [20, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "globalnameconflicterror": [[14, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[14, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[15, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[16, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[16, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[16, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[17, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[17, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[18, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[19, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[19, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[20, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[21, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[21, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[21, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[21, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[22, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[23, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_later"]]}})
\ No newline at end of file
diff --git a/main/versions.html b/main/versions.html
index 91fd5cdc..07d87d2c 100644
--- a/main/versions.html
+++ b/main/versions.html
@@ -278,86 +278,6 @@
v9.0.0
- -
- v8.3.0-beta
-
-
- -
- v8.2.1
-
-
- -
- v8.2.0
-
-
- -
- v8.1.0
-
-
- -
- v8.0.0-beta.4
-
-
- -
- v8.0.0-beta.3
-
-
- -
- v8.0.0-beta.2
-
-
- -
- v8.0.0-beta.1
-
-
- -
- v8.0.0
-
-
- -
- v7.5.0
-
-
- -
- v7.4.0-beta1
-
-
- -
- v7.4.0
-
-
- -
- v7.3.1
-
-
- -
- v7.3.0
-
-
- -
- v7.2.2
-
-
- -
- v7.2.1
-
-
- -
- v7.2.0
-
-
- -
- v7.1.3
-
-
- -
- v7.1.2
-
-
- -
- v7.1.1
-
-
-
v10.7.0
@@ -555,126 +475,6 @@
v9.0.0
-
-
- -
- v8.3.0-beta
-
-
-
-
- -
- v8.2.1
-
-
-
-
- -
- v8.2.0
-
-
-
-
- -
- v8.1.0
-
-
-
-
- -
- v8.0.0-beta.4
-
-
-
-
- -
- v8.0.0-beta.3
-
-
-
-
- -
- v8.0.0-beta.2
-
-
-
-
- -
- v8.0.0-beta.1
-
-
-
-
- -
- v8.0.0
-
-
-
-
- -
- v7.5.0
-
-
-
-
- -
- v7.4.0-beta1
-
-
-
-
- -
- v7.4.0
-
-
-
-
- -
- v7.3.1
-
-
-
-
- -
- v7.3.0
-
-
-
-
- -
- v7.2.2
-
-
-
-
- -
- v7.2.1
-
-
-
-
- -
- v7.2.0
-
-
-
-
- -
- v7.1.3
-
-
-
-
- -
- v7.1.2
-
-
-
-
- -
- v7.1.1
-
-
-
--
cgit v1.2.3
+
+