From 639c049479cf2a14ad175bebedff6ae653c9903a Mon Sep 17 00:00:00 2001 From: ChrisLovering Date: Thu, 21 Apr 2022 19:55:39 +0000 Subject: Deploying to docs from @ python-discord/bot-core@6dac5cc1030fa8be9623b95ea6021162c83ce654 🚀 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 2368527 -> 2368527 bytes .doctrees/output/botcore.async_stats.doctree | Bin 19331 -> 19331 bytes .doctrees/output/botcore.doctree | Bin 60382 -> 60906 bytes .doctrees/output/botcore.site_api.doctree | Bin 66667 -> 66667 bytes .doctrees/output/botcore.utils.caching.doctree | Bin 16685 -> 16685 bytes .doctrees/output/botcore.utils.channel.doctree | Bin 18244 -> 18244 bytes .doctrees/output/botcore.utils.doctree | Bin 14400 -> 14400 bytes .doctrees/output/botcore.utils.logging.doctree | Bin 18508 -> 18508 bytes .doctrees/output/botcore.utils.members.doctree | Bin 17169 -> 17169 bytes .doctrees/output/botcore.utils.regex.doctree | Bin 7656 -> 7656 bytes .doctrees/output/botcore.utils.scheduling.doctree | Bin 56358 -> 56358 bytes output/botcore.async_stats.html | 6 ++-- output/botcore.html | 33 +++++++++++----------- output/botcore.site_api.html | 26 ++++++++--------- output/botcore.utils.caching.html | 8 +++--- output/botcore.utils.channel.html | 4 +-- output/botcore.utils.html | 4 +-- output/botcore.utils.logging.html | 6 ++-- output/botcore.utils.members.html | 4 +-- output/botcore.utils.regex.html | 6 ++-- output/botcore.utils.scheduling.html | 18 ++++++------ searchindex.js | 2 +- 22 files changed, 59 insertions(+), 58 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 2c5682ac..5eb5c0c9 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/output/botcore.async_stats.doctree b/.doctrees/output/botcore.async_stats.doctree index 74e13194..ecd1d024 100644 Binary files a/.doctrees/output/botcore.async_stats.doctree and b/.doctrees/output/botcore.async_stats.doctree differ diff --git a/.doctrees/output/botcore.doctree b/.doctrees/output/botcore.doctree index cc0454ba..0c1d5124 100644 Binary files a/.doctrees/output/botcore.doctree and b/.doctrees/output/botcore.doctree differ diff --git a/.doctrees/output/botcore.site_api.doctree b/.doctrees/output/botcore.site_api.doctree index 6949a885..a62cd938 100644 Binary files a/.doctrees/output/botcore.site_api.doctree and b/.doctrees/output/botcore.site_api.doctree differ diff --git a/.doctrees/output/botcore.utils.caching.doctree b/.doctrees/output/botcore.utils.caching.doctree index 3ce32b9f..3414f0c4 100644 Binary files a/.doctrees/output/botcore.utils.caching.doctree and b/.doctrees/output/botcore.utils.caching.doctree differ diff --git a/.doctrees/output/botcore.utils.channel.doctree b/.doctrees/output/botcore.utils.channel.doctree index af9fcd00..777d1614 100644 Binary files a/.doctrees/output/botcore.utils.channel.doctree and b/.doctrees/output/botcore.utils.channel.doctree differ diff --git a/.doctrees/output/botcore.utils.doctree b/.doctrees/output/botcore.utils.doctree index 29575a7e..327b0b43 100644 Binary files a/.doctrees/output/botcore.utils.doctree and b/.doctrees/output/botcore.utils.doctree differ diff --git a/.doctrees/output/botcore.utils.logging.doctree b/.doctrees/output/botcore.utils.logging.doctree index 2d8a151a..7ee2481b 100644 Binary files a/.doctrees/output/botcore.utils.logging.doctree and b/.doctrees/output/botcore.utils.logging.doctree differ diff --git a/.doctrees/output/botcore.utils.members.doctree b/.doctrees/output/botcore.utils.members.doctree index 4f4c6ce4..087d37d8 100644 Binary files a/.doctrees/output/botcore.utils.members.doctree and b/.doctrees/output/botcore.utils.members.doctree differ diff --git a/.doctrees/output/botcore.utils.regex.doctree b/.doctrees/output/botcore.utils.regex.doctree index 29e5a82a..40c1b5e5 100644 Binary files a/.doctrees/output/botcore.utils.regex.doctree and b/.doctrees/output/botcore.utils.regex.doctree differ diff --git a/.doctrees/output/botcore.utils.scheduling.doctree b/.doctrees/output/botcore.utils.scheduling.doctree index e0d796bf..bbf19d38 100644 Binary files a/.doctrees/output/botcore.utils.scheduling.doctree and b/.doctrees/output/botcore.utils.scheduling.doctree differ diff --git a/output/botcore.async_stats.html b/output/botcore.async_stats.html index 926dcd41..2eb48a6d 100644 --- a/output/botcore.async_stats.html +++ b/output/botcore.async_stats.html @@ -218,12 +218,12 @@

An async transport method for statsd communication.

-class AsyncStatsClient(loop, host='localhost', port=8125, prefix=None)[source]#
+class AsyncStatsClient(loop, host='localhost', port=8125, prefix=None)[source]#

Bases: statsd.client.base.StatsClientBase

An async implementation of statsd.client.base.StatsClientBase that supports async stat communication.

-__init__(loop, host='localhost', port=8125, prefix=None)[source]#
+__init__(loop, host='localhost', port=8125, prefix=None)[source]#

Create a new AsyncStatsClient.

Parameters
@@ -239,7 +239,7 @@
-async create_socket()[source]#
+async create_socket()[source]#

Use asyncio.loop.create_datagram_endpoint from the loop given on init to create a socket.

Return type
diff --git a/output/botcore.html b/output/botcore.html index 3281dd80..409bae26 100644 --- a/output/botcore.html +++ b/output/botcore.html @@ -218,12 +218,12 @@

Useful utilities and tools for Discord bot development.

-class BotBase(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, **kwargs)[source]#
+class BotBase(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, **kwargs)[source]#

Bases: discord.ext.commands.bot.Bot

A sub-class that implements many common features that Python Discord bots use.

-__init__(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, **kwargs)[source]#
+__init__(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, **kwargs)[source]#

Initialise the base bot instance.

Parameters
@@ -239,7 +239,7 @@
-async add_cog(cog)[source]#
+async add_cog(cog)[source]#

Add the given cog to the bot and log the operation.

Return type
@@ -249,7 +249,7 @@
-add_command(command)[source]#
+add_command(command)[source]#

Add command as normal and then add its root aliases to the bot.

Return type
@@ -259,7 +259,7 @@
-clear()[source]#
+clear()[source]#

Not implemented! Re-instantiate the bot instead of attempting to re-use a closed one.

Return type
@@ -269,7 +269,7 @@
-async close()[source]#
+async close()[source]#

Close the Discord connection, and the aiohttp session, connector, statsd client, and resolver.

Return type
@@ -279,8 +279,9 @@
-async load_extensions(module)[source]#
+async load_extensions(module)[source]#

Load all the extensions within the given module and save them to self.all_extensions.

+

This should be ran in a task on the event loop to avoid deadlocks caused by wait_for calls.

Return type

None

@@ -289,7 +290,7 @@
-async log_to_dev_log(message)[source]#
+async log_to_dev_log(message)[source]#

Log the given message to #dev-log.

Return type
@@ -299,7 +300,7 @@
-async on_guild_available(guild)[source]#
+async on_guild_available(guild)[source]#

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.

@@ -311,7 +312,7 @@ will not be set and guild_available_but_cache_empty event will be e
-async on_guild_unavailable(guild)[source]#
+async on_guild_unavailable(guild)[source]#

Clear the internal guild available event when self.guild_id becomes unavailable.

Return type
@@ -321,7 +322,7 @@ will not be set and guild_available_but_cache_empty event will be e
-async ping_services()[source]#
+async ping_services()[source]#

Ping all required services on setup to ensure they are up before starting.

Return type
@@ -331,7 +332,7 @@ will not be set and guild_available_but_cache_empty event will be e
-remove_command(name)[source]#
+remove_command(name)[source]#

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.

@@ -343,7 +344,7 @@ To remove them, either remove the entire command or manually edit bot.all_
-async setup_hook()[source]#
+async setup_hook()[source]#

An async init to startup generic services.

Connects to statsd, and calls AsyncStatsClient.create_socket @@ -356,7 +357,7 @@ and

-async wait_until_guild_available()[source]#
+async wait_until_guild_available()[source]#

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.

@@ -369,12 +370,12 @@ gateway event before giving up and thus not populating the cache for unavailable
-exception StartupError(base)[source]#
+exception StartupError(base)[source]#

Bases: Exception

Exception class for startup errors.

-__init__(base)[source]#
+__init__(base)[source]#
diff --git a/output/botcore.site_api.html b/output/botcore.site_api.html index dd541c0d..cc388bee 100644 --- a/output/botcore.site_api.html +++ b/output/botcore.site_api.html @@ -218,12 +218,12 @@

An API wrapper around the Site API.

-class APIClient(site_api_url, site_api_token, **session_kwargs)[source]#
+class APIClient(site_api_url, site_api_token, **session_kwargs)[source]#

Bases: object

A wrapper for the Django Site API.

-__init__(site_api_url, site_api_token, **session_kwargs)[source]#
+__init__(site_api_url, site_api_token, **session_kwargs)[source]#

Initialize a new APIClient instance.

Parameters
@@ -237,7 +237,7 @@
-async close()[source]#
+async close()[source]#

Close the aiohttp session.

Return type
@@ -247,7 +247,7 @@
-async delete(endpoint, *, raise_for_status=True, **kwargs)[source]#
+async delete(endpoint, *, raise_for_status=True, **kwargs)[source]#

Send a DELETE request to the site API and return the JSON response.

Parameters
@@ -267,7 +267,7 @@
-async get(endpoint, *, raise_for_status=True, **kwargs)[source]#
+async get(endpoint, *, raise_for_status=True, **kwargs)[source]#

Equivalent to APIClient.request() with GET passed as the method.

Return type
@@ -277,7 +277,7 @@
-async maybe_raise_for_status(response, should_raise)[source]#
+async maybe_raise_for_status(response, should_raise)[source]#

Raise ResponseCodeError for non-OK response if an exception should be raised.

Parameters
@@ -296,7 +296,7 @@
-async patch(endpoint, *, raise_for_status=True, **kwargs)[source]#
+async patch(endpoint, *, raise_for_status=True, **kwargs)[source]#

Equivalent to APIClient.request() with PATCH passed as the method.

Return type
@@ -306,7 +306,7 @@
-async post(endpoint, *, raise_for_status=True, **kwargs)[source]#
+async post(endpoint, *, raise_for_status=True, **kwargs)[source]#

Equivalent to APIClient.request() with POST passed as the method.

Return type
@@ -316,7 +316,7 @@
-async put(endpoint, *, raise_for_status=True, **kwargs)[source]#
+async put(endpoint, *, raise_for_status=True, **kwargs)[source]#

Equivalent to APIClient.request() with PUT passed as the method.

Return type
@@ -326,7 +326,7 @@
-async request(method, endpoint, *, raise_for_status=True, **kwargs)[source]#
+async request(method, endpoint, *, raise_for_status=True, **kwargs)[source]#

Send an HTTP request to the site API and return the JSON response.

Parameters
@@ -351,12 +351,12 @@
-exception ResponseCodeError(response, response_json=None, response_text=None)[source]#
+exception ResponseCodeError(response, response_json=None, response_text=None)[source]#

Bases: ValueError

Raised in APIClient.request() when a non-OK HTTP response is received.

-__init__(response, response_json=None, response_text=None)[source]#
+__init__(response, response_json=None, response_text=None)[source]#

Initialize a new ResponseCodeError instance.

Parameters
@@ -370,7 +370,7 @@
-__str__()[source]#
+__str__()[source]#

Return a string representation of the error.

diff --git a/output/botcore.utils.caching.html b/output/botcore.utils.caching.html index 0999d32c..eb25dd3f 100644 --- a/output/botcore.utils.caching.html +++ b/output/botcore.utils.caching.html @@ -218,14 +218,14 @@

Utilities related to custom caches.

-class AsyncCache(max_size=128)[source]#
+class AsyncCache(max_size=128)[source]#

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.

-__call__(arg_offset=0)[source]#
+__call__(arg_offset=0)[source]#

Decorator for async cache.

Parameters
@@ -241,7 +241,7 @@
-__init__(max_size=128)[source]#
+__init__(max_size=128)[source]#

Initialise a new AsyncCache instance.

Parameters
@@ -251,7 +251,7 @@
-clear()[source]#
+clear()[source]#

Clear cache instance.

Return type
diff --git a/output/botcore.utils.channel.html b/output/botcore.utils.channel.html index 0f45c563..13171f18 100644 --- a/output/botcore.utils.channel.html +++ b/output/botcore.utils.channel.html @@ -218,7 +218,7 @@

Useful helper functions for interacting with various discord channel objects.

-async get_or_fetch_channel(bot, channel_id)[source]#
+async get_or_fetch_channel(bot, channel_id)[source]#

Attempt to get or fetch the given channel_id from the bots cache, and return it.

Parameters
@@ -245,7 +245,7 @@
-is_in_category(channel, category_id)[source]#
+is_in_category(channel, category_id)[source]#

Return whether the given channel in the the category with the id category_id.

Parameters
diff --git a/output/botcore.utils.html b/output/botcore.utils.html index 81be8fe4..90705edf 100644 --- a/output/botcore.utils.html +++ b/output/botcore.utils.html @@ -218,7 +218,7 @@

Useful utilities and tools for Discord bot development.

-apply_monkey_patches()[source]#
+apply_monkey_patches()[source]#

Applies all common monkey patches for our bots.

Patches discord.ext.commands.Command and discord.ext.commands.Group to support root aliases.

A root_aliases keyword argument is added to these two objects, which is a sequence of alias names @@ -236,7 +236,7 @@ that will act as top-level groups rather than being aliases of the command’s g

-unqualify(name)[source]#
+unqualify(name)[source]#

Return an unqualified name given a qualified module/package name.

Parameters
diff --git a/output/botcore.utils.logging.html b/output/botcore.utils.logging.html index 2fa7c8f9..e77473e2 100644 --- a/output/botcore.utils.logging.html +++ b/output/botcore.utils.logging.html @@ -218,12 +218,12 @@

Common logging related functions.

-class CustomLogger(name, level=0)[source]#
+class CustomLogger(name, level=0)[source]#

Bases: logging.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)
@@ -245,7 +245,7 @@
 
-get_logger(name=None)[source]#
+get_logger(name=None)[source]#

Utility to make mypy recognise that logger is of type CustomLogger.

Parameters
diff --git a/output/botcore.utils.members.html b/output/botcore.utils.members.html index 3d1c2b69..5c71ac6f 100644 --- a/output/botcore.utils.members.html +++ b/output/botcore.utils.members.html @@ -218,7 +218,7 @@

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
@@ -231,7 +231,7 @@
-async handle_role_change(member, coro, role)[source]#
+async handle_role_change(member, coro, role)[source]#

Await the given coro with member 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/output/botcore.utils.regex.html b/output/botcore.utils.regex.html index 2ea90baa..086d346d 100644 --- a/output/botcore.utils.regex.html +++ b/output/botcore.utils.regex.html @@ -218,21 +218,21 @@

Common regular expressions.

-DISCORD_INVITE[source]#
+DISCORD_INVITE[source]#

Regex for Discord server invites.

-FORMATTED_CODE_REGEX[source]#
+FORMATTED_CODE_REGEX[source]#

Regex for formatted code, using Discord’s code blocks.

-RAW_CODE_REGEX[source]#
+RAW_CODE_REGEX[source]#

Regex for raw code, not using Discord’s code blocks.

diff --git a/output/botcore.utils.scheduling.html b/output/botcore.utils.scheduling.html index 074d10d5..cb652cd1 100644 --- a/output/botcore.utils.scheduling.html +++ b/output/botcore.utils.scheduling.html @@ -218,7 +218,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 @@ -232,7 +232,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
@@ -248,7 +248,7 @@ the same ID used to schedule it.

-__init__(name)[source]#
+__init__(name)[source]#

Initialize a new Scheduler instance.

Parameters
@@ -258,7 +258,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
@@ -271,7 +271,7 @@ the same ID used to schedule it.

-cancel_all()[source]#
+cancel_all()[source]#

Unschedule all known tasks.

Return type
@@ -281,7 +281,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.

@@ -299,7 +299,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.

@@ -321,7 +321,7 @@ 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.

@@ -341,7 +341,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/searchindex.js b/searchindex.js index 08fb6492..a770a166 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","output/botcore","output/botcore.async_stats","output/botcore.exts","output/botcore.site_api","output/botcore.utils","output/botcore.utils.caching","output/botcore.utils.channel","output/botcore.utils.logging","output/botcore.utils.members","output/botcore.utils.regex","output/botcore.utils.scheduling"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst","output/botcore.rst","output/botcore.async_stats.rst","output/botcore.exts.rst","output/botcore.site_api.rst","output/botcore.utils.rst","output/botcore.utils.caching.rst","output/botcore.utils.channel.rst","output/botcore.utils.logging.rst","output/botcore.utils.members.rst","output/botcore.utils.regex.rst","output/botcore.utils.scheduling.rst"],objects:{"":[[1,0,0,"-","botcore"]],"botcore.BotBase":[[1,2,1,"","__init__"],[1,2,1,"","add_cog"],[1,2,1,"","add_command"],[1,2,1,"","clear"],[1,2,1,"","close"],[1,2,1,"","load_extensions"],[1,2,1,"","log_to_dev_log"],[1,2,1,"","on_guild_available"],[1,2,1,"","on_guild_unavailable"],[1,2,1,"","ping_services"],[1,2,1,"","remove_command"],[1,2,1,"","setup_hook"],[1,2,1,"","wait_until_guild_available"]],"botcore.StartupError":[[1,2,1,"","__init__"]],"botcore.async_stats":[[2,1,1,"","AsyncStatsClient"]],"botcore.async_stats.AsyncStatsClient":[[2,2,1,"","__init__"],[2,2,1,"","create_socket"]],"botcore.site_api":[[4,1,1,"","APIClient"],[4,3,1,"","ResponseCodeError"]],"botcore.site_api.APIClient":[[4,2,1,"","__init__"],[4,2,1,"","close"],[4,2,1,"","delete"],[4,2,1,"","get"],[4,2,1,"","maybe_raise_for_status"],[4,2,1,"","patch"],[4,2,1,"","post"],[4,2,1,"","put"],[4,2,1,"","request"]],"botcore.site_api.ResponseCodeError":[[4,2,1,"","__init__"],[4,2,1,"","__str__"]],"botcore.utils":[[5,4,1,"","apply_monkey_patches"],[6,0,0,"-","caching"],[7,0,0,"-","channel"],[8,0,0,"-","logging"],[9,0,0,"-","members"],[10,0,0,"-","regex"],[11,0,0,"-","scheduling"],[5,4,1,"","unqualify"]],"botcore.utils.caching":[[6,1,1,"","AsyncCache"]],"botcore.utils.caching.AsyncCache":[[6,2,1,"","__call__"],[6,2,1,"","__init__"],[6,2,1,"","clear"]],"botcore.utils.channel":[[7,4,1,"","get_or_fetch_channel"],[7,4,1,"","is_in_category"]],"botcore.utils.logging":[[8,1,1,"","CustomLogger"],[8,4,1,"","get_logger"]],"botcore.utils.logging.CustomLogger":[[8,2,1,"","trace"]],"botcore.utils.members":[[9,4,1,"","get_or_fetch_member"],[9,4,1,"","handle_role_change"]],"botcore.utils.regex":[[10,5,1,"","DISCORD_INVITE"],[10,5,1,"","FORMATTED_CODE_REGEX"],[10,5,1,"","RAW_CODE_REGEX"]],"botcore.utils.scheduling":[[11,1,1,"","Scheduler"],[11,4,1,"","create_task"]],"botcore.utils.scheduling.Scheduler":[[11,2,1,"","__contains__"],[11,2,1,"","__init__"],[11,2,1,"","cancel"],[11,2,1,"","cancel_all"],[11,2,1,"","schedule"],[11,2,1,"","schedule_at"],[11,2,1,"","schedule_later"]],botcore:[[1,1,1,"","BotBase"],[1,3,1,"","StartupError"],[2,0,0,"-","async_stats"],[3,0,0,"-","exts"],[4,0,0,"-","site_api"],[5,0,0,"-","utils"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","exception","Python exception"],"4":["py","function","Python function"],"5":["py","data","Python data"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:exception","4":"py:function","5":"py:data"},terms:{"0":[6,8],"1":8,"128":6,"2":1,"204":4,"403":5,"8125":2,"class":[1,2,4,6,8,11],"do":7,"float":11,"function":[1,6,7,8,9,11],"int":[1,2,6,7,11],"long":11,"na\u00efv":11,"new":[2,4,6,11],"return":[1,2,4,5,6,7,8,9,11],"true":[4,8,11],A:[1,4,5,6,7,11],If:[1,4,11],It:5,No:4,Not:1,The:[1,2,4,5,6,7,8,9,11],To:[1,8],__call__:6,__contains__:11,__init__:[1,2,4,6,11],__str__:4,abstracteventloop:[2,11],act:5,ad:[5,8],add:1,add_cog:1,add_command:1,add_rol:9,after:11,aiohttp:[1,4],alia:[1,5],alias:[1,5],all:[1,2,5,11],all_command:1,all_extens:1,allow:1,allowed_rol:1,alreadi:11,also:5,an:[1,2,4,5,6,7,8,11],ani:[4,11],api:[4,9],api_cli:1,apicli:[1,4],appear:1,appli:[5,6],apply_monkey_patch:5,ar:[1,6],arg:[1,8],arg_offset:6,argument:[4,5,6,8,9],around:4,async:[1,2,4,6,7,9],async_rediscach:1,async_stat:[0,1],asynccach:6,asyncio:[2,11],asyncstatscli:[1,2],attempt:[1,7,9],attribut:5,authent:4,avail:1,await:[9,11],awar:11,base:[1,2,4,6,8,11],becaus:1,becom:1,befor:[1,11],being:5,block:10,bool:[4,7,11],bot:[1,5,7],botbas:1,botcor:0,cach:[1,5,7,9],calcul:11,call:[1,11],callabl:[6,9],can:11,cancel:11,cancel_al:11,cannot:1,categori:7,category_id:7,caus:5,changelog:0,channel:[1,5],channel_id:7,check:[4,7,11],clear:[1,6],client:[1,2],clientrespons:4,clientsess:[1,4],close:[1,4,11],cloudflar:5,code:10,cog:[1,3],command:[1,5,7],common:[1,5,8,10],commun:2,connect:[1,2],connector:1,constructor:4,contain:11,content:4,coro:[9,11],coroutin:[6,9,11],could:9,creat:[2,6,11],create_datagram_endpoint:2,create_socket:[1,2],create_task:11,current:11,custom:[6,8],customlogg:8,datetim:11,decor:6,delai:11,delet:[4,6],depend:7,dev:1,develop:[1,5],dict:4,discord:[1,3,5,7,9,10],discord_invit:10,distinguish:11,django:4,doesn:11,don:11,done:11,edit:1,either:1,elsewher:11,emit:1,empti:1,endpoint:4,ensur:1,entir:1,equival:4,error:[1,4,5,9],event:[1,2,11],event_loop:11,exc_info:8,exce:6,except:[1,4,8,11],execut:11,exist:11,expect:9,express:10,ext:[0,1,5,7],extens:1,extra:4,fail:7,failur:9,featur:1,fetch:[7,9],fifo:6,forbidden:7,format:10,formatted_code_regex:10,found:[9,11],from:[1,2,4,5,7,9,11],futur:11,gatewai:1,gener:[1,11],get:[4,7,9],get_logg:8,get_or_fetch_channel:7,get_or_fetch_memb:9,give:1,given:[1,2,5,7,8,9,11],group:5,guild:[1,9],guild_available_but_cache_empti:1,guild_creat:1,guild_id:1,guildchannel:7,ha:5,handl:[9,11],handle_role_chang:9,hashabl:11,have:[7,8],heavi:5,helper:[7,9],host:2,houston:8,how:[6,11],http:4,http_session:1,httpexcept:7,id:[1,7,11],identifi:11,ignor:5,immedi:11,implement:[1,2,6,8],inadequ:1,index:0,indic:9,individu:1,inform:[0,8],init:[1,2],initi:[4,11],initialis:[1,6],instanc:[1,4,6,7,8,11],instanti:[1,11],instead:[1,11],intend:9,interact:7,interactin:9,interest:8,intern:[1,5],invalid:7,invaliddata:7,invit:10,is_in_categori:7,item:6,its:1,json:4,keep:11,kei:6,keyword:[4,5,8],known:11,kwarg:[1,4,8,11],level:[5,8],list:1,ll:11,load:[1,5],load_extens:1,localhost:2,log:[1,5,11],log_to_dev_log:1,logger:8,look:11,loop:[2,11],lru:6,mai:6,make:8,mani:[1,6],manual:1,match:1,max_siz:6,maximum:6,maybe_raise_for_statu:4,member:[1,5],member_id:9,mention:1,messag:[1,8,11],method:[2,4,5,8],modul:[1,5,11],monkei:5,msg:8,must:11,mypi:8,name:[1,5,8,11],namespac:11,non:4,none:[1,2,4,5,6,8,9,11],normal:1,notfound:7,now:11,object:[4,5,6,7,9,11],offset:6,ok:4,on_guild_avail:1,on_guild_unavail:1,on_readi:1,onc:6,one:1,onli:1,oper:[1,11],option:[1,2,4,6,8,9],order:[6,11],other:11,otherwis:11,our:5,packag:5,page:0,paramet:[1,2,4,5,6,7,8,9,11],pass:[4,8,9,11],past:11,patch:[4,5],permiss:7,ping:1,ping_servic:1,popul:1,port:2,posit:6,post:4,prefix:2,prematur:11,prevent:11,problem:8,provid:[6,11],put:4,python:[1,11],qualifi:5,rais:[4,7,9,11],raise_for_statu:4,rather:5,raw:10,raw_code_regex:10,re:[1,11],readi:1,receiv:[4,7],recognis:8,redis_sess:1,redissess:1,regex:[1,5],regular:10,relat:[6,8],remov:1,remove_command:1,remove_rol:9,represent:4,request:4,request_text:4,requir:[1,11],resolv:1,respons:4,response_json:4,response_text:4,responsecodeerror:4,result:11,retriev:7,reusabl:3,role:[1,9],root:[1,5],root_alias:5,rout:5,run:11,s:[5,6,8,10,11],same:11,save:1,schedul:[1,5],schedule_at:11,schedule_lat:11,search:0,second:[1,11],self:1,send:4,send_typ:5,sequenc:5,server:10,servic:1,session:[1,4],session_kwarg:4,set:1,setup:1,setup_hook:1,sever:8,should:4,should_rais:4,site:4,site_api:[0,1],site_api_token:4,site_api_url:4,size:6,so:5,socket:2,sole:9,sourc:[1,2,4,5,6,7,8,9,10,11],start:[1,11],startup:1,startuperror:1,stat:2,statsclientbas:2,statsd:[1,2],still:1,store:[5,6],str:[2,4,5,8,11],string:4,sub:1,submodul:0,subpackag:0,subtract:11,suggest:11,support:[2,5,11],suppressed_except:11,t:11,target:6,task:11,task_id:11,text:4,textchannel:7,than:5,thei:1,them:[1,11],thi:[1,5,7,9,11],thrown:5,thu:1,time:11,timezon:11,token:4,tool:[1,5],top:5,trace:8,track:11,transport:2,tupl:11,two:5,type:[1,2,4,5,6,7,8,9,11],unavail:1,unawait:11,under:5,union:11,uniqu:11,unknown:7,unqualifi:5,unschedul:11,until:1,up:1,url:4,us:[1,2,4,5,7,8,9,10,11],utc:11,util:[0,1,6,8],valu:8,valueerror:4,variou:7,wa:[7,11],wait:[1,11],wait_until_guild_avail:1,warn:11,we:[8,9],when:[1,2,4,5,6,11],whether:[4,7],which:[5,11],within:1,worker:5,wrap:[6,11],wrapper:[4,11],you:7},titles:["Bot Core Project Documentation","Botcore","async_stats","Exts","site_api","Utils","caching","channel","logging","members","regex","scheduling"],titleterms:{async_stat:2,bot:0,botcor:1,cach:6,channel:7,core:0,document:0,ext:3,extra:0,log:8,member:9,modul:0,other:0,project:0,refer:0,regex:10,schedul:11,site_api:4,submodul:[1,5],subpackag:1,util:5}}) \ No newline at end of file +Search.setIndex({docnames:["index","output/botcore","output/botcore.async_stats","output/botcore.exts","output/botcore.site_api","output/botcore.utils","output/botcore.utils.caching","output/botcore.utils.channel","output/botcore.utils.logging","output/botcore.utils.members","output/botcore.utils.regex","output/botcore.utils.scheduling"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,sphinx:56},filenames:["index.rst","output/botcore.rst","output/botcore.async_stats.rst","output/botcore.exts.rst","output/botcore.site_api.rst","output/botcore.utils.rst","output/botcore.utils.caching.rst","output/botcore.utils.channel.rst","output/botcore.utils.logging.rst","output/botcore.utils.members.rst","output/botcore.utils.regex.rst","output/botcore.utils.scheduling.rst"],objects:{"":[[1,0,0,"-","botcore"]],"botcore.BotBase":[[1,2,1,"","__init__"],[1,2,1,"","add_cog"],[1,2,1,"","add_command"],[1,2,1,"","clear"],[1,2,1,"","close"],[1,2,1,"","load_extensions"],[1,2,1,"","log_to_dev_log"],[1,2,1,"","on_guild_available"],[1,2,1,"","on_guild_unavailable"],[1,2,1,"","ping_services"],[1,2,1,"","remove_command"],[1,2,1,"","setup_hook"],[1,2,1,"","wait_until_guild_available"]],"botcore.StartupError":[[1,2,1,"","__init__"]],"botcore.async_stats":[[2,1,1,"","AsyncStatsClient"]],"botcore.async_stats.AsyncStatsClient":[[2,2,1,"","__init__"],[2,2,1,"","create_socket"]],"botcore.site_api":[[4,1,1,"","APIClient"],[4,3,1,"","ResponseCodeError"]],"botcore.site_api.APIClient":[[4,2,1,"","__init__"],[4,2,1,"","close"],[4,2,1,"","delete"],[4,2,1,"","get"],[4,2,1,"","maybe_raise_for_status"],[4,2,1,"","patch"],[4,2,1,"","post"],[4,2,1,"","put"],[4,2,1,"","request"]],"botcore.site_api.ResponseCodeError":[[4,2,1,"","__init__"],[4,2,1,"","__str__"]],"botcore.utils":[[5,4,1,"","apply_monkey_patches"],[6,0,0,"-","caching"],[7,0,0,"-","channel"],[8,0,0,"-","logging"],[9,0,0,"-","members"],[10,0,0,"-","regex"],[11,0,0,"-","scheduling"],[5,4,1,"","unqualify"]],"botcore.utils.caching":[[6,1,1,"","AsyncCache"]],"botcore.utils.caching.AsyncCache":[[6,2,1,"","__call__"],[6,2,1,"","__init__"],[6,2,1,"","clear"]],"botcore.utils.channel":[[7,4,1,"","get_or_fetch_channel"],[7,4,1,"","is_in_category"]],"botcore.utils.logging":[[8,1,1,"","CustomLogger"],[8,4,1,"","get_logger"]],"botcore.utils.logging.CustomLogger":[[8,2,1,"","trace"]],"botcore.utils.members":[[9,4,1,"","get_or_fetch_member"],[9,4,1,"","handle_role_change"]],"botcore.utils.regex":[[10,5,1,"","DISCORD_INVITE"],[10,5,1,"","FORMATTED_CODE_REGEX"],[10,5,1,"","RAW_CODE_REGEX"]],"botcore.utils.scheduling":[[11,1,1,"","Scheduler"],[11,4,1,"","create_task"]],"botcore.utils.scheduling.Scheduler":[[11,2,1,"","__contains__"],[11,2,1,"","__init__"],[11,2,1,"","cancel"],[11,2,1,"","cancel_all"],[11,2,1,"","schedule"],[11,2,1,"","schedule_at"],[11,2,1,"","schedule_later"]],botcore:[[1,1,1,"","BotBase"],[1,3,1,"","StartupError"],[2,0,0,"-","async_stats"],[3,0,0,"-","exts"],[4,0,0,"-","site_api"],[5,0,0,"-","utils"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","exception","Python exception"],"4":["py","function","Python function"],"5":["py","data","Python data"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:exception","4":"py:function","5":"py:data"},terms:{"0":[6,8],"1":8,"128":6,"2":1,"204":4,"403":5,"8125":2,"class":[1,2,4,6,8,11],"do":7,"float":11,"function":[1,6,7,8,9,11],"int":[1,2,6,7,11],"long":11,"na\u00efv":11,"new":[2,4,6,11],"return":[1,2,4,5,6,7,8,9,11],"true":[4,8,11],A:[1,4,5,6,7,11],If:[1,4,11],It:5,No:4,Not:1,The:[1,2,4,5,6,7,8,9,11],To:[1,8],__call__:6,__contains__:11,__init__:[1,2,4,6,11],__str__:4,abstracteventloop:[2,11],act:5,ad:[5,8],add:1,add_cog:1,add_command:1,add_rol:9,after:11,aiohttp:[1,4],alia:[1,5],alias:[1,5],all:[1,2,5,11],all_command:1,all_extens:1,allow:1,allowed_rol:1,alreadi:11,also:5,an:[1,2,4,5,6,7,8,11],ani:[4,11],api:[4,9],api_cli:1,apicli:[1,4],appear:1,appli:[5,6],apply_monkey_patch:5,ar:[1,6],arg:[1,8],arg_offset:6,argument:[4,5,6,8,9],around:4,async:[1,2,4,6,7,9],async_rediscach:1,async_stat:[0,1],asynccach:6,asyncio:[2,11],asyncstatscli:[1,2],attempt:[1,7,9],attribut:5,authent:4,avail:1,avoid:1,await:[9,11],awar:11,base:[1,2,4,6,8,11],becaus:1,becom:1,befor:[1,11],being:5,block:10,bool:[4,7,11],bot:[1,5,7],botbas:1,botcor:0,cach:[1,5,7,9],calcul:11,call:[1,11],callabl:[6,9],can:11,cancel:11,cancel_al:11,cannot:1,categori:7,category_id:7,caus:[1,5],changelog:0,channel:[1,5],channel_id:7,check:[4,7,11],clear:[1,6],client:[1,2],clientrespons:4,clientsess:[1,4],close:[1,4,11],cloudflar:5,code:10,cog:[1,3],command:[1,5,7],common:[1,5,8,10],commun:2,connect:[1,2],connector:1,constructor:4,contain:11,content:4,coro:[9,11],coroutin:[6,9,11],could:9,creat:[2,6,11],create_datagram_endpoint:2,create_socket:[1,2],create_task:11,current:11,custom:[6,8],customlogg:8,datetim:11,deadlock:1,decor:6,delai:11,delet:[4,6],depend:7,dev:1,develop:[1,5],dict:4,discord:[1,3,5,7,9,10],discord_invit:10,distinguish:11,django:4,doesn:11,don:11,done:11,edit:1,either:1,elsewher:11,emit:1,empti:1,endpoint:4,ensur:1,entir:1,equival:4,error:[1,4,5,9],event:[1,2,11],event_loop:11,exc_info:8,exce:6,except:[1,4,8,11],execut:11,exist:11,expect:9,express:10,ext:[0,1,5,7],extens:1,extra:4,fail:7,failur:9,featur:1,fetch:[7,9],fifo:6,forbidden:7,format:10,formatted_code_regex:10,found:[9,11],from:[1,2,4,5,7,9,11],futur:11,gatewai:1,gener:[1,11],get:[4,7,9],get_logg:8,get_or_fetch_channel:7,get_or_fetch_memb:9,give:1,given:[1,2,5,7,8,9,11],group:5,guild:[1,9],guild_available_but_cache_empti:1,guild_creat:1,guild_id:1,guildchannel:7,ha:5,handl:[9,11],handle_role_chang:9,hashabl:11,have:[7,8],heavi:5,helper:[7,9],host:2,houston:8,how:[6,11],http:4,http_session:1,httpexcept:7,id:[1,7,11],identifi:11,ignor:5,immedi:11,implement:[1,2,6,8],inadequ:1,index:0,indic:9,individu:1,inform:[0,8],init:[1,2],initi:[4,11],initialis:[1,6],instanc:[1,4,6,7,8,11],instanti:[1,11],instead:[1,11],intend:9,interact:7,interactin:9,interest:8,intern:[1,5],invalid:7,invaliddata:7,invit:10,is_in_categori:7,item:6,its:1,json:4,keep:11,kei:6,keyword:[4,5,8],known:11,kwarg:[1,4,8,11],level:[5,8],list:1,ll:11,load:[1,5],load_extens:1,localhost:2,log:[1,5,11],log_to_dev_log:1,logger:8,look:11,loop:[1,2,11],lru:6,mai:6,make:8,mani:[1,6],manual:1,match:1,max_siz:6,maximum:6,maybe_raise_for_statu:4,member:[1,5],member_id:9,mention:1,messag:[1,8,11],method:[2,4,5,8],modul:[1,5,11],monkei:5,msg:8,must:11,mypi:8,name:[1,5,8,11],namespac:11,non:4,none:[1,2,4,5,6,8,9,11],normal:1,notfound:7,now:11,object:[4,5,6,7,9,11],offset:6,ok:4,on_guild_avail:1,on_guild_unavail:1,on_readi:1,onc:6,one:1,onli:1,oper:[1,11],option:[1,2,4,6,8,9],order:[6,11],other:11,otherwis:11,our:5,packag:5,page:0,paramet:[1,2,4,5,6,7,8,9,11],pass:[4,8,9,11],past:11,patch:[4,5],permiss:7,ping:1,ping_servic:1,popul:1,port:2,posit:6,post:4,prefix:2,prematur:11,prevent:11,problem:8,provid:[6,11],put:4,python:[1,11],qualifi:5,rais:[4,7,9,11],raise_for_statu:4,ran:1,rather:5,raw:10,raw_code_regex:10,re:[1,11],readi:1,receiv:[4,7],recognis:8,redis_sess:1,redissess:1,regex:[1,5],regular:10,relat:[6,8],remov:1,remove_command:1,remove_rol:9,represent:4,request:4,request_text:4,requir:[1,11],resolv:1,respons:4,response_json:4,response_text:4,responsecodeerror:4,result:11,retriev:7,reusabl:3,role:[1,9],root:[1,5],root_alias:5,rout:5,run:11,s:[5,6,8,10,11],same:11,save:1,schedul:[1,5],schedule_at:11,schedule_lat:11,search:0,second:[1,11],self:1,send:4,send_typ:5,sequenc:5,server:10,servic:1,session:[1,4],session_kwarg:4,set:1,setup:1,setup_hook:1,sever:8,should:[1,4],should_rais:4,site:4,site_api:[0,1],site_api_token:4,site_api_url:4,size:6,so:5,socket:2,sole:9,sourc:[1,2,4,5,6,7,8,9,10,11],start:[1,11],startup:1,startuperror:1,stat:2,statsclientbas:2,statsd:[1,2],still:1,store:[5,6],str:[2,4,5,8,11],string:4,sub:1,submodul:0,subpackag:0,subtract:11,suggest:11,support:[2,5,11],suppressed_except:11,t:11,target:6,task:[1,11],task_id:11,text:4,textchannel:7,than:5,thei:1,them:[1,11],thi:[1,5,7,9,11],thrown:5,thu:1,time:11,timezon:11,token:4,tool:[1,5],top:5,trace:8,track:11,transport:2,tupl:11,two:5,type:[1,2,4,5,6,7,8,9,11],unavail:1,unawait:11,under:5,union:11,uniqu:11,unknown:7,unqualifi:5,unschedul:11,until:1,up:1,url:4,us:[1,2,4,5,7,8,9,10,11],utc:11,util:[0,1,6,8],valu:8,valueerror:4,variou:7,wa:[7,11],wait:[1,11],wait_for:1,wait_until_guild_avail:1,warn:11,we:[8,9],when:[1,2,4,5,6,11],whether:[4,7],which:[5,11],within:1,worker:5,wrap:[6,11],wrapper:[4,11],you:7},titles:["Bot Core Project Documentation","Botcore","async_stats","Exts","site_api","Utils","caching","channel","logging","members","regex","scheduling"],titleterms:{async_stat:2,bot:0,botcor:1,cach:6,channel:7,core:0,document:0,ext:3,extra:0,log:8,member:9,modul:0,other:0,project:0,refer:0,regex:10,schedul:11,site_api:4,submodul:[1,5],subpackag:1,util:5}}) \ No newline at end of file -- cgit v1.2.3