From bf55b5820b78d57b72249d8f288c7a9fd28d53b0 Mon Sep 17 00:00:00 2001 From: HassanAbouelela Date: Tue, 10 May 2022 19:23:22 +0000 Subject: Deploying to docs from @ python-discord/bot-core@7eef69c7be762f0b2becf4e623c11b1507756966 🚀 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .doctrees/environment.pickle | Bin 2383729 -> 2383729 bytes .doctrees/output/botcore.async_stats.doctree | Bin 19331 -> 19331 bytes .doctrees/output/botcore.doctree | Bin 63281 -> 63281 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 -> 9168 bytes .doctrees/output/botcore.utils.scheduling.doctree | Bin 56358 -> 56358 bytes output/botcore.async_stats.html | 6 ++-- output/botcore.html | 32 +++++++++++----------- 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 | 12 ++++++-- output/botcore.utils.scheduling.html | 18 ++++++------ searchindex.js | 2 +- 22 files changed, 64 insertions(+), 58 deletions(-) diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index fddb4f37..3deec54d 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 bdbd9efe..e961b207 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 c1b5ee9c..ce5cd2bd 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 304066ae..86343675 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 e7f048b2..d3fd5e41 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 4e52d972..8eb5dbcf 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 cf121058..020ab2a2 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 41fe82d8..b003bd37 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 af67d0cf..1052b1c9 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 be05a1dd..643218e5 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 f98442f2..884259ae 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 ad78802c..9c804cd2 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 a5b91a28..2b74582e 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, statsd_url=None, **kwargs)[source]#
+class BotBase(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, statsd_url=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, statsd_url=None, **kwargs)[source]#
+__init__(*args, guild_id, allowed_roles, http_session, redis_session=None, api_client=None, statsd_url=None, **kwargs)[source]#

Initialise the base bot instance.

Parameters
@@ -241,7 +241,7 @@ a dummy statsd client will be created.

-async add_cog(cog)[source]#
+async add_cog(cog)[source]#

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

Return type
@@ -251,7 +251,7 @@ a dummy statsd client will be created.

-add_command(command)[source]#
+add_command(command)[source]#

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

Return type
@@ -261,7 +261,7 @@ a dummy statsd client will be created.

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

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

Return type
@@ -271,7 +271,7 @@ a dummy statsd client will be created.

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

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

Return type
@@ -281,7 +281,7 @@ a dummy statsd client will be created.

-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.

@@ -292,7 +292,7 @@ a dummy statsd client will be created.

-async log_to_dev_log(message)[source]#
+async log_to_dev_log(message)[source]#

Log the given message to #dev-log.

Return type
@@ -302,7 +302,7 @@ a dummy statsd client will be created.

-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.

@@ -314,7 +314,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
@@ -324,7 +324,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
@@ -334,7 +334,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.

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

@@ -372,12 +372,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 443647fa..3a4a0f47 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 fdab21a8..49b5e78c 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 90f14686..ad8da818 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 9410e201..5142d985 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 f4a8a146..c332615b 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 c23e0316..2696a6ea 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 934499af..e682154f 100644 --- a/output/botcore.utils.regex.html +++ b/output/botcore.utils.regex.html @@ -218,21 +218,27 @@

Common regular expressions.

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

Regex for Discord server invites.

+
+

Warning

+

This regex pattern will capture until a whitespace, if you are to use the ‘invite’ capture group in +any HTTP requests or similar. Please ensure you sanitise the output using something +such as urllib.parse.quote().

+
-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 d6cbb249..504b2859 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 95041618..ccb8ccc0 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,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:[1,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,dummi:1,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:[1,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],statsd_url:1,still:1,store:[5,6],str:[1,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:[1,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 +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,10,11],api:[4,9],api_cli:1,apicli:[1,4],appear:1,appli:[5,6],apply_monkey_patch:5,ar:[1,6,10],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,captur:10,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:[1,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,dummi:1,edit:1,either:1,elsewher:11,emit:1,empti:1,endpoint:4,ensur:[1,10],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,10],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,10],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,output:10,packag:5,page:0,paramet:[1,2,4,5,6,7,8,9,11],pars:10,pass:[4,8,9,11],past:11,patch:[4,5],pattern:10,permiss:7,ping:1,ping_servic:1,pleas:10,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,quot:10,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,10],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,sanitis:10,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:[1,10],servic:1,session:[1,4],session_kwarg:4,set:1,setup:1,setup_hook:1,sever:8,should:[1,4],should_rais:4,similar:10,site:4,site_api:[0,1],site_api_token:4,site_api_url:4,size:6,so:5,socket:2,sole:9,someth:10,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],statsd_url:1,still:1,store:[5,6],str:[1,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,10,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,10],up:1,url:[1,4],urllib:10,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],whitespac:10,within:1,worker:5,wrap:[6,11],wrapper:[4,11],you:[7,10]},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