From 574f77ba8e2d1f1640ac0318b992758d3197abbe Mon Sep 17 00:00:00 2001 From: wookie184 Date: Sun, 19 May 2024 01:32:44 +0000 Subject: Deploying to docs from @ python-discord/bot-core@c296ba30d359c7cd92fd5b4a40d7ef898d603bff 🚀 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- v10.2.0/.buildinfo | 2 +- v10.2.0/_static/basic.css | 2 +- v10.2.0/_static/doctools.js | 2 +- v10.2.0/_static/language_data.js | 4 +- v10.2.0/_static/searchtools.js | 165 +++++++++++++-------- v10.2.0/changelog.html | 8 +- v10.2.0/development.html | 12 +- v10.2.0/genindex.html | 6 +- v10.2.0/index.html | 12 +- v10.2.0/index_redirect.html | 6 +- v10.2.0/output/pydis_core.async_stats.html | 14 +- v10.2.0/output/pydis_core.exts.html | 8 +- v10.2.0/output/pydis_core.html | 46 +++--- v10.2.0/output/pydis_core.site_api.html | 34 ++--- v10.2.0/output/pydis_core.utils.caching.html | 16 +- v10.2.0/output/pydis_core.utils.channel.html | 12 +- v10.2.0/output/pydis_core.utils.commands.html | 10 +- v10.2.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.2.0/output/pydis_core.utils.function.html | 14 +- v10.2.0/output/pydis_core.utils.html | 14 +- v10.2.0/output/pydis_core.utils.interactions.html | 24 +-- v10.2.0/output/pydis_core.utils.logging.html | 14 +- v10.2.0/output/pydis_core.utils.members.html | 12 +- v10.2.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.2.0/output/pydis_core.utils.regex.html | 14 +- v10.2.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.2.0/py-modindex.html | 6 +- v10.2.0/search.html | 6 +- v10.2.0/searchindex.js | 2 +- v10.2.0/versions.html | 6 +- 31 files changed, 303 insertions(+), 258 deletions(-) (limited to 'v10.2.0') diff --git a/v10.2.0/.buildinfo b/v10.2.0/.buildinfo index 3271e7ab..0a43e28d 100644 --- a/v10.2.0/.buildinfo +++ b/v10.2.0/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 7b273321e0ce92986ebac54109f81804 +config: 14d5e3325cfd4e89fef0b8ae23fb0967 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.2.0/_static/basic.css b/v10.2.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.2.0/_static/basic.css +++ b/v10.2.0/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/v10.2.0/_static/doctools.js b/v10.2.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.2.0/_static/doctools.js +++ b/v10.2.0/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/v10.2.0/_static/language_data.js b/v10.2.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.2.0/_static/language_data.js +++ b/v10.2.0/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/v10.2.0/_static/searchtools.js b/v10.2.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.2.0/_static/searchtools.js +++ b/v10.2.0/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/v10.2.0/changelog.html b/v10.2.0/changelog.html index d6423b92..8593fb47 100644 --- a/v10.2.0/changelog.html +++ b/v10.2.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.2.0 - + @@ -379,7 +379,7 @@
-

Changelog#

+

Changelog¶

10.2.0 28th August 2023

  • [Support] #192: Bump Discord.py to 2.3.2.

  • @@ -741,7 +741,7 @@ - + diff --git a/v10.2.0/development.html b/v10.2.0/development.html index 92a0eca4..529dc730 100644 --- a/v10.2.0/development.html +++ b/v10.2.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.2.0 - + @@ -379,7 +379,7 @@
    -

    Local Development & Testing#

    +

    Local Development & Testing¶

    To test your features locally, there are a few possible approaches:

    1. Install your local copy of pydis_core into a pre-existing project such as bot

    2. @@ -391,7 +391,7 @@ This might mean adding new commands, modifying existing ones, changing utilities The steps below should provide most of the groundwork you need, but the exact requirements will vary by the feature you’re working on.

      -

      Option 1#

      +

      Option 1¶

      1. Navigate to the project you want to install bot-core in, such as bot or sir-lancebot

      2. Run pip install /path/to/pydis_core in the project’s environment

        @@ -407,7 +407,7 @@ To load new changes, run the install command again.

      -

      Option 2#

      +

      Option 2¶

      1. Copy the bot template folder to the root of the bot-core project. This copy is going to be git-ignored, so you’re free to modify it however you like.

      2. @@ -507,7 +507,7 @@ to help you test out certain features. Use them as needed.

        - + diff --git a/v10.2.0/genindex.html b/v10.2.0/genindex.html index 58174d84..989bdae3 100644 --- a/v10.2.0/genindex.html +++ b/v10.2.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.2.0 + Index - Pydis Core v10.2.0 - + @@ -943,7 +943,7 @@ - + diff --git a/v10.2.0/index.html b/v10.2.0/index.html index ffc53503..36a7ebab 100644 --- a/v10.2.0/index.html +++ b/v10.2.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.2.0 - + @@ -379,10 +379,10 @@
        -

        Bot Core Project Documentation#

        +

        Bot Core Project Documentation¶

        -

        Reference#

        +

        Reference¶

        Modules:

          @@ -438,7 +438,7 @@
        -

        Extras#

        +

        Extras¶

        • Index

        • Search Page

        • @@ -488,7 +488,7 @@ - + diff --git a/v10.2.0/index_redirect.html b/v10.2.0/index_redirect.html index e0d4fbfd..53c660ba 100644 --- a/v10.2.0/index_redirect.html +++ b/v10.2.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.2.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.2.0/output/pydis_core.async_stats.html b/v10.2.0/output/pydis_core.async_stats.html index f1530b56..4fccf770 100644 --- a/v10.2.0/output/pydis_core.async_stats.html +++ b/v10.2.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.2.0 - + @@ -379,16 +379,16 @@
          -

          async_stats#

          +

          async_stats¶

          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: 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:
          @@ -405,7 +405,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:
          @@ -491,7 +491,7 @@ - + diff --git a/v10.2.0/output/pydis_core.exts.html b/v10.2.0/output/pydis_core.exts.html index e63fb8b4..d89fb326 100644 --- a/v10.2.0/output/pydis_core.exts.html +++ b/v10.2.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.2.0 - + @@ -379,7 +379,7 @@
          -

          Exts#

          +

          Exts¶

          Reusable Discord cogs.

          @@ -433,7 +433,7 @@ - + diff --git a/v10.2.0/output/pydis_core.html b/v10.2.0/output/pydis_core.html index 8e955b48..856200ed 100644 --- a/v10.2.0/output/pydis_core.html +++ b/v10.2.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.2.0 - + @@ -379,16 +379,16 @@
          -

          Pydis Core#

          +

          Pydis Core¶

          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: 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:
          @@ -407,7 +407,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:
          @@ -418,7 +418,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:
          @@ -429,7 +429,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:
          @@ -440,7 +440,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:
          @@ -451,7 +451,7 @@ a dummy statsd client will be created.

          -async load_extensions(module, sync_app_commands=True)[source]#
          +async load_extensions(module, sync_app_commands=True)[source]¶

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

          Parameters:
          @@ -465,7 +465,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:
          @@ -476,7 +476,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.

          @@ -489,7 +489,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:
          @@ -500,7 +500,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:
          @@ -511,7 +511,7 @@ will not be set and guild_available_but_cache_empty event will be e
          -async process_commands(message)[source]#
          +async process_commands(message)[source]¶

          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.

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

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

          @@ -565,18 +565,18 @@ 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]¶
          -

          Subpackages#

          +

          Subpackages¶

          • Exts
          • @@ -658,7 +658,7 @@ gateway event before giving up and thus not populating the cache for unavailable
          -

          Submodules#

          +

          Submodules¶

          • async_stats
              @@ -785,7 +785,7 @@ gateway event before giving up and thus not populating the cache for unavailable
          - + diff --git a/v10.2.0/output/pydis_core.site_api.html b/v10.2.0/output/pydis_core.site_api.html index 6164b82a..dddc80c9 100644 --- a/v10.2.0/output/pydis_core.site_api.html +++ b/v10.2.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.2.0 - + @@ -379,16 +379,16 @@
          -

          site_api#

          +

          site_api¶

          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:
          @@ -403,7 +403,7 @@
          -async close()[source]#
          +async close()[source]¶

          Close the aiohttp session.

          Return type:
          @@ -414,7 +414,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:
          @@ -435,7 +435,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:
          @@ -446,7 +446,7 @@
          -async static maybe_raise_for_status(response, should_raise)[source]#
          +async static maybe_raise_for_status(response, should_raise)[source]¶

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

          Parameters:
          @@ -466,7 +466,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:
          @@ -477,7 +477,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:
          @@ -488,7 +488,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:
          @@ -499,7 +499,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:
          @@ -526,12 +526,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:
          @@ -546,7 +546,7 @@
          -__str__()[source]#
          +__str__()[source]¶

          Return a string representation of the error.

          @@ -639,7 +639,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.caching.html b/v10.2.0/output/pydis_core.utils.caching.html index dd4bd47a..3ac90301 100644 --- a/v10.2.0/output/pydis_core.utils.caching.html +++ b/v10.2.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.2.0 - + @@ -379,18 +379,18 @@
          -

          caching#

          +

          caching¶

          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:
          @@ -407,7 +407,7 @@
          -__init__(max_size=128)[source]#
          +__init__(max_size=128)[source]¶

          Initialise a new AsyncCache instance.

          Parameters:
          @@ -418,7 +418,7 @@
          -clear()[source]#
          +clear()[source]¶

          Clear cache instance.

          Return type:
          @@ -505,7 +505,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.channel.html b/v10.2.0/output/pydis_core.utils.channel.html index d16a7de4..770ef26c 100644 --- a/v10.2.0/output/pydis_core.utils.channel.html +++ b/v10.2.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.2.0 - + @@ -379,11 +379,11 @@
          -

          channel#

          +

          channel¶

          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:
          @@ -411,7 +411,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:
          @@ -501,7 +501,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.commands.html b/v10.2.0/output/pydis_core.utils.commands.html index 2a289747..56aad10e 100644 --- a/v10.2.0/output/pydis_core.utils.commands.html +++ b/v10.2.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.2.0 - + @@ -379,10 +379,10 @@
          -

          commands#

          +

          commands¶

          -async clean_text_or_reply(ctx, text=None)[source]#
          +async clean_text_or_reply(ctx, text=None)[source]¶

          Cleans a text argument or replied message’s content.

          Parameters:
          @@ -474,7 +474,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.cooldown.html b/v10.2.0/output/pydis_core.utils.cooldown.html index 8fc193cc..7f9146ff 100644 --- a/v10.2.0/output/pydis_core.utils.cooldown.html +++ b/v10.2.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.2.0 - + @@ -379,21 +379,21 @@
          -

          cooldown#

          +

          cooldown¶

          Helpers for setting a cooldown on commands.

          -exception CommandOnCooldown(message, function, /, *args, **kwargs)[source]#
          +exception CommandOnCooldown(message, function, /, *args, **kwargs)[source]¶

          Bases: CommandError, Generic[P, R]

          Raised when a command is invoked while on cooldown.

          -__init__(message, function, /, *args, **kwargs)[source]#
          +__init__(message, function, /, *args, **kwargs)[source]¶
          -async call_without_cooldown()[source]#
          +async call_without_cooldown()[source]¶

          Run the command this cooldown blocked.

          Return type:
          @@ -409,20 +409,20 @@
          -P = ~P[source]#
          +P = ~P[source]¶

          The command’s signature.

          -class R[source]#
          +class R[source]¶

          The command’s return value.

          alias of TypeVar(‘R’)

          -block_duplicate_invocations(*, cooldown_duration=5, send_notice=False, args_preprocessor=None)[source]#
          +block_duplicate_invocations(*, cooldown_duration=5, send_notice=False, args_preprocessor=None)[source]¶

          Prevent duplicate invocations of a command with the same arguments in a channel for cooldown_duration seconds.

          Parameters:
          @@ -524,7 +524,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v10.2.0/output/pydis_core.utils.error_handling.html b/v10.2.0/output/pydis_core.utils.error_handling.html index e9a0e7f7..4e2ed445 100644 --- a/v10.2.0/output/pydis_core.utils.error_handling.html +++ b/v10.2.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.2.0 - + @@ -379,10 +379,10 @@
          -

          error_handling#

          +

          error_handling¶

          -async handle_forbidden_from_block(error, message=None)[source]#
          +async handle_forbidden_from_block(error, message=None)[source]¶

          Handles discord.Forbidden 90001 errors, or re-raises if error isn’t a 90001 error.

          Parameters:
          @@ -468,7 +468,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.function.html b/v10.2.0/output/pydis_core.utils.function.html index 43a82e2c..eb20866a 100644 --- a/v10.2.0/output/pydis_core.utils.function.html +++ b/v10.2.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.2.0 - + @@ -379,18 +379,18 @@
          -

          function#

          +

          function¶

          Utils for manipulating functions.

          -exception GlobalNameConflictError[source]#
          +exception GlobalNameConflictError[source]¶

          Bases: Exception

          Raised on a conflict between the globals used to resolve annotations of a wrapped function and its wrapper.

          -command_wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__'), updated=('__dict__',), *, ignored_conflict_names=frozenset({}))[source]#
          +command_wraps(wrapped, assigned=('__module__', '__name__', '__qualname__', '__doc__', '__annotations__'), updated=('__dict__',), *, ignored_conflict_names=frozenset({}))[source]¶

          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.

          @@ -414,7 +414,7 @@ with the wrapper replaced with the function
          -update_wrapper_globals(wrapper, wrapped, *, ignored_conflict_names=frozenset({}))[source]#
          +update_wrapper_globals(wrapper, wrapped, *, ignored_conflict_names=frozenset({}))[source]¶

          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 @@ -515,7 +515,7 @@ changes won’t be reflected in the new function’s globals.

          - + diff --git a/v10.2.0/output/pydis_core.utils.html b/v10.2.0/output/pydis_core.utils.html index ae57a2a9..52b1bea7 100644 --- a/v10.2.0/output/pydis_core.utils.html +++ b/v10.2.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.2.0 - + @@ -379,11 +379,11 @@
          -

          Utils#

          +

          Utils¶

          Useful utilities and tools for Discord bot development.

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

          Applies all common monkey patches for our bots.

          Return type:
          @@ -402,7 +402,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:
          @@ -418,7 +418,7 @@ that will act as top-level groups rather than being aliases of the command’s g
          -

          Submodules#

          +

          Submodules¶

          • caching
              @@ -604,7 +604,7 @@ that will act as top-level groups rather than being aliases of the command’s g
          - + diff --git a/v10.2.0/output/pydis_core.utils.interactions.html b/v10.2.0/output/pydis_core.utils.interactions.html index b10b2f14..452eb567 100644 --- a/v10.2.0/output/pydis_core.utils.interactions.html +++ b/v10.2.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.2.0 - + @@ -379,10 +379,10 @@
          -

          interactions#

          +

          interactions¶

          -class DeleteMessageButton(*, style=('secondary', 2), label='Delete', **kwargs)[source]#
          +class DeleteMessageButton(*, style=('secondary', 2), label='Delete', **kwargs)[source]¶

          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.

          @@ -397,12 +397,12 @@
          -__init__(*, style=('secondary', 2), label='Delete', **kwargs)[source]#
          +__init__(*, style=('secondary', 2), label='Delete', **kwargs)[source]¶
          -async callback(interaction)[source]#
          +async callback(interaction)[source]¶

          Delete the original message on button click.

          Return type:
          @@ -415,7 +415,7 @@
          -class ViewWithUserAndRoleCheck(*, allowed_users, allowed_roles, timeout=180.0, message=None)[source]#
          +class ViewWithUserAndRoleCheck(*, allowed_users, allowed_roles, timeout=180.0, message=None)[source]¶

          Bases: View

          A view that allows the original invoker and moderators to interact with it.

          @@ -432,12 +432,12 @@ If None
          -__init__(*, allowed_users, allowed_roles, timeout=180.0, message=None)[source]#
          +__init__(*, allowed_users, allowed_roles, timeout=180.0, message=None)[source]¶
          -async interaction_check(interaction)[source]#
          +async interaction_check(interaction)[source]¶

          Ensure the user clicking the button is the view invoker, or a moderator.

          Parameters:
          @@ -451,7 +451,7 @@ If None
          -async on_timeout()[source]#
          +async on_timeout()[source]¶

          Remove the view from self.message if set.

          Return type:
          @@ -462,7 +462,7 @@ If None
          -stop()[source]#
          +stop()[source]¶

          Stop listening for interactions, and remove the view from self.message if set.

          Return type:
          @@ -555,7 +555,7 @@ If None - + diff --git a/v10.2.0/output/pydis_core.utils.logging.html b/v10.2.0/output/pydis_core.utils.logging.html index 4e86a3da..4a9ff0a5 100644 --- a/v10.2.0/output/pydis_core.utils.logging.html +++ b/v10.2.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.2.0 - + @@ -379,16 +379,16 @@
          -

          logging#

          +

          logging¶

          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)
          @@ -412,7 +412,7 @@
           
           
          -get_logger(name=None)[source]#
          +get_logger(name=None)[source]¶

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

          Parameters:
          @@ -502,7 +502,7 @@
          - + diff --git a/v10.2.0/output/pydis_core.utils.members.html b/v10.2.0/output/pydis_core.utils.members.html index 2ee65548..fdcd6198 100644 --- a/v10.2.0/output/pydis_core.utils.members.html +++ b/v10.2.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.2.0 - + @@ -379,11 +379,11 @@
          -

          members#

          +

          members¶

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

          @@ -487,7 +487,7 @@ - + diff --git a/v10.2.0/output/pydis_core.utils.paste_service.html b/v10.2.0/output/pydis_core.utils.paste_service.html index 05ad27eb..6cd6895c 100644 --- a/v10.2.0/output/pydis_core.utils.paste_service.html +++ b/v10.2.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.2.0 - + @@ -379,16 +379,16 @@
          -

          paste_service#

          +

          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.

          @@ -402,19 +402,19 @@
          -model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#
          +model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶

          A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

          -model_config: ClassVar[ConfigDict] = {}#
          +model_config: ClassVar[ConfigDict] = {}¶

          Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

          -model_fields: ClassVar[dict[str, FieldInfo]] = {'content': FieldInfo(annotation=str, required=True), 'lexer': FieldInfo(annotation=str, required=False, default='python'), 'name': FieldInfo(annotation=str, required=False, default='')}#
          +model_fields: ClassVar[dict[str, FieldInfo]] = {'content': FieldInfo(annotation=str, required=True), 'lexer': FieldInfo(annotation=str, required=False, default='python'), 'name': FieldInfo(annotation=str, required=False, default='')}¶

          Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

          This replaces Model.__fields__ from Pydantic V1.

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

          @@ -437,19 +437,19 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
          -model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#
          +model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶

          A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

          -model_config: ClassVar[ConfigDict] = {}#
          +model_config: ClassVar[ConfigDict] = {}¶

          Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

          -model_fields: ClassVar[dict[str, FieldInfo]] = {'link': FieldInfo(annotation=str, required=True), 'removal': FieldInfo(annotation=str, required=True)}#
          +model_fields: ClassVar[dict[str, FieldInfo]] = {'link': FieldInfo(annotation=str, required=True), 'removal': FieldInfo(annotation=str, required=True)}¶

          Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

          This replaces Model.__fields__ from Pydantic V1.

          @@ -459,28 +459,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:
          @@ -594,7 +594,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v10.2.0/output/pydis_core.utils.regex.html b/v10.2.0/output/pydis_core.utils.regex.html index 0c3d3f7a..057a87ee 100644 --- a/v10.2.0/output/pydis_core.utils.regex.html +++ b/v10.2.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.2.0 - + @@ -379,11 +379,11 @@
          -

          regex#

          +

          regex¶

          Common regular expressions.

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

          Regex for Discord server invites.

          Warning

          @@ -397,7 +397,7 @@ such as
          -FORMATTED_CODE_REGEX[source]#
          +FORMATTED_CODE_REGEX[source]¶

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

          @@ -405,7 +405,7 @@ such as
          -RAW_CODE_REGEX[source]#
          +RAW_CODE_REGEX[source]¶

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

          @@ -484,7 +484,7 @@ such as - + diff --git a/v10.2.0/output/pydis_core.utils.scheduling.html b/v10.2.0/output/pydis_core.utils.scheduling.html index 9815ae6a..c39e21c3 100644 --- a/v10.2.0/output/pydis_core.utils.scheduling.html +++ b/v10.2.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.2.0 - + @@ -379,11 +379,11 @@
          -

          scheduling#

          +

          scheduling¶

          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 @@ -397,7 +397,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:
          @@ -414,7 +414,7 @@ the same ID used to schedule it.

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

          Initialize a new Scheduler instance.

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

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

          Unschedule all known tasks.

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

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

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

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

          @@ -617,7 +617,7 @@ otherwise the running loop is used.

          - + diff --git a/v10.2.0/py-modindex.html b/v10.2.0/py-modindex.html index 05614dc0..5e4716ae 100644 --- a/v10.2.0/py-modindex.html +++ b/v10.2.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.2.0 + Python Module Index - Pydis Core v10.2.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.2.0/search.html b/v10.2.0/search.html index f84f1e53..26169eb1 100644 --- a/v10.2.0/search.html +++ b/v10.2.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.2.0 + Search - Pydis Core v10.2.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.2.0/searchindex.js b/v10.2.0/searchindex.js index cfb243e0..701585cb 100644 --- a/v10.2.0/searchindex.js +++ b/v10.2.0/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.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.logging", "output/pydis_core.utils.members", "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.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.logging.rst", "output/pydis_core.utils.members.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", "commands", "cooldown", "error_handling", "function", "interactions", "logging", "members", "paste_service", "regex", "scheduling"], "terms": {"10": 0, "2": [0, 3, 14], "0": [0, 8, 14, 15], "28th": 0, "august": 0, "2023": 0, "support": [0, 4, 7, 19], "192": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 3, 13], "3": 0, "1": [0, 15], "25th": 0, "juli": 0, "featur": [0, 1, 3], "190": 0, "overwrit": [0, 3], "ext": [0, 2, 3, 7, 9, 10], "command": [0, 1, 3, 7, 9, 11, 13], "bot": [0, 1, 3, 7, 9], "process_command": [0, 2, 3], "ensur": [0, 3, 14, 18], "ar": [0, 1, 3, 8, 13, 14, 18], "process": [0, 3], "until": [0, 3, 18], "all": [0, 1, 3, 4, 7, 19], "extens": [0, 3], "load": [0, 1, 3, 7], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 17, 18, 19], "onli": [0, 3], "work": [0, 1], "client": [0, 3, 4], "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "14th": 0, "break": [0, 13], "188": 0, "send": [0, 6, 14], "multipl": 0, "file": [0, 1, 17], "onc": [0, 8], "past": [0, 17, 19], "servic": [0, 1, 3, 17], "call": [0, 3, 11, 13, 19], "util": [0, 1, 2, 3, 8, 13, 14, 15], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 17], "must": [0, 19], "now": [0, 1, 19], "provid": [0, 1, 8, 10, 12, 19], "list": [0, 1, 3, 17], "pastefil": [0, 3, 7, 17], "184": 0, "remov": [0, 3, 14, 17], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "store": [0, 7, 8], "attr": 0, "interact": [0, 3, 7, 9], "viewwithuserandrolecheck": [0, 3, 7, 14], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "stop": [0, 7, 14], "addit": 0, "exist": [0, 1, 19], "logic": 0, "timeout": [0, 14], "bug": 0, "187": 0, "fix": 0, "channel": [0, 3, 7, 11], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "includ": [0, 1, 12], "abc": 0, "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 13], "expiri": 0, "label": [0, 14], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "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, "add": [0, 3, 11], "lexer": [0, 17], "valid": 0, "default": [0, 1, 3, 17], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "ruff": 0, "lint": 0, "177": 0, "automat": 0, "handl": [0, 12, 16, 19], "forbidden": [0, 9, 12], "90001": [0, 12], "error": [0, 3, 6, 7, 12, 16, 17], "schedul": [0, 3, 7], "179": 0, "upload": [0, 17], "text": [0, 6, 10, 17], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "cog": [0, 3, 5], "5": [0, 11], "march": 0, "174": 0, "februari": 0, "173": 0, "4": 0, "9th": 0, "172": 0, "24th": 0, "decemb": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 14, 19], "have": [0, 9, 13, 15], "been": 0, "releas": 0, "also": [0, 7, 13, 14], "need": [0, 1], "run": [0, 1, 11, 19], "task": [0, 19], "23rd": 0, "170": 0, "save": [0, 3, 17], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 11, 13, 19], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 19], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 18], "member": [0, 3, 7], "get_or_fetch_memb": [0, 3, 7, 16], "17th": 0, "novemb": 0, "151": 0, "python": [0, 1, 3, 17, 19], "11": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "button": [0, 14], "press": 0, "88": 0, "decor": [0, 8, 11, 13], "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "septemb": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 18], "option": [0, 8], "match": [0, 3], "lead": 0, "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": [0, 17], "rc2": 0, "107": 0, "declar": 0, "aiodn": 0, "depend": [0, 9], "sampl": 0, "boilerpl": 0, "document": 0, "explain": 0, "how": [0, 8, 13, 19], "develop": [0, 2, 3, 7], "core": [0, 1], "108": 0, "version": [0, 10], "101": 0, "clean": [0, 10], "string": [0, 6], "referenc": 0, "content": [0, 6, 10, 17], "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 15, 17, 19], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "deletemessagebutton": [0, 3, 7, 14], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "specifi": [0, 11, 14], "user": [0, 11, 14], "role": [0, 1, 3, 14, 16], "98": 0, "close": [0, 2, 3, 6, 19], "stat": [0, 4], "_transport": 0, "wa": [0, 9, 19], "30th": 0, "91": 0, "miss": 0, "await": [0, 11, 14, 16], "ping_servic": [0, 2, 3], "some": [0, 17], "case": 0, "pass": [0, 6, 15, 16, 19], "self": [0, 3, 14], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 16], "96": 0, "attempt": [0, 3, 9, 16], "connect": [0, 3, 4], "statsd_url": [0, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "which": [0, 1, 7, 11, 19], "new": [0, 1, 4, 6, 8, 13, 19], "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1], "79": 0, "restor": 0, "site": [0, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 15], "older": 0, "doc": 0, "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "time": [0, 19], "out": [0, 1, 14], "75": 0, "invit": [0, 18], "longer": [0, 14], "safe": 0, "result": [0, 19], "captur": [0, 13, 18], "charact": 0, "up": [0, 1, 3], "whitespac": [0, 18], "26th": 0, "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "base": [0, 3, 4, 6, 8, 11, 13, 14, 15, 17, 19], "number": [0, 17], "so": [0, 1, 7], "should": [0, 1, 6, 14, 17], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 16], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 13], "main": 0, "don": [0, 19], "t": [0, 10, 12, 13, 19], "modul": [0, 3, 7, 13, 19], "start": [0, 3, 19], "_": 0, "66": 0, "each": 0, "own": [0, 13], "avoid": 0, "singl": 0, "crash": 0, "entir": [0, 3], "20th": 0, "65": 0, "unqualifi": [0, 2, 3, 7], "namespac": [0, 19], "manipul": [0, 13], "19th": 0, "64": 0, "987235d": 0, "revert": 0, "chang": [0, 1, 13], "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "63": 0, "api_cli": [0, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 11, 14, 19], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "instanc": [0, 3, 6, 8, 9, 15, 19], "61": 0, "reconnect": 0, "redi": 0, "session": [0, 3, 6, 17], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "asyncio": [0, 4, 19], "event": [0, 3, 4, 19], "_guild_avail": 0, "within": [0, 3], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3], "made": 0, "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 17], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "share": [0, 13], "between": [0, 1, 13], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 15], "import": 0, "can": [0, 1, 14, 19], "function": [0, 3, 7, 8, 9, 11, 15, 16, 19], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "port": [0, 4], "api": [0, 6, 16], "wrapper": [0, 6, 11, 13, 19], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "mani": [0, 3, 8], "common": [0, 1, 3, 7, 15, 18], "cach": [0, 3, 7, 9, 16], "logger": [0, 15], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 7, 14, 15], "intersphinx": 0, "januari": 0, "12": 0, "code": [0, 1, 18], "block": [0, 11, 18], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 7], "poetri": [0, 1], "ci": 0, "To": [1, 3, 15], "your": 1, "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "see": [1, 13, 14], "below": 1, "more": [1, 13], "info": 1, "both": [1, 17], "what": 1, "go": 1, "them": [1, 3, 13, 19], "you": [1, 9, 18], "ll": [1, 19], "write": 1, "might": 1, "mean": 1, "modifi": [1, 16], "ones": 1, "etc": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "requir": [1, 3, 17, 19], "vari": 1, "re": [1, 3, 12, 19], "navig": 1, "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "environ": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 14, 17, 19], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 13], "free": 1, "howev": 1, "like": [1, 13], "m": 1, "docker": 1, "compos": 1, "d": [1, 13], "configur": [1, 17], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "enabl": 1, "guild_id": [1, 3], "monitor": 1, "prefix": [1, 4], "invok": [1, 11, 14], "mention": [1, 3], "allowed_rol": [1, 3, 14], "A": [1, 3, 6, 7, 8, 9, 11, 13, 14, 17, 19], "comma": 1, "seper": 1, "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "other": [1, 19], "applic": 1, "certain": 1, "pydi": 2, "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8], "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], "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, "inform": [2, 15], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 11, 15], "http_session": [3, 17], "redis_sess": 3, "kwarg": [3, 6, 11, 14, 15, 19], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "implement": [3, 4, 8, 14, 15], "initialis": [3, 8], "int": [3, 4, 8, 9, 14, 17, 19], "clientsess": [3, 6, 17], "redissess": 3, "async_rediscach": 3, "str": [3, 4, 6, 7, 10, 13, 14, 15, 17, 19], "server": [3, 18], "If": [3, 6, 11, 13, 14, 19], "given": [3, 4, 7, 9, 10, 15, 16, 19], "oper": [3, 19], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 14, 19], "instead": [3, 11, 19], "connector": 3, "resolv": [3, 13], "sync_app_command": 3, "true": [3, 6, 11, 15, 17, 19], "all_extens": 3, "bool": [3, 6, 9, 11, 14, 19], "whether": [3, 6, 9], "intern": [3, 7], "becom": 3, "appear": 3, "still": 3, "empti": 3, "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 13], "check": [3, 6, 9, 11, 12, 14, 19], "relev": 3, "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "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, 13], "second": [3, 11, 14, 19], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 11, 13, 15, 17, 19], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "clean_text_or_repli": [3, 7, 10], "cooldown": [3, 7], "commandoncooldown": [3, 7, 11], "p": [3, 7, 11], "r": [3, 7, 11], "block_duplicate_invoc": [3, 7, 11], "error_handl": [3, 7], "handle_forbidden_from_block": [3, 7, 12], "globalnameconflicterror": [3, 7, 13], "command_wrap": [3, 7, 13], "update_wrapper_glob": [3, 7, 13], "customlogg": [3, 7, 15], "get_logg": [3, 7, 15], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "formatted_code_regex": [3, 7, 18], "raw_code_regex": [3, 7, 18], "create_task": [3, 7, 19], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 17], "put": [3, 6], "__str__": [3, 6], "transport": 4, "commun": 4, "loop": [4, 19], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 19], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "object": [6, 7, 8, 9, 11, 16, 17, 19], "django": 6, "initi": [6, 19], "authent": 6, "keyword": [6, 7, 15], "argument": [6, 7, 8, 10, 11, 15, 16], "constructor": 6, "endpoint": 6, "raise_for_statu": 6, "json": 6, "respons": [6, 17], "rais": [6, 9, 10, 11, 12, 13, 16, 17, 19], "ok": 6, "ani": [6, 18, 19], "extra": 6, "dict": [6, 17], "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11, 17], "group": [7, 18], "root_alias": 7, "two": 7, "sequenc": [7, 13, 14], "act": 7, "top": 7, "level": [7, 15], "rather": 7, "than": [7, 17], "It": 7, "attribut": [7, 13], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "caus": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 11], "callback": [7, 14], "interaction_check": [7, 14], "on_timeout": [7, 14], "model_computed_field": [7, 17], "model_config": [7, 17], "model_field": [7, 17], "__contains__": [7, 19], "cancel": [7, 19], "cancel_al": [7, 19], "schedule_at": [7, 19], "schedule_lat": [7, 19], "relat": [8, 15], "max_siz": [8, 17], "128": 8, "lru": 8, "coroutin": [8, 16, 19], "exce": 8, "maximum": [8, 17], "size": [8, 17], "kei": 8, "fifo": 8, "order": [8, 19], "offset": 8, "arg_offset": 8, "posit": 8, "callabl": [8, 11, 13, 16], "wrap": [8, 13, 19], "target": 8, "item": 8, "helper": [9, 11, 16], "variou": 9, "channel_id": 9, "fetch": [9, 16], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 17], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": 9, "textchannel": 9, "ctx": [10, 14], "repli": [10, 11, 12], "context": 10, "badargu": 10, "wasn": 10, "els": 10, "commanderror": 11, "while": 11, "typevar": [11, 13, 19], "valu": [11, 13, 15], "signatur": 11, "cooldown_dur": 11, "send_notic": 11, "fals": [11, 17], "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": [11, 17], "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": [13, 17], "assign": 13, "__module__": 13, "__name__": 13, "__qualname__": 13, "__doc__": 13, "__annotations__": 13, "__dict__": 13, "ignored_conflict_nam": 13, "frozenset": 13, "look": [13, 19], "forwardref": 13, "evalu": 13, "detail": 13, "_p": 13, "_r": 13, "found": [13, 16, 19], "behav": 13, "functool": 13, "replac": [13, 17], "For": 13, "__global__": 13, "state": 13, "won": 13, "reflect": 13, "typehint": 13, "style": 14, "secondari": 14, "click": 14, "itself": 14, "carri": 14, "done": [14, 19], "buttonstyl": 14, "origin": 14, "allowed_us": 14, "180": 14, "moder": 14, "who": 14, "last": 14, "ui": 14, "accept": 14, "input": 14, "similar": [14, 18], "occur": 14, "listen": 14, "msg": 15, "sever": 15, "exc_info": 15, "houston": 15, "we": [15, 16], "interest": 15, "problem": 15, "mypi": 15, "recognis": 15, "interactin": 16, "member_id": 16, "failur": 16, "indic": 16, "could": 16, "coro": [16, 19], "sole": 16, "expect": 16, "add_rol": 16, "remove_rol": 16, "purpos": 16, "intend": 16, "524288": 17, "byte": 17, "data": 17, "basemodel": 17, "format": [17, 18], "classvar": 17, "computedfieldinfo": 17, "dictionari": 17, "comput": 17, "field": 17, "correspond": 17, "configdict": 17, "model": 17, "conform": 17, "pydant": 17, "config": 17, "fieldinfo": 17, "metadata": 17, "defin": 17, "map": 17, "__fields__": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "paste_url": 17, "max": 17, "larger": 17, "reject": 17, "max_length": 17, "greater": 17, "long": [17, 19], "regular": 18, "express": 18, "pattern": 18, "pleas": 18, "sanitis": 18, "output": 18, "someth": 18, "urllib": 18, "pars": 18, "quot": 18, "execut": 19, "keep": 19, "track": 19, "distinguish": 19, "suggest": 19, "immedi": 19, "futur": 19, "uniqu": 19, "prematur": 19, "current": 19, "task_id": 19, "hashabl": 19, "unschedul": 19, "identifi": 19, "warn": 19, "doesn": 19, "known": 19, "alreadi": 19, "unawait": 19, "elsewher": 19, "timezon": 19, "awar": 19, "calcul": 19, "subtract": 19, "na\u00efv": 19, "utc": 19, "datetim": 19, "delai": 19, "suppressed_except": 19, "event_loop": 19, "otherwis": 19, "task_return": 19, "tupl": 19}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 3, 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, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [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, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 2, 1, "", "wait_until_guild_available"]], "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, 3, 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, 4, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "commands"], [11, 0, 0, "-", "cooldown"], [12, 0, 0, "-", "error_handling"], [13, 0, 0, "-", "function"], [14, 0, 0, "-", "interactions"], [15, 0, 0, "-", "logging"], [16, 0, 0, "-", "members"], [17, 0, 0, "-", "paste_service"], [18, 0, 0, "-", "regex"], [19, 0, 0, "-", "scheduling"], [7, 4, 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, 4, 1, "", "get_or_fetch_channel"], [9, 4, 1, "", "is_in_category"]], "pydis_core.utils.commands": [[10, 4, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[11, 3, 1, "", "CommandOnCooldown"], [11, 5, 1, "", "P"], [11, 1, 1, "", "R"], [11, 4, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[12, 4, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[13, 3, 1, "", "GlobalNameConflictError"], [13, 4, 1, "", "command_wraps"], [13, 4, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[14, 1, 1, "", "DeleteMessageButton"], [14, 1, 1, "", "ViewWithUserAndRoleCheck"]], "pydis_core.utils.interactions.DeleteMessageButton": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "interaction_check"], [14, 2, 1, "", "on_timeout"], [14, 2, 1, "", "stop"]], "pydis_core.utils.logging": [[15, 1, 1, "", "CustomLogger"], [15, 4, 1, "", "get_logger"]], "pydis_core.utils.logging.CustomLogger": [[15, 2, 1, "", "trace"]], "pydis_core.utils.members": [[16, 4, 1, "", "get_or_fetch_member"], [16, 4, 1, "", "handle_role_change"]], "pydis_core.utils.paste_service": [[17, 5, 1, "", "MAX_PASTE_SIZE"], [17, 1, 1, "", "PasteFile"], [17, 1, 1, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[17, 6, 1, "", "model_computed_fields"], [17, 6, 1, "", "model_config"], [17, 6, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[17, 6, 1, "", "model_computed_fields"], [17, 6, 1, "", "model_config"], [17, 6, 1, "", "model_fields"]], "pydis_core.utils.regex": [[18, 5, 1, "", "DISCORD_INVITE"], [18, 5, 1, "", "FORMATTED_CODE_REGEX"], [18, 5, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[19, 1, 1, "", "Scheduler"], [19, 4, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[19, 2, 1, "", "__contains__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "cancel"], [19, 2, 1, "", "cancel_all"], [19, 2, 1, "", "schedule"], [19, 2, 1, "", "schedule_at"], [19, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data", "6": "py:attribute"}, "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"], "6": ["py", "attribute", "Python attribute"]}, "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, "command": 10, "cooldown": 11, "error_handl": 12, "function": 13, "interact": 14, "log": 15, "member": 16, "paste_servic": 17, "regex": 18, "schedul": 19}, "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": {"Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "Exts": [[5, "module-pydis_core.exts"]], "site_api": [[6, "module-pydis_core.site_api"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "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"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "regex": [[18, "module-pydis_core.utils.regex"]], "logging": [[15, "module-pydis_core.utils.logging"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "members": [[16, "module-pydis_core.utils.members"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "commands": [[10, "module-pydis_core.utils.commands"]], "function": [[13, "module-pydis_core.utils.function"]], "interactions": [[14, "module-pydis_core.utils.interactions"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__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"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "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.commands"], [11, "module-pydis_core.utils.cooldown"], [12, "module-pydis_core.utils.error_handling"], [13, "module-pydis_core.utils.function"], [14, "module-pydis_core.utils.interactions"], [15, "module-pydis_core.utils.logging"], [16, "module-pydis_core.utils.members"], [17, "module-pydis_core.utils.paste_service"], [18, "module-pydis_core.utils.regex"], [19, "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"]], "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"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "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"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[10, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[10, "module-pydis_core.utils.commands"]], "commandoncooldown": [[11, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[11, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[11, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[11, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[12, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[12, "module-pydis_core.utils.error_handling"]], "globalnameconflicterror": [[13, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[13, "pydis_core.utils.function.command_wraps"]], "pydis_core.utils.function": [[13, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[13, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[14, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[14, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[14, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[14, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "customlogger (class in pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.get_logger"]], "pydis_core.utils.logging": [[15, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[15, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[16, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[16, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[16, "module-pydis_core.utils.members"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[17, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[17, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[17, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[17, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[18, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[19, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[19, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[19, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule_later"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Changelog": [[0, "changelog"]], "Extras": [[2, "extras"]], "Exts": [[5, "module-pydis_core.exts"]], "Local Development & Testing": [[1, "local-development-testing"]], "Modules:": [[2, null]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Pydis Core": [[3, "module-pydis_core"]], "Reference": [[2, "reference"]], "Submodules": [[3, "submodules"], [7, "submodules"]], "Subpackages": [[3, "subpackages"]], "Utils": [[7, "module-pydis_core.utils"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "commands": [[10, "module-pydis_core.utils.commands"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "function": [[13, "module-pydis_core.utils.function"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "logging": [[15, "module-pydis_core.utils.logging"]], "members": [[16, "module-pydis_core.utils.members"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "regex": [[18, "module-pydis_core.utils.regex"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "site_api": [[6, "module-pydis_core.site_api"]]}, "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.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.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "envversion": {"sphinx": 61, "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}, "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.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.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__", false]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__", false]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__", false]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__", false]], "__init__() (commandoncooldown method)": [[11, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (deletemessagebutton method)": [[14, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__", false]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__", false]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog", false]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command", false]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient", false]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches", false]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache", false]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient", false]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[11, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[14, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[10, "pydis_core.utils.commands.clean_text_or_reply", false]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear", false]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear", false]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close", false]], "close() (botbase method)": [[3, "pydis_core.BotBase.close", false]], "command_wraps() (in module pydis_core.utils.function)": [[13, "pydis_core.utils.function.command_wraps", false]], "commandoncooldown": [[11, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[19, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[14, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.DISCORD_INVITE", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_logger() (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.get_logger", false]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel", false]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[16, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[13, "pydis_core.utils.function.GlobalNameConflictError", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[12, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[16, "pydis_core.utils.members.handle_role_change", false]], "interaction_check() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log", false]], "max_paste_size (in module pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.MAX_PASTE_SIZE", false]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status", false]], "model_computed_fields (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (pastefile attribute)": [[17, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[17, "pydis_core.utils.paste_service.PasteResponse.model_fields", false]], "module": [[3, "module-pydis_core", false], [4, "module-pydis_core.async_stats", false], [5, "module-pydis_core.exts", false], [6, "module-pydis_core.site_api", false], [7, "module-pydis_core.utils", false], [8, "module-pydis_core.utils.caching", false], [9, "module-pydis_core.utils.channel", false], [10, "module-pydis_core.utils.commands", false], [11, "module-pydis_core.utils.cooldown", false], [12, "module-pydis_core.utils.error_handling", false], [13, "module-pydis_core.utils.function", false], [14, "module-pydis_core.utils.interactions", false], [15, "module-pydis_core.utils.logging", false], [16, "module-pydis_core.utils.members", false], [17, "module-pydis_core.utils.paste_service", false], [18, "module-pydis_core.utils.regex", false], [19, "module-pydis_core.utils.scheduling", false]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available", false]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable", false]], "on_timeout() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.P", false]], "pastefile (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[17, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[17, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[17, "pydis_core.utils.paste_service.PasteUploadError", false]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch", false]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services", false]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post", false]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands", false]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put", false]], "pydis_core": [[3, "module-pydis_core", false]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats", false]], "pydis_core.exts": [[5, "module-pydis_core.exts", false]], "pydis_core.site_api": [[6, "module-pydis_core.site_api", false]], "pydis_core.utils": [[7, "module-pydis_core.utils", false]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching", false]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel", false]], "pydis_core.utils.commands": [[10, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[11, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[12, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.function": [[13, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[14, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.logging": [[15, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[16, "module-pydis_core.utils.members", false]], "pydis_core.utils.paste_service": [[17, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[18, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[19, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[11, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[18, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command", false]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request", false]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError", false]], "schedule() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[19, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[19, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stop() (viewwithuserandrolecheck method)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[15, "pydis_core.utils.logging.CustomLogger.trace", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[13, "pydis_core.utils.function.update_wrapper_globals", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[14, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available", false]]}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 3, 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, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [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, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 2, 1, "", "wait_until_guild_available"]], "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, 3, 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, 4, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "commands"], [11, 0, 0, "-", "cooldown"], [12, 0, 0, "-", "error_handling"], [13, 0, 0, "-", "function"], [14, 0, 0, "-", "interactions"], [15, 0, 0, "-", "logging"], [16, 0, 0, "-", "members"], [17, 0, 0, "-", "paste_service"], [18, 0, 0, "-", "regex"], [19, 0, 0, "-", "scheduling"], [7, 4, 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, 4, 1, "", "get_or_fetch_channel"], [9, 4, 1, "", "is_in_category"]], "pydis_core.utils.commands": [[10, 4, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[11, 3, 1, "", "CommandOnCooldown"], [11, 5, 1, "", "P"], [11, 1, 1, "", "R"], [11, 4, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[12, 4, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[13, 3, 1, "", "GlobalNameConflictError"], [13, 4, 1, "", "command_wraps"], [13, 4, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[14, 1, 1, "", "DeleteMessageButton"], [14, 1, 1, "", "ViewWithUserAndRoleCheck"]], "pydis_core.utils.interactions.DeleteMessageButton": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "interaction_check"], [14, 2, 1, "", "on_timeout"], [14, 2, 1, "", "stop"]], "pydis_core.utils.logging": [[15, 1, 1, "", "CustomLogger"], [15, 4, 1, "", "get_logger"]], "pydis_core.utils.logging.CustomLogger": [[15, 2, 1, "", "trace"]], "pydis_core.utils.members": [[16, 4, 1, "", "get_or_fetch_member"], [16, 4, 1, "", "handle_role_change"]], "pydis_core.utils.paste_service": [[17, 5, 1, "", "MAX_PASTE_SIZE"], [17, 1, 1, "", "PasteFile"], [17, 1, 1, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[17, 6, 1, "", "model_computed_fields"], [17, 6, 1, "", "model_config"], [17, 6, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[17, 6, 1, "", "model_computed_fields"], [17, 6, 1, "", "model_config"], [17, 6, 1, "", "model_fields"]], "pydis_core.utils.regex": [[18, 5, 1, "", "DISCORD_INVITE"], [18, 5, 1, "", "FORMATTED_CODE_REGEX"], [18, 5, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[19, 1, 1, "", "Scheduler"], [19, 4, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[19, 2, 1, "", "__contains__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "cancel"], [19, 2, 1, "", "cancel_all"], [19, 2, 1, "", "schedule"], [19, 2, 1, "", "schedule_at"], [19, 2, 1, "", "schedule_later"]]}, "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"], "6": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data", "6": "py:attribute"}, "terms": {"": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "0": [0, 8, 14, 15], "0a0": 0, "0eb3d26": 0, "1": [0, 15], "10": 0, "101": 0, "103": 0, "104": 0, "106": 0, "107": 0, "108": 0, "10th": 0, "11": 0, "110": 0, "12": 0, "124": 0, "125": 0, "128": 8, "138": 0, "13th": 0, "14th": 0, "151": 0, "157": 0, "158": 0, "162": 0, "169": 0, "16th": 0, "170": 0, "171": 0, "172": 0, "173": 0, "174": 0, "175": 0, "176": 0, "177": 0, "179": 0, "17th": 0, "180": 14, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "18th": 0, "190": 0, "192": 0, "19th": 0, "2": [0, 3, 14], "2021": 0, "2022": 0, "2023": 0, "204": 6, "20th": 0, "21st": 0, "22nd": 0, "23rd": 0, "24th": 0, "25th": 0, "26th": 0, "27th": 0, "28th": 0, "29": 0, "2nd": 0, "3": 0, "30": 0, "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 11], "524288": 17, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "64": 0, "65": 0, "66": 0, "68": 0, "69": 0, "6th": 0, "7": 0, "72": 0, "75": 0, "78": 0, "79": 0, "8": 0, "8125": 4, "88": 0, "9": 0, "90001": [0, 12], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 11, 13, 14, 17, 19], "For": 13, "If": [3, 6, 11, 13, 14, 19], "It": 7, "No": 6, "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "To": [1, 3, 15], "_": 0, "__annotations__": 13, "__call__": [7, 8], "__contains__": [7, 19], "__dict__": 13, "__doc__": 13, "__fields__": 17, "__global__": 13, "__init__": [0, 2, 3, 4, 6, 7, 8, 11, 14, 19], "__module__": 13, "__name__": 13, "__qualname__": 13, "__str__": [3, 6], "_guild_avail": 0, "_p": 13, "_r": 13, "_transport": 0, "abc": 0, "abl": 0, "about": [11, 17], "abstract": 0, "abstracteventloop": [4, 19], "accept": 14, "act": 7, "actual": 0, "ad": [0, 1, 7, 14, 15], "add": [0, 3, 11], "add_cog": [2, 3], "add_command": [2, 3], "add_rol": 16, "addit": 0, "after": [0, 3, 14, 19], "again": 1, "aiodn": 0, "aiohttp": [0, 3, 6, 17], "alia": [3, 7, 11], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 19], "all_command": 3, "all_extens": 3, "allow": [0, 1, 3, 14, 17], "allowed_rol": [1, 3, 14], "allowed_us": 14, "alpha": 0, "alreadi": 19, "also": [0, 7, 13, 14], "an": [0, 1, 3, 4, 6, 7, 8, 9, 15, 17, 19], "ani": [6, 18, 19], "annot": [13, 17], "anyth": [1, 17], "api": [0, 6, 16], "api_cli": [0, 3], "apicli": [0, 2, 3, 6], "app": [0, 3], "appear": 3, "appli": [7, 8, 11, 17], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 13, 14, 18], "arg": [3, 11, 15], "arg_offset": 8, "args_preprocessor": 11, "argument": [6, 7, 8, 10, 11, 15, 16], "around": 6, "assign": 13, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "async_rediscach": 3, "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 19], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 16], "attr": 0, "attribut": [7, 13], "august": 0, "authent": 6, "auto": 0, "auto_mod": 0, "autogener": 0, "automat": 0, "avail": [0, 3], "avoid": 0, "await": [0, 11, 14, 16], "awar": 19, "back": 0, "bad": 0, "badargu": 10, "base": [0, 3, 4, 6, 8, 11, 13, 14, 15, 17, 19], "basemodel": 17, "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": [0, 3], "being": [0, 7, 16], "below": 1, "between": [0, 1, 13], "block": [0, 11, 18], "block_duplicate_invoc": [3, 7, 11], "boilerpl": 0, "bool": [3, 6, 9, 11, 14, 19], "bot": [0, 1, 3, 7, 9], "bot_token": 1, "botbas": [0, 2, 3], "both": [1, 17], "break": [0, 13], "broke": 0, "bug": 0, "bump": 0, "button": [0, 14], "buttonstyl": 14, "byte": 17, "cach": [0, 3, 7, 9, 16], "calcul": 19, "call": [0, 3, 11, 13, 19], "call_without_cooldown": [7, 11], "callabl": [8, 11, 13, 16], "callback": [7, 14], "can": [0, 1, 14, 19], "cancel": [7, 19], "cancel_al": [7, 19], "cannot": [0, 3], "captur": [0, 13, 18], "carri": 14, "case": 0, "categori": 9, "category_id": 9, "caus": 7, "certain": 1, "chang": [0, 1, 13], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 11], "channel_id": 9, "charact": 0, "check": [3, 6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "classvar": 17, "clean": [0, 10], "clean_text_or_repli": [3, 7, 10], "clear": [2, 3, 7, 8], "click": 14, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 17], "close": [0, 2, 3, 6, 19], "cloudflar": 7, "code": [0, 1, 18], "cog": [0, 3, 5], "com": [0, 17], "comma": 1, "command": [0, 1, 3, 7, 9, 11, 13], "command_wrap": [3, 7, 13], "commanderror": 11, "commandoncooldown": [3, 7, 11], "commit": 0, "common": [0, 1, 3, 7, 15, 18], "commun": 4, "compos": 1, "comput": 17, "computedfieldinfo": 17, "config": 17, "configdict": 17, "configur": [1, 17], "conflict": 13, "conform": 17, "connect": [0, 3, 4], "connector": 3, "constructor": 6, "contain": [1, 14, 17, 19], "content": [0, 6, 10, 17], "context": 10, "cooldown": [3, 7], "cooldown_dur": 11, "copi": [1, 13], "core": [0, 1], "coro": [16, 19], "coroutin": [8, 16, 19], "correct": [0, 1], "correspond": 17, "could": 16, "crash": 0, "creat": [0, 3, 4, 8, 11, 13, 19], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 19], "creation": 0, "ctx": [10, 14], "current": 19, "custom": [0, 8, 15], "customlogg": [3, 7, 15], "d": [1, 13], "dai": 0, "data": 17, "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1, 3, 17], "defin": 17, "delai": 19, "delet": [0, 3, 6, 8, 14, 17], "deletemessagebutton": [0, 3, 7, 14], "depend": [0, 9], "deprec": 0, "detail": 13, "detect": 0, "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [6, 17], "dictionari": 17, "directli": [0, 13], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "discord_invit": [0, 3, 7, 18], "disnak": 0, "distinguish": 19, "django": 6, "do": [1, 9], "doc": 0, "docker": 1, "docstr": 0, "document": 0, "doesn": 19, "don": [0, 19], "done": [14, 19], "due": 0, "dummi": [0, 3], "duplic": [0, 11], "dynam": 0, "each": 0, "edit": 3, "either": 3, "els": 10, "elsewher": 19, "emit": 3, "empti": 3, "enabl": 1, "encount": 17, "endpoint": 6, "ensur": [0, 3, 14, 18], "entir": [0, 3], "env": 1, "environ": 1, "equival": 6, "error": [0, 3, 6, 7, 12, 16, 17], "error_handl": [3, 7], "etc": 1, "evalu": 13, "event": [0, 3, 4, 19], "event_loop": 19, "exact": 1, "exc_info": 15, "exce": 8, "except": [3, 6, 11, 13, 15, 17, 19], "execut": 19, "exist": [0, 1, 19], "expect": 16, "expiri": 0, "explain": 0, "express": 18, "ext": [0, 2, 3, 7, 9, 10], "extend": 0, "extens": [0, 3], "extra": 6, "fail": [9, 17], "failur": 16, "fals": [11, 17], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "field": 17, "fieldinfo": 17, "fifo": 8, "file": [0, 1, 17], "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": [17, 18], "formatted_code_regex": [3, 7, 18], "forum": 0, "forwardref": 13, "found": [13, 16, 19], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "frozenset": 13, "function": [0, 3, 7, 8, 9, 11, 15, 16, 19], "functool": 13, "futur": 19, "gatewai": 3, "gener": [0, 3, 11, 19], "get": [0, 3, 6, 9, 16], "get_logg": [3, 7, 15], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 16], "git": 1, "give": 3, "given": [3, 4, 7, 9, 10, 15, 16, 19], "global": 13, "globalnameconflicterror": [3, 7, 13], "go": 1, "greater": 17, "groundwork": 1, "group": [7, 18], "guild": [0, 1, 3, 16], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 3], "guildchannel": 9, "ha": [0, 7], "handl": [0, 12, 16, 19], "handle_forbidden_from_block": [3, 7, 12], "handle_role_chang": [0, 3, 7, 16], "hashabl": 19, "have": [0, 9, 13, 15], "heavi": 7, "help": [0, 1], "helper": [9, 11, 16], "hook": 0, "host": 4, "houston": 15, "how": [0, 8, 13, 19], "howev": 1, "http": [0, 6, 17, 18], "http_session": [3, 17], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "id": [1, 3, 9, 14, 19], "identifi": 19, "ignor": [1, 7, 13], "ignored_conflict_nam": 13, "immedi": 19, "implement": [3, 4, 8, 14, 15], "import": 0, "inadequ": 3, "includ": [0, 1, 12], "incorrect": 0, "index": 2, "indic": 16, "individu": 3, "info": 1, "inform": [2, 15], "init": [0, 3, 4], "initi": [6, 19], "initialis": [3, 8], "input": 14, "instal": 1, "instanc": [0, 3, 6, 8, 9, 15, 19], "instanti": [3, 14, 19], "instead": [3, 11, 19], "int": [3, 4, 8, 9, 14, 17, 19], "intend": 16, "intent": 1, "interact": [0, 3, 7, 9], "interactin": 16, "interaction_check": [7, 14], "interest": 15, "intern": [3, 7], "intersphinx": 0, "invalid": 9, "invaliddata": 9, "invit": [0, 18], "invoc": [0, 11], "invok": [1, 11, 14], "is_in_categori": [3, 7, 9], "isn": 12, "item": 8, "iter": 11, "its": [0, 3, 11, 13], "itself": 14, "januari": 0, "json": 6, "juli": 0, "june": 0, "keep": 19, "kei": 8, "keyword": [6, 7, 15], "known": 19, "kwarg": [3, 6, 11, 14, 15, 19], "label": [0, 14], "lancebot": 1, "larg": 17, "larger": 17, "last": 14, "latest": 0, "lead": 0, "length": 11, "level": [7, 15], "lexer": [0, 17], "librari": 1, "like": [1, 13], "link": 17, "lint": 0, "list": [0, 1, 3, 17], "listen": 14, "ll": [1, 19], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "log": [0, 3, 7, 12, 16, 19], "log_to_dev_log": [2, 3], "logger": [0, 15], "logic": 0, "long": [17, 19], "longer": [0, 14], "look": [13, 19], "loop": [4, 19], "lot": 0, "lru": 8, "m": 1, "machin": 1, "made": 0, "mai": [0, 8], "main": 0, "make": [0, 1, 3, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "map": 17, "march": 0, "match": [0, 3], "max": 17, "max_length": 17, "max_paste_s": [3, 7, 17], "max_siz": [8, 17], "maximum": [8, 17], "maybe_raise_for_statu": [3, 6], "mean": 1, "member": [0, 3, 7], "member_id": 16, "mention": [1, 3], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "message_typ": 0, "metadata": 17, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "model": 17, "model_computed_field": [7, 17], "model_config": [7, 17], "model_field": [7, 17], "moder": 14, "modifi": [1, 16], "modul": [0, 3, 7, 13, 19], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [1, 13], "most": 1, "move": 0, "msg": 15, "multipl": 0, "multivers": 0, "must": [0, 19], "mypi": 15, "name": [3, 7, 13, 15, 17, 19], "namespac": [0, 19], "navig": 1, "na\u00efv": 19, "need": [0, 1], "new": [0, 1, 4, 6, 8, 13, 19], "newli": 0, "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 19], "normal": 3, "notabl": 0, "notfound": 9, "notic": 0, "notifi": 11, "novemb": 0, "now": [0, 1, 19], "number": [0, 17], "object": [6, 7, 8, 9, 11, 16, 17, 19], "occur": 14, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 14], "onc": [0, 8], "one": [0, 3], "ones": 1, "onli": [0, 3], "oper": [3, 19], "option": [0, 8], "order": [8, 19], "origin": 14, "other": [1, 19], "otherwis": 19, "our": [0, 1, 7], "out": [0, 1, 14], "output": 18, "overwrit": [0, 3], "own": [0, 13], "p": [3, 7, 11], "packag": [0, 7], "page": 2, "pagin": 0, "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "paramspec": [11, 13], "parent": [0, 14], "pars": 18, "pass": [0, 6, 15, 16, 19], "past": [0, 17, 19], "paste_servic": [0, 3, 7], "paste_url": 17, "pastebin": 0, "pastefil": [0, 3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "patch": [0, 3, 6, 7], "path": 1, "pattern": 18, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "pleas": 18, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": 8, "possibl": 1, "post": [3, 6, 17], "pre": 1, "prefix": [1, 4], "prematur": 19, "press": 0, "prevent": [11, 19], "privatechannel": [0, 9], "problem": 15, "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1], "provid": [0, 1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "push": 0, "put": [3, 6], "py": [0, 3, 13], "pydant": 17, "pydi": 2, "pydis_cor": [0, 1, 3, 14], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 17, 19], "pythondiscord": [0, 17], "qualifi": 7, "quot": 18, "r": [3, 7, 11], "rais": [6, 9, 10, 11, 12, 13, 16, 17, 19], "raise_for_statu": 6, "rather": 7, "raw": [11, 18], "raw_code_regex": [3, 7, 18], "rc2": 0, "re": [1, 3, 12, 19], "readi": 3, "real": 0, "receiv": [0, 6, 9], "recognis": 15, "reconnect": 0, "redi": 0, "redis_sess": 3, "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 13, "regex": [0, 3, 7], "regular": 18, "reinstal": 1, "reject": 17, "relat": [8, 15], "releas": 0, "relev": 3, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": [13, 17], "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 17, 19], "resolut": 0, "resolv": [3, 13], "respons": [6, 17], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "result": [0, 19], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "reusabl": 5, "revert": 0, "role": [0, 1, 3, 14, 16], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "run": [0, 1, 11, 19], "safe": 0, "same": [11, 19], "sampl": 0, "sanitis": 18, "save": [0, 3, 17], "schedul": [0, 3, 7], "schedule_at": [7, 19], "schedule_lat": [7, 19], "search": 2, "second": [3, 11, 14, 19], "secondari": 14, "see": [1, 13, 14], "self": [0, 3, 14], "send": [0, 6, 14], "send_notic": 11, "send_to_paste_servic": [0, 3, 7, 17], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [7, 13, 14], "server": [3, 18], "servic": [0, 1, 3, 17], "session": [0, 3, 6, 17], "session_kwarg": 6, "set": [0, 1, 3, 11, 13, 14], "setup": [0, 3], "setup_hook": [2, 3], "sever": 15, "share": [0, 13], "should": [0, 1, 6, 14, 17], "should_rais": 6, "signatur": 11, "similar": [14, 18], "singl": 0, "sir": 1, "site": [0, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [8, 17], "so": [0, 1, 7], "socket": 4, "sole": 16, "some": [0, 17], "someth": 18, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "specifi": [0, 11, 14], "sphinx": 0, "stabl": 0, "start": [0, 3, 19], "startup": 3, "startuperror": [2, 3], "stat": [0, 4], "state": 13, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 3], "step": 1, "still": 3, "stop": [0, 7, 14], "store": [0, 7, 8], "str": [3, 4, 6, 7, 10, 13, 14, 15, 17, 19], "string": [0, 6], "style": 14, "sub": [0, 3], "submodul": 2, "subpackag": 2, "subtract": 19, "success": [0, 17], "suggest": 19, "support": [0, 4, 7, 19], "suppressed_except": 19, "sure": 1, "sync": [0, 3], "sync_app_command": 3, "system": [0, 1], "t": [0, 10, 12, 13, 19], "target": 8, "task": [0, 19], "task_id": 19, "task_return": 19, "templat": 1, "test": 2, "text": [0, 6, 10, 17], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 17, 18, 19], "thread": [0, 9], "thrown": 7, "thu": 3, "time": [0, 19], "timeout": [0, 14], "timezon": 19, "token": [1, 6], "toml": [0, 1], "too": 17, "tool": [3, 7], "top": 7, "trace": [0, 7, 15], "track": 19, "transport": 4, "true": [3, 6, 11, 15, 17, 19], "tupl": 19, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typehint": 13, "typevar": [11, 13, 19], "ui": 14, "unavail": 3, "unawait": 19, "under": 7, "uniqu": 19, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 19, "unsupport": 17, "until": [0, 3, 18], "up": [0, 1, 3], "updat": [0, 13], "update_wrapper_glob": [3, 7, 13], "upload": [0, 17], "upon": 0, "url": [0, 3, 6, 17], "urllib": 18, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "user": [0, 11, 14], "utc": 19, "util": [0, 1, 2, 3, 8, 13, 14, 15], "v1": [0, 17], "valid": 0, "valu": [11, 13, 15], "valueerror": [6, 17], "vari": 1, "variabl": 1, "variou": 9, "version": [0, 10], "view": [0, 14], "viewwithuserandrolecheck": [0, 3, 7, 14], "wa": [0, 9, 19], "wait": [0, 3, 19], "wait_until_guild_avail": [2, 3], "want": 1, "warn": 19, "wasn": 10, "we": [15, 16], "what": 1, "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "whether": [3, 6, 9], "which": [0, 1, 7, 11, 19], "while": 11, "whitespac": [0, 18], "who": 14, "within": [0, 3], "won": 13, "work": [0, 1], "worker": 7, "wrap": [8, 13, 19], "wrapper": [0, 6, 11, 13, 19], "write": 1, "wrong": 0, "www": 0, "you": [1, 9, 18], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "commands", "cooldown", "error_handling", "function", "interactions", "logging", "members", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "command": 10, "cooldown": 11, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 12, "ext": 5, "extra": 2, "function": 13, "interact": 14, "local": 1, "log": 15, "member": 16, "modul": 2, "option": 1, "paste_servic": 17, "project": 2, "pydi": 3, "refer": 2, "regex": 18, "schedul": 19, "site_api": 6, "submodul": [3, 7], "subpackag": 3, "test": 1, "util": 7}}) \ No newline at end of file diff --git a/v10.2.0/versions.html b/v10.2.0/versions.html index 72d12c12..7cc54fcf 100644 --- a/v10.2.0/versions.html +++ b/v10.2.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.2.0 - + @@ -592,7 +592,7 @@ - + -- cgit v1.2.3