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 --- _static/basic.css | 2 +- _static/doctools.js | 2 +- _static/language_data.js | 4 +- _static/searchtools.js | 165 +++++++++++++-------- index.html | 6 +- main/.buildinfo | 2 +- main/_static/basic.css | 2 +- main/_static/doctools.js | 2 +- main/_static/language_data.js | 4 +- main/_static/searchtools.js | 165 +++++++++++++-------- main/changelog.html | 8 +- main/development.html | 12 +- main/genindex.html | 6 +- main/index.html | 12 +- main/index_redirect.html | 6 +- main/output/pydis_core.async_stats.html | 14 +- main/output/pydis_core.exts.html | 8 +- main/output/pydis_core.html | 80 +++++----- main/output/pydis_core.site_api.html | 34 ++--- main/output/pydis_core.utils.caching.html | 16 +- main/output/pydis_core.utils.channel.html | 12 +- main/output/pydis_core.utils.checks.html | 22 +-- main/output/pydis_core.utils.commands.html | 10 +- main/output/pydis_core.utils.cooldown.html | 20 +-- ...dis_core.utils.error_handling.commands.abc.html | 16 +- .../pydis_core.utils.error_handling.commands.html | 26 ++-- ...core.utils.error_handling.commands.manager.html | 16 +- main/output/pydis_core.utils.error_handling.html | 12 +- main/output/pydis_core.utils.function.html | 20 +-- main/output/pydis_core.utils.html | 16 +- main/output/pydis_core.utils.interactions.html | 26 ++-- main/output/pydis_core.utils.lock.html | 30 ++-- main/output/pydis_core.utils.logging.html | 16 +- main/output/pydis_core.utils.members.html | 12 +- main/output/pydis_core.utils.messages.html | 10 +- main/output/pydis_core.utils.pagination.html | 26 ++-- main/output/pydis_core.utils.paste_service.html | 34 ++--- main/output/pydis_core.utils.regex.html | 14 +- main/output/pydis_core.utils.scheduling.html | 26 ++-- main/py-modindex.html | 6 +- main/search.html | 6 +- main/searchindex.js | 2 +- main/versions.html | 6 +- v10.0.0/.buildinfo | 2 +- v10.0.0/_static/basic.css | 2 +- v10.0.0/_static/doctools.js | 2 +- v10.0.0/_static/language_data.js | 4 +- v10.0.0/_static/searchtools.js | 165 +++++++++++++-------- v10.0.0/changelog.html | 8 +- v10.0.0/development.html | 12 +- v10.0.0/genindex.html | 6 +- v10.0.0/index.html | 12 +- v10.0.0/index_redirect.html | 6 +- v10.0.0/output/pydis_core.async_stats.html | 14 +- v10.0.0/output/pydis_core.exts.html | 8 +- v10.0.0/output/pydis_core.html | 44 +++--- v10.0.0/output/pydis_core.site_api.html | 34 ++--- v10.0.0/output/pydis_core.utils.caching.html | 16 +- v10.0.0/output/pydis_core.utils.channel.html | 12 +- v10.0.0/output/pydis_core.utils.commands.html | 10 +- v10.0.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.0.0/output/pydis_core.utils.function.html | 14 +- v10.0.0/output/pydis_core.utils.html | 14 +- v10.0.0/output/pydis_core.utils.interactions.html | 24 +-- v10.0.0/output/pydis_core.utils.logging.html | 14 +- v10.0.0/output/pydis_core.utils.members.html | 12 +- v10.0.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.0.0/output/pydis_core.utils.regex.html | 14 +- v10.0.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.0.0/py-modindex.html | 6 +- v10.0.0/search.html | 6 +- v10.0.0/searchindex.js | 2 +- v10.0.0/versions.html | 6 +- v10.1.0/.buildinfo | 2 +- v10.1.0/_static/basic.css | 2 +- v10.1.0/_static/doctools.js | 2 +- v10.1.0/_static/language_data.js | 4 +- v10.1.0/_static/searchtools.js | 165 +++++++++++++-------- v10.1.0/changelog.html | 8 +- v10.1.0/development.html | 12 +- v10.1.0/genindex.html | 6 +- v10.1.0/index.html | 12 +- v10.1.0/index_redirect.html | 6 +- v10.1.0/output/pydis_core.async_stats.html | 14 +- v10.1.0/output/pydis_core.exts.html | 8 +- v10.1.0/output/pydis_core.html | 46 +++--- v10.1.0/output/pydis_core.site_api.html | 34 ++--- v10.1.0/output/pydis_core.utils.caching.html | 16 +- v10.1.0/output/pydis_core.utils.channel.html | 12 +- v10.1.0/output/pydis_core.utils.commands.html | 10 +- v10.1.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.1.0/output/pydis_core.utils.function.html | 14 +- v10.1.0/output/pydis_core.utils.html | 14 +- v10.1.0/output/pydis_core.utils.interactions.html | 24 +-- v10.1.0/output/pydis_core.utils.logging.html | 14 +- v10.1.0/output/pydis_core.utils.members.html | 12 +- v10.1.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.1.0/output/pydis_core.utils.regex.html | 14 +- v10.1.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.1.0/py-modindex.html | 6 +- v10.1.0/search.html | 6 +- v10.1.0/searchindex.js | 2 +- v10.1.0/versions.html | 6 +- 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 +- v10.3.0/.buildinfo | 2 +- v10.3.0/_static/basic.css | 2 +- v10.3.0/_static/doctools.js | 2 +- v10.3.0/_static/language_data.js | 4 +- v10.3.0/_static/searchtools.js | 165 +++++++++++++-------- v10.3.0/changelog.html | 8 +- v10.3.0/development.html | 12 +- v10.3.0/genindex.html | 6 +- v10.3.0/index.html | 12 +- v10.3.0/index_redirect.html | 6 +- v10.3.0/output/pydis_core.async_stats.html | 14 +- v10.3.0/output/pydis_core.exts.html | 8 +- v10.3.0/output/pydis_core.html | 46 +++--- v10.3.0/output/pydis_core.site_api.html | 34 ++--- v10.3.0/output/pydis_core.utils.caching.html | 16 +- v10.3.0/output/pydis_core.utils.channel.html | 12 +- v10.3.0/output/pydis_core.utils.commands.html | 10 +- v10.3.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.3.0/output/pydis_core.utils.function.html | 14 +- v10.3.0/output/pydis_core.utils.html | 14 +- v10.3.0/output/pydis_core.utils.interactions.html | 24 +-- v10.3.0/output/pydis_core.utils.logging.html | 16 +- v10.3.0/output/pydis_core.utils.members.html | 12 +- v10.3.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.3.0/output/pydis_core.utils.regex.html | 14 +- v10.3.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.3.0/py-modindex.html | 6 +- v10.3.0/search.html | 6 +- v10.3.0/searchindex.js | 2 +- v10.3.0/versions.html | 6 +- v10.4.0/.buildinfo | 2 +- v10.4.0/_static/basic.css | 2 +- v10.4.0/_static/doctools.js | 2 +- v10.4.0/_static/language_data.js | 4 +- v10.4.0/_static/searchtools.js | 165 +++++++++++++-------- v10.4.0/changelog.html | 8 +- v10.4.0/development.html | 12 +- v10.4.0/genindex.html | 6 +- v10.4.0/index.html | 12 +- v10.4.0/index_redirect.html | 6 +- v10.4.0/output/pydis_core.async_stats.html | 14 +- v10.4.0/output/pydis_core.exts.html | 8 +- v10.4.0/output/pydis_core.html | 46 +++--- v10.4.0/output/pydis_core.site_api.html | 34 ++--- v10.4.0/output/pydis_core.utils.caching.html | 16 +- v10.4.0/output/pydis_core.utils.channel.html | 12 +- v10.4.0/output/pydis_core.utils.commands.html | 10 +- v10.4.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.4.0/output/pydis_core.utils.function.html | 14 +- v10.4.0/output/pydis_core.utils.html | 14 +- v10.4.0/output/pydis_core.utils.interactions.html | 24 +-- v10.4.0/output/pydis_core.utils.logging.html | 16 +- v10.4.0/output/pydis_core.utils.members.html | 12 +- v10.4.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.4.0/output/pydis_core.utils.regex.html | 14 +- v10.4.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.4.0/py-modindex.html | 6 +- v10.4.0/search.html | 6 +- v10.4.0/searchindex.js | 2 +- v10.4.0/versions.html | 6 +- v10.5.0/.buildinfo | 2 +- v10.5.0/_static/basic.css | 2 +- v10.5.0/_static/doctools.js | 2 +- v10.5.0/_static/language_data.js | 4 +- v10.5.0/_static/searchtools.js | 165 +++++++++++++-------- v10.5.0/changelog.html | 8 +- v10.5.0/development.html | 12 +- v10.5.0/genindex.html | 6 +- v10.5.0/index.html | 12 +- v10.5.0/index_redirect.html | 6 +- v10.5.0/output/pydis_core.async_stats.html | 14 +- v10.5.0/output/pydis_core.exts.html | 8 +- v10.5.0/output/pydis_core.html | 46 +++--- v10.5.0/output/pydis_core.site_api.html | 34 ++--- v10.5.0/output/pydis_core.utils.caching.html | 16 +- v10.5.0/output/pydis_core.utils.channel.html | 12 +- v10.5.0/output/pydis_core.utils.commands.html | 10 +- v10.5.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.5.0/output/pydis_core.utils.function.html | 14 +- v10.5.0/output/pydis_core.utils.html | 14 +- v10.5.0/output/pydis_core.utils.interactions.html | 24 +-- v10.5.0/output/pydis_core.utils.logging.html | 16 +- v10.5.0/output/pydis_core.utils.members.html | 12 +- v10.5.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.5.0/output/pydis_core.utils.regex.html | 14 +- v10.5.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.5.0/py-modindex.html | 6 +- v10.5.0/search.html | 6 +- v10.5.0/searchindex.js | 2 +- v10.5.0/versions.html | 6 +- v10.5.1/.buildinfo | 2 +- v10.5.1/_static/basic.css | 2 +- v10.5.1/_static/doctools.js | 2 +- v10.5.1/_static/language_data.js | 4 +- v10.5.1/_static/searchtools.js | 165 +++++++++++++-------- v10.5.1/changelog.html | 8 +- v10.5.1/development.html | 12 +- v10.5.1/genindex.html | 6 +- v10.5.1/index.html | 12 +- v10.5.1/index_redirect.html | 6 +- v10.5.1/output/pydis_core.async_stats.html | 14 +- v10.5.1/output/pydis_core.exts.html | 8 +- v10.5.1/output/pydis_core.html | 46 +++--- v10.5.1/output/pydis_core.site_api.html | 34 ++--- v10.5.1/output/pydis_core.utils.caching.html | 16 +- v10.5.1/output/pydis_core.utils.channel.html | 12 +- v10.5.1/output/pydis_core.utils.commands.html | 10 +- v10.5.1/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.5.1/output/pydis_core.utils.function.html | 14 +- v10.5.1/output/pydis_core.utils.html | 14 +- v10.5.1/output/pydis_core.utils.interactions.html | 24 +-- v10.5.1/output/pydis_core.utils.logging.html | 16 +- v10.5.1/output/pydis_core.utils.members.html | 12 +- v10.5.1/output/pydis_core.utils.paste_service.html | 34 ++--- v10.5.1/output/pydis_core.utils.regex.html | 14 +- v10.5.1/output/pydis_core.utils.scheduling.html | 26 ++-- v10.5.1/py-modindex.html | 6 +- v10.5.1/search.html | 6 +- v10.5.1/searchindex.js | 2 +- v10.5.1/versions.html | 6 +- v10.6.0/.buildinfo | 2 +- v10.6.0/_static/basic.css | 2 +- v10.6.0/_static/doctools.js | 2 +- v10.6.0/_static/language_data.js | 4 +- v10.6.0/_static/searchtools.js | 165 +++++++++++++-------- v10.6.0/changelog.html | 8 +- v10.6.0/development.html | 12 +- v10.6.0/genindex.html | 6 +- v10.6.0/index.html | 12 +- v10.6.0/index_redirect.html | 6 +- v10.6.0/output/pydis_core.async_stats.html | 14 +- v10.6.0/output/pydis_core.exts.html | 8 +- v10.6.0/output/pydis_core.html | 64 ++++---- v10.6.0/output/pydis_core.site_api.html | 34 ++--- v10.6.0/output/pydis_core.utils.caching.html | 16 +- v10.6.0/output/pydis_core.utils.channel.html | 12 +- v10.6.0/output/pydis_core.utils.checks.html | 22 +-- v10.6.0/output/pydis_core.utils.commands.html | 10 +- v10.6.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.6.0/output/pydis_core.utils.function.html | 14 +- v10.6.0/output/pydis_core.utils.html | 14 +- v10.6.0/output/pydis_core.utils.interactions.html | 24 +-- v10.6.0/output/pydis_core.utils.logging.html | 16 +- v10.6.0/output/pydis_core.utils.members.html | 12 +- v10.6.0/output/pydis_core.utils.messages.html | 10 +- v10.6.0/output/pydis_core.utils.pagination.html | 26 ++-- v10.6.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.6.0/output/pydis_core.utils.regex.html | 14 +- v10.6.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.6.0/py-modindex.html | 6 +- v10.6.0/search.html | 6 +- v10.6.0/searchindex.js | 2 +- v10.6.0/versions.html | 6 +- v10.7.0/.buildinfo | 2 +- v10.7.0/_static/basic.css | 2 +- v10.7.0/_static/doctools.js | 2 +- v10.7.0/_static/language_data.js | 4 +- v10.7.0/_static/searchtools.js | 165 +++++++++++++-------- v10.7.0/changelog.html | 8 +- v10.7.0/development.html | 12 +- v10.7.0/genindex.html | 6 +- v10.7.0/index.html | 12 +- v10.7.0/index_redirect.html | 6 +- v10.7.0/output/pydis_core.async_stats.html | 14 +- v10.7.0/output/pydis_core.exts.html | 8 +- v10.7.0/output/pydis_core.html | 64 ++++---- v10.7.0/output/pydis_core.site_api.html | 34 ++--- v10.7.0/output/pydis_core.utils.caching.html | 16 +- v10.7.0/output/pydis_core.utils.channel.html | 12 +- v10.7.0/output/pydis_core.utils.checks.html | 22 +-- v10.7.0/output/pydis_core.utils.commands.html | 10 +- v10.7.0/output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- v10.7.0/output/pydis_core.utils.function.html | 20 +-- v10.7.0/output/pydis_core.utils.html | 14 +- v10.7.0/output/pydis_core.utils.interactions.html | 26 ++-- v10.7.0/output/pydis_core.utils.lock.html | 30 ++-- v10.7.0/output/pydis_core.utils.logging.html | 16 +- v10.7.0/output/pydis_core.utils.members.html | 12 +- v10.7.0/output/pydis_core.utils.messages.html | 10 +- v10.7.0/output/pydis_core.utils.pagination.html | 26 ++-- v10.7.0/output/pydis_core.utils.paste_service.html | 34 ++--- v10.7.0/output/pydis_core.utils.regex.html | 14 +- v10.7.0/output/pydis_core.utils.scheduling.html | 26 ++-- v10.7.0/py-modindex.html | 6 +- v10.7.0/search.html | 6 +- v10.7.0/searchindex.js | 2 +- v10.7.0/versions.html | 6 +- v11.0.0/.buildinfo | 2 +- v11.0.0/_static/basic.css | 2 +- v11.0.0/_static/doctools.js | 2 +- v11.0.0/_static/language_data.js | 4 +- v11.0.0/_static/searchtools.js | 165 +++++++++++++-------- v11.0.0/changelog.html | 8 +- v11.0.0/development.html | 12 +- v11.0.0/genindex.html | 6 +- v11.0.0/index.html | 12 +- v11.0.0/index_redirect.html | 6 +- v11.0.0/output/pydis_core.async_stats.html | 14 +- v11.0.0/output/pydis_core.exts.html | 8 +- v11.0.0/output/pydis_core.html | 80 +++++----- v11.0.0/output/pydis_core.site_api.html | 34 ++--- v11.0.0/output/pydis_core.utils.caching.html | 16 +- v11.0.0/output/pydis_core.utils.channel.html | 12 +- v11.0.0/output/pydis_core.utils.checks.html | 22 +-- v11.0.0/output/pydis_core.utils.commands.html | 10 +- v11.0.0/output/pydis_core.utils.cooldown.html | 20 +-- ...dis_core.utils.error_handling.commands.abc.html | 16 +- .../pydis_core.utils.error_handling.commands.html | 26 ++-- ...core.utils.error_handling.commands.manager.html | 16 +- .../output/pydis_core.utils.error_handling.html | 12 +- v11.0.0/output/pydis_core.utils.function.html | 20 +-- v11.0.0/output/pydis_core.utils.html | 16 +- v11.0.0/output/pydis_core.utils.interactions.html | 26 ++-- v11.0.0/output/pydis_core.utils.lock.html | 30 ++-- v11.0.0/output/pydis_core.utils.logging.html | 16 +- v11.0.0/output/pydis_core.utils.members.html | 12 +- v11.0.0/output/pydis_core.utils.messages.html | 10 +- v11.0.0/output/pydis_core.utils.pagination.html | 26 ++-- v11.0.0/output/pydis_core.utils.paste_service.html | 34 ++--- v11.0.0/output/pydis_core.utils.regex.html | 14 +- v11.0.0/output/pydis_core.utils.scheduling.html | 26 ++-- v11.0.0/py-modindex.html | 6 +- v11.0.0/search.html | 6 +- v11.0.0/searchindex.js | 2 +- v11.0.0/versions.html | 6 +- v11.0.1/.buildinfo | 2 +- v11.0.1/_static/basic.css | 2 +- v11.0.1/_static/doctools.js | 2 +- v11.0.1/_static/language_data.js | 4 +- v11.0.1/_static/searchtools.js | 165 +++++++++++++-------- v11.0.1/changelog.html | 8 +- v11.0.1/development.html | 12 +- v11.0.1/genindex.html | 6 +- v11.0.1/index.html | 12 +- v11.0.1/index_redirect.html | 6 +- v11.0.1/output/pydis_core.async_stats.html | 14 +- v11.0.1/output/pydis_core.exts.html | 8 +- v11.0.1/output/pydis_core.html | 80 +++++----- v11.0.1/output/pydis_core.site_api.html | 34 ++--- v11.0.1/output/pydis_core.utils.caching.html | 16 +- v11.0.1/output/pydis_core.utils.channel.html | 12 +- v11.0.1/output/pydis_core.utils.checks.html | 22 +-- v11.0.1/output/pydis_core.utils.commands.html | 10 +- v11.0.1/output/pydis_core.utils.cooldown.html | 20 +-- ...dis_core.utils.error_handling.commands.abc.html | 16 +- .../pydis_core.utils.error_handling.commands.html | 26 ++-- ...core.utils.error_handling.commands.manager.html | 16 +- .../output/pydis_core.utils.error_handling.html | 12 +- v11.0.1/output/pydis_core.utils.function.html | 20 +-- v11.0.1/output/pydis_core.utils.html | 16 +- v11.0.1/output/pydis_core.utils.interactions.html | 26 ++-- v11.0.1/output/pydis_core.utils.lock.html | 30 ++-- v11.0.1/output/pydis_core.utils.logging.html | 16 +- v11.0.1/output/pydis_core.utils.members.html | 12 +- v11.0.1/output/pydis_core.utils.messages.html | 10 +- v11.0.1/output/pydis_core.utils.pagination.html | 26 ++-- v11.0.1/output/pydis_core.utils.paste_service.html | 34 ++--- v11.0.1/output/pydis_core.utils.regex.html | 14 +- v11.0.1/output/pydis_core.utils.scheduling.html | 26 ++-- v11.0.1/py-modindex.html | 6 +- v11.0.1/search.html | 6 +- v11.0.1/searchindex.js | 2 +- v11.0.1/versions.html | 6 +- v11.1.0/.buildinfo | 2 +- v11.1.0/_static/basic.css | 2 +- v11.1.0/_static/doctools.js | 2 +- v11.1.0/_static/language_data.js | 4 +- v11.1.0/_static/searchtools.js | 165 +++++++++++++-------- v11.1.0/changelog.html | 8 +- v11.1.0/development.html | 12 +- v11.1.0/genindex.html | 6 +- v11.1.0/index.html | 12 +- v11.1.0/index_redirect.html | 6 +- v11.1.0/output/pydis_core.async_stats.html | 14 +- v11.1.0/output/pydis_core.exts.html | 8 +- v11.1.0/output/pydis_core.html | 80 +++++----- v11.1.0/output/pydis_core.site_api.html | 34 ++--- v11.1.0/output/pydis_core.utils.caching.html | 16 +- v11.1.0/output/pydis_core.utils.channel.html | 12 +- v11.1.0/output/pydis_core.utils.checks.html | 22 +-- v11.1.0/output/pydis_core.utils.commands.html | 10 +- v11.1.0/output/pydis_core.utils.cooldown.html | 20 +-- ...dis_core.utils.error_handling.commands.abc.html | 16 +- .../pydis_core.utils.error_handling.commands.html | 26 ++-- ...core.utils.error_handling.commands.manager.html | 16 +- .../output/pydis_core.utils.error_handling.html | 12 +- v11.1.0/output/pydis_core.utils.function.html | 20 +-- v11.1.0/output/pydis_core.utils.html | 16 +- v11.1.0/output/pydis_core.utils.interactions.html | 26 ++-- v11.1.0/output/pydis_core.utils.lock.html | 30 ++-- v11.1.0/output/pydis_core.utils.logging.html | 16 +- v11.1.0/output/pydis_core.utils.members.html | 12 +- v11.1.0/output/pydis_core.utils.messages.html | 10 +- v11.1.0/output/pydis_core.utils.pagination.html | 26 ++-- v11.1.0/output/pydis_core.utils.paste_service.html | 34 ++--- v11.1.0/output/pydis_core.utils.regex.html | 14 +- v11.1.0/output/pydis_core.utils.scheduling.html | 26 ++-- v11.1.0/py-modindex.html | 6 +- v11.1.0/search.html | 6 +- v11.1.0/searchindex.js | 2 +- v11.1.0/versions.html | 6 +- v9.0.0/.buildinfo | 2 +- v9.0.0/_static/basic.css | 2 +- v9.0.0/_static/doctools.js | 2 +- v9.0.0/_static/language_data.js | 4 +- v9.0.0/_static/searchtools.js | 165 +++++++++++++-------- v9.0.0/changelog.html | 8 +- v9.0.0/development.html | 12 +- v9.0.0/genindex.html | 6 +- v9.0.0/index.html | 12 +- v9.0.0/index_redirect.html | 6 +- v9.0.0/output/pydis_core.async_stats.html | 14 +- v9.0.0/output/pydis_core.exts.html | 8 +- v9.0.0/output/pydis_core.html | 44 +++--- v9.0.0/output/pydis_core.site_api.html | 34 ++--- v9.0.0/output/pydis_core.utils.caching.html | 16 +- v9.0.0/output/pydis_core.utils.channel.html | 12 +- v9.0.0/output/pydis_core.utils.commands.html | 10 +- v9.0.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.0.0/output/pydis_core.utils.function.html | 14 +- v9.0.0/output/pydis_core.utils.html | 14 +- v9.0.0/output/pydis_core.utils.interactions.html | 22 +-- v9.0.0/output/pydis_core.utils.logging.html | 14 +- v9.0.0/output/pydis_core.utils.members.html | 12 +- v9.0.0/output/pydis_core.utils.regex.html | 14 +- v9.0.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.0.0/py-modindex.html | 6 +- v9.0.0/search.html | 6 +- v9.0.0/searchindex.js | 2 +- v9.0.0/versions.html | 6 +- v9.1.1/.buildinfo | 2 +- v9.1.1/_static/basic.css | 2 +- v9.1.1/_static/doctools.js | 2 +- v9.1.1/_static/language_data.js | 4 +- v9.1.1/_static/searchtools.js | 165 +++++++++++++-------- v9.1.1/changelog.html | 8 +- v9.1.1/development.html | 12 +- v9.1.1/genindex.html | 6 +- v9.1.1/index.html | 12 +- v9.1.1/index_redirect.html | 6 +- v9.1.1/output/pydis_core.async_stats.html | 14 +- v9.1.1/output/pydis_core.exts.html | 8 +- v9.1.1/output/pydis_core.html | 44 +++--- v9.1.1/output/pydis_core.site_api.html | 34 ++--- v9.1.1/output/pydis_core.utils.caching.html | 16 +- v9.1.1/output/pydis_core.utils.channel.html | 12 +- v9.1.1/output/pydis_core.utils.commands.html | 10 +- v9.1.1/output/pydis_core.utils.cooldown.html | 20 +-- v9.1.1/output/pydis_core.utils.function.html | 14 +- v9.1.1/output/pydis_core.utils.html | 14 +- v9.1.1/output/pydis_core.utils.interactions.html | 22 +-- v9.1.1/output/pydis_core.utils.logging.html | 14 +- v9.1.1/output/pydis_core.utils.members.html | 12 +- v9.1.1/output/pydis_core.utils.regex.html | 14 +- v9.1.1/output/pydis_core.utils.scheduling.html | 26 ++-- v9.1.1/py-modindex.html | 6 +- v9.1.1/search.html | 6 +- v9.1.1/searchindex.js | 2 +- v9.1.1/versions.html | 6 +- v9.10.0-alpha.1/.buildinfo | 2 +- v9.10.0-alpha.1/_static/basic.css | 2 +- v9.10.0-alpha.1/_static/doctools.js | 2 +- v9.10.0-alpha.1/_static/language_data.js | 4 +- v9.10.0-alpha.1/_static/searchtools.js | 165 +++++++++++++-------- v9.10.0-alpha.1/changelog.html | 8 +- v9.10.0-alpha.1/development.html | 12 +- v9.10.0-alpha.1/genindex.html | 6 +- v9.10.0-alpha.1/index.html | 12 +- v9.10.0-alpha.1/index_redirect.html | 6 +- v9.10.0-alpha.1/output/pydis_core.async_stats.html | 14 +- v9.10.0-alpha.1/output/pydis_core.exts.html | 8 +- v9.10.0-alpha.1/output/pydis_core.html | 44 +++--- v9.10.0-alpha.1/output/pydis_core.site_api.html | 34 ++--- .../output/pydis_core.utils.caching.html | 16 +- .../output/pydis_core.utils.channel.html | 12 +- .../output/pydis_core.utils.commands.html | 10 +- .../output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- .../output/pydis_core.utils.function.html | 14 +- v9.10.0-alpha.1/output/pydis_core.utils.html | 14 +- .../output/pydis_core.utils.interactions.html | 22 +-- .../output/pydis_core.utils.logging.html | 14 +- .../output/pydis_core.utils.members.html | 12 +- .../output/pydis_core.utils.paste_service.html | 20 +-- v9.10.0-alpha.1/output/pydis_core.utils.regex.html | 14 +- .../output/pydis_core.utils.scheduling.html | 26 ++-- v9.10.0-alpha.1/py-modindex.html | 6 +- v9.10.0-alpha.1/search.html | 6 +- v9.10.0-alpha.1/searchindex.js | 2 +- v9.10.0-alpha.1/versions.html | 6 +- v9.10.0-alpha.2/.buildinfo | 2 +- v9.10.0-alpha.2/_static/basic.css | 2 +- v9.10.0-alpha.2/_static/doctools.js | 2 +- v9.10.0-alpha.2/_static/language_data.js | 4 +- v9.10.0-alpha.2/_static/searchtools.js | 165 +++++++++++++-------- v9.10.0-alpha.2/changelog.html | 8 +- v9.10.0-alpha.2/development.html | 12 +- v9.10.0-alpha.2/genindex.html | 6 +- v9.10.0-alpha.2/index.html | 12 +- v9.10.0-alpha.2/index_redirect.html | 6 +- v9.10.0-alpha.2/output/pydis_core.async_stats.html | 14 +- v9.10.0-alpha.2/output/pydis_core.exts.html | 8 +- v9.10.0-alpha.2/output/pydis_core.html | 44 +++--- v9.10.0-alpha.2/output/pydis_core.site_api.html | 34 ++--- .../output/pydis_core.utils.caching.html | 16 +- .../output/pydis_core.utils.channel.html | 12 +- .../output/pydis_core.utils.commands.html | 10 +- .../output/pydis_core.utils.cooldown.html | 20 +-- .../output/pydis_core.utils.error_handling.html | 10 +- .../output/pydis_core.utils.function.html | 14 +- v9.10.0-alpha.2/output/pydis_core.utils.html | 14 +- .../output/pydis_core.utils.interactions.html | 22 +-- .../output/pydis_core.utils.logging.html | 14 +- .../output/pydis_core.utils.members.html | 12 +- .../output/pydis_core.utils.paste_service.html | 20 +-- v9.10.0-alpha.2/output/pydis_core.utils.regex.html | 14 +- .../output/pydis_core.utils.scheduling.html | 26 ++-- v9.10.0-alpha.2/py-modindex.html | 6 +- v9.10.0-alpha.2/search.html | 6 +- v9.10.0-alpha.2/searchindex.js | 2 +- v9.10.0-alpha.2/versions.html | 6 +- v9.2.0/.buildinfo | 2 +- v9.2.0/_static/basic.css | 2 +- v9.2.0/_static/doctools.js | 2 +- v9.2.0/_static/language_data.js | 4 +- v9.2.0/_static/searchtools.js | 165 +++++++++++++-------- v9.2.0/changelog.html | 8 +- v9.2.0/development.html | 12 +- v9.2.0/genindex.html | 6 +- v9.2.0/index.html | 12 +- v9.2.0/index_redirect.html | 6 +- v9.2.0/output/pydis_core.async_stats.html | 14 +- v9.2.0/output/pydis_core.exts.html | 8 +- v9.2.0/output/pydis_core.html | 44 +++--- v9.2.0/output/pydis_core.site_api.html | 34 ++--- v9.2.0/output/pydis_core.utils.caching.html | 16 +- v9.2.0/output/pydis_core.utils.channel.html | 12 +- v9.2.0/output/pydis_core.utils.commands.html | 10 +- v9.2.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.2.0/output/pydis_core.utils.function.html | 14 +- v9.2.0/output/pydis_core.utils.html | 14 +- v9.2.0/output/pydis_core.utils.interactions.html | 22 +-- v9.2.0/output/pydis_core.utils.logging.html | 14 +- v9.2.0/output/pydis_core.utils.members.html | 12 +- v9.2.0/output/pydis_core.utils.regex.html | 14 +- v9.2.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.2.0/py-modindex.html | 6 +- v9.2.0/search.html | 6 +- v9.2.0/searchindex.js | 2 +- v9.2.0/versions.html | 6 +- v9.3.0/.buildinfo | 2 +- v9.3.0/_static/basic.css | 2 +- v9.3.0/_static/doctools.js | 2 +- v9.3.0/_static/language_data.js | 4 +- v9.3.0/_static/searchtools.js | 165 +++++++++++++-------- v9.3.0/changelog.html | 8 +- v9.3.0/development.html | 12 +- v9.3.0/genindex.html | 6 +- v9.3.0/index.html | 12 +- v9.3.0/index_redirect.html | 6 +- v9.3.0/output/pydis_core.async_stats.html | 14 +- v9.3.0/output/pydis_core.exts.html | 8 +- v9.3.0/output/pydis_core.html | 44 +++--- v9.3.0/output/pydis_core.site_api.html | 34 ++--- v9.3.0/output/pydis_core.utils.caching.html | 16 +- v9.3.0/output/pydis_core.utils.channel.html | 12 +- v9.3.0/output/pydis_core.utils.commands.html | 10 +- v9.3.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.3.0/output/pydis_core.utils.function.html | 14 +- v9.3.0/output/pydis_core.utils.html | 14 +- v9.3.0/output/pydis_core.utils.interactions.html | 22 +-- v9.3.0/output/pydis_core.utils.logging.html | 14 +- v9.3.0/output/pydis_core.utils.members.html | 12 +- v9.3.0/output/pydis_core.utils.regex.html | 14 +- v9.3.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.3.0/py-modindex.html | 6 +- v9.3.0/search.html | 6 +- v9.3.0/searchindex.js | 2 +- v9.3.0/versions.html | 6 +- v9.4.0/.buildinfo | 2 +- v9.4.0/_static/basic.css | 2 +- v9.4.0/_static/doctools.js | 2 +- v9.4.0/_static/language_data.js | 4 +- v9.4.0/_static/searchtools.js | 165 +++++++++++++-------- v9.4.0/changelog.html | 8 +- v9.4.0/development.html | 12 +- v9.4.0/genindex.html | 6 +- v9.4.0/index.html | 12 +- v9.4.0/index_redirect.html | 6 +- v9.4.0/output/pydis_core.async_stats.html | 14 +- v9.4.0/output/pydis_core.exts.html | 8 +- v9.4.0/output/pydis_core.html | 44 +++--- v9.4.0/output/pydis_core.site_api.html | 34 ++--- v9.4.0/output/pydis_core.utils.caching.html | 16 +- v9.4.0/output/pydis_core.utils.channel.html | 12 +- v9.4.0/output/pydis_core.utils.commands.html | 10 +- v9.4.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.4.0/output/pydis_core.utils.function.html | 14 +- v9.4.0/output/pydis_core.utils.html | 14 +- v9.4.0/output/pydis_core.utils.interactions.html | 22 +-- v9.4.0/output/pydis_core.utils.logging.html | 14 +- v9.4.0/output/pydis_core.utils.members.html | 12 +- v9.4.0/output/pydis_core.utils.regex.html | 14 +- v9.4.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.4.0/py-modindex.html | 6 +- v9.4.0/search.html | 6 +- v9.4.0/searchindex.js | 2 +- v9.4.0/versions.html | 6 +- v9.4.1/.buildinfo | 2 +- v9.4.1/_static/basic.css | 2 +- v9.4.1/_static/doctools.js | 2 +- v9.4.1/_static/language_data.js | 4 +- v9.4.1/_static/searchtools.js | 165 +++++++++++++-------- v9.4.1/changelog.html | 8 +- v9.4.1/development.html | 12 +- v9.4.1/genindex.html | 6 +- v9.4.1/index.html | 12 +- v9.4.1/index_redirect.html | 6 +- v9.4.1/output/pydis_core.async_stats.html | 14 +- v9.4.1/output/pydis_core.exts.html | 8 +- v9.4.1/output/pydis_core.html | 44 +++--- v9.4.1/output/pydis_core.site_api.html | 34 ++--- v9.4.1/output/pydis_core.utils.caching.html | 16 +- v9.4.1/output/pydis_core.utils.channel.html | 12 +- v9.4.1/output/pydis_core.utils.commands.html | 10 +- v9.4.1/output/pydis_core.utils.cooldown.html | 20 +-- v9.4.1/output/pydis_core.utils.function.html | 14 +- v9.4.1/output/pydis_core.utils.html | 14 +- v9.4.1/output/pydis_core.utils.interactions.html | 22 +-- v9.4.1/output/pydis_core.utils.logging.html | 14 +- v9.4.1/output/pydis_core.utils.members.html | 12 +- v9.4.1/output/pydis_core.utils.regex.html | 14 +- v9.4.1/output/pydis_core.utils.scheduling.html | 26 ++-- v9.4.1/py-modindex.html | 6 +- v9.4.1/search.html | 6 +- v9.4.1/searchindex.js | 2 +- v9.4.1/versions.html | 6 +- v9.5.0/.buildinfo | 2 +- v9.5.0/_static/basic.css | 2 +- v9.5.0/_static/doctools.js | 2 +- v9.5.0/_static/language_data.js | 4 +- v9.5.0/_static/searchtools.js | 165 +++++++++++++-------- v9.5.0/changelog.html | 8 +- v9.5.0/development.html | 12 +- v9.5.0/genindex.html | 6 +- v9.5.0/index.html | 12 +- v9.5.0/index_redirect.html | 6 +- v9.5.0/output/pydis_core.async_stats.html | 14 +- v9.5.0/output/pydis_core.exts.html | 8 +- v9.5.0/output/pydis_core.html | 44 +++--- v9.5.0/output/pydis_core.site_api.html | 34 ++--- v9.5.0/output/pydis_core.utils.caching.html | 16 +- v9.5.0/output/pydis_core.utils.channel.html | 12 +- v9.5.0/output/pydis_core.utils.commands.html | 10 +- v9.5.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.5.0/output/pydis_core.utils.function.html | 14 +- v9.5.0/output/pydis_core.utils.html | 14 +- v9.5.0/output/pydis_core.utils.interactions.html | 22 +-- v9.5.0/output/pydis_core.utils.logging.html | 14 +- v9.5.0/output/pydis_core.utils.members.html | 12 +- v9.5.0/output/pydis_core.utils.regex.html | 14 +- v9.5.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.5.0/py-modindex.html | 6 +- v9.5.0/search.html | 6 +- v9.5.0/searchindex.js | 2 +- v9.5.0/versions.html | 6 +- v9.5.1/.buildinfo | 2 +- v9.5.1/_static/basic.css | 2 +- v9.5.1/_static/doctools.js | 2 +- v9.5.1/_static/language_data.js | 4 +- v9.5.1/_static/searchtools.js | 165 +++++++++++++-------- v9.5.1/changelog.html | 8 +- v9.5.1/development.html | 12 +- v9.5.1/genindex.html | 6 +- v9.5.1/index.html | 12 +- v9.5.1/index_redirect.html | 6 +- v9.5.1/output/pydis_core.async_stats.html | 14 +- v9.5.1/output/pydis_core.exts.html | 8 +- v9.5.1/output/pydis_core.html | 44 +++--- v9.5.1/output/pydis_core.site_api.html | 34 ++--- v9.5.1/output/pydis_core.utils.caching.html | 16 +- v9.5.1/output/pydis_core.utils.channel.html | 12 +- v9.5.1/output/pydis_core.utils.commands.html | 10 +- v9.5.1/output/pydis_core.utils.cooldown.html | 20 +-- v9.5.1/output/pydis_core.utils.function.html | 14 +- v9.5.1/output/pydis_core.utils.html | 14 +- v9.5.1/output/pydis_core.utils.interactions.html | 22 +-- v9.5.1/output/pydis_core.utils.logging.html | 14 +- v9.5.1/output/pydis_core.utils.members.html | 12 +- v9.5.1/output/pydis_core.utils.regex.html | 14 +- v9.5.1/output/pydis_core.utils.scheduling.html | 26 ++-- v9.5.1/py-modindex.html | 6 +- v9.5.1/search.html | 6 +- v9.5.1/searchindex.js | 2 +- v9.5.1/versions.html | 6 +- v9.6.0/.buildinfo | 2 +- v9.6.0/_static/basic.css | 2 +- v9.6.0/_static/doctools.js | 2 +- v9.6.0/_static/language_data.js | 4 +- v9.6.0/_static/searchtools.js | 165 +++++++++++++-------- v9.6.0/changelog.html | 8 +- v9.6.0/development.html | 12 +- v9.6.0/genindex.html | 6 +- v9.6.0/index.html | 12 +- v9.6.0/index_redirect.html | 6 +- v9.6.0/output/pydis_core.async_stats.html | 14 +- v9.6.0/output/pydis_core.exts.html | 8 +- v9.6.0/output/pydis_core.html | 44 +++--- v9.6.0/output/pydis_core.site_api.html | 34 ++--- v9.6.0/output/pydis_core.utils.caching.html | 16 +- v9.6.0/output/pydis_core.utils.channel.html | 12 +- v9.6.0/output/pydis_core.utils.commands.html | 10 +- v9.6.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.6.0/output/pydis_core.utils.function.html | 14 +- v9.6.0/output/pydis_core.utils.html | 14 +- v9.6.0/output/pydis_core.utils.interactions.html | 22 +-- v9.6.0/output/pydis_core.utils.logging.html | 14 +- v9.6.0/output/pydis_core.utils.members.html | 12 +- v9.6.0/output/pydis_core.utils.regex.html | 14 +- v9.6.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.6.0/py-modindex.html | 6 +- v9.6.0/search.html | 6 +- v9.6.0/searchindex.js | 2 +- v9.6.0/versions.html | 6 +- v9.7.0/.buildinfo | 2 +- v9.7.0/_static/basic.css | 2 +- v9.7.0/_static/doctools.js | 2 +- v9.7.0/_static/language_data.js | 4 +- v9.7.0/_static/searchtools.js | 165 +++++++++++++-------- v9.7.0/changelog.html | 8 +- v9.7.0/development.html | 12 +- v9.7.0/genindex.html | 6 +- v9.7.0/index.html | 12 +- v9.7.0/index_redirect.html | 6 +- v9.7.0/output/pydis_core.async_stats.html | 14 +- v9.7.0/output/pydis_core.exts.html | 8 +- v9.7.0/output/pydis_core.html | 44 +++--- v9.7.0/output/pydis_core.site_api.html | 34 ++--- v9.7.0/output/pydis_core.utils.caching.html | 16 +- v9.7.0/output/pydis_core.utils.channel.html | 12 +- v9.7.0/output/pydis_core.utils.commands.html | 10 +- v9.7.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.7.0/output/pydis_core.utils.error_handling.html | 10 +- v9.7.0/output/pydis_core.utils.function.html | 14 +- v9.7.0/output/pydis_core.utils.html | 14 +- v9.7.0/output/pydis_core.utils.interactions.html | 22 +-- v9.7.0/output/pydis_core.utils.logging.html | 14 +- v9.7.0/output/pydis_core.utils.members.html | 12 +- v9.7.0/output/pydis_core.utils.paste_service.html | 18 +-- v9.7.0/output/pydis_core.utils.regex.html | 14 +- v9.7.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.7.0/py-modindex.html | 6 +- v9.7.0/search.html | 6 +- v9.7.0/searchindex.js | 2 +- v9.7.0/versions.html | 6 +- v9.8.0/.buildinfo | 2 +- v9.8.0/_static/basic.css | 2 +- v9.8.0/_static/doctools.js | 2 +- v9.8.0/_static/language_data.js | 4 +- v9.8.0/_static/searchtools.js | 165 +++++++++++++-------- v9.8.0/changelog.html | 8 +- v9.8.0/development.html | 12 +- v9.8.0/genindex.html | 6 +- v9.8.0/index.html | 12 +- v9.8.0/index_redirect.html | 6 +- v9.8.0/output/pydis_core.async_stats.html | 14 +- v9.8.0/output/pydis_core.exts.html | 8 +- v9.8.0/output/pydis_core.html | 44 +++--- v9.8.0/output/pydis_core.site_api.html | 34 ++--- v9.8.0/output/pydis_core.utils.caching.html | 16 +- v9.8.0/output/pydis_core.utils.channel.html | 12 +- v9.8.0/output/pydis_core.utils.commands.html | 10 +- v9.8.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.8.0/output/pydis_core.utils.error_handling.html | 10 +- v9.8.0/output/pydis_core.utils.function.html | 14 +- v9.8.0/output/pydis_core.utils.html | 14 +- v9.8.0/output/pydis_core.utils.interactions.html | 22 +-- v9.8.0/output/pydis_core.utils.logging.html | 14 +- v9.8.0/output/pydis_core.utils.members.html | 12 +- v9.8.0/output/pydis_core.utils.paste_service.html | 18 +-- v9.8.0/output/pydis_core.utils.regex.html | 14 +- v9.8.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.8.0/py-modindex.html | 6 +- v9.8.0/search.html | 6 +- v9.8.0/searchindex.js | 2 +- v9.8.0/versions.html | 6 +- v9.9.0/.buildinfo | 2 +- v9.9.0/_static/basic.css | 2 +- v9.9.0/_static/doctools.js | 2 +- v9.9.0/_static/language_data.js | 4 +- v9.9.0/_static/searchtools.js | 165 +++++++++++++-------- v9.9.0/changelog.html | 8 +- v9.9.0/development.html | 12 +- v9.9.0/genindex.html | 6 +- v9.9.0/index.html | 12 +- v9.9.0/index_redirect.html | 6 +- v9.9.0/output/pydis_core.async_stats.html | 14 +- v9.9.0/output/pydis_core.exts.html | 8 +- v9.9.0/output/pydis_core.html | 44 +++--- v9.9.0/output/pydis_core.site_api.html | 34 ++--- v9.9.0/output/pydis_core.utils.caching.html | 16 +- v9.9.0/output/pydis_core.utils.channel.html | 12 +- v9.9.0/output/pydis_core.utils.commands.html | 10 +- v9.9.0/output/pydis_core.utils.cooldown.html | 20 +-- v9.9.0/output/pydis_core.utils.error_handling.html | 10 +- v9.9.0/output/pydis_core.utils.function.html | 14 +- v9.9.0/output/pydis_core.utils.html | 14 +- v9.9.0/output/pydis_core.utils.interactions.html | 22 +-- v9.9.0/output/pydis_core.utils.logging.html | 14 +- v9.9.0/output/pydis_core.utils.members.html | 12 +- v9.9.0/output/pydis_core.utils.paste_service.html | 20 +-- v9.9.0/output/pydis_core.utils.regex.html | 14 +- v9.9.0/output/pydis_core.utils.scheduling.html | 26 ++-- v9.9.0/py-modindex.html | 6 +- v9.9.0/search.html | 6 +- v9.9.0/searchindex.js | 2 +- v9.9.0/versions.html | 6 +- v9.9.1/.buildinfo | 2 +- v9.9.1/_static/basic.css | 2 +- v9.9.1/_static/doctools.js | 2 +- v9.9.1/_static/language_data.js | 4 +- v9.9.1/_static/searchtools.js | 165 +++++++++++++-------- v9.9.1/changelog.html | 8 +- v9.9.1/development.html | 12 +- v9.9.1/genindex.html | 6 +- v9.9.1/index.html | 12 +- v9.9.1/index_redirect.html | 6 +- v9.9.1/output/pydis_core.async_stats.html | 14 +- v9.9.1/output/pydis_core.exts.html | 8 +- v9.9.1/output/pydis_core.html | 44 +++--- v9.9.1/output/pydis_core.site_api.html | 34 ++--- v9.9.1/output/pydis_core.utils.caching.html | 16 +- v9.9.1/output/pydis_core.utils.channel.html | 12 +- v9.9.1/output/pydis_core.utils.commands.html | 10 +- v9.9.1/output/pydis_core.utils.cooldown.html | 20 +-- v9.9.1/output/pydis_core.utils.error_handling.html | 10 +- v9.9.1/output/pydis_core.utils.function.html | 14 +- v9.9.1/output/pydis_core.utils.html | 14 +- v9.9.1/output/pydis_core.utils.interactions.html | 22 +-- v9.9.1/output/pydis_core.utils.logging.html | 14 +- v9.9.1/output/pydis_core.utils.members.html | 12 +- v9.9.1/output/pydis_core.utils.paste_service.html | 20 +-- v9.9.1/output/pydis_core.utils.regex.html | 14 +- v9.9.1/output/pydis_core.utils.scheduling.html | 26 ++-- v9.9.1/py-modindex.html | 6 +- v9.9.1/search.html | 6 +- v9.9.1/searchindex.js | 2 +- v9.9.1/versions.html | 6 +- v9.9.2/.buildinfo | 2 +- v9.9.2/_static/basic.css | 2 +- v9.9.2/_static/doctools.js | 2 +- v9.9.2/_static/language_data.js | 4 +- v9.9.2/_static/searchtools.js | 165 +++++++++++++-------- v9.9.2/changelog.html | 8 +- v9.9.2/development.html | 12 +- v9.9.2/genindex.html | 6 +- v9.9.2/index.html | 12 +- v9.9.2/index_redirect.html | 6 +- v9.9.2/output/pydis_core.async_stats.html | 14 +- v9.9.2/output/pydis_core.exts.html | 8 +- v9.9.2/output/pydis_core.html | 44 +++--- v9.9.2/output/pydis_core.site_api.html | 34 ++--- v9.9.2/output/pydis_core.utils.caching.html | 16 +- v9.9.2/output/pydis_core.utils.channel.html | 12 +- v9.9.2/output/pydis_core.utils.commands.html | 10 +- v9.9.2/output/pydis_core.utils.cooldown.html | 20 +-- v9.9.2/output/pydis_core.utils.error_handling.html | 10 +- v9.9.2/output/pydis_core.utils.function.html | 14 +- v9.9.2/output/pydis_core.utils.html | 14 +- v9.9.2/output/pydis_core.utils.interactions.html | 22 +-- v9.9.2/output/pydis_core.utils.logging.html | 14 +- v9.9.2/output/pydis_core.utils.members.html | 12 +- v9.9.2/output/pydis_core.utils.paste_service.html | 20 +-- v9.9.2/output/pydis_core.utils.regex.html | 14 +- v9.9.2/output/pydis_core.utils.scheduling.html | 26 ++-- v9.9.2/py-modindex.html | 6 +- v9.9.2/search.html | 6 +- v9.9.2/searchindex.js | 2 +- v9.9.2/versions.html | 6 +- 921 files changed, 9106 insertions(+), 7756 deletions(-) diff --git a/_static/basic.css b/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/_static/basic.css +++ b/_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/_static/doctools.js b/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/_static/doctools.js +++ b/_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/_static/language_data.js b/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/_static/language_data.js +++ b/_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/_static/searchtools.js b/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/_static/searchtools.js +++ b/_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/index.html b/index.html index b69acc21..0a98abb9 100644 --- a/index.html +++ b/index.html @@ -7,15 +7,15 @@ - + Pydis Core Latest (11.1.0) - + @@ -55,7 +55,7 @@ - + diff --git a/main/.buildinfo b/main/.buildinfo index 2d5b3431..399b9c3c 100644 --- a/main/.buildinfo +++ b/main/.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: fd46d8473c848cb017eb3718f6424c8b +config: a7c5a5f7cca46cb8ab6f3b8cc3d3f2c9 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/main/_static/basic.css b/main/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/main/_static/basic.css +++ b/main/_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/main/_static/doctools.js b/main/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/main/_static/doctools.js +++ b/main/_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/main/_static/language_data.js b/main/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/main/_static/language_data.js +++ b/main/_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/main/_static/searchtools.js b/main/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/main/_static/searchtools.js +++ b/main/_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/main/changelog.html b/main/changelog.html index c6a84c77..4d855b9f 100644 --- a/main/changelog.html +++ b/main/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core Latest (11.1.0) - + @@ -390,7 +390,7 @@
-

Changelog#

+

Changelog

11.1.0 30th March 2024

  • [Support] #210: Drop the restriction that meant fakeredis could not be installed on Python 3.12 as lupa now supports 3.12

  • @@ -811,7 +811,7 @@ - + diff --git a/main/development.html b/main/development.html index e70503b9..00b67a98 100644 --- a/main/development.html +++ b/main/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core Latest (11.1.0) - + @@ -390,7 +390,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. @@ -402,7 +402,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

        @@ -418,7 +418,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. @@ -518,7 +518,7 @@ to help you test out certain features. Use them as needed.

        - + diff --git a/main/genindex.html b/main/genindex.html index 70390a71..7ba3524f 100644 --- a/main/genindex.html +++ b/main/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core Latest (11.1.0) + Index - Pydis Core Latest (11.1.0) - + @@ -1143,7 +1143,7 @@ - + diff --git a/main/index.html b/main/index.html index 0db6a6ec..933d0312 100644 --- a/main/index.html +++ b/main/index.html @@ -5,14 +5,14 @@ - + Pydis Core Latest (11.1.0) - + @@ -390,10 +390,10 @@
        -

        Bot Core Project Documentation#

        +

        Bot Core Project Documentation

        -

        Reference#

        +

        Reference

        Modules:

          @@ -471,7 +471,7 @@
        -

        Extras#

        +

        Extras

        • Index

        • Search Page

        • @@ -521,7 +521,7 @@ - + diff --git a/main/index_redirect.html b/main/index_redirect.html index b69acc21..0a98abb9 100644 --- a/main/index_redirect.html +++ b/main/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core Latest (11.1.0) - + @@ -55,7 +55,7 @@ - + diff --git a/main/output/pydis_core.async_stats.html b/main/output/pydis_core.async_stats.html index aa64ad12..3b6217f7 100644 --- a/main/output/pydis_core.async_stats.html +++ b/main/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core Latest (11.1.0) - + @@ -390,16 +390,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:
          @@ -416,7 +416,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:
          @@ -502,7 +502,7 @@ - + diff --git a/main/output/pydis_core.exts.html b/main/output/pydis_core.exts.html index 7b541d24..5b48c995 100644 --- a/main/output/pydis_core.exts.html +++ b/main/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core Latest (11.1.0) - + @@ -390,7 +390,7 @@
          -

          Exts#

          +

          Exts

          Reusable Discord cogs.

          @@ -444,7 +444,7 @@ - + diff --git a/main/output/pydis_core.html b/main/output/pydis_core.html index 07667f3a..47caad1a 100644 --- a/main/output/pydis_core.html +++ b/main/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core Latest (11.1.0) - + @@ -390,16 +390,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.

          -guild_id[source]#
          +guild_id[source]

          ID of the guild that the bot belongs to.

          Type:
          @@ -410,7 +410,7 @@
          -http_session[source]#
          +http_session[source]

          The http session used for sending out HTTP requests.

          Type:
          @@ -421,7 +421,7 @@
          -api_client[source]#
          +api_client[source]

          The API client used for communications with the site service.

          Type:
          @@ -432,7 +432,7 @@
          -statsd_url[source]#
          +statsd_url[source]

          The url that statsd sends metrics to.

          Type:
          @@ -443,7 +443,7 @@
          -redis_session[source]#
          +redis_session[source]

          The redis session used to communicate with the Redis instance.

          Type:
          @@ -454,7 +454,7 @@
          -stats[source]#
          +stats[source]

          The statsd client that sends metrics.

          Type:
          @@ -465,7 +465,7 @@
          -all_extensions[source]#
          +all_extensions[source]

          All extensions that were found within the module passed to self.load_extensions. Use self.extensions to get the loaded extensions.

          @@ -477,7 +477,7 @@
          -__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:
          @@ -496,7 +496,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:
          @@ -507,7 +507,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:
          @@ -518,7 +518,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:
          @@ -529,7 +529,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:
          @@ -540,7 +540,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:
          @@ -554,7 +554,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:
          @@ -565,7 +565,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.

          @@ -578,7 +578,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:
          @@ -589,7 +589,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:
          @@ -600,7 +600,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.

          @@ -612,7 +612,7 @@ will not be set and guild_available_but_cache_empty event will be e
          -register_command_error_manager(manager)[source]#
          +register_command_error_manager(manager)[source]

          Bind an instance of the command error manager to both the bot and the command tree.

          The reason this doesn’t happen in the constructor is because error handlers might need an instance of the bot. So registration needs to happen once the bot instance has been created.

          @@ -625,7 +625,7 @@ So registration needs to happen once the bot instance has been created.

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

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

          @@ -667,14 +667,14 @@ gateway event before giving up and thus not populating the cache for unavailable
          -exception EmptyPaginatorEmbedError[source]#
          +exception EmptyPaginatorEmbedError[source]

          Bases: Exception

          Raised when attempting to paginate with empty contents.

          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

          Bases: Paginator

          A class that aids in paginating code blocks for Discord messages.

          @@ -691,14 +691,14 @@ gateway event before giving up and thus not populating the cache for unavailable
          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

          This function overrides the Paginator.__init__ from inside discord.ext.commands.

          It overrides in order to allow us to configure the maximum number of lines per page.

          -add_line(line='', *, empty=False)[source]#
          +add_line(line='', *, empty=False)[source]

          Adds a line to the current page.

          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -726,7 +726,7 @@ page at a reasonable size.

          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

          Use a paginator and set of reactions to provide pagination over a set of lines.

          The reactions are used to switch page, or to finish with pagination.

          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -770,24 +770,24 @@ to any user with a moderation role.

          -class PaginationEmojis(**data)[source]#
          +class PaginationEmojis(**data)[source]

          Bases: BaseModel

          The emojis that will be used for pagination.

          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

          @@ -797,18 +797,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
          -exception StartupError(base)[source]#
          +exception StartupError(base)[source]

          Bases: Exception

          Exception class for startup errors.

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

          Subpackages#

          +

          Subpackages

          • Exts
          • @@ -925,7 +925,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
          -

          Submodules#

          +

          Submodules

          • async_stats
              @@ -1073,7 +1073,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
          - + diff --git a/main/output/pydis_core.site_api.html b/main/output/pydis_core.site_api.html index 6b780baf..4be1d04f 100644 --- a/main/output/pydis_core.site_api.html +++ b/main/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core Latest (11.1.0) - + @@ -390,16 +390,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:
          @@ -414,7 +414,7 @@
          -async close()[source]#
          +async close()[source]

          Close the aiohttp session.

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

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

          Return type:
          @@ -436,7 +436,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:
          @@ -447,7 +447,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:
          @@ -467,7 +467,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:
          @@ -478,7 +478,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:
          @@ -489,7 +489,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:
          @@ -500,7 +500,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:
          @@ -527,12 +527,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:
          @@ -547,7 +547,7 @@
          -__str__()[source]#
          +__str__()[source]

          Return a string representation of the error.

          @@ -640,7 +640,7 @@ - + diff --git a/main/output/pydis_core.utils.caching.html b/main/output/pydis_core.utils.caching.html index f39329ac..5efeb6b4 100644 --- a/main/output/pydis_core.utils.caching.html +++ b/main/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core Latest (11.1.0) - + @@ -390,18 +390,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:
          @@ -418,7 +418,7 @@
          -__init__(max_size=128)[source]#
          +__init__(max_size=128)[source]

          Initialise a new AsyncCache instance.

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

          Clear cache instance.

          Return type:
          @@ -516,7 +516,7 @@ - + diff --git a/main/output/pydis_core.utils.channel.html b/main/output/pydis_core.utils.channel.html index f21d2609..af05e1e1 100644 --- a/main/output/pydis_core.utils.channel.html +++ b/main/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core Latest (11.1.0) - + @@ -390,11 +390,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:
          @@ -422,7 +422,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:
          @@ -512,7 +512,7 @@ - + diff --git a/main/output/pydis_core.utils.checks.html b/main/output/pydis_core.utils.checks.html index f11765e5..326a2127 100644 --- a/main/output/pydis_core.utils.checks.html +++ b/main/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core Latest (11.1.0) - + @@ -390,29 +390,29 @@
          -

          checks#

          +

          checks

          -exception ContextCheckFailure(redirect_channel)[source]#
          +exception ContextCheckFailure(redirect_channel)[source]

          Bases: CheckFailure

          Raised when a context-specific check fails.

          -__init__(redirect_channel)[source]#
          +__init__(redirect_channel)[source]
          -exception InWhitelistCheckFailure(redirect_channel)[source]#
          +exception InWhitelistCheckFailure(redirect_channel)[source]

          Bases: ContextCheckFailure

          Raised when the in_whitelist check fails.

          -cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]#
          +cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]

          Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

          Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

          @@ -438,7 +438,7 @@
          -async has_any_role_check(ctx, *roles)[source]#
          +async has_any_role_check(ctx, *roles)[source]

          Verify if the context’s author has any of the specified roles.

          This check will always fail if the context is a DM, since DMs don’t have roles.

          @@ -459,7 +459,7 @@
          -async has_no_roles_check(ctx, *roles)[source]#
          +async has_no_roles_check(ctx, *roles)[source]

          Verify if the context’s author doesn’t have any of the specified roles.

          This check will always fail if the context is a DM, since DMs don’t have roles.

          @@ -480,7 +480,7 @@
          -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]#
          +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]

          Check if a command was issued in a context that is whitelisted by channel, category, or roles.

          Parameters:
          @@ -584,7 +584,7 @@ - + diff --git a/main/output/pydis_core.utils.commands.html b/main/output/pydis_core.utils.commands.html index 3968e7d2..4ace68be 100644 --- a/main/output/pydis_core.utils.commands.html +++ b/main/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core Latest (11.1.0) - + @@ -390,10 +390,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:
          @@ -485,7 +485,7 @@ - + diff --git a/main/output/pydis_core.utils.cooldown.html b/main/output/pydis_core.utils.cooldown.html index b58fe33d..b115e3ec 100644 --- a/main/output/pydis_core.utils.cooldown.html +++ b/main/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core Latest (11.1.0) - + @@ -390,21 +390,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:
          @@ -420,20 +420,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:
          @@ -535,7 +535,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/main/output/pydis_core.utils.error_handling.commands.abc.html b/main/output/pydis_core.utils.error_handling.commands.abc.html index 000fb37f..3ce47514 100644 --- a/main/output/pydis_core.utils.error_handling.commands.abc.html +++ b/main/output/pydis_core.utils.error_handling.commands.abc.html @@ -5,14 +5,14 @@ - + abc - Pydis Core Latest (11.1.0) - + @@ -390,15 +390,15 @@
          -

          abc#

          +

          abc

          -class AbstractCommandErrorHandler[source]#
          +class AbstractCommandErrorHandler[source]

          Bases: ABC

          An abstract command error handler.

          -abstract async handle_app_command_error(interaction, error)[source]#
          +abstract async handle_app_command_error(interaction, error)[source]

          Handle error raised in the context of app commands.

          Return type:
          @@ -409,7 +409,7 @@
          -abstract async handle_text_command_error(context, error)[source]#
          +abstract async handle_text_command_error(context, error)[source]

          Handle error raised in the context of text commands.

          Return type:
          @@ -420,7 +420,7 @@
          -abstract async should_handle_error(error)[source]#
          +abstract async should_handle_error(error)[source]

          A predicate that determines whether the error should be handled.

          Return type:
          @@ -507,7 +507,7 @@ - + diff --git a/main/output/pydis_core.utils.error_handling.commands.html b/main/output/pydis_core.utils.error_handling.commands.html index b5068172..afe3d3b1 100644 --- a/main/output/pydis_core.utils.error_handling.commands.html +++ b/main/output/pydis_core.utils.error_handling.commands.html @@ -5,14 +5,14 @@ - + commands package - Pydis Core Latest (11.1.0) - + @@ -390,15 +390,15 @@
          -

          commands package#

          +

          commands package

          -class AbstractCommandErrorHandler[source]#
          +class AbstractCommandErrorHandler[source]

          Bases: ABC

          An abstract command error handler.

          -abstract async handle_app_command_error(interaction, error)[source]#
          +abstract async handle_app_command_error(interaction, error)[source]

          Handle error raised in the context of app commands.

          Return type:
          @@ -409,7 +409,7 @@
          -abstract async handle_text_command_error(context, error)[source]#
          +abstract async handle_text_command_error(context, error)[source]

          Handle error raised in the context of text commands.

          Return type:
          @@ -420,7 +420,7 @@
          -abstract async should_handle_error(error)[source]#
          +abstract async should_handle_error(error)[source]

          A predicate that determines whether the error should be handled.

          Return type:
          @@ -433,17 +433,17 @@
          -class CommandErrorManager(default)[source]#
          +class CommandErrorManager(default)[source]

          Bases: object

          A class that registers error handlers and handles all command related errors.

          -__init__(default)[source]#
          +__init__(default)[source]
          -async handle_error(error, context_or_interaction)[source]#
          +async handle_error(error, context_or_interaction)[source]

          Handle a Discord exception.

          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

          @@ -456,7 +456,7 @@ the error as determined by should_handle_error; there is no priorit
          -register_handler(handler)[source]#
          +register_handler(handler)[source]

          Register a command error handler.

          Return type:
          @@ -468,7 +468,7 @@ the error as determined by should_handle_error; there is no priorit
          -

          Submodules#

          +

          Submodules

          • abc
              @@ -575,7 +575,7 @@ the error as determined by should_handle_error; there is no priorit
          - + diff --git a/main/output/pydis_core.utils.error_handling.commands.manager.html b/main/output/pydis_core.utils.error_handling.commands.manager.html index 8ff6be9e..29b56d8c 100644 --- a/main/output/pydis_core.utils.error_handling.commands.manager.html +++ b/main/output/pydis_core.utils.error_handling.commands.manager.html @@ -5,14 +5,14 @@ - + manager - Pydis Core Latest (11.1.0) - + @@ -390,20 +390,20 @@
          -

          manager#

          +

          manager

          -class CommandErrorManager(default)[source]#
          +class CommandErrorManager(default)[source]

          Bases: object

          A class that registers error handlers and handles all command related errors.

          -__init__(default)[source]#
          +__init__(default)[source]
          -async handle_error(error, context_or_interaction)[source]#
          +async handle_error(error, context_or_interaction)[source]

          Handle a Discord exception.

          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

          @@ -416,7 +416,7 @@ the error as determined by should_handle_error; there is no priorit
          -register_handler(handler)[source]#
          +register_handler(handler)[source]

          Register a command error handler.

          Return type:
          @@ -503,7 +503,7 @@ the error as determined by should_handle_error; there is no priorit - + diff --git a/main/output/pydis_core.utils.error_handling.html b/main/output/pydis_core.utils.error_handling.html index 352e03bb..c289f46b 100644 --- a/main/output/pydis_core.utils.error_handling.html +++ b/main/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling package - Pydis Core Latest (11.1.0) - + @@ -390,10 +390,10 @@
          -

          error_handling package#

          +

          error_handling package

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

          Subpackages#

          +

          Subpackages

          - + diff --git a/main/output/pydis_core.utils.function.html b/main/output/pydis_core.utils.function.html index 73c98a19..ae0bbe28 100644 --- a/main/output/pydis_core.utils.function.html +++ b/main/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core Latest (11.1.0) - + @@ -390,18 +390,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.

          @@ -425,7 +425,7 @@ with the wrapper replaced with the function
          -get_arg_value(name_or_pos, arguments)[source]#
          +get_arg_value(name_or_pos, arguments)[source]

          Return a value from arguments based on a name or position.

          Parameters:
          @@ -448,7 +448,7 @@ with the wrapper replaced with the function
          -get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
          +get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]

          Call decorator_func with the value of the arg at the given name/position.

          Parameters:
          @@ -470,7 +470,7 @@ parameter names to argument values of the function it’s decorating.

          -get_bound_args(func, args, kwargs)[source]#
          +get_bound_args(func, args, kwargs)[source]

          Bind args and kwargs to func and return a mapping of parameter names to argument values.

          Default parameter values are also set.

          @@ -492,7 +492,7 @@ parameter names to argument values of the function it’s decorating.

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

          - + diff --git a/main/output/pydis_core.utils.html b/main/output/pydis_core.utils.html index 1f17fa8f..aacce85d 100644 --- a/main/output/pydis_core.utils.html +++ b/main/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core Latest (11.1.0) - + @@ -390,11 +390,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:
          @@ -413,7 +413,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:
          @@ -429,7 +429,7 @@ that will act as top-level groups rather than being aliases of the command’s g
          -

          Subpackages#

          +

          Subpackages

          • error_handling package
              @@ -449,7 +449,7 @@ that will act as top-level groups rather than being aliases of the command’s g
          -

          Submodules#

          +

          Submodules

          • caching
              @@ -687,7 +687,7 @@ that will act as top-level groups rather than being aliases of the command’s g
          - + diff --git a/main/output/pydis_core.utils.interactions.html b/main/output/pydis_core.utils.interactions.html index 10ed8ae2..5b2e6591 100644 --- a/main/output/pydis_core.utils.interactions.html +++ b/main/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core Latest (11.1.0) - + @@ -390,10 +390,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.

          @@ -408,12 +408,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:
          @@ -426,7 +426,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.

          @@ -443,12 +443,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:
          @@ -462,7 +462,7 @@ If None
          -async on_timeout()[source]#
          +async on_timeout()[source]

          Remove the view from self.message if set.

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

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

          Return type:
          @@ -486,7 +486,7 @@ If None
          -user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
          +user_has_access(user, *, allowed_users=(), allowed_roles=())[source]

          Return whether the user is in the allowed_users list, or has a role from allowed_roles.

          Parameters:
          @@ -585,7 +585,7 @@ If None - + diff --git a/main/output/pydis_core.utils.lock.html b/main/output/pydis_core.utils.lock.html index c4c9478f..bf840ac4 100644 --- a/main/output/pydis_core.utils.lock.html +++ b/main/output/pydis_core.utils.lock.html @@ -5,14 +5,14 @@ - + lock - Pydis Core Latest (11.1.0) - + @@ -390,15 +390,15 @@
          -

          lock#

          +

          lock

          -exception LockedResourceError(resource_type, resource_id)[source]#
          +exception LockedResourceError(resource_type, resource_id)[source]

          Bases: RuntimeError

          Exception raised when an operation is attempted on a locked resource.

          -type[source]#
          +type[source]

          Name of the locked resource’s type

          Type:
          @@ -409,7 +409,7 @@
          -id[source]#
          +id[source]

          ID of the locked resource

          Type:
          @@ -420,38 +420,38 @@
          -__init__(resource_type, resource_id)[source]#
          +__init__(resource_type, resource_id)[source]
          -class SharedEvent[source]#
          +class SharedEvent[source]

          Bases: object

          Context manager managing an internal event exposed through the wait coro.

          While any code is executing in this context manager, the underlying event will not be set; when all of the holders finish the event will be set.

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

          Increment the count of the active holders and clear the internal event.

          -__exit__(_exc_type, _exc_val, _exc_tb)[source]#
          +__exit__(_exc_type, _exc_val, _exc_tb)[source]

          Decrement the count of the active holders; if 0 is reached set the internal event.

          -__init__()[source]#
          +__init__()[source]
          -async wait()[source]#
          +async wait()[source]

          Wait for all active holders to exit.

          Return type:
          @@ -464,7 +464,7 @@ when all of the holders finish the event will be set.

          -lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
          +lock(namespace, resource_id, *, raise_error=False, wait=False)[source]

          Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.

          If decorating a command, this decorator must go before (below) the command decorator.

          @@ -491,7 +491,7 @@ and return None.

          -lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
          +lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]

          Apply the lock decorator using the value of the arg at the given name/position as the ID.

          See lock docs for more information.

          @@ -589,7 +589,7 @@ and return None.

          - + diff --git a/main/output/pydis_core.utils.logging.html b/main/output/pydis_core.utils.logging.html index 2b206778..693a6673 100644 --- a/main/output/pydis_core.utils.logging.html +++ b/main/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core Latest (11.1.0) - + @@ -390,16 +390,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)
          @@ -423,7 +423,7 @@
           
           
          -get_logger(name=None)[source]#
          +get_logger(name=None)[source]

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

          Parameters:
          @@ -440,7 +440,7 @@
          -log_format[source]#
          +log_format[source]

          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

          @@ -522,7 +522,7 @@
          - + diff --git a/main/output/pydis_core.utils.members.html b/main/output/pydis_core.utils.members.html index eff3cf83..7ce8fcec 100644 --- a/main/output/pydis_core.utils.members.html +++ b/main/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core Latest (11.1.0) - + @@ -390,11 +390,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:
          @@ -408,7 +408,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.

          @@ -498,7 +498,7 @@ - + diff --git a/main/output/pydis_core.utils.messages.html b/main/output/pydis_core.utils.messages.html index 9885f907..d2d68ad6 100644 --- a/main/output/pydis_core.utils.messages.html +++ b/main/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core Latest (11.1.0) - + @@ -390,10 +390,10 @@
          -

          messages#

          +

          messages

          -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
          +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

          Check if a reaction’s emoji and author are allowed and the message is message_id.

          If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

          @@ -475,7 +475,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/main/output/pydis_core.utils.pagination.html b/main/output/pydis_core.utils.pagination.html index 4b482a61..16feb367 100644 --- a/main/output/pydis_core.utils.pagination.html +++ b/main/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core Latest (11.1.0) - + @@ -390,17 +390,17 @@
          -

          pagination#

          +

          pagination

          -exception EmptyPaginatorEmbedError[source]#
          +exception EmptyPaginatorEmbedError[source]

          Bases: Exception

          Raised when attempting to paginate with empty contents.

          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

          Bases: Paginator

          A class that aids in paginating code blocks for Discord messages.

          @@ -417,14 +417,14 @@
          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

          This function overrides the Paginator.__init__ from inside discord.ext.commands.

          It overrides in order to allow us to configure the maximum number of lines per page.

          -add_line(line='', *, empty=False)[source]#
          +add_line(line='', *, empty=False)[source]

          Adds a line to the current page.

          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -452,7 +452,7 @@ page at a reasonable size.

          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

          Use a paginator and set of reactions to provide pagination over a set of lines.

          The reactions are used to switch page, or to finish with pagination.

          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -496,24 +496,24 @@ to any user with a moderation role.

          -class PaginationEmojis(**data)[source]#
          +class PaginationEmojis(**data)[source]

          Bases: BaseModel

          The emojis that will be used for pagination.

          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

          @@ -604,7 +604,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/main/output/pydis_core.utils.paste_service.html b/main/output/pydis_core.utils.paste_service.html index 308f0427..b9d7cbab 100644 --- a/main/output/pydis_core.utils.paste_service.html +++ b/main/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core Latest (11.1.0) - + @@ -390,16 +390,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.

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

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

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

          @@ -470,28 +470,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:
          @@ -605,7 +605,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/main/output/pydis_core.utils.regex.html b/main/output/pydis_core.utils.regex.html index 6d401cf7..818e68ac 100644 --- a/main/output/pydis_core.utils.regex.html +++ b/main/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core Latest (11.1.0) - + @@ -390,11 +390,11 @@
          -

          regex#

          +

          regex

          Common regular expressions.

          -DISCORD_INVITE[source]#
          +DISCORD_INVITE[source]

          Regex for Discord server invites.

          Warning

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

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

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

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

          @@ -495,7 +495,7 @@ such as - + diff --git a/main/output/pydis_core.utils.scheduling.html b/main/output/pydis_core.utils.scheduling.html index a9c788b7..2ecb71d1 100644 --- a/main/output/pydis_core.utils.scheduling.html +++ b/main/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core Latest (11.1.0) - + @@ -390,11 +390,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 @@ -408,7 +408,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:
          @@ -425,7 +425,7 @@ the same ID used to schedule it.

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

          Initialize a new Scheduler instance.

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

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

          Unschedule all known tasks.

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

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

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

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

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

          - + diff --git a/main/py-modindex.html b/main/py-modindex.html index 43ce0009..e41fbaa0 100644 --- a/main/py-modindex.html +++ b/main/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core Latest (11.1.0) + Python Module Index - Pydis Core Latest (11.1.0) - + @@ -577,7 +577,7 @@ - + diff --git a/main/search.html b/main/search.html index 323bcf3b..b372fc9e 100644 --- a/main/search.html +++ b/main/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core Latest (11.1.0) + Search - Pydis Core Latest (11.1.0) - + @@ -429,7 +429,7 @@ - + diff --git a/main/searchindex.js b/main/searchindex.js index 0c6d4aef..58395ced 100644 --- a/main/searchindex.js +++ b/main/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "development", "index", "output/pydis_core", "output/pydis_core.async_stats", "output/pydis_core.exts", "output/pydis_core.site_api", "output/pydis_core.utils", "output/pydis_core.utils.caching", "output/pydis_core.utils.channel", "output/pydis_core.utils.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"11": 0, "1": [0, 20], "0": [0, 8, 10, 18, 19, 20], "30th": 0, "march": 0, "2024": 0, "support": [0, 4, 7, 26], "210": 0, "drop": 0, "restrict": [0, 3, 23], "meant": 0, "fakeredi": 0, "could": [0, 21], "instal": [0, 1], "python": [0, 1, 3, 24, 26], "3": 0, "12": 0, "lupa": 0, "now": [0, 1, 26], "20th": 0, "bug": 0, "209": 0, "extract": 0, "origin": [0, 18], "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "ext": [0, 2, 3, 7, 9, 10, 11, 23], "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "commandinvokeerror": 0, "befor": [0, 3, 10, 18, 19, 23, 26], "handl": [0, 13, 14, 15, 16, 21, 26], "18th": 0, "break": [0, 3, 17, 23], "207": 0, "enabl": [0, 1], "more": [0, 1, 3, 17, 19, 23], "ruff": 0, "lint": 0, "rule": 0, "see": [0, 1, 17, 18, 19], "github": 0, "releas": 0, "note": [0, 10], "chang": [0, 1, 3, 17, 23], "208": 0, "pydant": [0, 3, 23, 24], "x": 0, "10": 0, "split": 0, "option": [0, 8, 17, 19], "depend": [0, 9], "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "rediscach": 0, "extra": [0, 6], "you": [0, 1, 9, 25], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "just": 0, "lua": 0, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "either": [0, 3], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "both": [0, 1, 3, 24], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "allow": [0, 1, 3, 18, 22, 23, 24], "user": [0, 3, 10, 12, 18, 22, 23], "who": [0, 18], "do": [0, 1, 9, 19], "reli": 0, "environ": [0, 1], "featur": [0, 1, 3], "205": 0, "add": [0, 3, 10, 12, 23], "pydis_cor": [0, 1, 3, 18, 20], "util": [0, 1, 2, 3, 8, 17, 18, 20], "error_handl": [0, 3, 7], "abc": [0, 13, 14], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "manag": [0, 3, 13, 14, 19], "commanderrormanag": [0, 7, 13, 14, 16], "implement": [0, 3, 4, 8, 18, 20], "regist": [0, 14, 16], "handler": [0, 3, 14, 15, 16], "independantli": 0, "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "attribut": [0, 7, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "15": 0, "2": [0, 3, 18], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "config": [0, 3, 23, 24], "namespac": [0, 19, 26], "target": [0, 8], "isn": [0, 13, 17], "t": [0, 3, 10, 11, 13, 17, 19, 26], "Be": 0, "awar": [0, 26], "time": [0, 10, 26], "write": [0, 1], "our": [0, 1, 7], "usag": 0, "doe": [0, 17], "current": [0, 3, 19, 23, 26], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "due": 0, "requir": [0, 1, 3, 23, 24, 26], "script": 0, "within": [0, 3], "As": 0, "7": 0, "januari": 0, "194": 0, "interact": [0, 3, 7, 9, 14, 15, 23], "user_has_access": [0, 3, 7, 18], "helper": [0, 9, 12, 21], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "allowed_us": [0, 18, 22], "list": [0, 1, 3, 18, 23, 24], "ha": [0, 3, 7, 10, 18], "role": [0, 1, 3, 10, 18, 21, 22, 23], "allowed_rol": [0, 1, 3, 18, 22, 23], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 20, 25], "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "other": [0, 1, 19, 26], "bot": [0, 1, 3, 7, 9, 22], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "reaction_check": [0, 3, 7, 22], "predic": [0, 14, 15], "dictat": 0, "right": [0, 3, 23], "specif": [0, 10], "set": [0, 1, 3, 12, 17, 18, 19, 23], "reaction": [0, 3, 22, 23], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "over": [0, 3, 23], "content": [0, 3, 11, 23, 24], "emb": [0, 3, 23], "emoji": [0, 3, 22, 23], "facilit": 0, "navig": [0, 1, 3, 23], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "200": 0, "attempt": [0, 3, 9, 19, 21, 23], "read": 0, "respons": [0, 6, 24], "bodi": 0, "http": [0, 3, 6, 24, 25], "code": [0, 1, 3, 6, 19, 23, 25], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 18, 23, 24], "did": 0, "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 18], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 23], "have": [0, 9, 10, 17, 20], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 20], "warn": [0, 26], "level": [0, 7, 20], "asyncio": [0, 4, 26], "info": [0, 1], "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "log_format": [0, 3, 7, 20], "log": [0, 3, 7, 13, 21, 26], "standardis": [0, 20], "across": [0, 3, 20, 23], "servic": [0, 1, 3, 24], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 17], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "process_command": [0, 2, 3], "ensur": [0, 3, 18, 25], "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "process": [0, 3], "until": [0, 3, 19, 25], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "188": 0, "send": [0, 3, 6, 18, 23], "multipl": 0, "file": [0, 1, 24], "onc": [0, 3, 8], "past": [0, 24, 26], "call": [0, 3, 12, 17, 26], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 24], "must": [0, 17, 19, 26], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "pastefil": [0, 3, 7, 24], "184": 0, "remov": [0, 3, 18, 22, 23, 24], "store": [0, 3, 7, 8, 23], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 18], "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "stop": [0, 7, 18], "addit": 0, "exist": [0, 1, 26], "timeout": [0, 3, 18, 23], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "includ": [0, 1, 13], "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 17], "expiri": 0, "label": [0, 18], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "182": 0, "lexer": [0, 24], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 23, 24], "pythondiscord": [0, 24], "com": [0, 24], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "schedul": [0, 3, 7], "179": 0, "upload": [0, 24], "text": [0, 3, 6, 11, 14, 15, 23, 24], "6th": 0, "mai": [0, 3, 8, 19, 23], "175": 0, "wait": [0, 3, 7, 19, 26], "guild": [0, 1, 3, 10, 21], "avail": [0, 3, 14, 16, 19], "cog": [0, 3, 5], "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3, 14, 15], "after": [0, 3, 18, 23, 26], "been": [0, 3], "also": [0, 3, 7, 17, 18, 19, 23], "need": [0, 1, 3, 23], "run": [0, 1, 12, 19, 26], "task": [0, 26], "23rd": 0, "170": 0, "save": [0, 3, 24], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 25], "member": [0, 3, 7, 18], "get_or_fetch_memb": [0, 3, 7, 21], "17th": 0, "novemb": 0, "151": 0, "162": 0, "being": [0, 7, 10, 21], "abl": 0, "button": [0, 18], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 17, 19], "success": [0, 24], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 20], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 25], "match": [0, 3, 17], "lead": 0, "www": 0, "27th": 0, "110": 0, "v1": [0, 3, 23, 24], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 17, 26], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "On": 0, "view": [0, 18], "its": [0, 3, 12, 17], "104": 0, "deletemessagebutton": [0, 3, 7, 18], "wrong": 0, "method": [0, 4, 6, 7, 20], "103": 0, "attach": 0, "parent": [0, 18], "gener": [0, 3, 12, 26], "98": 0, "close": [0, 2, 3, 6, 26], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 26], "91": 0, "miss": 0, "await": [0, 3, 12, 18, 19, 21, 23], "ping_servic": [0, 2, 3], "some": [0, 3, 23, 24], "case": [0, 3, 23], "pass": [0, 3, 6, 17, 20, 21, 26], "self": [0, 3, 18], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 21], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1, 14, 16], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 20, 23], "older": 0, "doc": [0, 19], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "out": [0, 1, 3, 18], "75": 0, "invit": [0, 25], "longer": [0, 18], "safe": 0, "result": [0, 26], "captur": [0, 17, 25], "charact": [0, 3, 23], "up": [0, 1, 3, 23], "whitespac": [0, 25], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 14, 16, 23], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 23, 24], "so": [0, 1, 3, 7], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 17, 21], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 17], "main": 0, "don": [0, 10, 26], "modul": [0, 3, 7, 17, 26], "start": [0, 3, 26], "_": 0, "66": 0, "each": [0, 3, 23], "own": [0, 17], "avoid": [0, 3, 23], "singl": [0, 3, 23], "crash": 0, "entir": [0, 3], "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 17], "64": 0, "987235d": 0, "revert": 0, "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 20], "basic": [0, 18], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 24], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 19, 26], "_guild_avail": 0, "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 19, 23], "made": [0, 22], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 24], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "abstract": [0, 14, 15], "lot": 0, "share": [0, 17], "between": [0, 1, 17], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 20], "import": 0, "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 21], "wrapper": [0, 6, 12, 17, 26], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 21], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 18, 20, 23], "intersphinx": 0, "block": [0, 3, 12, 23, 25], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 3, 7], "poetri": [0, 1], "To": [1, 3, 20], "your": 1, "few": 1, "possibl": 1, "approach": 1, "copi": [1, 17], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "below": [1, 19], "what": 1, "go": [1, 3, 19, 23], "them": [1, 3, 17, 26], "ll": [1, 26], "might": [1, 3, 10], "mean": 1, "modifi": [1, 21], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "vari": 1, "re": [1, 3, 13, 22, 26], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 18, 23, 24, 26], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 17, 22], "free": 1, "howev": 1, "like": [1, 17], "m": 1, "docker": 1, "compos": 1, "d": [1, 17], "configur": [1, 3, 23, 24], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 23], "invok": [1, 10, 12, 18], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "anyth": [1, 24], "reinstal": 1, "applic": 1, "http_session": [2, 3, 24], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 19], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "register_command_error_manag": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 23], "add_lin": [2, 3, 7, 23], "paginationemoji": [2, 3, 7, 23], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "startuperror": [2, 3], "subpackag": 2, "submodul": [2, 13], "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 23], "inform": [2, 19, 20], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 17, 19, 20], "kwarg": [3, 6, 12, 17, 18, 20, 26], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "belong": 3, "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "clientsess": [3, 6, 24], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "redissess": 3, "were": 3, "found": [3, 17, 21, 26], "frozenset": [3, 17], "initialis": [3, 8], "server": [3, 25], "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "oper": [3, 19, 23, 26], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 18, 26], "instead": [3, 12, 26], "connector": 3, "resolv": [3, 17], "sync_app_command": 3, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "intern": [3, 7, 19], "becom": [3, 19], "appear": 3, "still": [3, 23], "empti": [3, 23], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 17, 22], "relev": 3, "bind": [3, 17], "tree": 3, "reason": [3, 23], "doesn": [3, 10, 26], "happen": 3, "constructor": [3, 6], "becaus": [3, 17], "registr": [3, 14, 16], "name": [3, 7, 17, 19, 20, 23, 24, 26], "alia": [3, 7, 12], "individu": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "second": [3, 10, 12, 18, 23, 26], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "suffix": [3, 23], "max_siz": [3, 8, 23, 24], "4000": [3, 23], "scale_to_s": [3, 23], "max_lin": [3, 23], "linesep": [3, 23], "n": [3, 23], "aid": [3, 23], "pagination_emoji": [3, 23], "insert": [3, 23], "everi": [3, 23], "e": [3, 23], "g": [3, 23], "three": [3, 23], "backtick": [3, 23], "append": [3, 23], "end": [3, 23], "maximum": [3, 8, 23, 24], "amount": [3, 23], "codepoint": [3, 23], "line": [3, 23], "scale": [3, 23], "overrid": [3, 23], "insid": [3, 23], "It": [3, 7, 19, 23], "order": [3, 8, 14, 16, 17, 19, 23, 26], "per": [3, 10, 23], "fals": [3, 10, 12, 19, 23, 24], "exce": [3, 8, 23], "overflow": [3, 23], "word": [3, 23], "exceed": [3, 23], "excess": [3, 23], "place": [3, 23], "next": [3, 23], "unti": [3, 23], "remain": [3, 23], "boundari": [3, 23], "truncat": [3, 23], "continu": [3, 23], "onto": [3, 23], "In": [3, 23], "alreadi": [3, 23, 26], "would": [3, 23], "caus": [3, 7, 23], "done": [3, 18, 23, 26], "best": [3, 23], "effort": [3, 23], "while": [3, 12, 19, 23], "keep": [3, 23, 26], "total": [3, 23], "length": [3, 12, 23], "size": [3, 8, 23, 24], "indic": [3, 21, 23], "classmethod": [3, 23], "ctx": [3, 10, 11, 18, 23], "500": [3, 23], "restrict_to_us": [3, 23], "300": [3, 23], "footer_text": [3, 23], "exception_on_empty_emb": [3, 23], "repli": [3, 11, 12, 13, 23], "switch": [3, 23], "finish": [3, 19, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "These": [3, 23], "five": [3, 23], "minut": [3, 23], "limit": [3, 23], "author": [3, 10, 22, 23], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "moder": [3, 18, 22, 23], "context": [3, 10, 11, 14, 15, 19, 23], "hold": [3, 19, 23], "serv": [3, 23], "whom": [3, 23], "anymor": [3, 23], "footer": [3, 23], "sequenc": [3, 7, 17, 18, 23], "exampl": [3, 23], "set_author": [3, 23], "icon_url": [3, 23], "icon": [3, 23], "data": [3, 23, 24], "basemodel": [3, 23, 24], "classvar": [3, 23, 24], "dict": [3, 6, 17, 23, 24], "computedfieldinfo": [3, 23, 24], "dictionari": [3, 23, 24], "comput": [3, 23, 24], "field": [3, 23, 24], "correspond": [3, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "configdict": [3, 23, 24], "model": [3, 23, 24], "conform": [3, 23, 24], "fieldinfo": [3, 23, 24], "annot": [3, 17, 23, 24], "trashcan": [3, 23], "637136429717389331": [3, 23], "first": [3, 14, 16, 23], "last": [3, 10, 18, 23], "left": [3, 23], "metadata": [3, 23, 24], "about": [3, 12, 23, 24], "defin": [3, 23, 24], "map": [3, 17, 19, 23, 24], "replac": [3, 10, 17, 23, 24], "__fields__": [3, 23, 24], "handle_forbidden_from_block": [3, 7, 13], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "globalnameconflicterror": [3, 7, 17], "command_wrap": [3, 7, 17], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "update_wrapper_glob": [3, 7, 17], "lockedresourceerror": [3, 7, 19], "sharedev": [3, 7, 19], "lock_arg": [3, 7, 19], "customlogg": [3, 7, 20], "get_logg": [3, 7, 20], "max_paste_s": [3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "formatted_code_regex": [3, 7, 25], "raw_code_regex": [3, 7, 25], "create_task": [3, 7, 26], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 24], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 26], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 26], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 26], "authent": 6, "keyword": [6, 7, 17, 20], "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 17, 24], "represent": 6, "group": [7, 25], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 24], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 18], "interaction_check": [7, 18], "on_timeout": [7, 18], "__enter__": [7, 19], "__exit__": [7, 19], "__contains__": [7, 26], "cancel": [7, 26], "cancel_al": [7, 26], "schedule_at": [7, 26], "schedule_lat": [7, 26], "relat": [8, 14, 16, 20], "128": 8, "lru": 8, "coroutin": [8, 19, 21, 26], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 17, 19], "callabl": [8, 10, 12, 17, 19, 21], "wrap": [8, 17, 26], "item": 8, "channel_id": 9, "fetch": [9, 21], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 24], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "type_": 10, "bypass_rol": 10, "bypass": 10, "before_invok": 10, "introduc": 10, "problem": [10, 20], "futur": [10, 26], "trigger": 10, "float": [10, 12, 18, 26], "durat": 10, "long": [10, 24, 26], "buckettyp": 10, "iter": [10, 12, 14, 16], "describ": 10, "behavior": 10, "typeerror": [10, 17], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 19, 26], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 17, 26], "valu": [12, 17, 19, 20], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 19, 26], "same": [12, 26], "notifi": 12, "paramspec": [12, 17], "raw": [12, 25], "handle_app_command_error": [13, 14, 15], "handle_text_command_error": [13, 14, 15], "should_handle_error": [13, 14, 15, 16], "handle_error": [13, 14, 16], "register_handl": [13, 14, 16], "noreturn": [14, 15], "determin": [14, 15, 16], "context_or_interact": [14, 16], "through": [14, 16, 19], "choos": [14, 16], "capabl": [14, 16], "prioriti": [14, 16], "conflict": 17, "global": 17, "assign": 17, "__module__": 17, "__name__": 17, "__qualname__": 17, "__doc__": 17, "__annotations__": 17, "__dict__": 17, "ignored_conflict_nam": 17, "look": [17, 26], "forwardref": 17, "evalu": 17, "detail": 17, "_p": 17, "_r": 17, "behav": 17, "functool": 17, "name_or_po": [17, 19], "ordereddict": [17, 19], "decorator_func": 17, "func": [17, 19], "accept": [17, 18], "tupl": [17, 26], "For": 17, "__global__": 17, "state": 17, "won": 17, "reflect": 17, "typehint": 17, "style": 18, "secondari": 18, "click": 18, "itself": 18, "carri": 18, "buttonstyl": 18, "180": 18, "ui": 18, "input": 18, "similar": [18, 25], "occur": 18, "listen": 18, "access": 18, "resource_typ": 19, "resource_id": 19, "runtimeerror": 19, "resourc": 19, "hashabl": [19, 26], "expos": 19, "coro": [19, 21, 26], "execut": [19, 26], "underli": 19, "holder": 19, "increment": 19, "count": 19, "activ": 19, "_exc_typ": 19, "_exc_val": 19, "_exc_tb": 19, "decrement": 19, "reach": 19, "exit": 19, "raise_error": 19, "turn": 19, "mutual": 19, "exclus": 19, "identifi": [19, 26], "collis": 19, "among": 19, "perform": 19, "acquir": 19, "msg": 20, "sever": 20, "exc_info": 20, "houston": 20, "we": [20, 21], "interest": 20, "mypi": 20, "recognis": 20, "formatt": 20, "interactin": 21, "member_id": 21, "failur": 21, "sole": 21, "expect": 21, "add_rol": 21, "remove_rol": 21, "purpos": 21, "intend": 21, "message_id": 22, "allowed_emoji": 22, "allow_mod": 22, "even": 22, "524288": 24, "byte": 24, "format": [24, 25], "link": 24, "too": 24, "larg": 24, "unsupport": 24, "encount": 24, "paste_url": 24, "max": 24, "larger": 24, "reject": 24, "max_length": 24, "greater": 24, "regular": 25, "express": 25, "pattern": 25, "pleas": 25, "sanitis": 25, "output": 25, "someth": 25, "urllib": 25, "pars": 25, "quot": 25, "track": 26, "distinguish": 26, "suggest": 26, "immedi": 26, "uniqu": 26, "prematur": 26, "task_id": 26, "unschedul": 26, "known": 26, "unawait": 26, "elsewher": 26, "timezon": 26, "calcul": 26, "subtract": 26, "na\u00efv": 26, "utc": 26, "datetim": 26, "delai": 26, "suppressed_except": 26, "event_loop": 26, "task_return": 26}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": [3, 7, 13], "submodul": [3, 7, 14], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "error_handl": 13, "packag": [13, 14], "abc": 15, "manag": 16, "function": 17, "interact": 18, "lock": 19, "log": 20, "member": 21, "messag": 22, "pagin": 23, "paste_servic": 24, "regex": 25, "schedul": 26}, "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": {"function": [[17, "module-pydis_core.utils.function"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "Submodules": [[14, "submodules"], [7, "submodules"], [3, "submodules"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "Subpackages": [[13, "subpackages"], [7, "subpackages"], [3, "subpackages"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "Utils": [[7, "module-pydis_core.utils"]], "checks": [[10, "module-pydis_core.utils.checks"]], "channel": [[9, "module-pydis_core.utils.channel"]], "caching": [[8, "module-pydis_core.utils.caching"]], "site_api": [[6, "module-pydis_core.site_api"]], "commands": [[11, "module-pydis_core.utils.commands"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Exts": [[5, "module-pydis_core.exts"]], "Pydis Core": [[3, "module-pydis_core"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "logging": [[20, "module-pydis_core.utils.logging"]], "lock": [[19, "module-pydis_core.utils.lock"]], "members": [[21, "module-pydis_core.utils.members"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "scheduling": [[26, "module-pydis_core.utils.scheduling"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [23, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [23, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.error_handling.commands"], [15, "module-pydis_core.utils.error_handling.commands.abc"], [16, "module-pydis_core.utils.error_handling.commands.manager"], [17, "module-pydis_core.utils.function"], [18, "module-pydis_core.utils.interactions"], [19, "module-pydis_core.utils.lock"], [20, "module-pydis_core.utils.logging"], [21, "module-pydis_core.utils.members"], [22, "module-pydis_core.utils.messages"], [23, "module-pydis_core.utils.pagination"], [24, "module-pydis_core.utils.paste_service"], [25, "module-pydis_core.utils.regex"], [26, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [23, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager"]], "__init__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__"]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error"]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error"]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error"]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands"]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler"]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[24, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[26, "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"], [14, "submodules"]], "Subpackages": [[3, "subpackages"], [7, "subpackages"], [13, "subpackages"]], "Utils": [[7, "module-pydis_core.utils"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "function": [[17, "module-pydis_core.utils.function"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "lock": [[19, "module-pydis_core.utils.lock"]], "logging": [[20, "module-pydis_core.utils.logging"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "members": [[21, "module-pydis_core.utils.members"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "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.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__", false]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__", 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__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__", false]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__", false]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__", false], [23, "pydis_core.utils.pagination.LinePaginator.__init__", false]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__", false]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler", false]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog", false]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command", false]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line", false], [23, "pydis_core.utils.pagination.LinePaginator.add_line", false]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions", false]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client", 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)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "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)": [[17, "pydis_core.utils.function.command_wraps", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager", false]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure", false]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE", false]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError", false], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value", false]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper", false]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args", false]], "get_logger() (in module pydis_core.utils.logging)": [[20, "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)": [[21, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError", false]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id", false]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error", false]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change", false]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error", false]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check", false]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check", false]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session", false]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id", false]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check", false]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator", false]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock", false]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg", false]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError", false]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format", 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)": [[24, "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 (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields", false]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config", false]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields", false]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[24, "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.checks", false], [11, "module-pydis_core.utils.commands", false], [12, "module-pydis_core.utils.cooldown", false], [13, "module-pydis_core.utils.error_handling", false], [14, "module-pydis_core.utils.error_handling.commands", false], [15, "module-pydis_core.utils.error_handling.commands.abc", false], [16, "module-pydis_core.utils.error_handling.commands.manager", false], [17, "module-pydis_core.utils.function", false], [18, "module-pydis_core.utils.interactions", false], [19, "module-pydis_core.utils.lock", false], [20, "module-pydis_core.utils.logging", false], [21, "module-pydis_core.utils.members", false], [22, "module-pydis_core.utils.messages", false], [23, "module-pydis_core.utils.pagination", false], [24, "module-pydis_core.utils.paste_service", false], [25, "module-pydis_core.utils.regex", false], [26, "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)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P", false]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate", false], [23, "pydis_core.utils.pagination.LinePaginator.paginate", false]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis", false]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis", false]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[24, "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.checks": [[10, "module-pydis_core.utils.checks", false]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands", false]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc", false]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager", false]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock", false]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members", false]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages", false]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination", false]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check", false]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session", false]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager", false]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler", 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)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent", false]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats", false]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url", false]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace", false]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals", false]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait", 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, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "0": [0, 8, 10, 18, 19, 20], "0a0": 0, "0eb3d26": 0, "1": [0, 20], "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, "15": 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": 18, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "189": 0, "18th": 0, "190": 0, "192": 0, "194": 0, "195": 0, "196": 0, "197": 0, "199": 0, "19th": 0, "2": [0, 3, 18], "200": 0, "202": 0, "2021": 0, "2022": 0, "2023": 0, "2024": 0, "204": [0, 6], "205": 0, "206": 0, "207": 0, "208": 0, "209": 0, "20th": 0, "210": 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, "300": [3, 23], "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "4000": [3, 23], "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 12], "500": [3, 23], "524288": 24, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "637136429717389331": [3, 23], "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, 13], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "As": 0, "Be": 0, "For": 17, "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "In": [3, 23], "It": [3, 7, 19, 23], "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "These": [3, 23], "To": [1, 3, 20], "_": 0, "__annotations__": 17, "__call__": [7, 8], "__contains__": [7, 26], "__dict__": 17, "__doc__": 17, "__enter__": [7, 19], "__exit__": [7, 19], "__fields__": [3, 23, 24], "__global__": 17, "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "__module__": 17, "__name__": 17, "__qualname__": 17, "__str__": [3, 6], "_exc_tb": 19, "_exc_typ": 19, "_exc_val": 19, "_guild_avail": 0, "_p": 17, "_r": 17, "_transport": 0, "abc": [0, 13, 14], "abl": 0, "about": [3, 12, 23, 24], "abstract": [0, 14, 15], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "abstracteventloop": [4, 26], "accept": [17, 18], "access": 18, "acquir": 19, "across": [0, 3, 20, 23], "act": 7, "action": 0, "activ": 19, "actual": 0, "ad": [0, 1, 3, 7, 18, 20, 23], "add": [0, 3, 10, 12, 23], "add_cog": [2, 3], "add_command": [2, 3], "add_lin": [2, 3, 7, 23], "add_rol": 21, "addit": 0, "after": [0, 3, 18, 23, 26], "again": 1, "aid": [3, 23], "aiodn": 0, "aiohttp": [0, 3, 6, 24], "alia": [3, 7, 12], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "all_command": 3, "all_extens": [2, 3], "allow": [0, 1, 3, 18, 22, 23, 24], "allow_mod": 22, "allowed_emoji": 22, "allowed_rol": [0, 1, 3, 18, 22, 23], "allowed_us": [0, 18, 22], "alpha": 0, "alreadi": [3, 23, 26], "also": [0, 3, 7, 17, 18, 19, 23], "alwai": 10, "among": 19, "amount": [3, 23], "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "annot": [3, 17, 23, 24], "anymor": [3, 23], "anyth": [1, 24], "api": [0, 3, 6, 21], "api_cli": [0, 2, 3], "apicli": [0, 2, 3, 6], "app": [0, 3, 14, 15], "appear": 3, "append": [3, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "arg": [3, 12, 17, 19, 20], "arg_offset": 8, "args_preprocessor": 12, "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "around": 6, "assign": 17, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "async_rediscach": [0, 3], "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 26], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 19, 21, 23], "attr": 0, "attribut": [0, 7, 17], "august": 0, "authent": 6, "author": [3, 10, 22, 23], "auto": 0, "auto_mod": 0, "autogener": 0, "automat": [0, 3, 23], "avail": [0, 3, 14, 16, 19], "avoid": [0, 3, 23], "await": [0, 3, 12, 18, 19, 21, 23], "awar": [0, 26], "back": 0, "backtick": [3, 23], "bad": 0, "badargu": 11, "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "basemodel": [3, 23, 24], "basic": [0, 18], "becaus": [3, 17], "becom": [3, 19], "been": [0, 3], "befor": [0, 3, 10, 18, 19, 23, 26], "before_invok": 10, "behav": 17, "behavior": 10, "behaviour": [0, 3], "being": [0, 7, 10, 21], "belong": 3, "below": [1, 19], "best": [3, 23], "between": [0, 1, 17], "bind": [3, 17], "block": [0, 3, 12, 23, 25], "block_duplicate_invoc": [3, 7, 12], "bodi": 0, "boilerpl": 0, "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "bot": [0, 1, 3, 7, 9, 22], "bot_token": 1, "botbas": [0, 2, 3], "both": [0, 1, 3, 24], "boundari": [3, 23], "break": [0, 3, 17, 23], "broke": 0, "buckettyp": 10, "bug": 0, "bump": 0, "button": [0, 18], "buttonstyl": 18, "bypass": 10, "bypass_rol": 10, "byte": 24, "cach": [0, 3, 7, 9, 21], "calcul": 26, "call": [0, 3, 12, 17, 26], "call_without_cooldown": [7, 12], "callabl": [8, 10, 12, 17, 19, 21], "callback": [7, 10, 18], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "cancel": [7, 26], "cancel_al": [7, 26], "cannot": [0, 3, 19, 23], "capabl": [14, 16], "captur": [0, 17, 25], "carri": 18, "case": [0, 3, 23], "categori": [9, 10], "category_id": 9, "caus": [3, 7, 23], "certain": [0, 1], "chang": [0, 1, 3, 17, 23], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 10, 12], "channel_id": 9, "charact": [0, 3, 23], "chardet": 0, "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "checkfailur": 10, "choos": [14, 16], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "classmethod": [3, 23], "classvar": [3, 23, 24], "clean": [0, 11], "clean_text_or_repli": [3, 7, 11], "clear": [2, 3, 7, 8, 19], "click": 18, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 24], "close": [0, 2, 3, 6, 26], "cloudflar": 7, "code": [0, 1, 3, 6, 19, 23, 25], "codepoint": [3, 23], "cog": [0, 3, 5], "collect": 10, "collis": 19, "com": [0, 24], "comma": 1, "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "command_wrap": [3, 7, 17], "commanderror": 12, "commanderrormanag": [0, 7, 13, 14, 16], "commandinvokeerror": 0, "commandoncooldown": [3, 7, 12], "commit": 0, "common": [0, 1, 3, 7, 20, 25], "commun": [3, 4], "compos": 1, "comput": [3, 23, 24], "computedfieldinfo": [3, 23, 24], "concurr": 0, "config": [0, 3, 23, 24], "configdict": [3, 23, 24], "configur": [1, 3, 23, 24], "conflict": 17, "conform": [3, 23, 24], "connect": [0, 3, 4], "connector": 3, "constructor": [3, 6], "contain": [1, 3, 10, 18, 23, 24, 26], "content": [0, 3, 11, 23, 24], "context": [3, 10, 11, 14, 15, 19, 23], "context_or_interact": [14, 16], "contextcheckfailur": [3, 7, 10], "continu": [3, 23], "control": 0, "cooldown": [3, 7, 10], "cooldown_dur": 12, "cooldown_with_role_bypass": [3, 7, 10], "copi": [1, 17], "core": [0, 1], "coro": [19, 21, 26], "coroutin": [8, 19, 21, 26], "correct": [0, 1], "correspond": [3, 23, 24], "could": [0, 21], "count": 19, "crash": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 26], "creation": 0, "criteria": 0, "ctx": [3, 10, 11, 18, 23], "current": [0, 3, 19, 23, 26], "custom": [0, 8, 20], "customlogg": [3, 7, 20], "cut": 0, "d": [1, 17], "dai": 0, "data": [3, 23, 24], "datetim": 26, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 10, 12, 17, 19], "decorator_func": 17, "decrement": 19, "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "defin": [3, 23, 24], "delai": 26, "delet": [0, 3, 6, 8, 18, 23, 24], "deletemessagebutton": [0, 3, 7, 18], "depend": [0, 9], "deprec": 0, "describ": 10, "detail": 17, "detect": 0, "determin": [14, 15, 16], "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [3, 6, 17, 23, 24], "dictat": 0, "dictionari": [3, 23, 24], "did": 0, "directli": [0, 17], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "discord_invit": [0, 3, 7, 25], "disnak": 0, "distinguish": 26, "django": 6, "dm": 10, "do": [0, 1, 9, 19], "doc": [0, 19], "docker": 1, "docstr": 0, "document": 0, "doe": [0, 17], "doesn": [3, 10, 26], "don": [0, 10, 26], "done": [3, 18, 23, 26], "drop": 0, "due": 0, "dummi": [0, 3], "duplic": [0, 12], "durat": 10, "dynam": 0, "e": [3, 23], "each": [0, 3, 23], "edit": 3, "effort": [3, 23], "either": [0, 3], "els": 11, "elsewher": 26, "emb": [0, 3, 23], "emit": 3, "emoji": [0, 3, 22, 23], "empti": [3, 23], "emptypaginatorembederror": [2, 3, 7, 23], "enabl": [0, 1], "encount": 24, "end": [3, 23], "endpoint": 6, "ensur": [0, 3, 18, 25], "entir": [0, 3], "env": 1, "environ": [0, 1], "equival": 6, "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "error_handl": [0, 3, 7], "etc": [1, 10], "evalu": 17, "even": 22, "event": [0, 3, 4, 19, 26], "event_loop": 26, "everi": [3, 23], "exact": 1, "exampl": [3, 23], "exc_info": 20, "exce": [3, 8, 23], "exceed": [3, 23], "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "exception_on_empty_emb": [3, 23], "excess": [3, 23], "exclus": 19, "execut": [19, 26], "exist": [0, 1, 26], "exit": 19, "expect": 21, "expiri": 0, "explain": 0, "expos": 19, "express": 25, "ext": [0, 2, 3, 7, 9, 10, 11, 23], "extend": 0, "extens": [0, 3], "extra": [0, 6], "extract": 0, "facilit": 0, "fail": [9, 10, 24], "fail_sil": 10, "failur": 21, "fakeredi": 0, "fals": [3, 10, 12, 19, 23, 24], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 21], "few": 1, "field": [3, 23, 24], "fieldinfo": [3, 23, 24], "fifo": 8, "file": [0, 1, 24], "filter": 0, "finish": [3, 19, 23], "first": [3, 14, 16, 23], "five": [3, 23], "fix": 0, "float": [10, 12, 18, 26], "folder": 1, "footer": [3, 23], "footer_text": [3, 23], "forbidden": [0, 9, 13], "format": [24, 25], "formatt": 20, "formatted_code_regex": [3, 7, 25], "forum": 0, "forwardref": 17, "found": [3, 17, 21, 26], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "frozenset": [3, 17], "func": [17, 19], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "functool": 17, "futur": [10, 26], "g": [3, 23], "gatewai": 3, "gener": [0, 3, 12, 26], "get": [0, 3, 6, 9, 17, 21], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "get_logg": [3, 7, 20], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 21], "git": 1, "github": 0, "give": 3, "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "global": 17, "globalnameconflicterror": [3, 7, 17], "go": [1, 3, 19, 23], "greater": 24, "groundwork": 1, "group": [7, 25], "guild": [0, 1, 3, 10, 21], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 2, 3], "guildchannel": 9, "ha": [0, 3, 7, 10, 18], "handl": [0, 13, 14, 15, 16, 21, 26], "handle_app_command_error": [13, 14, 15], "handle_error": [13, 14, 16], "handle_forbidden_from_block": [3, 7, 13], "handle_role_chang": [0, 3, 7, 21], "handle_text_command_error": [13, 14, 15], "handler": [0, 3, 14, 15, 16], "happen": 3, "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "hashabl": [19, 26], "have": [0, 9, 10, 17, 20], "heavi": 7, "help": [0, 1], "helper": [0, 9, 12, 21], "hold": [3, 19, 23], "holder": 19, "hook": 0, "host": 4, "houston": 20, "how": [0, 8, 10, 17, 26], "howev": 1, "http": [0, 3, 6, 24, 25], "http_session": [2, 3, 24], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "icon": [3, 23], "icon_url": [3, 23], "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "identifi": [19, 26], "ignor": [1, 7, 17, 22], "ignored_conflict_nam": 17, "immedi": 26, "implement": [0, 3, 4, 8, 18, 20], "import": 0, "in_whitelist": 10, "in_whitelist_check": [3, 7, 10], "inadequ": 3, "includ": [0, 1, 13], "incorrect": 0, "increment": 19, "independantli": 0, "index": 2, "indic": [3, 21, 23], "individu": 3, "info": [0, 1], "inform": [2, 19, 20], "init": [0, 3, 4], "initi": [6, 26], "initialis": [3, 8], "input": 18, "insert": [3, 23], "insid": [3, 23], "instal": [0, 1], "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "instanti": [3, 18, 26], "instead": [3, 12, 26], "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "intend": 21, "intent": 1, "interact": [0, 3, 7, 9, 14, 15, 23], "interactin": 21, "interaction_check": [7, 18], "interest": 20, "intern": [3, 7, 19], "intersphinx": 0, "introduc": 10, "invalid": 9, "invaliddata": 9, "invit": [0, 25], "invoc": [0, 12], "invok": [1, 10, 12, 18], "inwhitelistcheckfailur": [3, 7, 10], "is_in_categori": [3, 7, 9], "isn": [0, 13, 17], "issu": 10, "item": 8, "iter": [10, 12, 14, 16], "its": [0, 3, 12, 17], "itself": 18, "januari": 0, "json": 6, "juli": 0, "june": 0, "just": 0, "keep": [3, 23, 26], "kei": 8, "keyword": [6, 7, 17, 20], "known": 26, "kwarg": [3, 6, 12, 17, 18, 20, 26], "label": [0, 18], "lancebot": 1, "larg": 24, "larger": 24, "last": [3, 10, 18, 23], "latest": 0, "lead": 0, "least": 10, "left": [3, 23], "length": [3, 12, 23], "level": [0, 7, 20], "lexer": [0, 24], "librari": [0, 1], "like": [1, 17], "limit": [3, 23], "line": [3, 23], "linepagin": [0, 2, 3, 7, 23], "linesep": [3, 23], "link": 24, "lint": 0, "list": [0, 1, 3, 18, 23, 24], "listen": 18, "ll": [1, 26], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "lock": [0, 3, 7], "lock_arg": [3, 7, 19], "lockedresourceerror": [3, 7, 19], "log": [0, 3, 7, 13, 21, 26], "log_format": [0, 3, 7, 20], "log_to_dev_log": [2, 3], "logger": [0, 20], "logic": 0, "long": [10, 24, 26], "longer": [0, 18], "look": [17, 26], "loop": [4, 26], "lot": 0, "lru": 8, "lua": 0, "lupa": 0, "m": 1, "machin": 1, "made": [0, 22], "mai": [0, 3, 8, 19, 23], "main": 0, "make": [0, 1, 3, 20, 23], "manag": [0, 3, 13, 14, 19], "mani": [0, 3, 8], "manipul": [0, 17], "manual": 3, "map": [3, 17, 19, 23, 24], "march": 0, "mark": 0, "match": [0, 3, 17], "max": 24, "max_length": 24, "max_lin": [3, 23], "max_paste_s": [3, 7, 24], "max_siz": [3, 8, 23, 24], "maximum": [3, 8, 23, 24], "maybe_raise_for_statu": [3, 6], "mean": 1, "meant": 0, "member": [0, 3, 7, 18], "member_id": 21, "mention": [1, 3], "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "message_id": 22, "message_typ": 0, "metadata": [3, 23, 24], "method": [0, 4, 6, 7, 20], "metric": 3, "might": [1, 3, 10], "migrat": 0, "minut": [3, 23], "miss": 0, "mod": 0, "model": [3, 23, 24], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "moder": [3, 18, 22, 23], "modifi": [1, 21], "modul": [0, 3, 7, 17, 26], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [0, 1, 3, 17, 19, 23], "most": 1, "move": 0, "msg": 20, "multipl": 0, "multivers": 0, "must": [0, 17, 19, 26], "mutual": 19, "mypi": 20, "n": [3, 23], "name": [3, 7, 17, 19, 20, 23, 24, 26], "name_or_po": [17, 19], "namespac": [0, 19, 26], "navig": [0, 1, 3, 23], "na\u00efv": 26, "need": [0, 1, 3, 23], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "newer": 0, "newli": 0, "next": [3, 23], "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "noreturn": [14, 15], "normal": 3, "notabl": 0, "note": [0, 10], "notfound": 9, "notic": 0, "notifi": 12, "novemb": 0, "now": [0, 1, 26], "number": [0, 3, 10, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "occur": 18, "octob": 0, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 18], "onc": [0, 3, 8], "one": [0, 3, 10, 14, 16, 23], "ones": 1, "onli": [0, 3], "onto": [3, 23], "oper": [3, 19, 23, 26], "option": [0, 8, 17, 19], "order": [3, 8, 14, 16, 17, 19, 23, 26], "ordereddict": [17, 19], "origin": [0, 18], "other": [0, 1, 19, 26], "otherwis": [10, 19, 26], "our": [0, 1, 7], "out": [0, 1, 3, 18], "output": 25, "over": [0, 3, 23], "overflow": [3, 23], "overrid": [3, 23], "overwrit": [0, 3], "own": [0, 17], "p": [3, 7, 12], "packag": [0, 3, 7], "page": [2, 3, 23], "pagin": [0, 2, 3, 7], "pagination_emoji": [3, 23], "paginationemoji": [2, 3, 7, 23], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "paramspec": [12, 17], "parent": [0, 18], "pars": 25, "pass": [0, 3, 6, 17, 20, 21, 26], "past": [0, 24, 26], "paste_servic": [0, 3, 7], "paste_url": 24, "pastebin": 0, "pastefil": [0, 3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "patch": [0, 3, 6, 7], "path": 1, "pattern": 25, "per": [3, 10, 23], "perform": 19, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "place": [3, 23], "pleas": 25, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": [8, 17, 19], "possibl": 1, "post": [3, 6, 24], "pre": 1, "predic": [0, 14, 15], "prefix": [1, 3, 4, 23], "prematur": 26, "press": 0, "prevent": [12, 19, 26], "previous": 0, "prioriti": [14, 16], "privatechannel": [0, 9], "problem": [10, 20], "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 20], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "public": 0, "publish": 0, "purpos": 21, "push": 0, "put": [3, 6], "py": [0, 3, 17], "pydant": [0, 3, 23, 24], "pydi": [0, 2], "pydis_cor": [0, 1, 3, 18, 20], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 24, 26], "pythondiscord": [0, 24], "qualifi": 7, "quot": 25, "r": [3, 7, 12], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "raise_error": 19, "raise_for_statu": 6, "rate": 10, "rather": 7, "raw": [12, 25], "raw_code_regex": [3, 7, 25], "rc2": 0, "re": [1, 3, 13, 22, 26], "reach": 19, "reaction": [0, 3, 22, 23], "reaction_check": [0, 3, 7, 22], "read": 0, "readi": 3, "real": 0, "reason": [3, 23], "receiv": [0, 6, 9], "recognis": 20, "reconnect": 0, "redi": [0, 3], "redirect": 10, "redirect_channel": 10, "redis_sess": [2, 3], "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 17, "regex": [0, 3, 7], "regist": [0, 14, 16], "register_command_error_manag": [2, 3], "register_handl": [13, 14, 16], "registr": [3, 14, 16], "regular": 25, "reinstal": 1, "reject": 24, "relat": [8, 14, 16, 20], "releas": 0, "relev": 3, "reli": 0, "remain": [3, 23], "remov": [0, 3, 18, 22, 23, 24], "remove_command": [2, 3], "remove_rol": 21, "renam": 0, "replac": [3, 10, 17, 23, 24], "repli": [3, 11, 12, 13, 23], "repo": 0, "represent": 6, "request": [0, 3, 6, 25], "requir": [0, 1, 3, 23, 24, 26], "resolut": 0, "resolv": [3, 17], "resourc": 19, "resource_id": 19, "resource_typ": 19, "respons": [0, 6, 24], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "restrict": [0, 3, 23], "restrict_to_us": [3, 23], "result": [0, 26], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "reusabl": 5, "revert": 0, "right": [0, 3, 23], "role": [0, 1, 3, 10, 18, 21, 22, 23], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "rule": 0, "run": [0, 1, 12, 19, 26], "runtimeerror": 19, "safe": 0, "same": [12, 26], "sampl": 0, "sanitis": 25, "save": [0, 3, 24], "scale": [3, 23], "scale_to_s": [3, 23], "schedul": [0, 3, 7], "schedule_at": [7, 26], "schedule_lat": [7, 26], "script": 0, "search": 2, "second": [3, 10, 12, 18, 23, 26], "secondari": 18, "see": [0, 1, 17, 18, 19], "self": [0, 3, 18], "send": [0, 3, 6, 18, 23], "send_notic": 12, "send_to_paste_servic": [0, 3, 7, 24], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [3, 7, 17, 18, 23], "serv": [3, 23], "server": [3, 25], "servic": [0, 1, 3, 24], "session": [0, 3, 6, 24], "session_kwarg": 6, "set": [0, 1, 3, 12, 17, 18, 19, 23], "set_author": [3, 23], "setup": [0, 3], "setup_hook": [2, 3], "sever": 20, "share": [0, 17], "sharedev": [3, 7, 19], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "should_handle_error": [13, 14, 15, 16], "should_rais": 6, "signatur": 12, "silent": 10, "similar": [18, 25], "sinc": 10, "singl": [0, 3, 23], "sir": 1, "site": [0, 3, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [3, 8, 23, 24], "so": [0, 1, 3, 7], "socket": 4, "sole": 21, "some": [0, 3, 23, 24], "someth": 25, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "specif": [0, 10], "specifi": [0, 10, 12, 18], "sphinx": 0, "split": 0, "stabl": 0, "standardis": [0, 20], "start": [0, 3, 26], "startup": 3, "startuperror": [2, 3], "stat": [0, 2, 3, 4], "state": 17, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 2, 3], "step": 1, "still": [3, 23], "stop": [0, 7, 18], "store": [0, 3, 7, 8, 23], "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "string": [0, 6], "style": 18, "sub": [0, 3], "submodul": [2, 13], "subpackag": 2, "subtract": 26, "success": [0, 24], "suffix": [3, 23], "suggest": 26, "support": [0, 4, 7, 26], "suppressed_except": 26, "sure": 1, "switch": [3, 23], "sync": [0, 3], "sync_app_command": 3, "system": [0, 1, 14, 16], "t": [0, 3, 10, 11, 13, 17, 19, 26], "target": [0, 8], "task": [0, 26], "task_id": 26, "task_return": 26, "templat": 1, "test": 2, "text": [0, 3, 6, 11, 14, 15, 23, 24], "textchannel": 9, "than": [7, 24], "thei": [3, 17, 22], "them": [1, 3, 17, 26], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "thread": [0, 9], "three": [3, 23], "through": [14, 16, 19], "thrown": 7, "thu": 3, "tild": 0, "time": [0, 10, 26], "timeout": [0, 3, 18, 23], "timezon": 26, "token": [1, 6], "toml": [0, 1], "too": 24, "tool": [3, 7], "top": 7, "total": [3, 23], "trace": [0, 7, 20], "track": 26, "transport": 4, "trashcan": [3, 23], "tree": 3, "trigger": 10, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "truncat": [3, 23], "tupl": [17, 26], "turn": 19, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "type_": 10, "typeerror": [10, 17], "typehint": 17, "typevar": [12, 17, 26], "u": [0, 3, 23], "ui": 18, "unavail": 3, "unawait": 26, "under": 7, "underli": 19, "union": 10, "uniqu": 26, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 26, "unsupport": 24, "unti": [3, 23], "until": [0, 3, 19, 25], "up": [0, 1, 3, 23], "updat": [0, 17], "update_wrapper_glob": [3, 7, 17], "upload": [0, 24], "upon": 0, "url": [0, 3, 6, 23, 24], "urllib": 25, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "usag": 0, "user": [0, 3, 10, 12, 18, 22, 23], "user_has_access": [0, 3, 7, 18], "utc": 26, "util": [0, 1, 2, 3, 8, 17, 18, 20], "v1": [0, 3, 23, 24], "valid": 0, "valu": [12, 17, 19, 20], "valueerror": [6, 17, 24], "vari": 1, "variabl": 1, "variou": [0, 9], "verifi": 10, "version": [0, 11], "view": [0, 18], "viewwithuserandrolecheck": [0, 3, 7, 18], "wa": [0, 9, 10, 26], "wait": [0, 3, 7, 19, 26], "wait_until_guild_avail": [2, 3], "want": 1, "warn": [0, 26], "wasn": 11, "we": [20, 21], "websocket": 0, "were": 3, "what": 1, "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "where": 10, "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "while": [3, 12, 19, 23], "whitelist": 10, "whitespac": [0, 25], "who": [0, 18], "whom": [3, 23], "within": [0, 3], "without": [0, 10], "won": 17, "word": [3, 23], "work": [0, 1], "worker": 7, "workflow": 0, "would": [3, 23], "wrap": [8, 17, 26], "wrapper": [0, 6, 12, 17, 26], "write": [0, 1], "wrong": 0, "www": 0, "x": 0, "you": [0, 1, 9, 25], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "abc": 15, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 13, "ext": 5, "extra": 2, "function": 17, "interact": 18, "local": 1, "lock": 19, "log": 20, "manag": 16, "member": 21, "messag": 22, "modul": 2, "option": 1, "packag": [13, 14], "pagin": 23, "paste_servic": 24, "project": 2, "pydi": 3, "refer": 2, "regex": 25, "schedul": 26, "site_api": 6, "submodul": [3, 7, 14], "subpackag": [3, 7, 13], "test": 1, "util": 7}}) \ No newline at end of file diff --git a/main/versions.html b/main/versions.html index 81187f2e..44a775cb 100644 --- a/main/versions.html +++ b/main/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core Latest (11.1.0) - + @@ -603,7 +603,7 @@ - + diff --git a/v10.0.0/.buildinfo b/v10.0.0/.buildinfo index e758ebab..301eeb99 100644 --- a/v10.0.0/.buildinfo +++ b/v10.0.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: c237a1578f9bb27614d15b9cad003582 +config: 2e8ff4b0f408a4a8c9db16833fd5e7e1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.0.0/_static/basic.css b/v10.0.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.0.0/_static/basic.css +++ b/v10.0.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.0.0/_static/doctools.js b/v10.0.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.0.0/_static/doctools.js +++ b/v10.0.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.0.0/_static/language_data.js b/v10.0.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.0.0/_static/language_data.js +++ b/v10.0.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.0.0/_static/searchtools.js b/v10.0.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.0.0/_static/searchtools.js +++ b/v10.0.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.0.0/changelog.html b/v10.0.0/changelog.html index d1c95a88..6214c577 100644 --- a/v10.0.0/changelog.html +++ b/v10.0.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.0.0 - + @@ -379,7 +379,7 @@
          -

          Changelog#

          +

          Changelog

          10.0.0 14th July 2023

          • [Breaking] #188: Support sending multiple files at once to paste service. All calls to pydis_core.utils.paste_service.send_to_paste_service must now provide a list of pydis_core.utils.paste_service.PasteFile

          • @@ -731,7 +731,7 @@ - + diff --git a/v10.0.0/development.html b/v10.0.0/development.html index af8afe95..1b4a80d3 100644 --- a/v10.0.0/development.html +++ b/v10.0.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.0.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.0.0/genindex.html b/v10.0.0/genindex.html index b522ef41..ef8f0b5a 100644 --- a/v10.0.0/genindex.html +++ b/v10.0.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.0.0 + Index - Pydis Core v10.0.0 - + @@ -941,7 +941,7 @@ - + diff --git a/v10.0.0/index.html b/v10.0.0/index.html index 7da3eb5d..5c908ca6 100644 --- a/v10.0.0/index.html +++ b/v10.0.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.0.0 - + @@ -379,10 +379,10 @@
                -

                Bot Core Project Documentation#

                +

                Bot Core Project Documentation

                -

                Reference#

                +

                Reference

                Modules:

                  @@ -437,7 +437,7 @@
                -

                Extras#

                +

                Extras

                • Index

                • Search Page

                • @@ -487,7 +487,7 @@ - + diff --git a/v10.0.0/index_redirect.html b/v10.0.0/index_redirect.html index d128df51..c20b75a0 100644 --- a/v10.0.0/index_redirect.html +++ b/v10.0.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.0.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.0.0/output/pydis_core.async_stats.html b/v10.0.0/output/pydis_core.async_stats.html index 2e9d38ac..be889c8d 100644 --- a/v10.0.0/output/pydis_core.async_stats.html +++ b/v10.0.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.0.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.0.0/output/pydis_core.exts.html b/v10.0.0/output/pydis_core.exts.html index 7bbd424d..e5104255 100644 --- a/v10.0.0/output/pydis_core.exts.html +++ b/v10.0.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.0.0 - + @@ -379,7 +379,7 @@
                  -

                  Exts#

                  +

                  Exts

                  Reusable Discord cogs.

                  @@ -433,7 +433,7 @@ - + diff --git a/v10.0.0/output/pydis_core.html b/v10.0.0/output/pydis_core.html index 5538e6e9..e44a366a 100644 --- a/v10.0.0/output/pydis_core.html +++ b/v10.0.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.0.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
                  -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.

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

                  @@ -553,18 +553,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
                  • @@ -646,7 +646,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                  -

                  Submodules#

                  +

                  Submodules

                  • async_stats
                      @@ -772,7 +772,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                  - + diff --git a/v10.0.0/output/pydis_core.site_api.html b/v10.0.0/output/pydis_core.site_api.html index 12436c29..46b8bcf5 100644 --- a/v10.0.0/output/pydis_core.site_api.html +++ b/v10.0.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.0.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.0.0/output/pydis_core.utils.caching.html b/v10.0.0/output/pydis_core.utils.caching.html index 0e79401c..32d78f2e 100644 --- a/v10.0.0/output/pydis_core.utils.caching.html +++ b/v10.0.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.0.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.0.0/output/pydis_core.utils.channel.html b/v10.0.0/output/pydis_core.utils.channel.html index 066550d5..fe3126b8 100644 --- a/v10.0.0/output/pydis_core.utils.channel.html +++ b/v10.0.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.0.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.0.0/output/pydis_core.utils.commands.html b/v10.0.0/output/pydis_core.utils.commands.html index bf328135..d3121666 100644 --- a/v10.0.0/output/pydis_core.utils.commands.html +++ b/v10.0.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.0.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.0.0/output/pydis_core.utils.cooldown.html b/v10.0.0/output/pydis_core.utils.cooldown.html index 669f5a4b..66a067d2 100644 --- a/v10.0.0/output/pydis_core.utils.cooldown.html +++ b/v10.0.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.0.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.0.0/output/pydis_core.utils.error_handling.html b/v10.0.0/output/pydis_core.utils.error_handling.html index 4cc3cc60..7e4941f6 100644 --- a/v10.0.0/output/pydis_core.utils.error_handling.html +++ b/v10.0.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.0.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.0.0/output/pydis_core.utils.function.html b/v10.0.0/output/pydis_core.utils.function.html index 048e0171..266f8a66 100644 --- a/v10.0.0/output/pydis_core.utils.function.html +++ b/v10.0.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.0.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.0.0/output/pydis_core.utils.html b/v10.0.0/output/pydis_core.utils.html index c40a28dd..01601c7f 100644 --- a/v10.0.0/output/pydis_core.utils.html +++ b/v10.0.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.0.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.0.0/output/pydis_core.utils.interactions.html b/v10.0.0/output/pydis_core.utils.interactions.html index e90590ff..69094fb0 100644 --- a/v10.0.0/output/pydis_core.utils.interactions.html +++ b/v10.0.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.0.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.0.0/output/pydis_core.utils.logging.html b/v10.0.0/output/pydis_core.utils.logging.html index 5e495f26..5fceb985 100644 --- a/v10.0.0/output/pydis_core.utils.logging.html +++ b/v10.0.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.0.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.0.0/output/pydis_core.utils.members.html b/v10.0.0/output/pydis_core.utils.members.html index 261af0f5..3124b5e9 100644 --- a/v10.0.0/output/pydis_core.utils.members.html +++ b/v10.0.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.0.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.0.0/output/pydis_core.utils.paste_service.html b/v10.0.0/output/pydis_core.utils.paste_service.html index b0b23bc4..2e6fb3de 100644 --- a/v10.0.0/output/pydis_core.utils.paste_service.html +++ b/v10.0.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.0.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.0.0/output/pydis_core.utils.regex.html b/v10.0.0/output/pydis_core.utils.regex.html index 68818d35..6109a5f3 100644 --- a/v10.0.0/output/pydis_core.utils.regex.html +++ b/v10.0.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.0.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.0.0/output/pydis_core.utils.scheduling.html b/v10.0.0/output/pydis_core.utils.scheduling.html index 75e9cfb0..e3a56c83 100644 --- a/v10.0.0/output/pydis_core.utils.scheduling.html +++ b/v10.0.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.0.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.0.0/py-modindex.html b/v10.0.0/py-modindex.html index ebd328e2..b25b7c37 100644 --- a/v10.0.0/py-modindex.html +++ b/v10.0.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.0.0 + Python Module Index - Pydis Core v10.0.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.0.0/search.html b/v10.0.0/search.html index 73d7f02b..ddb96f41 100644 --- a/v10.0.0/search.html +++ b/v10.0.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.0.0 + Search - Pydis Core v10.0.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.0.0/searchindex.js b/v10.0.0/searchindex.js index 5efac1fd..a0223a2f 100644 --- a/v10.0.0/searchindex.js +++ b/v10.0.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, "0": [0, 8, 14, 15], "14th": 0, "juli": 0, "2023": 0, "break": [0, 13], "188": 0, "support": [0, 4, 7, 19], "send": [0, 6, 14], "multipl": 0, "file": [0, 1, 17], "onc": [0, 8], "past": [0, 17, 19], "servic": [0, 1, 3, 17], "all": [0, 1, 3, 4, 7, 19], "call": [0, 3, 11, 13, 19], "pydis_cor": [0, 1, 3, 14], "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], "featur": [0, 1, 3], "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], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "abc": 0, "privatechannel": [0, 9], "thread": [0, 9], "bump": 0, "py": [0, 13], "2": [0, 3, 14], "3": 0, "1": [0, 15], "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, 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, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "march": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 17, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "need": [0, 1], "run": [0, 1, 11, 19], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "august": 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], "bot": [0, 1, 3, 7, 9], "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], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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, 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, "25th": 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], "process": 0, "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, "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "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, "ar": [1, 3, 8, 13, 14, 18], "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, "ensur": [3, 14, 18], "thei": [3, 13], "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], "until": [3, 18], "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, "check": [6, 9, 11, 12, 14, 19], "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, "", "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": {"site_api": [[6, "module-pydis_core.site_api"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "Exts": [[5, "module-pydis_core.exts"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "logging": [[15, "module-pydis_core.utils.logging"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "regex": [[18, "module-pydis_core.utils.regex"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "members": [[16, "module-pydis_core.utils.members"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "function": [[13, "module-pydis_core.utils.function"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "commands": [[10, "module-pydis_core.utils.commands"]]}, "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"]], "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]], "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, "", "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, "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": [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, "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": [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, 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": [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, 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, "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, "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, 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, "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": [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.0.0/versions.html b/v10.0.0/versions.html index 6a52ebcd..eebc4643 100644 --- a/v10.0.0/versions.html +++ b/v10.0.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.0.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v10.1.0/.buildinfo b/v10.1.0/.buildinfo index 9af26b11..f81fcac2 100644 --- a/v10.1.0/.buildinfo +++ b/v10.1.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: 32bbe891c376d47609e6cf62b9acd5f0 +config: 1befda2531a6fef3eb5cd047a2096060 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.1.0/_static/basic.css b/v10.1.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.1.0/_static/basic.css +++ b/v10.1.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.1.0/_static/doctools.js b/v10.1.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.1.0/_static/doctools.js +++ b/v10.1.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.1.0/_static/language_data.js b/v10.1.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.1.0/_static/language_data.js +++ b/v10.1.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.1.0/_static/searchtools.js b/v10.1.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.1.0/_static/searchtools.js +++ b/v10.1.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.1.0/changelog.html b/v10.1.0/changelog.html index a583fd77..d0739f45 100644 --- a/v10.1.0/changelog.html +++ b/v10.1.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.1.0 - + @@ -379,7 +379,7 @@
                  -

                  Changelog#

                  +

                  Changelog

                  10.1.0 25th July 2023

                  • [Feature] #190: Overwrite discord.ext.commands.Bot.process_commands to ensure no commands are processed until all extensions are loaded. This only works for clients using pydis_core.BotBase.load_extensions.

                  • @@ -736,7 +736,7 @@ - + diff --git a/v10.1.0/development.html b/v10.1.0/development.html index 1ff6e1d2..31ac0c41 100644 --- a/v10.1.0/development.html +++ b/v10.1.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.1.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.1.0/genindex.html b/v10.1.0/genindex.html index b7effaf3..1591b038 100644 --- a/v10.1.0/genindex.html +++ b/v10.1.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.1.0 + Index - Pydis Core v10.1.0 - + @@ -943,7 +943,7 @@ - + diff --git a/v10.1.0/index.html b/v10.1.0/index.html index d635de83..267fc35d 100644 --- a/v10.1.0/index.html +++ b/v10.1.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.1.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.1.0/index_redirect.html b/v10.1.0/index_redirect.html index 0f4270d2..31a88769 100644 --- a/v10.1.0/index_redirect.html +++ b/v10.1.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.1.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.1.0/output/pydis_core.async_stats.html b/v10.1.0/output/pydis_core.async_stats.html index 1d3d59ba..82d45d3c 100644 --- a/v10.1.0/output/pydis_core.async_stats.html +++ b/v10.1.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.1.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.1.0/output/pydis_core.exts.html b/v10.1.0/output/pydis_core.exts.html index 2fc2d0ee..40faad0b 100644 --- a/v10.1.0/output/pydis_core.exts.html +++ b/v10.1.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.1.0 - + @@ -379,7 +379,7 @@
                          -

                          Exts#

                          +

                          Exts

                          Reusable Discord cogs.

                          @@ -433,7 +433,7 @@ - + diff --git a/v10.1.0/output/pydis_core.html b/v10.1.0/output/pydis_core.html index ebb26698..f37da364 100644 --- a/v10.1.0/output/pydis_core.html +++ b/v10.1.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.1.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.1.0/output/pydis_core.site_api.html b/v10.1.0/output/pydis_core.site_api.html index 5bf55139..b61dc36b 100644 --- a/v10.1.0/output/pydis_core.site_api.html +++ b/v10.1.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.1.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.1.0/output/pydis_core.utils.caching.html b/v10.1.0/output/pydis_core.utils.caching.html index fe0d9913..2db3618f 100644 --- a/v10.1.0/output/pydis_core.utils.caching.html +++ b/v10.1.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.1.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.1.0/output/pydis_core.utils.channel.html b/v10.1.0/output/pydis_core.utils.channel.html index d88d0d17..feb28615 100644 --- a/v10.1.0/output/pydis_core.utils.channel.html +++ b/v10.1.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.1.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.1.0/output/pydis_core.utils.commands.html b/v10.1.0/output/pydis_core.utils.commands.html index c7d831d8..806109df 100644 --- a/v10.1.0/output/pydis_core.utils.commands.html +++ b/v10.1.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.1.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.1.0/output/pydis_core.utils.cooldown.html b/v10.1.0/output/pydis_core.utils.cooldown.html index f2ad1e55..7ffcb2dc 100644 --- a/v10.1.0/output/pydis_core.utils.cooldown.html +++ b/v10.1.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.1.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.1.0/output/pydis_core.utils.error_handling.html b/v10.1.0/output/pydis_core.utils.error_handling.html index 68bf39a4..5caadf5a 100644 --- a/v10.1.0/output/pydis_core.utils.error_handling.html +++ b/v10.1.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.1.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.1.0/output/pydis_core.utils.function.html b/v10.1.0/output/pydis_core.utils.function.html index a37827ac..ebdfe155 100644 --- a/v10.1.0/output/pydis_core.utils.function.html +++ b/v10.1.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.1.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.1.0/output/pydis_core.utils.html b/v10.1.0/output/pydis_core.utils.html index f9ba337d..725302a1 100644 --- a/v10.1.0/output/pydis_core.utils.html +++ b/v10.1.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.1.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.1.0/output/pydis_core.utils.interactions.html b/v10.1.0/output/pydis_core.utils.interactions.html index 8365e26c..2254ab53 100644 --- a/v10.1.0/output/pydis_core.utils.interactions.html +++ b/v10.1.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.1.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.1.0/output/pydis_core.utils.logging.html b/v10.1.0/output/pydis_core.utils.logging.html index 21bd2f53..c2aa4e81 100644 --- a/v10.1.0/output/pydis_core.utils.logging.html +++ b/v10.1.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.1.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.1.0/output/pydis_core.utils.members.html b/v10.1.0/output/pydis_core.utils.members.html index c755abd0..2c4123d7 100644 --- a/v10.1.0/output/pydis_core.utils.members.html +++ b/v10.1.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.1.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.1.0/output/pydis_core.utils.paste_service.html b/v10.1.0/output/pydis_core.utils.paste_service.html index e4abe5bc..c2689e2d 100644 --- a/v10.1.0/output/pydis_core.utils.paste_service.html +++ b/v10.1.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.1.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.1.0/output/pydis_core.utils.regex.html b/v10.1.0/output/pydis_core.utils.regex.html index b9e4c798..2aaeb52e 100644 --- a/v10.1.0/output/pydis_core.utils.regex.html +++ b/v10.1.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.1.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.1.0/output/pydis_core.utils.scheduling.html b/v10.1.0/output/pydis_core.utils.scheduling.html index c182fa6f..9a1c8a4e 100644 --- a/v10.1.0/output/pydis_core.utils.scheduling.html +++ b/v10.1.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.1.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.1.0/py-modindex.html b/v10.1.0/py-modindex.html index 890ecf6a..44a1aa33 100644 --- a/v10.1.0/py-modindex.html +++ b/v10.1.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.1.0 + Python Module Index - Pydis Core v10.1.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.1.0/search.html b/v10.1.0/search.html index f9f98005..3436a1ed 100644 --- a/v10.1.0/search.html +++ b/v10.1.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.1.0 + Search - Pydis Core v10.1.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.1.0/searchindex.js b/v10.1.0/searchindex.js index cb3eac63..f2fe53c5 100644 --- a/v10.1.0/searchindex.js +++ b/v10.1.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, "1": [0, 15], "0": [0, 8, 14, 15], "25th": 0, "juli": 0, "2023": 0, "featur": [0, 1, 3], "190": 0, "overwrit": [0, 3], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "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, "support": [0, 4, 7, 19], "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], "bump": 0, "py": [0, 3, 13], "2": [0, 3, 14], "3": 0, "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, "28th": 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, "august": 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": {"Exts": [[5, "module-pydis_core.exts"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "caching": [[8, "module-pydis_core.utils.caching"]], "site_api": [[6, "module-pydis_core.site_api"]], "members": [[16, "module-pydis_core.utils.members"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "logging": [[15, "module-pydis_core.utils.logging"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "regex": [[18, "module-pydis_core.utils.regex"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "function": [[13, "module-pydis_core.utils.function"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "commands": [[10, "module-pydis_core.utils.commands"]]}, "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, "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.1.0/versions.html b/v10.1.0/versions.html index f3d3afd7..a8d874cc 100644 --- a/v10.1.0/versions.html +++ b/v10.1.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.1.0 - + @@ -592,7 +592,7 @@ - + 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 @@ - + diff --git a/v10.3.0/.buildinfo b/v10.3.0/.buildinfo index 02d7799a..87bb5f74 100644 --- a/v10.3.0/.buildinfo +++ b/v10.3.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: 72c8fb612136ae3c95c19f8fde009abf +config: 8384489e842124283725f798a99fdd4c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.3.0/_static/basic.css b/v10.3.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.3.0/_static/basic.css +++ b/v10.3.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.3.0/_static/doctools.js b/v10.3.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.3.0/_static/doctools.js +++ b/v10.3.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.3.0/_static/language_data.js b/v10.3.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.3.0/_static/language_data.js +++ b/v10.3.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.3.0/_static/searchtools.js b/v10.3.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.3.0/_static/searchtools.js +++ b/v10.3.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.3.0/changelog.html b/v10.3.0/changelog.html index 63f8d6c8..8ca89177 100644 --- a/v10.3.0/changelog.html +++ b/v10.3.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.3.0 - + @@ -379,7 +379,7 @@
                                  -

                                  Changelog#

                                  +

                                  Changelog

                                  10.3.0 19th September 2023

                                  • [Feature] #195: Set discord, websockets, chardet & async_rediscache loggers to warning level and asyncio to info level by default.

                                  • @@ -747,7 +747,7 @@ - + diff --git a/v10.3.0/development.html b/v10.3.0/development.html index 371376e5..586cb672 100644 --- a/v10.3.0/development.html +++ b/v10.3.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.3.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.3.0/genindex.html b/v10.3.0/genindex.html index 17dc0eca..a21f0491 100644 --- a/v10.3.0/genindex.html +++ b/v10.3.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.3.0 + Index - Pydis Core v10.3.0 - + @@ -945,7 +945,7 @@ - + diff --git a/v10.3.0/index.html b/v10.3.0/index.html index c66cb9bb..956c994f 100644 --- a/v10.3.0/index.html +++ b/v10.3.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.3.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.3.0/index_redirect.html b/v10.3.0/index_redirect.html index 2d6acac9..816f1e3f 100644 --- a/v10.3.0/index_redirect.html +++ b/v10.3.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.3.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.3.0/output/pydis_core.async_stats.html b/v10.3.0/output/pydis_core.async_stats.html index 23c911b9..96a8c00d 100644 --- a/v10.3.0/output/pydis_core.async_stats.html +++ b/v10.3.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.3.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.3.0/output/pydis_core.exts.html b/v10.3.0/output/pydis_core.exts.html index ae33ce42..b78d246a 100644 --- a/v10.3.0/output/pydis_core.exts.html +++ b/v10.3.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.3.0 - + @@ -379,7 +379,7 @@
                                          -

                                          Exts#

                                          +

                                          Exts

                                          Reusable Discord cogs.

                                          @@ -433,7 +433,7 @@ - + diff --git a/v10.3.0/output/pydis_core.html b/v10.3.0/output/pydis_core.html index 9ff28131..3297d116 100644 --- a/v10.3.0/output/pydis_core.html +++ b/v10.3.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.3.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
                                          • @@ -659,7 +659,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                          -

                                          Submodules#

                                          +

                                          Submodules

                                          • async_stats
                                              @@ -786,7 +786,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                          - + diff --git a/v10.3.0/output/pydis_core.site_api.html b/v10.3.0/output/pydis_core.site_api.html index 446bdee1..3c3880fd 100644 --- a/v10.3.0/output/pydis_core.site_api.html +++ b/v10.3.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.3.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.3.0/output/pydis_core.utils.caching.html b/v10.3.0/output/pydis_core.utils.caching.html index 971c6b2b..ec97a04c 100644 --- a/v10.3.0/output/pydis_core.utils.caching.html +++ b/v10.3.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.3.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.3.0/output/pydis_core.utils.channel.html b/v10.3.0/output/pydis_core.utils.channel.html index e0c6f2bb..682192f4 100644 --- a/v10.3.0/output/pydis_core.utils.channel.html +++ b/v10.3.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.3.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.3.0/output/pydis_core.utils.commands.html b/v10.3.0/output/pydis_core.utils.commands.html index 3547ebdc..c20d091a 100644 --- a/v10.3.0/output/pydis_core.utils.commands.html +++ b/v10.3.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.3.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.3.0/output/pydis_core.utils.cooldown.html b/v10.3.0/output/pydis_core.utils.cooldown.html index 847eb982..d7f960b6 100644 --- a/v10.3.0/output/pydis_core.utils.cooldown.html +++ b/v10.3.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.3.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.3.0/output/pydis_core.utils.error_handling.html b/v10.3.0/output/pydis_core.utils.error_handling.html index efd4c7d4..8fdf40c0 100644 --- a/v10.3.0/output/pydis_core.utils.error_handling.html +++ b/v10.3.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.3.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.3.0/output/pydis_core.utils.function.html b/v10.3.0/output/pydis_core.utils.function.html index 75d4cd34..bab8f57c 100644 --- a/v10.3.0/output/pydis_core.utils.function.html +++ b/v10.3.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.3.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.3.0/output/pydis_core.utils.html b/v10.3.0/output/pydis_core.utils.html index 585f2401..32b20032 100644 --- a/v10.3.0/output/pydis_core.utils.html +++ b/v10.3.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.3.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
                                              @@ -605,7 +605,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                          - + diff --git a/v10.3.0/output/pydis_core.utils.interactions.html b/v10.3.0/output/pydis_core.utils.interactions.html index 03dcc1b5..ad2de453 100644 --- a/v10.3.0/output/pydis_core.utils.interactions.html +++ b/v10.3.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.3.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.3.0/output/pydis_core.utils.logging.html b/v10.3.0/output/pydis_core.utils.logging.html index a9019f72..3b6ffcd9 100644 --- a/v10.3.0/output/pydis_core.utils.logging.html +++ b/v10.3.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.3.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:
                                          @@ -429,7 +429,7 @@
                                          -log_format[source]#
                                          +log_format[source]

                                          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                          @@ -511,7 +511,7 @@
                                          - + diff --git a/v10.3.0/output/pydis_core.utils.members.html b/v10.3.0/output/pydis_core.utils.members.html index 137df6af..3aa15821 100644 --- a/v10.3.0/output/pydis_core.utils.members.html +++ b/v10.3.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.3.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.3.0/output/pydis_core.utils.paste_service.html b/v10.3.0/output/pydis_core.utils.paste_service.html index 0f08f877..ecbb0cf0 100644 --- a/v10.3.0/output/pydis_core.utils.paste_service.html +++ b/v10.3.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.3.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.3.0/output/pydis_core.utils.regex.html b/v10.3.0/output/pydis_core.utils.regex.html index 32340bc5..a182a5ae 100644 --- a/v10.3.0/output/pydis_core.utils.regex.html +++ b/v10.3.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.3.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.3.0/output/pydis_core.utils.scheduling.html b/v10.3.0/output/pydis_core.utils.scheduling.html index 2f739b5b..268ebee1 100644 --- a/v10.3.0/output/pydis_core.utils.scheduling.html +++ b/v10.3.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.3.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.3.0/py-modindex.html b/v10.3.0/py-modindex.html index 09066558..b7e4143b 100644 --- a/v10.3.0/py-modindex.html +++ b/v10.3.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.3.0 + Python Module Index - Pydis Core v10.3.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.3.0/search.html b/v10.3.0/search.html index 2cc13797..3725f8af 100644 --- a/v10.3.0/search.html +++ b/v10.3.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.3.0 + Search - Pydis Core v10.3.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.3.0/searchindex.js b/v10.3.0/searchindex.js index df6cd9b4..7088c3ed 100644 --- a/v10.3.0/searchindex.js +++ b/v10.3.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, "3": 0, "0": [0, 8, 14, 15], "19th": 0, "septemb": 0, "2023": 0, "featur": [0, 1, 3], "195": 0, "set": [0, 1, 3, 11, 13, 14], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 15], "warn": [0, 19], "level": [0, 7, 15], "asyncio": [0, 4, 19], "info": [0, 1], "default": [0, 1, 3, 17], "add": [0, 3, 11], "log_format": [0, 3, 7, 15], "pydis_cor": [0, 1, 3, 14, 15], "util": [0, 1, 2, 3, 8, 13, 14, 15], "log": [0, 3, 7, 12, 16, 19], "allow": [0, 1, 3, 14, 17], "standardis": [0, 15], "across": [0, 15], "all": [0, 1, 3, 4, 7, 15, 19], "servic": [0, 1, 3, 17], "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "2": [0, 3, 14], "28th": 0, "august": 0, "support": [0, 4, 7, 19], "192": 0, "bump": 0, "py": [0, 3, 13], "1": [0, 15], "25th": 0, "juli": 0, "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], "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], "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], "call": [0, 3, 11, 13, 19], "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, "lexer": [0, 17], "valid": 0, "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, "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, 15], "publish": 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], "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], "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, "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, 15, 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], "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], "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, 15, 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, "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, "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, "formatt": 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, "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"], [15, 5, 1, "", "log_format"]], "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": {"caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "site_api": [[6, "module-pydis_core.site_api"]], "Exts": [[5, "module-pydis_core.exts"]], "regex": [[18, "module-pydis_core.utils.regex"]], "logging": [[15, "module-pydis_core.utils.logging"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "members": [[16, "module-pydis_core.utils.members"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "function": [[13, "module-pydis_core.utils.function"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "commands": [[10, "module-pydis_core.utils.commands"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]]}, "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"]], "log_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format"]], "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_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format", 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"], [15, 5, 1, "", "log_format"]], "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, "195": 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, 15, 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, "across": [0, 15], "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, 15, 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": [0, 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, 15, 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, "chardet": 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], "formatt": 15, "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": [0, 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": [0, 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_format": [0, 3, 7, 15], "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, 15], "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, 15], "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, "standardis": [0, 15], "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": [0, 19], "wasn": 10, "we": [15, 16], "websocket": 0, "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.3.0/versions.html b/v10.3.0/versions.html index 53d72bc9..bfaea37d 100644 --- a/v10.3.0/versions.html +++ b/v10.3.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.3.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v10.4.0/.buildinfo b/v10.4.0/.buildinfo index 7370c3e6..4204c410 100644 --- a/v10.4.0/.buildinfo +++ b/v10.4.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: 2a4cdc16a49aec9097390d5d2e25a55e +config: d9b4dc653f7e78b2630d31605f187e83 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.4.0/_static/basic.css b/v10.4.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.4.0/_static/basic.css +++ b/v10.4.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.4.0/_static/doctools.js b/v10.4.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.4.0/_static/doctools.js +++ b/v10.4.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.4.0/_static/language_data.js b/v10.4.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.4.0/_static/language_data.js +++ b/v10.4.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.4.0/_static/searchtools.js b/v10.4.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.4.0/_static/searchtools.js +++ b/v10.4.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.4.0/changelog.html b/v10.4.0/changelog.html index 01b7fd75..e9532238 100644 --- a/v10.4.0/changelog.html +++ b/v10.4.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.4.0 - + @@ -379,7 +379,7 @@
                                          -

                                          Changelog#

                                          +

                                          Changelog

                                          10.4.0 26th October 2023

                                          • [Support] #196: Bump many development dependencies.

                                          • @@ -753,7 +753,7 @@ - + diff --git a/v10.4.0/development.html b/v10.4.0/development.html index 0cc302c1..fa4b87f0 100644 --- a/v10.4.0/development.html +++ b/v10.4.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.4.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.4.0/genindex.html b/v10.4.0/genindex.html index 74a369b9..38899cb7 100644 --- a/v10.4.0/genindex.html +++ b/v10.4.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.4.0 + Index - Pydis Core v10.4.0 - + @@ -945,7 +945,7 @@ - + diff --git a/v10.4.0/index.html b/v10.4.0/index.html index 5a1d8ffb..0fde6c7c 100644 --- a/v10.4.0/index.html +++ b/v10.4.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.4.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.4.0/index_redirect.html b/v10.4.0/index_redirect.html index 60f19bb4..f0ff5e68 100644 --- a/v10.4.0/index_redirect.html +++ b/v10.4.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.4.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.4.0/output/pydis_core.async_stats.html b/v10.4.0/output/pydis_core.async_stats.html index 7b2534ec..093e2006 100644 --- a/v10.4.0/output/pydis_core.async_stats.html +++ b/v10.4.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.4.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.4.0/output/pydis_core.exts.html b/v10.4.0/output/pydis_core.exts.html index adcb3c7d..2a482393 100644 --- a/v10.4.0/output/pydis_core.exts.html +++ b/v10.4.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.4.0 - + @@ -379,7 +379,7 @@
                                                  -

                                                  Exts#

                                                  +

                                                  Exts

                                                  Reusable Discord cogs.

                                                  @@ -433,7 +433,7 @@ - + diff --git a/v10.4.0/output/pydis_core.html b/v10.4.0/output/pydis_core.html index bfd14c07..8b110ece 100644 --- a/v10.4.0/output/pydis_core.html +++ b/v10.4.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.4.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
                                                  • @@ -659,7 +659,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                  -

                                                  Submodules#

                                                  +

                                                  Submodules

                                                  • async_stats
                                                      @@ -786,7 +786,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                  - + diff --git a/v10.4.0/output/pydis_core.site_api.html b/v10.4.0/output/pydis_core.site_api.html index 8cdc4693..c70fa535 100644 --- a/v10.4.0/output/pydis_core.site_api.html +++ b/v10.4.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.4.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.4.0/output/pydis_core.utils.caching.html b/v10.4.0/output/pydis_core.utils.caching.html index f94fdb54..fa6d2eff 100644 --- a/v10.4.0/output/pydis_core.utils.caching.html +++ b/v10.4.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.4.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.4.0/output/pydis_core.utils.channel.html b/v10.4.0/output/pydis_core.utils.channel.html index 11d30e5d..1b361b8b 100644 --- a/v10.4.0/output/pydis_core.utils.channel.html +++ b/v10.4.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.4.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.4.0/output/pydis_core.utils.commands.html b/v10.4.0/output/pydis_core.utils.commands.html index f1d70a93..e1cee635 100644 --- a/v10.4.0/output/pydis_core.utils.commands.html +++ b/v10.4.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.4.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.4.0/output/pydis_core.utils.cooldown.html b/v10.4.0/output/pydis_core.utils.cooldown.html index b4d76fd8..d58aca4a 100644 --- a/v10.4.0/output/pydis_core.utils.cooldown.html +++ b/v10.4.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.4.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.4.0/output/pydis_core.utils.error_handling.html b/v10.4.0/output/pydis_core.utils.error_handling.html index 932c1dee..22a95ee2 100644 --- a/v10.4.0/output/pydis_core.utils.error_handling.html +++ b/v10.4.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.4.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.4.0/output/pydis_core.utils.function.html b/v10.4.0/output/pydis_core.utils.function.html index 066609f9..b3f9db36 100644 --- a/v10.4.0/output/pydis_core.utils.function.html +++ b/v10.4.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.4.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.4.0/output/pydis_core.utils.html b/v10.4.0/output/pydis_core.utils.html index 6638cc4b..b61b9f41 100644 --- a/v10.4.0/output/pydis_core.utils.html +++ b/v10.4.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.4.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
                                                      @@ -605,7 +605,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                  - + diff --git a/v10.4.0/output/pydis_core.utils.interactions.html b/v10.4.0/output/pydis_core.utils.interactions.html index 2f2bd11b..a3b914e3 100644 --- a/v10.4.0/output/pydis_core.utils.interactions.html +++ b/v10.4.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.4.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.4.0/output/pydis_core.utils.logging.html b/v10.4.0/output/pydis_core.utils.logging.html index be4235cb..fd6f9346 100644 --- a/v10.4.0/output/pydis_core.utils.logging.html +++ b/v10.4.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.4.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:
                                                  @@ -429,7 +429,7 @@
                                                  -log_format[source]#
                                                  +log_format[source]

                                                  A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                  @@ -511,7 +511,7 @@
                                                  - + diff --git a/v10.4.0/output/pydis_core.utils.members.html b/v10.4.0/output/pydis_core.utils.members.html index 1b1bc2c3..ccddda41 100644 --- a/v10.4.0/output/pydis_core.utils.members.html +++ b/v10.4.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.4.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.4.0/output/pydis_core.utils.paste_service.html b/v10.4.0/output/pydis_core.utils.paste_service.html index 2b026f94..933b4401 100644 --- a/v10.4.0/output/pydis_core.utils.paste_service.html +++ b/v10.4.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.4.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.4.0/output/pydis_core.utils.regex.html b/v10.4.0/output/pydis_core.utils.regex.html index e6f914f6..973af673 100644 --- a/v10.4.0/output/pydis_core.utils.regex.html +++ b/v10.4.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.4.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.4.0/output/pydis_core.utils.scheduling.html b/v10.4.0/output/pydis_core.utils.scheduling.html index 7808b0a5..27c62822 100644 --- a/v10.4.0/output/pydis_core.utils.scheduling.html +++ b/v10.4.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.4.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.4.0/py-modindex.html b/v10.4.0/py-modindex.html index 3869810e..4999eeed 100644 --- a/v10.4.0/py-modindex.html +++ b/v10.4.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.4.0 + Python Module Index - Pydis Core v10.4.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.4.0/search.html b/v10.4.0/search.html index 8cd9bd65..67bbefbb 100644 --- a/v10.4.0/search.html +++ b/v10.4.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.4.0 + Search - Pydis Core v10.4.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.4.0/searchindex.js b/v10.4.0/searchindex.js index d7ebfb39..cf9ad39a 100644 --- a/v10.4.0/searchindex.js +++ b/v10.4.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, "4": 0, "0": [0, 8, 14, 15], "26th": 0, "octob": 0, "2023": 0, "support": [0, 4, 7, 19], "196": 0, "bump": 0, "mani": [0, 3, 8], "develop": [0, 2, 3, 7], "depend": [0, 9], "aiodn": 0, "3": 0, "1": [0, 15], "19th": 0, "septemb": 0, "featur": [0, 1, 3], "195": 0, "set": [0, 1, 3, 11, 13, 14], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 15], "warn": [0, 19], "level": [0, 7, 15], "asyncio": [0, 4, 19], "info": [0, 1], "default": [0, 1, 3, 17], "add": [0, 3, 11], "log_format": [0, 3, 7, 15], "pydis_cor": [0, 1, 3, 14, 15], "util": [0, 1, 2, 3, 8, 13, 14, 15], "log": [0, 3, 7, 12, 16, 19], "allow": [0, 1, 3, 14, 17], "standardis": [0, 15], "across": [0, 15], "all": [0, 1, 3, 4, 7, 15, 19], "servic": [0, 1, 3, 17], "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "2": [0, 3, 14], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 13], "25th": 0, "juli": 0, "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], "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], "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], "call": [0, 3, 11, 13, 19], "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, "lexer": [0, 17], "valid": 0, "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, "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, "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, 15], "publish": 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, "sampl": 0, "boilerpl": 0, "document": 0, "explain": 0, "how": [0, 8, 13, 19], "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], "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], "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], "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, "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, 15, 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, "common": [0, 1, 3, 7, 15, 18], "cach": [0, 3, 7, 9, 16], "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], "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, 15, 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, "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, "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, "formatt": 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, "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"], [15, 5, 1, "", "log_format"]], "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"]], "site_api": [[6, "module-pydis_core.site_api"]], "Exts": [[5, "module-pydis_core.exts"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "members": [[16, "module-pydis_core.utils.members"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Changelog": [[0, "changelog"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "function": [[13, "module-pydis_core.utils.function"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "commands": [[10, "module-pydis_core.utils.commands"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]]}, "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"]], "log_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format"]], "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_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format", 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"], [15, 5, 1, "", "log_format"]], "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, "195": 0, "196": 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, 15, 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, "across": [0, 15], "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, 15, 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": [0, 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, 15, 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, "chardet": 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], "formatt": 15, "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": [0, 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": [0, 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_format": [0, 3, 7, 15], "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, "octob": 0, "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, 15], "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, 15], "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, "standardis": [0, 15], "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": [0, 19], "wasn": 10, "we": [15, 16], "websocket": 0, "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.4.0/versions.html b/v10.4.0/versions.html index cf353fe7..4d9e5732 100644 --- a/v10.4.0/versions.html +++ b/v10.4.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.4.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v10.5.0/.buildinfo b/v10.5.0/.buildinfo index d4055331..5d966aa0 100644 --- a/v10.5.0/.buildinfo +++ b/v10.5.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: a693f25189c90f8f4c840da71cacf11a +config: c363b63cfa9ee972e62499f3126961c7 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.5.0/_static/basic.css b/v10.5.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.5.0/_static/basic.css +++ b/v10.5.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.5.0/_static/doctools.js b/v10.5.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.5.0/_static/doctools.js +++ b/v10.5.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.5.0/_static/language_data.js b/v10.5.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.5.0/_static/language_data.js +++ b/v10.5.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.5.0/_static/searchtools.js b/v10.5.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.5.0/_static/searchtools.js +++ b/v10.5.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.5.0/changelog.html b/v10.5.0/changelog.html index 06ce66b1..12255c17 100644 --- a/v10.5.0/changelog.html +++ b/v10.5.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.5.0 - + @@ -379,7 +379,7 @@
                                                  -

                                                  Changelog#

                                                  +

                                                  Changelog

                                                  10.5.0 10th December 2023

                                                  • [Support] #197: Mark dependencies using tilde version specifiers. This is to allow user of pydis core to use newer versions of these libraries without us having to cut a new release.

                                                  • @@ -758,7 +758,7 @@ - + diff --git a/v10.5.0/development.html b/v10.5.0/development.html index 9e89288f..fd122a4e 100644 --- a/v10.5.0/development.html +++ b/v10.5.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.5.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.5.0/genindex.html b/v10.5.0/genindex.html index 701c705c..d81c2352 100644 --- a/v10.5.0/genindex.html +++ b/v10.5.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.5.0 + Index - Pydis Core v10.5.0 - + @@ -945,7 +945,7 @@ - + diff --git a/v10.5.0/index.html b/v10.5.0/index.html index 938d22f7..61bea39a 100644 --- a/v10.5.0/index.html +++ b/v10.5.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.5.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.5.0/index_redirect.html b/v10.5.0/index_redirect.html index 6ca1f586..451ba4e1 100644 --- a/v10.5.0/index_redirect.html +++ b/v10.5.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.5.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.5.0/output/pydis_core.async_stats.html b/v10.5.0/output/pydis_core.async_stats.html index 0aa7f6be..1a75196b 100644 --- a/v10.5.0/output/pydis_core.async_stats.html +++ b/v10.5.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.5.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.5.0/output/pydis_core.exts.html b/v10.5.0/output/pydis_core.exts.html index 6f944ee2..5c6e8b32 100644 --- a/v10.5.0/output/pydis_core.exts.html +++ b/v10.5.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.5.0 - + @@ -379,7 +379,7 @@
                                                          -

                                                          Exts#

                                                          +

                                                          Exts

                                                          Reusable Discord cogs.

                                                          @@ -433,7 +433,7 @@ - + diff --git a/v10.5.0/output/pydis_core.html b/v10.5.0/output/pydis_core.html index d79c620c..0e542259 100644 --- a/v10.5.0/output/pydis_core.html +++ b/v10.5.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.5.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
                                                          • @@ -659,7 +659,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                          -

                                                          Submodules#

                                                          +

                                                          Submodules

                                                          • async_stats
                                                              @@ -786,7 +786,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                          - + diff --git a/v10.5.0/output/pydis_core.site_api.html b/v10.5.0/output/pydis_core.site_api.html index fb13ba6f..05f1f217 100644 --- a/v10.5.0/output/pydis_core.site_api.html +++ b/v10.5.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.5.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.5.0/output/pydis_core.utils.caching.html b/v10.5.0/output/pydis_core.utils.caching.html index a7582802..75a138c5 100644 --- a/v10.5.0/output/pydis_core.utils.caching.html +++ b/v10.5.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.5.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.5.0/output/pydis_core.utils.channel.html b/v10.5.0/output/pydis_core.utils.channel.html index 0607532e..0a2bf066 100644 --- a/v10.5.0/output/pydis_core.utils.channel.html +++ b/v10.5.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.5.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.5.0/output/pydis_core.utils.commands.html b/v10.5.0/output/pydis_core.utils.commands.html index b6e25908..9eca3f26 100644 --- a/v10.5.0/output/pydis_core.utils.commands.html +++ b/v10.5.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.5.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.5.0/output/pydis_core.utils.cooldown.html b/v10.5.0/output/pydis_core.utils.cooldown.html index 20c2354a..3e8439ea 100644 --- a/v10.5.0/output/pydis_core.utils.cooldown.html +++ b/v10.5.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.5.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.5.0/output/pydis_core.utils.error_handling.html b/v10.5.0/output/pydis_core.utils.error_handling.html index 656f84ca..e13ad5cc 100644 --- a/v10.5.0/output/pydis_core.utils.error_handling.html +++ b/v10.5.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.5.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.5.0/output/pydis_core.utils.function.html b/v10.5.0/output/pydis_core.utils.function.html index fcbcfd73..48717888 100644 --- a/v10.5.0/output/pydis_core.utils.function.html +++ b/v10.5.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.5.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.5.0/output/pydis_core.utils.html b/v10.5.0/output/pydis_core.utils.html index 47a058ce..633b951f 100644 --- a/v10.5.0/output/pydis_core.utils.html +++ b/v10.5.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.5.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
                                                              @@ -605,7 +605,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                          - + diff --git a/v10.5.0/output/pydis_core.utils.interactions.html b/v10.5.0/output/pydis_core.utils.interactions.html index d0bfb8af..5b4dd64e 100644 --- a/v10.5.0/output/pydis_core.utils.interactions.html +++ b/v10.5.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.5.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.5.0/output/pydis_core.utils.logging.html b/v10.5.0/output/pydis_core.utils.logging.html index 8bfda2e9..3827e994 100644 --- a/v10.5.0/output/pydis_core.utils.logging.html +++ b/v10.5.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.5.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:
                                                          @@ -429,7 +429,7 @@
                                                          -log_format[source]#
                                                          +log_format[source]

                                                          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                          @@ -511,7 +511,7 @@
                                                          - + diff --git a/v10.5.0/output/pydis_core.utils.members.html b/v10.5.0/output/pydis_core.utils.members.html index ed6cc610..30bfe713 100644 --- a/v10.5.0/output/pydis_core.utils.members.html +++ b/v10.5.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.5.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.5.0/output/pydis_core.utils.paste_service.html b/v10.5.0/output/pydis_core.utils.paste_service.html index 187e2dc1..33b2cbdb 100644 --- a/v10.5.0/output/pydis_core.utils.paste_service.html +++ b/v10.5.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.5.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.5.0/output/pydis_core.utils.regex.html b/v10.5.0/output/pydis_core.utils.regex.html index ef6a7c8b..1015887c 100644 --- a/v10.5.0/output/pydis_core.utils.regex.html +++ b/v10.5.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.5.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.5.0/output/pydis_core.utils.scheduling.html b/v10.5.0/output/pydis_core.utils.scheduling.html index e5c7b2d9..3e29d92f 100644 --- a/v10.5.0/output/pydis_core.utils.scheduling.html +++ b/v10.5.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.5.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.5.0/py-modindex.html b/v10.5.0/py-modindex.html index 31cf2733..f04fbf9b 100644 --- a/v10.5.0/py-modindex.html +++ b/v10.5.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.5.0 + Python Module Index - Pydis Core v10.5.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.5.0/search.html b/v10.5.0/search.html index 5cef5d72..89f4af8f 100644 --- a/v10.5.0/search.html +++ b/v10.5.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.5.0 + Search - Pydis Core v10.5.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.5.0/searchindex.js b/v10.5.0/searchindex.js index dae4dd4f..cae23e86 100644 --- a/v10.5.0/searchindex.js +++ b/v10.5.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, "5": [0, 11], "0": [0, 8, 14, 15], "10th": 0, "decemb": 0, "2023": 0, "support": [0, 4, 7, 19], "197": 0, "mark": 0, "depend": [0, 9], "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "tild": 0, "version": [0, 10], "specifi": [0, 11, 14], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 17, 18, 19], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "allow": [0, 1, 3, 14, 17], "user": [0, 11, 14], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": 0, "u": 0, "have": [0, 9, 13, 15], "cut": 0, "new": [0, 1, 4, 6, 8, 13, 19], "releas": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "bump": 0, "mani": [0, 3, 8], "develop": [0, 2, 3, 7], "aiodn": 0, "3": 0, "1": [0, 15], "19th": 0, "septemb": 0, "featur": [0, 1, 3], "195": 0, "set": [0, 1, 3, 11, 13, 14], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 15], "warn": [0, 19], "level": [0, 7, 15], "asyncio": [0, 4, 19], "info": [0, 1], "default": [0, 1, 3, 17], "add": [0, 3, 11], "log_format": [0, 3, 7, 15], "pydis_cor": [0, 1, 3, 14, 15], "util": [0, 1, 2, 3, 8, 13, 14, 15], "log": [0, 3, 7, 12, 16, 19], "standardis": [0, 15], "across": [0, 15], "all": [0, 1, 3, 4, 7, 15, 19], "servic": [0, 1, 3, 17], "2": [0, 3, 14], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 13], "25th": 0, "juli": 0, "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], "extens": [0, 3], "load": [0, 1, 3, 7], "onli": [0, 3], "work": [0, 1], "client": [0, 3, 4], "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], "call": [0, 3, 11, 13, 19], "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], "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, "lexer": [0, 17], "valid": 0, "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, "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, "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "cog": [0, 3, 5], "march": 0, "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 14, 19], "been": 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, 15], "publish": 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, "sampl": 0, "boilerpl": 0, "document": 0, "explain": 0, "how": [0, 8, 13, 19], "108": 0, "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], "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], "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], "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], "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], "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, "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, 15, 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, "common": [0, 1, 3, 7, 15, 18], "cach": [0, 3, 7, 9, 16], "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], "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, 15, 17, 19], "comma": 1, "seper": 1, "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "other": [1, 19], "applic": 1, "certain": 1, "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, "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, "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, "formatt": 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, "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"], [15, 5, 1, "", "log_format"]], "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": {"channel": [[9, "module-pydis_core.utils.channel"]], "site_api": [[6, "module-pydis_core.site_api"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Exts": [[5, "module-pydis_core.exts"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "members": [[16, "module-pydis_core.utils.members"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "function": [[13, "module-pydis_core.utils.function"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "commands": [[10, "module-pydis_core.utils.commands"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]]}, "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"]], "log_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format"]], "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_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format", 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"], [15, 5, 1, "", "log_format"]], "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, "195": 0, "196": 0, "197": 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, 15, 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, "across": [0, 15], "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, 15, 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": [0, 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, 15, 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, "chardet": 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], "cut": 0, "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], "formatt": 15, "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": [0, 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": [0, 7, 15], "lexer": [0, 17], "librari": [0, 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_format": [0, 3, 7, 15], "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, "mark": 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], "newer": 0, "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, "octob": 0, "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, 15], "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": [0, 2], "pydis_cor": [0, 1, 3, 14, 15], "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, "standardis": [0, 15], "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, "tild": 0, "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], "u": 0, "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": [0, 19], "wasn": 10, "we": [15, 16], "websocket": 0, "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], "without": 0, "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.5.0/versions.html b/v10.5.0/versions.html index 2307d5c0..67ef43f4 100644 --- a/v10.5.0/versions.html +++ b/v10.5.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.5.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v10.5.1/.buildinfo b/v10.5.1/.buildinfo index 784757f5..264c8433 100644 --- a/v10.5.1/.buildinfo +++ b/v10.5.1/.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: cce23b9ad552c0c02b3d0db1cffc482b +config: 33ad26c15c9706839faf9187dba82415 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.5.1/_static/basic.css b/v10.5.1/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.5.1/_static/basic.css +++ b/v10.5.1/_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.5.1/_static/doctools.js b/v10.5.1/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.5.1/_static/doctools.js +++ b/v10.5.1/_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.5.1/_static/language_data.js b/v10.5.1/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.5.1/_static/language_data.js +++ b/v10.5.1/_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.5.1/_static/searchtools.js b/v10.5.1/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.5.1/_static/searchtools.js +++ b/v10.5.1/_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.5.1/changelog.html b/v10.5.1/changelog.html index edb8851a..16a5d96a 100644 --- a/v10.5.1/changelog.html +++ b/v10.5.1/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.5.1 - + @@ -379,7 +379,7 @@
                                                          -

                                                          Changelog#

                                                          +

                                                          Changelog

                                                          10.5.1 14th December 2023

                                                          • [Bug] #200: Do not attempt to read response body if the HTTP response code is 204. Previously only pydis_core.site_api.APIClient.delete did this.

                                                          • @@ -763,7 +763,7 @@ - + diff --git a/v10.5.1/development.html b/v10.5.1/development.html index 2a501932..bfb6e562 100644 --- a/v10.5.1/development.html +++ b/v10.5.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.5.1 - + @@ -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.5.1/genindex.html b/v10.5.1/genindex.html index 940000ac..f6777e88 100644 --- a/v10.5.1/genindex.html +++ b/v10.5.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.5.1 + Index - Pydis Core v10.5.1 - + @@ -945,7 +945,7 @@ - + diff --git a/v10.5.1/index.html b/v10.5.1/index.html index b9dbd7bf..9ff74b33 100644 --- a/v10.5.1/index.html +++ b/v10.5.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.5.1 - + @@ -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.5.1/index_redirect.html b/v10.5.1/index_redirect.html index 64821790..e2d962a6 100644 --- a/v10.5.1/index_redirect.html +++ b/v10.5.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.5.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.5.1/output/pydis_core.async_stats.html b/v10.5.1/output/pydis_core.async_stats.html index 6878bb29..116c4f59 100644 --- a/v10.5.1/output/pydis_core.async_stats.html +++ b/v10.5.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.exts.html b/v10.5.1/output/pydis_core.exts.html index 069999f4..74539bcc 100644 --- a/v10.5.1/output/pydis_core.exts.html +++ b/v10.5.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.5.1 - + @@ -379,7 +379,7 @@
                                                                  -

                                                                  Exts#

                                                                  +

                                                                  Exts

                                                                  Reusable Discord cogs.

                                                                  @@ -433,7 +433,7 @@ - + diff --git a/v10.5.1/output/pydis_core.html b/v10.5.1/output/pydis_core.html index 23a472f3..850ecca0 100644 --- a/v10.5.1/output/pydis_core.html +++ b/v10.5.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.5.1 - + @@ -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
                                                                  • @@ -659,7 +659,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                  -

                                                                  Submodules#

                                                                  +

                                                                  Submodules

                                                                  • async_stats
                                                                      @@ -786,7 +786,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                  - + diff --git a/v10.5.1/output/pydis_core.site_api.html b/v10.5.1/output/pydis_core.site_api.html index 07d6eb9a..711bd3a8 100644 --- a/v10.5.1/output/pydis_core.site_api.html +++ b/v10.5.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.5.1 - + @@ -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]

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

                                                                  Return type:
                                                                  @@ -425,7 +425,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:
                                                                  @@ -436,7 +436,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:
                                                                  @@ -456,7 +456,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:
                                                                  @@ -467,7 +467,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:
                                                                  @@ -478,7 +478,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:
                                                                  @@ -489,7 +489,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:
                                                                  @@ -516,12 +516,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:
                                                                  @@ -536,7 +536,7 @@
                                                                  -__str__()[source]#
                                                                  +__str__()[source]

                                                                  Return a string representation of the error.

                                                                  @@ -629,7 +629,7 @@ - + diff --git a/v10.5.1/output/pydis_core.utils.caching.html b/v10.5.1/output/pydis_core.utils.caching.html index c8e4a6f9..f5f809e5 100644 --- a/v10.5.1/output/pydis_core.utils.caching.html +++ b/v10.5.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.channel.html b/v10.5.1/output/pydis_core.utils.channel.html index 9008dcab..e5d10ca2 100644 --- a/v10.5.1/output/pydis_core.utils.channel.html +++ b/v10.5.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.commands.html b/v10.5.1/output/pydis_core.utils.commands.html index a8df8db8..cfece3c3 100644 --- a/v10.5.1/output/pydis_core.utils.commands.html +++ b/v10.5.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.cooldown.html b/v10.5.1/output/pydis_core.utils.cooldown.html index 8550f9b0..89700f64 100644 --- a/v10.5.1/output/pydis_core.utils.cooldown.html +++ b/v10.5.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.error_handling.html b/v10.5.1/output/pydis_core.utils.error_handling.html index 71782cd5..0d9d786c 100644 --- a/v10.5.1/output/pydis_core.utils.error_handling.html +++ b/v10.5.1/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.function.html b/v10.5.1/output/pydis_core.utils.function.html index 7cf4755a..946565f5 100644 --- a/v10.5.1/output/pydis_core.utils.function.html +++ b/v10.5.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.html b/v10.5.1/output/pydis_core.utils.html index e9fa7e0a..0c93cb51 100644 --- a/v10.5.1/output/pydis_core.utils.html +++ b/v10.5.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.5.1 - + @@ -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
                                                                      @@ -605,7 +605,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                  - + diff --git a/v10.5.1/output/pydis_core.utils.interactions.html b/v10.5.1/output/pydis_core.utils.interactions.html index 4b415a7c..a9ffbaaf 100644 --- a/v10.5.1/output/pydis_core.utils.interactions.html +++ b/v10.5.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.logging.html b/v10.5.1/output/pydis_core.utils.logging.html index adfc91ea..2e90d098 100644 --- a/v10.5.1/output/pydis_core.utils.logging.html +++ b/v10.5.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.5.1 - + @@ -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:
                                                                  @@ -429,7 +429,7 @@
                                                                  -log_format[source]#
                                                                  +log_format[source]

                                                                  A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                  @@ -511,7 +511,7 @@
                                                                  - + diff --git a/v10.5.1/output/pydis_core.utils.members.html b/v10.5.1/output/pydis_core.utils.members.html index 84b99c1d..58cf2795 100644 --- a/v10.5.1/output/pydis_core.utils.members.html +++ b/v10.5.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.paste_service.html b/v10.5.1/output/pydis_core.utils.paste_service.html index 9b6295ea..d305abe4 100644 --- a/v10.5.1/output/pydis_core.utils.paste_service.html +++ b/v10.5.1/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.regex.html b/v10.5.1/output/pydis_core.utils.regex.html index 5bb81526..1354675e 100644 --- a/v10.5.1/output/pydis_core.utils.regex.html +++ b/v10.5.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.5.1 - + @@ -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.5.1/output/pydis_core.utils.scheduling.html b/v10.5.1/output/pydis_core.utils.scheduling.html index 6e13af75..56ba1602 100644 --- a/v10.5.1/output/pydis_core.utils.scheduling.html +++ b/v10.5.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.5.1 - + @@ -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.5.1/py-modindex.html b/v10.5.1/py-modindex.html index 561cabf2..2c7cdc8e 100644 --- a/v10.5.1/py-modindex.html +++ b/v10.5.1/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.5.1 + Python Module Index - Pydis Core v10.5.1 - + @@ -524,7 +524,7 @@ - + diff --git a/v10.5.1/search.html b/v10.5.1/search.html index 0f3ca247..4f53f7c8 100644 --- a/v10.5.1/search.html +++ b/v10.5.1/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.5.1 + Search - Pydis Core v10.5.1 - + @@ -418,7 +418,7 @@ - + diff --git a/v10.5.1/searchindex.js b/v10.5.1/searchindex.js index f03485e0..103399e4 100644 --- a/v10.5.1/searchindex.js +++ b/v10.5.1/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, "5": [0, 11], "1": [0, 15], "14th": 0, "decemb": 0, "2023": 0, "bug": 0, "200": 0, "do": [0, 1, 9], "attempt": [0, 3, 9, 16], "read": 0, "respons": [0, 6, 17], "bodi": 0, "http": [0, 6, 17, 18], "code": [0, 1, 6, 18], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "204": [0, 6], "previous": 0, "onli": [0, 3], "pydis_cor": [0, 1, 3, 14, 15], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 14, 17], "did": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 17, 18, 19], "0": [0, 8, 14, 15], "10th": 0, "support": [0, 4, 7, 19], "197": 0, "mark": 0, "depend": [0, 9], "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "tild": 0, "version": [0, 10], "specifi": [0, 11, 14], "allow": [0, 1, 3, 14, 17], "user": [0, 11, 14], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": 0, "u": 0, "have": [0, 9, 13, 15], "cut": 0, "new": [0, 1, 4, 6, 8, 13, 19], "releas": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "bump": 0, "mani": [0, 3, 8], "develop": [0, 2, 3, 7], "aiodn": 0, "3": 0, "19th": 0, "septemb": 0, "featur": [0, 1, 3], "195": 0, "set": [0, 1, 3, 11, 13, 14], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 15], "warn": [0, 19], "level": [0, 7, 15], "asyncio": [0, 4, 19], "info": [0, 1], "default": [0, 1, 3, 17], "add": [0, 3, 11], "log_format": [0, 3, 7, 15], "util": [0, 1, 2, 3, 8, 13, 14, 15], "log": [0, 3, 7, 12, 16, 19], "standardis": [0, 15], "across": [0, 15], "all": [0, 1, 3, 4, 7, 15, 19], "servic": [0, 1, 3, 17], "2": [0, 3, 14], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 13], "25th": 0, "juli": 0, "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], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "break": [0, 13], "188": 0, "send": [0, 6, 14], "multipl": 0, "file": [0, 1, 17], "onc": [0, 8], "past": [0, 17, 19], "call": [0, 3, 11, 13, 19], "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], "stop": [0, 7, 14], "addit": 0, "exist": [0, 1, 19], "logic": 0, "timeout": [0, 14], "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, "lexer": [0, 17], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 17], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "7": 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, "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "cog": [0, 3, 5], "march": 0, "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 14, 19], "been": 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, "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, 15], "publish": 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, "sampl": 0, "boilerpl": 0, "document": 0, "explain": 0, "how": [0, 8, 13, 19], "108": 0, "101": 0, "clean": [0, 10], "string": [0, 6], "referenc": 0, "content": [0, 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], "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], "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, "connect": [0, 3, 4], "statsd_url": [0, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "which": [0, 1, 7, 11, 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], "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], "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], "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, "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, 15, 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, "common": [0, 1, 3, 7, 15, 18], "cach": [0, 3, 7, 9, 16], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 7, 14, 15], "intersphinx": 0, "januari": 0, "12": 0, "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], "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, 15, 17, 19], "comma": 1, "seper": 1, "id": [1, 3, 9, 14, 19], "anyth": [1, 17], "reinstal": 1, "other": [1, 19], "applic": 1, "certain": 1, "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, "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, "equival": 6, "dict": [6, 17], "static": 6, "should_rais": 6, "rais": [6, 9, 10, 11, 12, 13, 16, 17, 19], "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "ani": [6, 18, 19], "extra": 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, "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, "formatt": 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, "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"], [15, 5, 1, "", "log_format"]], "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": {"Exts": [[5, "module-pydis_core.exts"]], "channel": [[9, "module-pydis_core.utils.channel"]], "caching": [[8, "module-pydis_core.utils.caching"]], "site_api": [[6, "module-pydis_core.site_api"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "members": [[16, "module-pydis_core.utils.members"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "Changelog": [[0, "changelog"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "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"]]}, "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"]], "log_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format"]], "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_format (in module pydis_core.utils.logging)": [[15, "pydis_core.utils.logging.log_format", 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"], [15, 5, 1, "", "log_format"]], "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, "195": 0, "196": 0, "197": 0, "19th": 0, "2": [0, 3, 14], "200": 0, "2021": 0, "2022": 0, "2023": 0, "204": [0, 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, 15, 17, 19], "For": 13, "If": [3, 6, 11, 13, 14, 19], "It": 7, "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, "across": [0, 15], "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, 15, 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": [0, 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], "bodi": 0, "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, 15, 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, "chardet": 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, 6, 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, 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], "cut": 0, "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, "did": 0, "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": [0, 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], "formatt": 15, "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": [0, 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": [0, 7, 15], "lexer": [0, 17], "librari": [0, 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_format": [0, 3, 7, 15], "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, "mark": 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], "newer": 0, "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, "octob": 0, "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], "previous": 0, "privatechannel": [0, 9], "problem": 15, "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 15], "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": [0, 2], "pydis_cor": [0, 1, 3, 14, 15], "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], "read": 0, "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": [0, 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, "standardis": [0, 15], "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, "tild": 0, "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], "u": 0, "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": [0, 19], "wasn": 10, "we": [15, 16], "websocket": 0, "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], "without": 0, "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.5.1/versions.html b/v10.5.1/versions.html index 3dc57670..f29ea0ac 100644 --- a/v10.5.1/versions.html +++ b/v10.5.1/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.5.1 - + @@ -592,7 +592,7 @@ - + diff --git a/v10.6.0/.buildinfo b/v10.6.0/.buildinfo index 9b8e5266..06a8a306 100644 --- a/v10.6.0/.buildinfo +++ b/v10.6.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: 1f24aeeab2db798df76a33b1b8949ce9 +config: 5eac1dba59330dfcefceb69a16f8ffcd tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v10.6.0/_static/basic.css b/v10.6.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v10.6.0/_static/basic.css +++ b/v10.6.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.6.0/_static/doctools.js b/v10.6.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v10.6.0/_static/doctools.js +++ b/v10.6.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.6.0/_static/language_data.js b/v10.6.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v10.6.0/_static/language_data.js +++ b/v10.6.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.6.0/_static/searchtools.js b/v10.6.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v10.6.0/_static/searchtools.js +++ b/v10.6.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.6.0/changelog.html b/v10.6.0/changelog.html index 18608f29..0341579b 100644 --- a/v10.6.0/changelog.html +++ b/v10.6.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v10.6.0 - + @@ -382,7 +382,7 @@
                                                                  -

                                                                  Changelog#

                                                                  +

                                                                  Changelog

                                                                  10.6.0 30th January 2024

                                                                  • [Feature] #199: Port common discord.commands checks from other bots to pydis_core.utils.checks.

                                                                  • @@ -773,7 +773,7 @@ - + diff --git a/v10.6.0/development.html b/v10.6.0/development.html index ff84b5fe..b5f2eca7 100644 --- a/v10.6.0/development.html +++ b/v10.6.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.6.0 - + @@ -382,7 +382,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. @@ -394,7 +394,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

                                                                        @@ -410,7 +410,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. @@ -510,7 +510,7 @@ to help you test out certain features. Use them as needed.

                                                                        - + diff --git a/v10.6.0/genindex.html b/v10.6.0/genindex.html index 7831d8bc..7fa2c3a9 100644 --- a/v10.6.0/genindex.html +++ b/v10.6.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.6.0 + Index - Pydis Core v10.6.0 - + @@ -1025,7 +1025,7 @@ - + diff --git a/v10.6.0/index.html b/v10.6.0/index.html index d7d646b2..6082f5a2 100644 --- a/v10.6.0/index.html +++ b/v10.6.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.6.0 - + @@ -382,10 +382,10 @@
                                                                        -

                                                                        Bot Core Project Documentation#

                                                                        +

                                                                        Bot Core Project Documentation

                                                                        -

                                                                        Reference#

                                                                        +

                                                                        Reference

                                                                        Modules:

                                                                          @@ -454,7 +454,7 @@
                                                                        -

                                                                        Extras#

                                                                        +

                                                                        Extras

                                                                        • Index

                                                                        • Search Page

                                                                        • @@ -504,7 +504,7 @@ - + diff --git a/v10.6.0/index_redirect.html b/v10.6.0/index_redirect.html index 61e53284..e3ec45b2 100644 --- a/v10.6.0/index_redirect.html +++ b/v10.6.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.6.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.6.0/output/pydis_core.async_stats.html b/v10.6.0/output/pydis_core.async_stats.html index 2d05dae4..2341d6c3 100644 --- a/v10.6.0/output/pydis_core.async_stats.html +++ b/v10.6.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.6.0 - + @@ -382,16 +382,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:
                                                                          @@ -408,7 +408,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:
                                                                          @@ -494,7 +494,7 @@ - + diff --git a/v10.6.0/output/pydis_core.exts.html b/v10.6.0/output/pydis_core.exts.html index 28334cc7..23c3c009 100644 --- a/v10.6.0/output/pydis_core.exts.html +++ b/v10.6.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.6.0 - + @@ -382,7 +382,7 @@
                                                                          -

                                                                          Exts#

                                                                          +

                                                                          Exts

                                                                          Reusable Discord cogs.

                                                                          @@ -436,7 +436,7 @@ - + diff --git a/v10.6.0/output/pydis_core.html b/v10.6.0/output/pydis_core.html index 7055e61e..e9b5fa82 100644 --- a/v10.6.0/output/pydis_core.html +++ b/v10.6.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.6.0 - + @@ -382,16 +382,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:
                                                                          @@ -410,7 +410,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:
                                                                          @@ -421,7 +421,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:
                                                                          @@ -432,7 +432,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:
                                                                          @@ -443,7 +443,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:
                                                                          @@ -454,7 +454,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:
                                                                          @@ -468,7 +468,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:
                                                                          @@ -479,7 +479,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.

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

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

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

                                                                          @@ -568,14 +568,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                          Bases: Exception

                                                                          Raised when attempting to paginate with empty contents.

                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                          Bases: Paginator

                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                          @@ -592,14 +592,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                          -add_line(line='', *, empty=False)[source]#
                                                                          +add_line(line='', *, empty=False)[source]

                                                                          Adds a line to the current page.

                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -627,7 +627,7 @@ page at a reasonable size.

                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -671,24 +671,24 @@ to any user with a moderation role.

                                                                          -class PaginationEmojis(**data)[source]#
                                                                          +class PaginationEmojis(**data)[source]

                                                                          Bases: BaseModel

                                                                          The emojis that will be used for pagination.

                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                          @@ -698,18 +698,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                          -exception StartupError(base)[source]#
                                                                          +exception StartupError(base)[source]

                                                                          Bases: Exception

                                                                          Exception class for startup errors.

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

                                                                          Subpackages#

                                                                          +

                                                                          Subpackages

                                                                          • Exts
                                                                          • @@ -811,7 +811,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                          -

                                                                          Submodules#

                                                                          +

                                                                          Submodules

                                                                          • async_stats
                                                                              @@ -951,7 +951,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                          - + diff --git a/v10.6.0/output/pydis_core.site_api.html b/v10.6.0/output/pydis_core.site_api.html index da9313bf..b87c63e4 100644 --- a/v10.6.0/output/pydis_core.site_api.html +++ b/v10.6.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.6.0 - + @@ -382,16 +382,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:
                                                                          @@ -406,7 +406,7 @@
                                                                          -async close()[source]#
                                                                          +async close()[source]

                                                                          Close the aiohttp session.

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

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

                                                                          Return type:
                                                                          @@ -428,7 +428,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:
                                                                          @@ -439,7 +439,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:
                                                                          @@ -459,7 +459,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:
                                                                          @@ -470,7 +470,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:
                                                                          @@ -481,7 +481,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:
                                                                          @@ -492,7 +492,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:
                                                                          @@ -519,12 +519,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:
                                                                          @@ -539,7 +539,7 @@
                                                                          -__str__()[source]#
                                                                          +__str__()[source]

                                                                          Return a string representation of the error.

                                                                          @@ -632,7 +632,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.caching.html b/v10.6.0/output/pydis_core.utils.caching.html index 173326ce..46b10136 100644 --- a/v10.6.0/output/pydis_core.utils.caching.html +++ b/v10.6.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.6.0 - + @@ -382,18 +382,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:
                                                                          @@ -410,7 +410,7 @@
                                                                          -__init__(max_size=128)[source]#
                                                                          +__init__(max_size=128)[source]

                                                                          Initialise a new AsyncCache instance.

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

                                                                          Clear cache instance.

                                                                          Return type:
                                                                          @@ -508,7 +508,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.channel.html b/v10.6.0/output/pydis_core.utils.channel.html index 3613f29b..cbba2d47 100644 --- a/v10.6.0/output/pydis_core.utils.channel.html +++ b/v10.6.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.6.0 - + @@ -382,11 +382,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:
                                                                          @@ -414,7 +414,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:
                                                                          @@ -504,7 +504,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.checks.html b/v10.6.0/output/pydis_core.utils.checks.html index 80f569be..2ab1a17d 100644 --- a/v10.6.0/output/pydis_core.utils.checks.html +++ b/v10.6.0/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core v10.6.0 - + @@ -382,29 +382,29 @@
                                                                          -

                                                                          checks#

                                                                          +

                                                                          checks

                                                                          -exception ContextCheckFailure(redirect_channel)[source]#
                                                                          +exception ContextCheckFailure(redirect_channel)[source]

                                                                          Bases: CheckFailure

                                                                          Raised when a context-specific check fails.

                                                                          -__init__(redirect_channel)[source]#
                                                                          +__init__(redirect_channel)[source]
                                                                          -exception InWhitelistCheckFailure(redirect_channel)[source]#
                                                                          +exception InWhitelistCheckFailure(redirect_channel)[source]

                                                                          Bases: ContextCheckFailure

                                                                          Raised when the in_whitelist check fails.

                                                                          -cooldown_with_role_bypass(rate, per, type=('default', 0), *, bypass_roles)[source]#
                                                                          +cooldown_with_role_bypass(rate, per, type=('default', 0), *, bypass_roles)[source]

                                                                          Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

                                                                          Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

                                                                          @@ -430,7 +430,7 @@
                                                                          -async has_any_role_check(ctx, *roles)[source]#
                                                                          +async has_any_role_check(ctx, *roles)[source]

                                                                          Verify if the context’s author has any of the specified roles.

                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                          @@ -451,7 +451,7 @@
                                                                          -async has_no_roles_check(ctx, *roles)[source]#
                                                                          +async has_no_roles_check(ctx, *roles)[source]

                                                                          Verify if the context’s author doesn’t have any of the specified roles.

                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                          @@ -472,7 +472,7 @@
                                                                          -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), fail_silently=False)[source]#
                                                                          +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), fail_silently=False)[source]

                                                                          Check if a command was issued in a context that is whitelisted by channel, category, or roles.

                                                                          Parameters:
                                                                          @@ -576,7 +576,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.commands.html b/v10.6.0/output/pydis_core.utils.commands.html index 7e843d51..be7438ea 100644 --- a/v10.6.0/output/pydis_core.utils.commands.html +++ b/v10.6.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.6.0 - + @@ -382,10 +382,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:
                                                                          @@ -477,7 +477,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.cooldown.html b/v10.6.0/output/pydis_core.utils.cooldown.html index 75cac408..7396099b 100644 --- a/v10.6.0/output/pydis_core.utils.cooldown.html +++ b/v10.6.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.6.0 - + @@ -382,21 +382,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:
                                                                          @@ -412,20 +412,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:
                                                                          @@ -527,7 +527,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v10.6.0/output/pydis_core.utils.error_handling.html b/v10.6.0/output/pydis_core.utils.error_handling.html index 6151e49a..4467c9f7 100644 --- a/v10.6.0/output/pydis_core.utils.error_handling.html +++ b/v10.6.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.6.0 - + @@ -382,10 +382,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:
                                                                          @@ -471,7 +471,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.function.html b/v10.6.0/output/pydis_core.utils.function.html index cd2c36cb..04df8526 100644 --- a/v10.6.0/output/pydis_core.utils.function.html +++ b/v10.6.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.6.0 - + @@ -382,18 +382,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.

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

                                                                          - + diff --git a/v10.6.0/output/pydis_core.utils.html b/v10.6.0/output/pydis_core.utils.html index 87ec3056..5ebe1181 100644 --- a/v10.6.0/output/pydis_core.utils.html +++ b/v10.6.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.6.0 - + @@ -382,11 +382,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:
                                                                          @@ -405,7 +405,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:
                                                                          @@ -421,7 +421,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                          -

                                                                          Submodules#

                                                                          +

                                                                          Submodules

                                                                          • caching
                                                                              @@ -640,7 +640,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                          - + diff --git a/v10.6.0/output/pydis_core.utils.interactions.html b/v10.6.0/output/pydis_core.utils.interactions.html index 0af1bbd2..b56d9619 100644 --- a/v10.6.0/output/pydis_core.utils.interactions.html +++ b/v10.6.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.6.0 - + @@ -382,10 +382,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.

                                                                          @@ -400,12 +400,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:
                                                                          @@ -418,7 +418,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.

                                                                          @@ -435,12 +435,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:
                                                                          @@ -454,7 +454,7 @@ If None
                                                                          -async on_timeout()[source]#
                                                                          +async on_timeout()[source]

                                                                          Remove the view from self.message if set.

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

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

                                                                          Return type:
                                                                          @@ -558,7 +558,7 @@ If None - + diff --git a/v10.6.0/output/pydis_core.utils.logging.html b/v10.6.0/output/pydis_core.utils.logging.html index 65709a86..501d311a 100644 --- a/v10.6.0/output/pydis_core.utils.logging.html +++ b/v10.6.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.6.0 - + @@ -382,16 +382,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)
                                                                          @@ -415,7 +415,7 @@
                                                                           
                                                                           
                                                                          -get_logger(name=None)[source]#
                                                                          +get_logger(name=None)[source]

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

                                                                          Parameters:
                                                                          @@ -432,7 +432,7 @@
                                                                          -log_format[source]#
                                                                          +log_format[source]

                                                                          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                          @@ -514,7 +514,7 @@
                                                                          - + diff --git a/v10.6.0/output/pydis_core.utils.members.html b/v10.6.0/output/pydis_core.utils.members.html index eadb2056..bd377367 100644 --- a/v10.6.0/output/pydis_core.utils.members.html +++ b/v10.6.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.6.0 - + @@ -382,11 +382,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:
                                                                          @@ -400,7 +400,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.

                                                                          @@ -490,7 +490,7 @@ - + diff --git a/v10.6.0/output/pydis_core.utils.messages.html b/v10.6.0/output/pydis_core.utils.messages.html index 5dfc946a..8b5419eb 100644 --- a/v10.6.0/output/pydis_core.utils.messages.html +++ b/v10.6.0/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core v10.6.0 - + @@ -382,10 +382,10 @@
                                                                          -

                                                                          messages#

                                                                          +

                                                                          messages

                                                                          -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
                                                                          +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

                                                                          Check if a reaction’s emoji and author are allowed and the message is message_id.

                                                                          If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

                                                                          @@ -467,7 +467,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/v10.6.0/output/pydis_core.utils.pagination.html b/v10.6.0/output/pydis_core.utils.pagination.html index 8097be1e..b0463843 100644 --- a/v10.6.0/output/pydis_core.utils.pagination.html +++ b/v10.6.0/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core v10.6.0 - + @@ -382,17 +382,17 @@
                                                                          -

                                                                          pagination#

                                                                          +

                                                                          pagination

                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                          Bases: Exception

                                                                          Raised when attempting to paginate with empty contents.

                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                          Bases: Paginator

                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                          @@ -409,14 +409,14 @@
                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                          -add_line(line='', *, empty=False)[source]#
                                                                          +add_line(line='', *, empty=False)[source]

                                                                          Adds a line to the current page.

                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -444,7 +444,7 @@ page at a reasonable size.

                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -488,24 +488,24 @@ to any user with a moderation role.

                                                                          -class PaginationEmojis(**data)[source]#
                                                                          +class PaginationEmojis(**data)[source]

                                                                          Bases: BaseModel

                                                                          The emojis that will be used for pagination.

                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                          @@ -596,7 +596,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v10.6.0/output/pydis_core.utils.paste_service.html b/v10.6.0/output/pydis_core.utils.paste_service.html index 1275fd8d..09bbd761 100644 --- a/v10.6.0/output/pydis_core.utils.paste_service.html +++ b/v10.6.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.6.0 - + @@ -382,16 +382,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.

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

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

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

                                                                          @@ -462,28 +462,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:
                                                                          @@ -597,7 +597,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v10.6.0/output/pydis_core.utils.regex.html b/v10.6.0/output/pydis_core.utils.regex.html index 129c93f4..fc345535 100644 --- a/v10.6.0/output/pydis_core.utils.regex.html +++ b/v10.6.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.6.0 - + @@ -382,11 +382,11 @@
                                                                          -

                                                                          regex#

                                                                          +

                                                                          regex

                                                                          Common regular expressions.

                                                                          -DISCORD_INVITE[source]#
                                                                          +DISCORD_INVITE[source]

                                                                          Regex for Discord server invites.

                                                                          Warning

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

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

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

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

                                                                          @@ -487,7 +487,7 @@ such as - + diff --git a/v10.6.0/output/pydis_core.utils.scheduling.html b/v10.6.0/output/pydis_core.utils.scheduling.html index e1c9a805..2c426921 100644 --- a/v10.6.0/output/pydis_core.utils.scheduling.html +++ b/v10.6.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.6.0 - + @@ -382,11 +382,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 @@ -400,7 +400,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:
                                                                          @@ -417,7 +417,7 @@ the same ID used to schedule it.

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

                                                                          Initialize a new Scheduler instance.

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

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

                                                                          Unschedule all known tasks.

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

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

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

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

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

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

                                                                          Changelog#

                                                                          +

                                                                          Changelog

                                                                          10.7.0 30th January 2024

                                                                          • [Feature] #194: Add the pydis_core.utils.interactions.user_has_access helper function, that returns whether the given user is in the allowed_users list, or has a role from allowed_roles.

                                                                          • @@ -781,7 +781,7 @@ - + diff --git a/v10.7.0/development.html b/v10.7.0/development.html index 4403f7ad..eefdebd3 100644 --- a/v10.7.0/development.html +++ b/v10.7.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v10.7.0 - + @@ -383,7 +383,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. @@ -395,7 +395,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

                                                                                @@ -411,7 +411,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. @@ -511,7 +511,7 @@ to help you test out certain features. Use them as needed.

                                                                                - + diff --git a/v10.7.0/genindex.html b/v10.7.0/genindex.html index 71426f08..82830298 100644 --- a/v10.7.0/genindex.html +++ b/v10.7.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v10.7.0 + Index - Pydis Core v10.7.0 - + @@ -1069,7 +1069,7 @@ - + diff --git a/v10.7.0/index.html b/v10.7.0/index.html index 9f33368c..515e06c2 100644 --- a/v10.7.0/index.html +++ b/v10.7.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v10.7.0 - + @@ -383,10 +383,10 @@
                                                                                -

                                                                                Bot Core Project Documentation#

                                                                                +

                                                                                Bot Core Project Documentation

                                                                                -

                                                                                Reference#

                                                                                +

                                                                                Reference

                                                                                Modules:

                                                                                  @@ -455,7 +455,7 @@
                                                                                -

                                                                                Extras#

                                                                                +

                                                                                Extras

                                                                                • Index

                                                                                • Search Page

                                                                                • @@ -505,7 +505,7 @@ - + diff --git a/v10.7.0/index_redirect.html b/v10.7.0/index_redirect.html index 4656d80e..c26ea6f8 100644 --- a/v10.7.0/index_redirect.html +++ b/v10.7.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v10.7.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v10.7.0/output/pydis_core.async_stats.html b/v10.7.0/output/pydis_core.async_stats.html index fd7cfe6c..337d3626 100644 --- a/v10.7.0/output/pydis_core.async_stats.html +++ b/v10.7.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v10.7.0 - + @@ -383,16 +383,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:
                                                                                  @@ -409,7 +409,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:
                                                                                  @@ -495,7 +495,7 @@ - + diff --git a/v10.7.0/output/pydis_core.exts.html b/v10.7.0/output/pydis_core.exts.html index 25ffc524..4e0dce90 100644 --- a/v10.7.0/output/pydis_core.exts.html +++ b/v10.7.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v10.7.0 - + @@ -383,7 +383,7 @@
                                                                                  -

                                                                                  Exts#

                                                                                  +

                                                                                  Exts

                                                                                  Reusable Discord cogs.

                                                                                  @@ -437,7 +437,7 @@ - + diff --git a/v10.7.0/output/pydis_core.html b/v10.7.0/output/pydis_core.html index 25ea5f76..ca43c874 100644 --- a/v10.7.0/output/pydis_core.html +++ b/v10.7.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v10.7.0 - + @@ -383,16 +383,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:
                                                                                  @@ -411,7 +411,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:
                                                                                  @@ -422,7 +422,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:
                                                                                  @@ -433,7 +433,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:
                                                                                  @@ -444,7 +444,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:
                                                                                  @@ -455,7 +455,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:
                                                                                  @@ -469,7 +469,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:
                                                                                  @@ -480,7 +480,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.

                                                                                  @@ -493,7 +493,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:
                                                                                  @@ -504,7 +504,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:
                                                                                  @@ -515,7 +515,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.

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

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

                                                                                  @@ -569,14 +569,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                  -exception EmptyPaginatorEmbedError[source]#
                                                                                  +exception EmptyPaginatorEmbedError[source]

                                                                                  Bases: Exception

                                                                                  Raised when attempting to paginate with empty contents.

                                                                                  -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                  +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                  Bases: Paginator

                                                                                  A class that aids in paginating code blocks for Discord messages.

                                                                                  @@ -593,14 +593,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                  -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                  +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                  This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                  It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                  -add_line(line='', *, empty=False)[source]#
                                                                                  +add_line(line='', *, empty=False)[source]

                                                                                  Adds a line to the current page.

                                                                                  If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -628,7 +628,7 @@ page at a reasonable size.

                                                                                  -async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                  +async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                  Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                  The reactions are used to switch page, or to finish with pagination.

                                                                                  When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -672,24 +672,24 @@ to any user with a moderation role.

                                                                                  -class PaginationEmojis(**data)[source]#
                                                                                  +class PaginationEmojis(**data)[source]

                                                                                  Bases: BaseModel

                                                                                  The emojis that will be used for pagination.

                                                                                  -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                  +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                  @@ -699,18 +699,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                  -exception StartupError(base)[source]#
                                                                                  +exception StartupError(base)[source]

                                                                                  Bases: Exception

                                                                                  Exception class for startup errors.

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

                                                                                  Subpackages#

                                                                                  +

                                                                                  Subpackages

                                                                                  • Exts
                                                                                  • @@ -823,7 +823,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                  -

                                                                                  Submodules#

                                                                                  +

                                                                                  Submodules

                                                                                  • async_stats
                                                                                      @@ -963,7 +963,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                  - + diff --git a/v10.7.0/output/pydis_core.site_api.html b/v10.7.0/output/pydis_core.site_api.html index 7be6a0ae..d9e89a10 100644 --- a/v10.7.0/output/pydis_core.site_api.html +++ b/v10.7.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v10.7.0 - + @@ -383,16 +383,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:
                                                                                  @@ -407,7 +407,7 @@
                                                                                  -async close()[source]#
                                                                                  +async close()[source]

                                                                                  Close the aiohttp session.

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

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

                                                                                  Return type:
                                                                                  @@ -429,7 +429,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:
                                                                                  @@ -440,7 +440,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:
                                                                                  @@ -460,7 +460,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:
                                                                                  @@ -471,7 +471,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:
                                                                                  @@ -482,7 +482,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:
                                                                                  @@ -493,7 +493,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:
                                                                                  @@ -520,12 +520,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:
                                                                                  @@ -540,7 +540,7 @@
                                                                                  -__str__()[source]#
                                                                                  +__str__()[source]

                                                                                  Return a string representation of the error.

                                                                                  @@ -633,7 +633,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.caching.html b/v10.7.0/output/pydis_core.utils.caching.html index 80d3825e..91621a3d 100644 --- a/v10.7.0/output/pydis_core.utils.caching.html +++ b/v10.7.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v10.7.0 - + @@ -383,18 +383,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:
                                                                                  @@ -411,7 +411,7 @@
                                                                                  -__init__(max_size=128)[source]#
                                                                                  +__init__(max_size=128)[source]

                                                                                  Initialise a new AsyncCache instance.

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

                                                                                  Clear cache instance.

                                                                                  Return type:
                                                                                  @@ -509,7 +509,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.channel.html b/v10.7.0/output/pydis_core.utils.channel.html index 21554d6d..32bc72c6 100644 --- a/v10.7.0/output/pydis_core.utils.channel.html +++ b/v10.7.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v10.7.0 - + @@ -383,11 +383,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:
                                                                                  @@ -415,7 +415,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:
                                                                                  @@ -505,7 +505,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.checks.html b/v10.7.0/output/pydis_core.utils.checks.html index dedcb5b8..6e91715b 100644 --- a/v10.7.0/output/pydis_core.utils.checks.html +++ b/v10.7.0/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core v10.7.0 - + @@ -383,29 +383,29 @@
                                                                                  -

                                                                                  checks#

                                                                                  +

                                                                                  checks

                                                                                  -exception ContextCheckFailure(redirect_channel)[source]#
                                                                                  +exception ContextCheckFailure(redirect_channel)[source]

                                                                                  Bases: CheckFailure

                                                                                  Raised when a context-specific check fails.

                                                                                  -__init__(redirect_channel)[source]#
                                                                                  +__init__(redirect_channel)[source]
                                                                                  -exception InWhitelistCheckFailure(redirect_channel)[source]#
                                                                                  +exception InWhitelistCheckFailure(redirect_channel)[source]

                                                                                  Bases: ContextCheckFailure

                                                                                  Raised when the in_whitelist check fails.

                                                                                  -cooldown_with_role_bypass(rate, per, type=('default', 0), *, bypass_roles)[source]#
                                                                                  +cooldown_with_role_bypass(rate, per, type=('default', 0), *, bypass_roles)[source]

                                                                                  Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

                                                                                  Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

                                                                                  @@ -431,7 +431,7 @@
                                                                                  -async has_any_role_check(ctx, *roles)[source]#
                                                                                  +async has_any_role_check(ctx, *roles)[source]

                                                                                  Verify if the context’s author has any of the specified roles.

                                                                                  This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                  @@ -452,7 +452,7 @@
                                                                                  -async has_no_roles_check(ctx, *roles)[source]#
                                                                                  +async has_no_roles_check(ctx, *roles)[source]

                                                                                  Verify if the context’s author doesn’t have any of the specified roles.

                                                                                  This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                  @@ -473,7 +473,7 @@
                                                                                  -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), fail_silently=False)[source]#
                                                                                  +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), fail_silently=False)[source]

                                                                                  Check if a command was issued in a context that is whitelisted by channel, category, or roles.

                                                                                  Parameters:
                                                                                  @@ -577,7 +577,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.commands.html b/v10.7.0/output/pydis_core.utils.commands.html index 39092a7e..b257da15 100644 --- a/v10.7.0/output/pydis_core.utils.commands.html +++ b/v10.7.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v10.7.0 - + @@ -383,10 +383,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:
                                                                                  @@ -478,7 +478,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.cooldown.html b/v10.7.0/output/pydis_core.utils.cooldown.html index 749caf9a..1e96877a 100644 --- a/v10.7.0/output/pydis_core.utils.cooldown.html +++ b/v10.7.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v10.7.0 - + @@ -383,21 +383,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:
                                                                                  @@ -413,20 +413,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:
                                                                                  @@ -528,7 +528,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v10.7.0/output/pydis_core.utils.error_handling.html b/v10.7.0/output/pydis_core.utils.error_handling.html index 9847bdcc..449dd674 100644 --- a/v10.7.0/output/pydis_core.utils.error_handling.html +++ b/v10.7.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v10.7.0 - + @@ -383,10 +383,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:
                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.function.html b/v10.7.0/output/pydis_core.utils.function.html index c5f2205c..67769bf5 100644 --- a/v10.7.0/output/pydis_core.utils.function.html +++ b/v10.7.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v10.7.0 - + @@ -383,18 +383,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.

                                                                                  @@ -418,7 +418,7 @@ with the wrapper replaced with the function
                                                                                  -get_arg_value(name_or_pos, arguments)[source]#
                                                                                  +get_arg_value(name_or_pos, arguments)[source]

                                                                                  Return a value from arguments based on a name or position.

                                                                                  Parameters:
                                                                                  @@ -441,7 +441,7 @@ with the wrapper replaced with the function
                                                                                  -get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
                                                                                  +get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]

                                                                                  Call decorator_func with the value of the arg at the given name/position.

                                                                                  Parameters:
                                                                                  @@ -463,7 +463,7 @@ parameter names to argument values of the function it’s decorating.

                                                                                  -get_bound_args(func, args, kwargs)[source]#
                                                                                  +get_bound_args(func, args, kwargs)[source]

                                                                                  Bind args and kwargs to func and return a mapping of parameter names to argument values.

                                                                                  Default parameter values are also set.

                                                                                  @@ -485,7 +485,7 @@ parameter names to argument values of the function it’s decorating.

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

                                                                                  - + diff --git a/v10.7.0/output/pydis_core.utils.html b/v10.7.0/output/pydis_core.utils.html index 67508723..b42477a2 100644 --- a/v10.7.0/output/pydis_core.utils.html +++ b/v10.7.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v10.7.0 - + @@ -383,11 +383,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:
                                                                                  @@ -406,7 +406,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:
                                                                                  @@ -422,7 +422,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                  -

                                                                                  Submodules#

                                                                                  +

                                                                                  Submodules

                                                                                  • caching
                                                                                      @@ -663,7 +663,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                  - + diff --git a/v10.7.0/output/pydis_core.utils.interactions.html b/v10.7.0/output/pydis_core.utils.interactions.html index 6eafc5b3..165ffd35 100644 --- a/v10.7.0/output/pydis_core.utils.interactions.html +++ b/v10.7.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v10.7.0 - + @@ -383,10 +383,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.

                                                                                  @@ -401,12 +401,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:
                                                                                  @@ -419,7 +419,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.

                                                                                  @@ -436,12 +436,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:
                                                                                  @@ -455,7 +455,7 @@ If None
                                                                                  -async on_timeout()[source]#
                                                                                  +async on_timeout()[source]

                                                                                  Remove the view from self.message if set.

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

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

                                                                                  Return type:
                                                                                  @@ -479,7 +479,7 @@ If None
                                                                                  -user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
                                                                                  +user_has_access(user, *, allowed_users=(), allowed_roles=())[source]

                                                                                  Return whether the user is in the allowed_users list, or has a role from allowed_roles.

                                                                                  Parameters:
                                                                                  @@ -578,7 +578,7 @@ If None - + diff --git a/v10.7.0/output/pydis_core.utils.lock.html b/v10.7.0/output/pydis_core.utils.lock.html index 1b8e2369..eaf9257f 100644 --- a/v10.7.0/output/pydis_core.utils.lock.html +++ b/v10.7.0/output/pydis_core.utils.lock.html @@ -5,14 +5,14 @@ - + lock - Pydis Core v10.7.0 - + @@ -383,15 +383,15 @@
                                                                                  -

                                                                                  lock#

                                                                                  +

                                                                                  lock

                                                                                  -exception LockedResourceError(resource_type, resource_id)[source]#
                                                                                  +exception LockedResourceError(resource_type, resource_id)[source]

                                                                                  Bases: RuntimeError

                                                                                  Exception raised when an operation is attempted on a locked resource.

                                                                                  -type[source]#
                                                                                  +type[source]

                                                                                  Name of the locked resource’s type

                                                                                  Type:
                                                                                  @@ -402,7 +402,7 @@
                                                                                  -id[source]#
                                                                                  +id[source]

                                                                                  ID of the locked resource

                                                                                  Type:
                                                                                  @@ -413,38 +413,38 @@
                                                                                  -__init__(resource_type, resource_id)[source]#
                                                                                  +__init__(resource_type, resource_id)[source]
                                                                                  -class SharedEvent[source]#
                                                                                  +class SharedEvent[source]

                                                                                  Bases: object

                                                                                  Context manager managing an internal event exposed through the wait coro.

                                                                                  While any code is executing in this context manager, the underlying event will not be set; when all of the holders finish the event will be set.

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

                                                                                  Increment the count of the active holders and clear the internal event.

                                                                                  -__exit__(_exc_type, _exc_val, _exc_tb)[source]#
                                                                                  +__exit__(_exc_type, _exc_val, _exc_tb)[source]

                                                                                  Decrement the count of the active holders; if 0 is reached set the internal event.

                                                                                  -__init__()[source]#
                                                                                  +__init__()[source]
                                                                                  -async wait()[source]#
                                                                                  +async wait()[source]

                                                                                  Wait for all active holders to exit.

                                                                                  Return type:
                                                                                  @@ -457,7 +457,7 @@ when all of the holders finish the event will be set.

                                                                                  -lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
                                                                                  +lock(namespace, resource_id, *, raise_error=False, wait=False)[source]

                                                                                  Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.

                                                                                  If decorating a command, this decorator must go before (below) the command decorator.

                                                                                  @@ -484,7 +484,7 @@ and return None.

                                                                                  -lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
                                                                                  +lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]

                                                                                  Apply the lock decorator using the value of the arg at the given name/position as the ID.

                                                                                  See lock docs for more information.

                                                                                  @@ -582,7 +582,7 @@ and return None.

                                                                                  - + diff --git a/v10.7.0/output/pydis_core.utils.logging.html b/v10.7.0/output/pydis_core.utils.logging.html index cebecf1f..23368144 100644 --- a/v10.7.0/output/pydis_core.utils.logging.html +++ b/v10.7.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v10.7.0 - + @@ -383,16 +383,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)
                                                                                  @@ -416,7 +416,7 @@
                                                                                   
                                                                                   
                                                                                  -get_logger(name=None)[source]#
                                                                                  +get_logger(name=None)[source]

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

                                                                                  Parameters:
                                                                                  @@ -433,7 +433,7 @@
                                                                                  -log_format[source]#
                                                                                  +log_format[source]

                                                                                  A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                                  @@ -515,7 +515,7 @@
                                                                                  - + diff --git a/v10.7.0/output/pydis_core.utils.members.html b/v10.7.0/output/pydis_core.utils.members.html index 44f7deaa..4a76143e 100644 --- a/v10.7.0/output/pydis_core.utils.members.html +++ b/v10.7.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v10.7.0 - + @@ -383,11 +383,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:
                                                                                  @@ -401,7 +401,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.

                                                                                  @@ -491,7 +491,7 @@ - + diff --git a/v10.7.0/output/pydis_core.utils.messages.html b/v10.7.0/output/pydis_core.utils.messages.html index 95072ed4..65eb8b35 100644 --- a/v10.7.0/output/pydis_core.utils.messages.html +++ b/v10.7.0/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core v10.7.0 - + @@ -383,10 +383,10 @@
                                                                                  -

                                                                                  messages#

                                                                                  +

                                                                                  messages

                                                                                  -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
                                                                                  +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

                                                                                  Check if a reaction’s emoji and author are allowed and the message is message_id.

                                                                                  If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

                                                                                  @@ -468,7 +468,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/v10.7.0/output/pydis_core.utils.pagination.html b/v10.7.0/output/pydis_core.utils.pagination.html index f50cdc46..8d1ae198 100644 --- a/v10.7.0/output/pydis_core.utils.pagination.html +++ b/v10.7.0/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core v10.7.0 - + @@ -383,17 +383,17 @@
                                                                                  -

                                                                                  pagination#

                                                                                  +

                                                                                  pagination

                                                                                  -exception EmptyPaginatorEmbedError[source]#
                                                                                  +exception EmptyPaginatorEmbedError[source]

                                                                                  Bases: Exception

                                                                                  Raised when attempting to paginate with empty contents.

                                                                                  -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                  +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                  Bases: Paginator

                                                                                  A class that aids in paginating code blocks for Discord messages.

                                                                                  @@ -410,14 +410,14 @@
                                                                                  -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                  +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                  This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                  It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                  -add_line(line='', *, empty=False)[source]#
                                                                                  +add_line(line='', *, empty=False)[source]

                                                                                  Adds a line to the current page.

                                                                                  If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -445,7 +445,7 @@ page at a reasonable size.

                                                                                  -async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                  +async classmethod paginate(pagination_emojis, lines, ctx, embed, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                  Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                  The reactions are used to switch page, or to finish with pagination.

                                                                                  When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -489,24 +489,24 @@ to any user with a moderation role.

                                                                                  -class PaginationEmojis(**data)[source]#
                                                                                  +class PaginationEmojis(**data)[source]

                                                                                  Bases: BaseModel

                                                                                  The emojis that will be used for pagination.

                                                                                  -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                  +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                  @@ -597,7 +597,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v10.7.0/output/pydis_core.utils.paste_service.html b/v10.7.0/output/pydis_core.utils.paste_service.html index ff1e67ca..f92a0a8e 100644 --- a/v10.7.0/output/pydis_core.utils.paste_service.html +++ b/v10.7.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v10.7.0 - + @@ -383,16 +383,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.

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

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

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

                                                                                  @@ -463,28 +463,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:
                                                                                  @@ -598,7 +598,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v10.7.0/output/pydis_core.utils.regex.html b/v10.7.0/output/pydis_core.utils.regex.html index 7dab3c28..750ce793 100644 --- a/v10.7.0/output/pydis_core.utils.regex.html +++ b/v10.7.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v10.7.0 - + @@ -383,11 +383,11 @@
                                                                                  -

                                                                                  regex#

                                                                                  +

                                                                                  regex

                                                                                  Common regular expressions.

                                                                                  -DISCORD_INVITE[source]#
                                                                                  +DISCORD_INVITE[source]

                                                                                  Regex for Discord server invites.

                                                                                  Warning

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

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

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

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

                                                                                  @@ -488,7 +488,7 @@ such as - + diff --git a/v10.7.0/output/pydis_core.utils.scheduling.html b/v10.7.0/output/pydis_core.utils.scheduling.html index 3ca9ce6b..d8181f0b 100644 --- a/v10.7.0/output/pydis_core.utils.scheduling.html +++ b/v10.7.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v10.7.0 - + @@ -383,11 +383,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 @@ -401,7 +401,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:
                                                                                  @@ -418,7 +418,7 @@ the same ID used to schedule it.

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

                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                  Unschedule all known tasks.

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

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

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

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

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

                                                                                  - + diff --git a/v10.7.0/py-modindex.html b/v10.7.0/py-modindex.html index d7e4dbcb..8353450c 100644 --- a/v10.7.0/py-modindex.html +++ b/v10.7.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v10.7.0 + Python Module Index - Pydis Core v10.7.0 - + @@ -552,7 +552,7 @@ - + diff --git a/v10.7.0/search.html b/v10.7.0/search.html index 7c089ceb..0dc78fe9 100644 --- a/v10.7.0/search.html +++ b/v10.7.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v10.7.0 + Search - Pydis Core v10.7.0 - + @@ -422,7 +422,7 @@ - + diff --git a/v10.7.0/searchindex.js b/v10.7.0/searchindex.js index 243ebb80..97b8ab3e 100644 --- a/v10.7.0/searchindex.js +++ b/v10.7.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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"10": 0, "7": 0, "0": [0, 8, 10, 15, 16, 17], "30th": 0, "januari": 0, "2024": 0, "featur": [0, 1, 3], "194": 0, "add": [0, 3, 10, 12, 20], "pydis_cor": [0, 1, 3, 15, 17], "util": [0, 1, 2, 3, 8, 14, 15, 17], "interact": [0, 3, 7, 9, 20], "user_has_access": [0, 3, 7, 15], "helper": [0, 9, 12, 18], "function": [0, 3, 7, 8, 9, 12, 16, 17, 18, 20, 23], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "whether": [0, 3, 6, 9, 10, 15, 20], "given": [0, 3, 4, 7, 9, 11, 14, 16, 17, 18, 23], "user": [0, 3, 10, 12, 15, 19, 20], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "allowed_us": [0, 15, 19], "list": [0, 1, 3, 15, 20, 21], "ha": [0, 7, 10, 15], "role": [0, 1, 3, 10, 15, 18, 19, 20], "from": [0, 1, 3, 4, 6, 7, 9, 14, 15, 18, 20, 21, 23], "allowed_rol": [0, 1, 3, 15, 19, 20], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "support": [0, 4, 7, 23], "202": 0, "bump": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "depend": [0, 9], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 17, 22], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 18, 20, 22], "command": [0, 1, 3, 7, 9, 10, 12, 14, 16, 20], "check": [0, 3, 6, 7, 9, 12, 13, 15, 19, 23], "other": [0, 1, 16, 23], "bot": [0, 1, 3, 7, 9, 19], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 15, 17, 20, 23], "reaction_check": [0, 3, 7, 19], "predic": 0, "dictat": 0, "right": [0, 3, 20], "specif": [0, 10], "set": [0, 1, 3, 12, 14, 15, 16, 20], "reaction": [0, 3, 19, 20], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 20, 21, 23], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 20], "which": [0, 1, 3, 7, 10, 12, 14, 16, 20, 23], "allow": [0, 1, 3, 15, 19, 20, 21], "over": [0, 3, 20], "content": [0, 3, 11, 20, 21], "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 14, 16, 17, 18, 20, 21, 22, 23], "emb": [0, 3, 20], "emoji": [0, 3, 19, 20], "facilit": 0, "navig": [0, 1, 3, 20], "5": [0, 12], "1": [0, 17], "14th": 0, "decemb": 0, "2023": 0, "bug": 0, "200": 0, "do": [0, 1, 9, 16], "attempt": [0, 3, 9, 16, 18, 20], "read": 0, "respons": [0, 6, 21], "bodi": 0, "http": [0, 6, 21, 22], "code": [0, 1, 3, 6, 16, 20, 22], "204": [0, 6], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 15, 20, 21], "did": 0, "thi": [0, 1, 3, 7, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 23], "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 15], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 20], "have": [0, 9, 10, 14, 17], "cut": 0, "new": [0, 1, 3, 4, 6, 8, 14, 20, 23], "releas": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "3": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 17], "warn": [0, 23], "level": [0, 7, 17], "asyncio": [0, 4, 23], "info": [0, 1], "default": [0, 1, 3, 10, 14, 20, 21], "log_format": [0, 3, 7, 17], "log": [0, 3, 7, 13, 18, 23], "standardis": [0, 17], "across": [0, 3, 17, 20], "all": [0, 1, 3, 4, 7, 16, 17, 23], "servic": [0, 1, 3, 21], "2": [0, 3, 15], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 14], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "ext": [0, 2, 3, 7, 9, 10, 11, 20], "process_command": [0, 2, 3], "ensur": [0, 3, 15, 22], "ar": [0, 1, 3, 8, 14, 15, 19, 20, 22], "process": [0, 3], "until": [0, 3, 16, 22], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "break": [0, 3, 14, 20], "188": 0, "send": [0, 3, 6, 15, 20], "multipl": 0, "file": [0, 1, 21], "onc": [0, 8], "past": [0, 21, 23], "call": [0, 3, 12, 14, 23], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 21], "must": [0, 14, 16, 23], "now": [0, 1, 23], "provid": [0, 1, 3, 8, 11, 13, 20, 23], "pastefil": [0, 3, 7, 21], "184": 0, "remov": [0, 3, 15, 19, 20, 21], "store": [0, 3, 7, 8, 20], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 15], "when": [0, 3, 4, 6, 7, 8, 10, 12, 14, 16, 20, 21, 23], "stop": [0, 7, 15], "addit": 0, "exist": [0, 1, 23], "timeout": [0, 3, 15, 20], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 20, 22, 23], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "includ": [0, 1, 13], "abc": 0, "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 14], "expiri": 0, "label": [0, 15], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "18th": 0, "182": 0, "lexer": [0, 21], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 20, 21], "pythondiscord": [0, 21], "com": [0, 21], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "ruff": 0, "lint": 0, "177": 0, "automat": [0, 3, 20], "handl": [0, 13, 18, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "error": [0, 3, 6, 7, 13, 18, 21], "schedul": [0, 3, 7], "179": 0, "upload": [0, 21], "text": [0, 3, 6, 11, 20, 21], "our": [0, 1, 7], "6th": 0, "mai": [0, 3, 8, 16, 20], "175": 0, "wait": [0, 3, 7, 16, 23], "guild": [0, 1, 3, 10, 18], "avail": [0, 3, 16], "befor": [0, 3, 10, 15, 16, 20, 23], "cog": [0, 3, 5], "march": 0, "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3], "after": [0, 3, 15, 20, 23], "been": 0, "also": [0, 3, 7, 14, 15, 16, 20], "need": [0, 1, 3, 20], "run": [0, 1, 12, 16, 23], "task": [0, 23], "23rd": 0, "170": 0, "save": [0, 3, 21], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 14, 20, 23], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 22], "member": [0, 3, 7, 15], "get_or_fetch_memb": [0, 3, 7, 18], "17th": 0, "novemb": 0, "151": 0, "python": [0, 1, 3, 21, 23], "11": 0, "162": 0, "being": [0, 7, 10, 18], "abl": 0, "button": [0, 15], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 14, 16], "success": [0, 21], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 17], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 22], "option": [0, 8, 14, 16], "match": [0, 3, 14], "lead": 0, "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 21], "rediscach": 0, "v1": [0, 3, 20, 21], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "document": 0, "explain": 0, "how": [0, 8, 10, 14, 23], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 16, 17, 20, 21, 23], "On": 0, "view": [0, 15], "its": [0, 3, 12, 14], "104": 0, "deletemessagebutton": [0, 3, 7, 15], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 17], "103": 0, "attach": 0, "parent": [0, 15], "gener": [0, 3, 12, 23], "98": 0, "close": [0, 2, 3, 6, 23], "stat": [0, 4], "_transport": 0, "wa": [0, 9, 10, 23], "91": 0, "miss": 0, "await": [0, 3, 12, 15, 16, 18, 20], "ping_servic": [0, 2, 3], "some": [0, 3, 20, 21], "case": [0, 3, 20], "pass": [0, 6, 14, 17, 18, 23], "self": [0, 3, 15], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 18], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1], "79": 0, "restor": 0, "site": [0, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 17, 20], "older": 0, "doc": [0, 16], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "time": [0, 10, 23], "out": [0, 1, 15], "75": 0, "invit": [0, 22], "longer": [0, 15], "safe": 0, "result": [0, 23], "captur": [0, 14, 22], "charact": [0, 3, 20], "up": [0, 1, 3, 20], "whitespac": [0, 22], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 20], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 20, 21], "so": [0, 1, 7], "should": [0, 1, 3, 6, 15, 20, 21], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 14, 18], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 14], "main": 0, "don": [0, 10, 23], "t": [0, 10, 11, 13, 14, 16, 23], "modul": [0, 3, 7, 14, 23], "start": [0, 3, 23], "_": 0, "66": 0, "each": [0, 3, 20], "own": [0, 14], "avoid": [0, 3, 20], "singl": [0, 3, 20], "crash": 0, "entir": [0, 3], "20th": 0, "65": 0, "unqualifi": [0, 2, 3, 7], "namespac": [0, 16, 23], "manipul": [0, 14], "64": 0, "987235d": 0, "revert": 0, "chang": [0, 1, 3, 14, 20], "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 17], "basic": [0, 15], "forum": 0, "63": 0, "api_cli": [0, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 20, 23], "instanc": [0, 3, 6, 8, 9, 10, 17, 23], "61": 0, "reconnect": 0, "redi": 0, "session": [0, 3, 6, 21], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 16, 23], "_guild_avail": 0, "within": [0, 3], "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 16, 20], "made": [0, 19], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 21], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 15, 16, 17, 20, 21, 23], "abstract": 0, "lot": 0, "share": [0, 14], "between": [0, 1, 14], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 17], "import": 0, "can": [0, 1, 3, 10, 15, 16, 17, 20, 23], "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 6, 18], "wrapper": [0, 6, 12, 14, 23], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 18], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 15, 17, 20], "intersphinx": 0, "12": 0, "block": [0, 3, 12, 20, 22], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 7], "poetri": [0, 1], "To": [1, 3, 17], "your": 1, "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 14], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "see": [1, 14, 15, 16], "below": [1, 16], "more": [1, 3, 14, 16, 20], "both": [1, 21], "what": 1, "go": [1, 3, 16, 20], "them": [1, 3, 14, 23], "you": [1, 9, 22], "ll": [1, 23], "write": 1, "might": [1, 10], "mean": 1, "modifi": [1, 18], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "requir": [1, 3, 20, 21, 23], "vari": 1, "re": [1, 3, 13, 19, 23], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "environ": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 15, 20, 21, 23], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 14, 19], "free": 1, "howev": 1, "like": [1, 14], "m": 1, "docker": 1, "compos": 1, "d": [1, 14], "configur": [1, 3, 20, 21], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "enabl": 1, "guild_id": [1, 3], "monitor": 1, "prefix": [1, 3, 4, 20], "invok": [1, 10, 12, 15], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 20, 21, 23], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 15, 16, 20, 23], "anyth": [1, 21], "reinstal": 1, "applic": 1, "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 16], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 20], "add_lin": [2, 3, 7, 20], "paginationemoji": [2, 3, 7, 20], "model_computed_field": [2, 3, 7, 20, 21], "model_config": [2, 3, 7, 20, 21], "model_field": [2, 3, 7, 20, 21], "startuperror": [2, 3], "subpackag": 2, "submodul": 2, "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 20], "inform": [2, 16, 17], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 14, 16, 17], "http_session": [3, 21], "redis_sess": 3, "kwarg": [3, 6, 12, 14, 15, 17, 23], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "implement": [3, 4, 8, 15, 17], "initialis": [3, 8], "int": [3, 4, 8, 9, 10, 14, 15, 20, 21, 23], "clientsess": [3, 6, 21], "redissess": 3, "str": [3, 4, 6, 7, 10, 11, 14, 15, 16, 17, 20, 21, 23], "server": [3, 22], "If": [3, 6, 10, 12, 14, 15, 16, 19, 20, 23], "oper": [3, 16, 20, 23], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 15, 23], "instead": [3, 12, 23], "connector": 3, "resolv": [3, 14], "sync_app_command": 3, "true": [3, 6, 10, 12, 16, 17, 19, 20, 21, 23], "all_extens": 3, "bool": [3, 6, 9, 10, 12, 15, 16, 19, 20, 23], "intern": [3, 7, 16], "becom": [3, 16], "appear": 3, "still": [3, 20], "empti": [3, 20], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 14, 19], "relev": 3, "name": [3, 7, 14, 16, 17, 20, 21, 23], "alia": [3, 7, 12], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "becaus": [3, 14], "second": [3, 10, 12, 15, 20, 23], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 20, 21, 23], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 16, 18, 20, 21, 23], "suffix": [3, 20], "max_siz": [3, 8, 20, 21], "4000": [3, 20], "scale_to_s": [3, 20], "max_lin": [3, 20], "linesep": [3, 20], "n": [3, 20], "aid": [3, 20], "pagination_emoji": [3, 20], "insert": [3, 20], "everi": [3, 20], "e": [3, 20], "g": [3, 20], "three": [3, 20], "backtick": [3, 20], "append": [3, 20], "end": [3, 20], "maximum": [3, 8, 20, 21], "amount": [3, 20], "codepoint": [3, 20], "line": [3, 20], "scale": [3, 20], "overrid": [3, 20], "insid": [3, 20], "It": [3, 7, 16, 20], "order": [3, 8, 14, 16, 20, 23], "per": [3, 10, 20], "fals": [3, 10, 12, 16, 20, 21], "current": [3, 16, 20, 23], "exce": [3, 8, 20], "overflow": [3, 20], "word": [3, 20], "exceed": [3, 20], "excess": [3, 20], "place": [3, 20], "next": [3, 20], "unti": [3, 20], "remain": [3, 20], "boundari": [3, 20], "truncat": [3, 20], "continu": [3, 20], "onto": [3, 20], "In": [3, 20], "alreadi": [3, 20, 23], "would": [3, 20], "caus": [3, 7, 20], "done": [3, 15, 20, 23], "best": [3, 20], "effort": [3, 20], "while": [3, 12, 16, 20], "keep": [3, 20, 23], "total": [3, 20], "length": [3, 12, 20], "reason": [3, 20], "size": [3, 8, 20, 21], "indic": [3, 18, 20], "classmethod": [3, 20], "ctx": [3, 10, 11, 15, 20], "500": [3, 20], "restrict_to_us": [3, 20], "300": [3, 20], "footer_text": [3, 20], "exception_on_empty_emb": [3, 20], "repli": [3, 11, 12, 13, 20], "switch": [3, 20], "finish": [3, 16, 20], "appli": [3, 7, 8, 10, 12, 16, 20, 21], "These": [3, 20], "five": [3, 20], "minut": [3, 20], "limit": [3, 20], "author": [3, 10, 19, 20], "ani": [3, 6, 10, 14, 16, 20, 22, 23], "moder": [3, 15, 19, 20], "context": [3, 10, 11, 16, 20], "hold": [3, 16, 20], "serv": [3, 20], "whom": [3, 20], "restrict": [3, 20], "anymor": [3, 20], "footer": [3, 20], "sequenc": [3, 7, 14, 15, 20], "exampl": [3, 20], "set_author": [3, 20], "icon_url": [3, 20], "icon": [3, 20], "data": [3, 20, 21], "basemodel": [3, 20, 21], "classvar": [3, 20, 21], "dict": [3, 6, 14, 20, 21], "computedfieldinfo": [3, 20, 21], "dictionari": [3, 20, 21], "comput": [3, 20, 21], "field": [3, 20, 21], "correspond": [3, 20, 21], "object": [3, 6, 7, 8, 9, 12, 16, 18, 20, 21, 23], "configdict": [3, 20, 21], "model": [3, 20, 21], "conform": [3, 20, 21], "pydant": [3, 20, 21], "config": [3, 20, 21], "fieldinfo": [3, 20, 21], "annot": [3, 14, 20, 21], "trashcan": [3, 20], "637136429717389331": [3, 20], "first": [3, 20], "last": [3, 10, 15, 20], "left": [3, 20], "metadata": [3, 20, 21], "about": [3, 12, 20, 21], "defin": [3, 20, 21], "map": [3, 14, 16, 20, 21], "replac": [3, 10, 14, 20, 21], "__fields__": [3, 20, 21], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "error_handl": [3, 7], "handle_forbidden_from_block": [3, 7, 13], "globalnameconflicterror": [3, 7, 14], "command_wrap": [3, 7, 14], "get_arg_valu": [3, 7, 14], "get_arg_value_wrapp": [3, 7, 14], "get_bound_arg": [3, 7, 14], "update_wrapper_glob": [3, 7, 14], "lockedresourceerror": [3, 7, 16], "sharedev": [3, 7, 16], "lock_arg": [3, 7, 16], "customlogg": [3, 7, 17], "get_logg": [3, 7, 17], "max_paste_s": [3, 7, 21], "pasterespons": [3, 7, 21], "pastetoolongerror": [3, 7, 21], "pasteunsupportedlexererror": [3, 7, 21], "pasteuploaderror": [3, 7, 21], "formatted_code_regex": [3, 7, 22], "raw_code_regex": [3, 7, 22], "create_task": [3, 7, 23], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 21], "put": [3, 6], "__str__": [3, 6], "transport": 4, "commun": 4, "loop": [4, 23], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 23], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 23], "authent": 6, "keyword": [6, 7, 14, 17], "argument": [6, 7, 8, 11, 12, 14, 16, 17, 18], "constructor": 6, "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "extra": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 14, 21], "represent": 6, "group": [7, 22], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 21], "attribut": [7, 14], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 15], "interaction_check": [7, 15], "on_timeout": [7, 15], "__enter__": [7, 16], "__exit__": [7, 16], "__contains__": [7, 23], "cancel": [7, 23], "cancel_al": [7, 23], "schedule_at": [7, 23], "schedule_lat": [7, 23], "relat": [8, 17], "128": 8, "lru": 8, "coroutin": [8, 16, 18, 23], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 14, 16], "callabl": [8, 10, 12, 14, 16, 18], "wrap": [8, 14, 23], "target": 8, "item": 8, "channel_id": 9, "fetch": [9, 18], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 21], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "bypass_rol": 10, "bypass": 10, "note": 10, "before_invok": 10, "introduc": 10, "problem": [10, 17], "futur": [10, 23], "trigger": 10, "float": [10, 12, 15, 23], "durat": 10, "long": [10, 21, 23], "buckettyp": 10, "iter": [10, 12], "describ": 10, "behavior": 10, "typeerror": [10, 14], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 16, 23], "doesn": [10, 23], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 14, 23], "valu": [12, 14, 16, 17], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 16, 23], "same": [12, 23], "notifi": 12, "paramspec": [12, 14], "raw": [12, 22], "isn": [13, 14], "conflict": 14, "global": 14, "assign": 14, "__module__": 14, "__name__": 14, "__qualname__": 14, "__doc__": 14, "__annotations__": 14, "__dict__": 14, "ignored_conflict_nam": 14, "frozenset": 14, "look": [14, 23], "forwardref": 14, "evalu": 14, "detail": 14, "_p": 14, "_r": 14, "found": [14, 18, 23], "behav": 14, "functool": 14, "name_or_po": [14, 16], "ordereddict": [14, 16], "doe": 14, "decorator_func": 14, "func": [14, 16], "accept": [14, 15], "bind": 14, "tupl": [14, 23], "For": 14, "__global__": 14, "state": 14, "won": 14, "reflect": 14, "typehint": 14, "style": 15, "secondari": 15, "click": 15, "itself": 15, "carri": 15, "buttonstyl": 15, "origin": 15, "180": 15, "who": 15, "ui": 15, "input": 15, "similar": [15, 22], "occur": 15, "listen": 15, "access": 15, "resource_typ": 16, "resource_id": 16, "runtimeerror": 16, "resourc": 16, "hashabl": [16, 23], "manag": 16, "expos": 16, "through": 16, "coro": [16, 18, 23], "execut": [16, 23], "underli": 16, "holder": 16, "increment": 16, "count": 16, "activ": 16, "_exc_typ": 16, "_exc_val": 16, "_exc_tb": 16, "decrement": 16, "reach": 16, "exit": 16, "raise_error": 16, "turn": 16, "mutual": 16, "exclus": 16, "identifi": [16, 23], "collis": 16, "among": 16, "perform": 16, "acquir": 16, "msg": 17, "sever": 17, "exc_info": 17, "houston": 17, "we": [17, 18], "interest": 17, "mypi": 17, "recognis": 17, "formatt": 17, "interactin": 18, "member_id": 18, "failur": 18, "could": 18, "sole": 18, "expect": 18, "add_rol": 18, "remove_rol": 18, "purpos": 18, "intend": 18, "message_id": 19, "allowed_emoji": 19, "allow_mod": 19, "even": 19, "524288": 21, "byte": 21, "format": [21, 22], "link": 21, "too": 21, "larg": 21, "unsupport": 21, "encount": 21, "paste_url": 21, "max": 21, "larger": 21, "reject": 21, "max_length": 21, "greater": 21, "regular": 22, "express": 22, "pattern": 22, "pleas": 22, "sanitis": 22, "output": 22, "someth": 22, "urllib": 22, "pars": 22, "quot": 22, "track": 23, "distinguish": 23, "suggest": 23, "immedi": 23, "uniqu": 23, "prematur": 23, "task_id": 23, "unschedul": 23, "known": 23, "unawait": 23, "elsewher": 23, "timezon": 23, "awar": 23, "calcul": 23, "subtract": 23, "na\u00efv": 23, "utc": 23, "datetim": 23, "delai": 23, "suppressed_except": 23, "event_loop": 23, "task_return": 23}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 3, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [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.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 4, 1, "", "model_computed_fields"], [3, 4, 1, "", "model_config"], [3, 4, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 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, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [14, 0, 0, "-", "function"], [15, 0, 0, "-", "interactions"], [16, 0, 0, "-", "lock"], [17, 0, 0, "-", "logging"], [18, 0, 0, "-", "members"], [19, 0, 0, "-", "messages"], [20, 0, 0, "-", "pagination"], [21, 0, 0, "-", "paste_service"], [22, 0, 0, "-", "regex"], [23, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 3, 1, "", "ContextCheckFailure"], [10, 3, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 3, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[14, 3, 1, "", "GlobalNameConflictError"], [14, 5, 1, "", "command_wraps"], [14, 5, 1, "", "get_arg_value"], [14, 5, 1, "", "get_arg_value_wrapper"], [14, 5, 1, "", "get_bound_args"], [14, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[15, 1, 1, "", "DeleteMessageButton"], [15, 1, 1, "", "ViewWithUserAndRoleCheck"], [15, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "interaction_check"], [15, 2, 1, "", "on_timeout"], [15, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[16, 3, 1, "", "LockedResourceError"], [16, 1, 1, "", "SharedEvent"], [16, 5, 1, "", "lock"], [16, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[16, 2, 1, "", "__init__"], [16, 4, 1, "", "id"], [16, 4, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[16, 2, 1, "", "__enter__"], [16, 2, 1, "", "__exit__"], [16, 2, 1, "", "__init__"], [16, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[17, 1, 1, "", "CustomLogger"], [17, 5, 1, "", "get_logger"], [17, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[17, 2, 1, "", "trace"]], "pydis_core.utils.members": [[18, 5, 1, "", "get_or_fetch_member"], [18, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[19, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[20, 3, 1, "", "EmptyPaginatorEmbedError"], [20, 1, 1, "", "LinePaginator"], [20, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "add_line"], [20, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[20, 4, 1, "", "model_computed_fields"], [20, 4, 1, "", "model_config"], [20, 4, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[21, 6, 1, "", "MAX_PASTE_SIZE"], [21, 1, 1, "", "PasteFile"], [21, 1, 1, "", "PasteResponse"], [21, 3, 1, "", "PasteTooLongError"], [21, 3, 1, "", "PasteUnsupportedLexerError"], [21, 3, 1, "", "PasteUploadError"], [21, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[21, 4, 1, "", "model_computed_fields"], [21, 4, 1, "", "model_config"], [21, 4, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[21, 4, 1, "", "model_computed_fields"], [21, 4, 1, "", "model_config"], [21, 4, 1, "", "model_fields"]], "pydis_core.utils.regex": [[22, 6, 1, "", "DISCORD_INVITE"], [22, 6, 1, "", "FORMATTED_CODE_REGEX"], [22, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[23, 1, 1, "", "Scheduler"], [23, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[23, 2, 1, "", "__contains__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "cancel"], [23, 2, 1, "", "cancel_all"], [23, 2, 1, "", "schedule"], [23, 2, 1, "", "schedule_at"], [23, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:attribute", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": 3, "submodul": [3, 7], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": 11, "cooldown": 12, "error_handl": 13, "function": 14, "interact": 15, "lock": 16, "log": 17, "member": 18, "messag": 19, "pagin": 20, "paste_servic": 21, "regex": 22, "schedul": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"site_api": [[6, "module-pydis_core.site_api"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "commands": [[11, "module-pydis_core.utils.commands"]], "Changelog": [[0, "changelog"]], "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"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Exts": [[5, "module-pydis_core.exts"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "paste_service": [[21, "module-pydis_core.utils.paste_service"]], "messages": [[19, "module-pydis_core.utils.messages"]], "scheduling": [[23, "module-pydis_core.utils.scheduling"]], "regex": [[22, "module-pydis_core.utils.regex"]], "members": [[18, "module-pydis_core.utils.members"]], "pagination": [[20, "module-pydis_core.utils.pagination"]], "lock": [[16, "module-pydis_core.utils.lock"]], "function": [[14, "module-pydis_core.utils.function"]], "logging": [[17, "module-pydis_core.utils.logging"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "interactions": [[15, "module-pydis_core.utils.interactions"]], "error_handling": [[13, "module-pydis_core.utils.error_handling"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [20, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [20, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [20, "pydis_core.utils.pagination.LinePaginator.add_line"]], "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"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [20, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.function"], [15, "module-pydis_core.utils.interactions"], [16, "module-pydis_core.utils.lock"], [17, "module-pydis_core.utils.logging"], [18, "module-pydis_core.utils.members"], [19, "module-pydis_core.utils.messages"], [20, "module-pydis_core.utils.pagination"], [21, "module-pydis_core.utils.paste_service"], [22, "module-pydis_core.utils.regex"], [23, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [20, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "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"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "globalnameconflicterror": [[14, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[14, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[15, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[16, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[16, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[16, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[17, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[17, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[18, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[19, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[19, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[20, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[21, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[21, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[21, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[21, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[22, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[23, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_later"]]}}) \ No newline at end of file +Search.setIndex({"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"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "error_handling": [[13, "module-pydis_core.utils.error_handling"]], "function": [[14, "module-pydis_core.utils.function"]], "interactions": [[15, "module-pydis_core.utils.interactions"]], "lock": [[16, "module-pydis_core.utils.lock"]], "logging": [[17, "module-pydis_core.utils.logging"]], "members": [[18, "module-pydis_core.utils.members"]], "messages": [[19, "module-pydis_core.utils.messages"]], "pagination": [[20, "module-pydis_core.utils.pagination"]], "paste_service": [[21, "module-pydis_core.utils.paste_service"]], "regex": [[22, "module-pydis_core.utils.regex"]], "scheduling": [[23, "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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "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.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__enter__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__enter__", false]], "__exit__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__exit__", 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)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__", false]], "__init__() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__", false], [20, "pydis_core.utils.pagination.LinePaginator.__init__", false]], "__init__() (lockedresourceerror method)": [[16, "pydis_core.utils.lock.LockedResourceError.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[15, "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]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line", false], [20, "pydis_core.utils.pagination.LinePaginator.add_line", 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)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[15, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "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)": [[14, "pydis_core.utils.function.command_wraps", false]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure", false]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.DISCORD_INVITE", false]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError", false], [20, "pydis_core.utils.pagination.EmptyPaginatorEmbedError", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_arg_value() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value", false]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_arg_value_wrapper", false]], "get_bound_args() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.get_bound_args", false]], "get_logger() (in module pydis_core.utils.logging)": [[17, "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)": [[18, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[14, "pydis_core.utils.function.GlobalNameConflictError", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[18, "pydis_core.utils.members.handle_role_change", false]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check", false]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check", false]], "id (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.id", false]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check", false]], "interaction_check() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator", false]], "linepaginator (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.LinePaginator", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "lock() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock", false]], "lock_arg() (in module pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.lock_arg", false]], "lockedresourceerror": [[16, "pydis_core.utils.lock.LockedResourceError", false]], "log_format (in module pydis_core.utils.logging)": [[17, "pydis_core.utils.logging.log_format", 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)": [[21, "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 (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields", false], [20, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields", false]], "model_computed_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config", false], [20, "pydis_core.utils.pagination.PaginationEmojis.model_config", false]], "model_config (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[21, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields", false], [20, "pydis_core.utils.pagination.PaginationEmojis.model_fields", false]], "model_fields (pastefile attribute)": [[21, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[21, "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.checks", false], [11, "module-pydis_core.utils.commands", false], [12, "module-pydis_core.utils.cooldown", false], [13, "module-pydis_core.utils.error_handling", false], [14, "module-pydis_core.utils.function", false], [15, "module-pydis_core.utils.interactions", false], [16, "module-pydis_core.utils.lock", false], [17, "module-pydis_core.utils.logging", false], [18, "module-pydis_core.utils.members", false], [19, "module-pydis_core.utils.messages", false], [20, "module-pydis_core.utils.pagination", false], [21, "module-pydis_core.utils.paste_service", false], [22, "module-pydis_core.utils.regex", false], [23, "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)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P", false]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate", false], [20, "pydis_core.utils.pagination.LinePaginator.paginate", false]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis", false]], "paginationemojis (class in pydis_core.utils.pagination)": [[20, "pydis_core.utils.pagination.PaginationEmojis", false]], "pastefile (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[21, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[21, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[21, "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.checks": [[10, "module-pydis_core.utils.checks", false]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.function": [[14, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[15, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.lock": [[16, "module-pydis_core.utils.lock", false]], "pydis_core.utils.logging": [[17, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[18, "module-pydis_core.utils.members", false]], "pydis_core.utils.messages": [[19, "module-pydis_core.utils.messages", false]], "pydis_core.utils.pagination": [[20, "module-pydis_core.utils.pagination", false]], "pydis_core.utils.paste_service": [[21, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[22, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[23, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[22, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "reaction_check() (in module pydis_core.utils.messages)": [[19, "pydis_core.utils.messages.reaction_check", 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)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[23, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[23, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[21, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "sharedevent (class in pydis_core.utils.lock)": [[16, "pydis_core.utils.lock.SharedEvent", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stop() (viewwithuserandrolecheck method)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[17, "pydis_core.utils.logging.CustomLogger.trace", false]], "type (lockedresourceerror attribute)": [[16, "pydis_core.utils.lock.LockedResourceError.type", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[14, "pydis_core.utils.function.update_wrapper_globals", false]], "user_has_access() (in module pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.user_has_access", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[15, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait() (sharedevent method)": [[16, "pydis_core.utils.lock.SharedEvent.wait", 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, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [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.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 4, 1, "", "model_computed_fields"], [3, 4, 1, "", "model_config"], [3, 4, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 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, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [14, 0, 0, "-", "function"], [15, 0, 0, "-", "interactions"], [16, 0, 0, "-", "lock"], [17, 0, 0, "-", "logging"], [18, 0, 0, "-", "members"], [19, 0, 0, "-", "messages"], [20, 0, 0, "-", "pagination"], [21, 0, 0, "-", "paste_service"], [22, 0, 0, "-", "regex"], [23, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 3, 1, "", "ContextCheckFailure"], [10, 3, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 3, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.function": [[14, 3, 1, "", "GlobalNameConflictError"], [14, 5, 1, "", "command_wraps"], [14, 5, 1, "", "get_arg_value"], [14, 5, 1, "", "get_arg_value_wrapper"], [14, 5, 1, "", "get_bound_args"], [14, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[15, 1, 1, "", "DeleteMessageButton"], [15, 1, 1, "", "ViewWithUserAndRoleCheck"], [15, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[15, 2, 1, "", "__init__"], [15, 2, 1, "", "interaction_check"], [15, 2, 1, "", "on_timeout"], [15, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[16, 3, 1, "", "LockedResourceError"], [16, 1, 1, "", "SharedEvent"], [16, 5, 1, "", "lock"], [16, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[16, 2, 1, "", "__init__"], [16, 4, 1, "", "id"], [16, 4, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[16, 2, 1, "", "__enter__"], [16, 2, 1, "", "__exit__"], [16, 2, 1, "", "__init__"], [16, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[17, 1, 1, "", "CustomLogger"], [17, 5, 1, "", "get_logger"], [17, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[17, 2, 1, "", "trace"]], "pydis_core.utils.members": [[18, 5, 1, "", "get_or_fetch_member"], [18, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[19, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[20, 3, 1, "", "EmptyPaginatorEmbedError"], [20, 1, 1, "", "LinePaginator"], [20, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "add_line"], [20, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[20, 4, 1, "", "model_computed_fields"], [20, 4, 1, "", "model_config"], [20, 4, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[21, 6, 1, "", "MAX_PASTE_SIZE"], [21, 1, 1, "", "PasteFile"], [21, 1, 1, "", "PasteResponse"], [21, 3, 1, "", "PasteTooLongError"], [21, 3, 1, "", "PasteUnsupportedLexerError"], [21, 3, 1, "", "PasteUploadError"], [21, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[21, 4, 1, "", "model_computed_fields"], [21, 4, 1, "", "model_config"], [21, 4, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[21, 4, 1, "", "model_computed_fields"], [21, 4, 1, "", "model_config"], [21, 4, 1, "", "model_fields"]], "pydis_core.utils.regex": [[22, 6, 1, "", "DISCORD_INVITE"], [22, 6, 1, "", "FORMATTED_CODE_REGEX"], [22, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[23, 1, 1, "", "Scheduler"], [23, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[23, 2, 1, "", "__contains__"], [23, 2, 1, "", "__init__"], [23, 2, 1, "", "cancel"], [23, 2, 1, "", "cancel_all"], [23, 2, 1, "", "schedule"], [23, 2, 1, "", "schedule_at"], [23, 2, 1, "", "schedule_later"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:attribute", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 1, 3, 7, 8, 10, 11, 12, 14, 15, 16, 17, 19, 20, 22, 23], "0": [0, 8, 10, 15, 16, 17], "0a0": 0, "0eb3d26": 0, "1": [0, 17], "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": 15, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "189": 0, "18th": 0, "190": 0, "192": 0, "194": 0, "195": 0, "196": 0, "197": 0, "199": 0, "19th": 0, "2": [0, 3, 15], "200": 0, "202": 0, "2021": 0, "2022": 0, "2023": 0, "2024": 0, "204": [0, 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, "300": [3, 20], "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "4000": [3, 20], "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 12], "500": [3, 20], "524288": 21, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "637136429717389331": [3, 20], "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, 13], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 17, 20, 21, 23], "For": 14, "If": [3, 6, 10, 12, 14, 15, 16, 19, 20, 23], "In": [3, 20], "It": [3, 7, 16, 20], "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 23], "These": [3, 20], "To": [1, 3, 17], "_": 0, "__annotations__": 14, "__call__": [7, 8], "__contains__": [7, 23], "__dict__": 14, "__doc__": 14, "__enter__": [7, 16], "__exit__": [7, 16], "__fields__": [3, 20, 21], "__global__": 14, "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 15, 16, 20, 23], "__module__": 14, "__name__": 14, "__qualname__": 14, "__str__": [3, 6], "_exc_tb": 16, "_exc_typ": 16, "_exc_val": 16, "_guild_avail": 0, "_p": 14, "_r": 14, "_transport": 0, "abc": 0, "abl": 0, "about": [3, 12, 20, 21], "abstract": 0, "abstracteventloop": [4, 23], "accept": [14, 15], "access": 15, "acquir": 16, "across": [0, 3, 17, 20], "act": 7, "action": 0, "activ": 16, "actual": 0, "ad": [0, 1, 3, 7, 15, 17, 20], "add": [0, 3, 10, 12, 20], "add_cog": [2, 3], "add_command": [2, 3], "add_lin": [2, 3, 7, 20], "add_rol": 18, "addit": 0, "after": [0, 3, 15, 20, 23], "again": 1, "aid": [3, 20], "aiodn": 0, "aiohttp": [0, 3, 6, 21], "alia": [3, 7, 12], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 16, 17, 23], "all_command": 3, "all_extens": 3, "allow": [0, 1, 3, 15, 19, 20, 21], "allow_mod": 19, "allowed_emoji": 19, "allowed_rol": [0, 1, 3, 15, 19, 20], "allowed_us": [0, 15, 19], "alpha": 0, "alreadi": [3, 20, 23], "also": [0, 3, 7, 14, 15, 16, 20], "alwai": 10, "among": 16, "amount": [3, 20], "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 16, 17, 20, 21, 23], "ani": [3, 6, 10, 14, 16, 20, 22, 23], "annot": [3, 14, 20, 21], "anymor": [3, 20], "anyth": [1, 21], "api": [0, 6, 18], "api_cli": [0, 3], "apicli": [0, 2, 3, 6], "app": [0, 3], "appear": 3, "append": [3, 20], "appli": [3, 7, 8, 10, 12, 16, 20, 21], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 14, 15, 19, 20, 22], "arg": [3, 12, 14, 16, 17], "arg_offset": 8, "args_preprocessor": 12, "argument": [6, 7, 8, 11, 12, 14, 16, 17, 18], "around": 6, "assign": 14, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 21], "async_rediscach": [0, 3], "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 23], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 16, 18, 20], "attr": 0, "attribut": [7, 14], "august": 0, "authent": 6, "author": [3, 10, 19, 20], "auto": 0, "auto_mod": 0, "autogener": 0, "automat": [0, 3, 20], "avail": [0, 3, 16], "avoid": [0, 3, 20], "await": [0, 3, 12, 15, 16, 18, 20], "awar": 23, "back": 0, "backtick": [3, 20], "bad": 0, "badargu": 11, "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 20, 21, 23], "basemodel": [3, 20, 21], "basic": [0, 15], "becaus": [3, 14], "becom": [3, 16], "been": 0, "befor": [0, 3, 10, 15, 16, 20, 23], "before_invok": 10, "behav": 14, "behavior": 10, "behaviour": [0, 3], "being": [0, 7, 10, 18], "below": [1, 16], "best": [3, 20], "between": [0, 1, 14], "bind": 14, "block": [0, 3, 12, 20, 22], "block_duplicate_invoc": [3, 7, 12], "bodi": 0, "boilerpl": 0, "bool": [3, 6, 9, 10, 12, 15, 16, 19, 20, 23], "bot": [0, 1, 3, 7, 9, 19], "bot_token": 1, "botbas": [0, 2, 3], "both": [1, 21], "boundari": [3, 20], "break": [0, 3, 14, 20], "broke": 0, "buckettyp": 10, "bug": 0, "bump": 0, "button": [0, 15], "buttonstyl": 15, "bypass": 10, "bypass_rol": 10, "byte": 21, "cach": [0, 3, 7, 9, 18], "calcul": 23, "call": [0, 3, 12, 14, 23], "call_without_cooldown": [7, 12], "callabl": [8, 10, 12, 14, 16, 18], "callback": [7, 10, 15], "can": [0, 1, 3, 10, 15, 16, 17, 20, 23], "cancel": [7, 23], "cancel_al": [7, 23], "cannot": [0, 3, 16, 20], "captur": [0, 14, 22], "carri": 15, "case": [0, 3, 20], "categori": [9, 10], "category_id": 9, "caus": [3, 7, 20], "certain": [0, 1], "chang": [0, 1, 3, 14, 20], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 10, 12], "channel_id": 9, "charact": [0, 3, 20], "chardet": 0, "check": [0, 3, 6, 7, 9, 12, 13, 15, 19, 23], "checkfailur": 10, "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 12, 15, 16, 17, 20, 21, 23], "classmethod": [3, 20], "classvar": [3, 20, 21], "clean": [0, 11], "clean_text_or_repli": [3, 7, 11], "clear": [2, 3, 7, 8, 16], "click": 15, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 21], "close": [0, 2, 3, 6, 23], "cloudflar": 7, "code": [0, 1, 3, 6, 16, 20, 22], "codepoint": [3, 20], "cog": [0, 3, 5], "collect": 10, "collis": 16, "com": [0, 21], "comma": 1, "command": [0, 1, 3, 7, 9, 10, 12, 14, 16, 20], "command_wrap": [3, 7, 14], "commanderror": 12, "commandoncooldown": [3, 7, 12], "commit": 0, "common": [0, 1, 3, 7, 17, 22], "commun": 4, "compos": 1, "comput": [3, 20, 21], "computedfieldinfo": [3, 20, 21], "concurr": 0, "config": [3, 20, 21], "configdict": [3, 20, 21], "configur": [1, 3, 20, 21], "conflict": 14, "conform": [3, 20, 21], "connect": [0, 3, 4], "connector": 3, "constructor": 6, "contain": [1, 3, 10, 15, 20, 21, 23], "content": [0, 3, 11, 20, 21], "context": [3, 10, 11, 16, 20], "contextcheckfailur": [3, 7, 10], "continu": [3, 20], "control": 0, "cooldown": [3, 7, 10], "cooldown_dur": 12, "cooldown_with_role_bypass": [3, 7, 10], "copi": [1, 14], "core": [0, 1], "coro": [16, 18, 23], "coroutin": [8, 16, 18, 23], "correct": [0, 1], "correspond": [3, 20, 21], "could": 18, "count": 16, "crash": 0, "creat": [0, 3, 4, 8, 12, 14, 20, 23], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 23], "creation": 0, "criteria": 0, "ctx": [3, 10, 11, 15, 20], "current": [3, 16, 20, 23], "custom": [0, 8, 17], "customlogg": [3, 7, 17], "cut": 0, "d": [1, 14], "dai": 0, "data": [3, 20, 21], "datetim": 23, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 10, 12, 14, 16], "decorator_func": 14, "decrement": 16, "default": [0, 1, 3, 10, 14, 20, 21], "defin": [3, 20, 21], "delai": 23, "delet": [0, 3, 6, 8, 15, 20, 21], "deletemessagebutton": [0, 3, 7, 15], "depend": [0, 9], "deprec": 0, "describ": 10, "detail": 14, "detect": 0, "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [3, 6, 14, 20, 21], "dictat": 0, "dictionari": [3, 20, 21], "did": 0, "directli": [0, 14], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 18, 20, 22], "discord_invit": [0, 3, 7, 22], "disnak": 0, "distinguish": 23, "django": 6, "dm": 10, "do": [0, 1, 9, 16], "doc": [0, 16], "docker": 1, "docstr": 0, "document": 0, "doe": 14, "doesn": [10, 23], "don": [0, 10, 23], "done": [3, 15, 20, 23], "due": 0, "dummi": [0, 3], "duplic": [0, 12], "durat": 10, "dynam": 0, "e": [3, 20], "each": [0, 3, 20], "edit": 3, "effort": [3, 20], "either": 3, "els": 11, "elsewher": 23, "emb": [0, 3, 20], "emit": 3, "emoji": [0, 3, 19, 20], "empti": [3, 20], "emptypaginatorembederror": [2, 3, 7, 20], "enabl": 1, "encount": 21, "end": [3, 20], "endpoint": 6, "ensur": [0, 3, 15, 22], "entir": [0, 3], "env": 1, "environ": 1, "equival": 6, "error": [0, 3, 6, 7, 13, 18, 21], "error_handl": [3, 7], "etc": [1, 10], "evalu": 14, "even": 19, "event": [0, 3, 4, 16, 23], "event_loop": 23, "everi": [3, 20], "exact": 1, "exampl": [3, 20], "exc_info": 17, "exce": [3, 8, 20], "exceed": [3, 20], "except": [3, 6, 10, 12, 14, 16, 17, 20, 21, 23], "exception_on_empty_emb": [3, 20], "excess": [3, 20], "exclus": 16, "execut": [16, 23], "exist": [0, 1, 23], "exit": 16, "expect": 18, "expiri": 0, "explain": 0, "expos": 16, "express": 22, "ext": [0, 2, 3, 7, 9, 10, 11, 20], "extend": 0, "extens": [0, 3], "extra": 6, "facilit": 0, "fail": [9, 10, 21], "fail_sil": 10, "failur": 18, "fals": [3, 10, 12, 16, 20, 21], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 18], "few": 1, "field": [3, 20, 21], "fieldinfo": [3, 20, 21], "fifo": 8, "file": [0, 1, 21], "filter": 0, "finish": [3, 16, 20], "first": [3, 20], "five": [3, 20], "fix": 0, "float": [10, 12, 15, 23], "folder": 1, "footer": [3, 20], "footer_text": [3, 20], "forbidden": [0, 9, 13], "format": [21, 22], "formatt": 17, "formatted_code_regex": [3, 7, 22], "forum": 0, "forwardref": 14, "found": [14, 18, 23], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 14, 15, 18, 20, 21, 23], "frozenset": 14, "func": [14, 16], "function": [0, 3, 7, 8, 9, 12, 16, 17, 18, 20, 23], "functool": 14, "futur": [10, 23], "g": [3, 20], "gatewai": 3, "gener": [0, 3, 12, 23], "get": [0, 3, 6, 9, 14, 18], "get_arg_valu": [3, 7, 14], "get_arg_value_wrapp": [3, 7, 14], "get_bound_arg": [3, 7, 14], "get_logg": [3, 7, 17], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 18], "git": 1, "give": 3, "given": [0, 3, 4, 7, 9, 11, 14, 16, 17, 18, 23], "global": 14, "globalnameconflicterror": [3, 7, 14], "go": [1, 3, 16, 20], "greater": 21, "groundwork": 1, "group": [7, 22], "guild": [0, 1, 3, 10, 18], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 3], "guildchannel": 9, "ha": [0, 7, 10, 15], "handl": [0, 13, 18, 23], "handle_forbidden_from_block": [3, 7, 13], "handle_role_chang": [0, 3, 7, 18], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "hashabl": [16, 23], "have": [0, 9, 10, 14, 17], "heavi": 7, "help": [0, 1], "helper": [0, 9, 12, 18], "hold": [3, 16, 20], "holder": 16, "hook": 0, "host": 4, "houston": 17, "how": [0, 8, 10, 14, 23], "howev": 1, "http": [0, 6, 21, 22], "http_session": [3, 21], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "icon": [3, 20], "icon_url": [3, 20], "id": [1, 3, 7, 9, 10, 15, 16, 20, 23], "identifi": [16, 23], "ignor": [1, 7, 14, 19], "ignored_conflict_nam": 14, "immedi": 23, "implement": [3, 4, 8, 15, 17], "import": 0, "in_whitelist": 10, "in_whitelist_check": [3, 7, 10], "inadequ": 3, "includ": [0, 1, 13], "incorrect": 0, "increment": 16, "index": 2, "indic": [3, 18, 20], "individu": 3, "info": [0, 1], "inform": [2, 16, 17], "init": [0, 3, 4], "initi": [6, 23], "initialis": [3, 8], "input": 15, "insert": [3, 20], "insid": [3, 20], "instal": 1, "instanc": [0, 3, 6, 8, 9, 10, 17, 23], "instanti": [3, 15, 23], "instead": [3, 12, 23], "int": [3, 4, 8, 9, 10, 14, 15, 20, 21, 23], "intend": 18, "intent": 1, "interact": [0, 3, 7, 9, 20], "interactin": 18, "interaction_check": [7, 15], "interest": 17, "intern": [3, 7, 16], "intersphinx": 0, "introduc": 10, "invalid": 9, "invaliddata": 9, "invit": [0, 22], "invoc": [0, 12], "invok": [1, 10, 12, 15], "inwhitelistcheckfailur": [3, 7, 10], "is_in_categori": [3, 7, 9], "isn": [13, 14], "issu": 10, "item": 8, "iter": [10, 12], "its": [0, 3, 12, 14], "itself": 15, "januari": 0, "json": 6, "juli": 0, "june": 0, "keep": [3, 20, 23], "kei": 8, "keyword": [6, 7, 14, 17], "known": 23, "kwarg": [3, 6, 12, 14, 15, 17, 23], "label": [0, 15], "lancebot": 1, "larg": 21, "larger": 21, "last": [3, 10, 15, 20], "latest": 0, "lead": 0, "least": 10, "left": [3, 20], "length": [3, 12, 20], "level": [0, 7, 17], "lexer": [0, 21], "librari": [0, 1], "like": [1, 14], "limit": [3, 20], "line": [3, 20], "linepagin": [0, 2, 3, 7, 20], "linesep": [3, 20], "link": 21, "lint": 0, "list": [0, 1, 3, 15, 20, 21], "listen": 15, "ll": [1, 23], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "lock": [0, 3, 7], "lock_arg": [3, 7, 16], "lockedresourceerror": [3, 7, 16], "log": [0, 3, 7, 13, 18, 23], "log_format": [0, 3, 7, 17], "log_to_dev_log": [2, 3], "logger": [0, 17], "logic": 0, "long": [10, 21, 23], "longer": [0, 15], "look": [14, 23], "loop": [4, 23], "lot": 0, "lru": 8, "m": 1, "machin": 1, "made": [0, 19], "mai": [0, 3, 8, 16, 20], "main": 0, "make": [0, 1, 3, 17, 20], "manag": 16, "mani": [0, 3, 8], "manipul": [0, 14], "manual": 3, "map": [3, 14, 16, 20, 21], "march": 0, "mark": 0, "match": [0, 3, 14], "max": 21, "max_length": 21, "max_lin": [3, 20], "max_paste_s": [3, 7, 21], "max_siz": [3, 8, 20, 21], "maximum": [3, 8, 20, 21], "maybe_raise_for_statu": [3, 6], "mean": 1, "member": [0, 3, 7, 15], "member_id": 18, "mention": [1, 3], "messag": [0, 3, 7, 11, 12, 13, 15, 17, 20, 23], "message_id": 19, "message_typ": 0, "metadata": [3, 20, 21], "method": [0, 4, 6, 7, 17], "might": [1, 10], "migrat": 0, "minut": [3, 20], "miss": 0, "mod": 0, "model": [3, 20, 21], "model_computed_field": [2, 3, 7, 20, 21], "model_config": [2, 3, 7, 20, 21], "model_field": [2, 3, 7, 20, 21], "moder": [3, 15, 19, 20], "modifi": [1, 18], "modul": [0, 3, 7, 14, 23], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [1, 3, 14, 16, 20], "most": 1, "move": 0, "msg": 17, "multipl": 0, "multivers": 0, "must": [0, 14, 16, 23], "mutual": 16, "mypi": 17, "n": [3, 20], "name": [3, 7, 14, 16, 17, 20, 21, 23], "name_or_po": [14, 16], "namespac": [0, 16, 23], "navig": [0, 1, 3, 20], "na\u00efv": 23, "need": [0, 1, 3, 20], "new": [0, 1, 3, 4, 6, 8, 14, 20, 23], "newer": 0, "newli": 0, "next": [3, 20], "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23], "normal": 3, "notabl": 0, "note": 10, "notfound": 9, "notic": 0, "notifi": 12, "novemb": 0, "now": [0, 1, 23], "number": [0, 3, 10, 20, 21], "object": [3, 6, 7, 8, 9, 12, 16, 18, 20, 21, 23], "occur": 15, "octob": 0, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 15], "onc": [0, 8], "one": [0, 3, 10, 20], "ones": 1, "onli": [0, 3], "onto": [3, 20], "oper": [3, 16, 20, 23], "option": [0, 8, 14, 16], "order": [3, 8, 14, 16, 20, 23], "ordereddict": [14, 16], "origin": 15, "other": [0, 1, 16, 23], "otherwis": [10, 16, 23], "our": [0, 1, 7], "out": [0, 1, 15], "output": 22, "over": [0, 3, 20], "overflow": [3, 20], "overrid": [3, 20], "overwrit": [0, 3], "own": [0, 14], "p": [3, 7, 12], "packag": [0, 7], "page": [2, 3, 20], "pagin": [0, 2, 3, 7], "pagination_emoji": [3, 20], "paginationemoji": [2, 3, 7, 20], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 23], "paramspec": [12, 14], "parent": [0, 15], "pars": 22, "pass": [0, 6, 14, 17, 18, 23], "past": [0, 21, 23], "paste_servic": [0, 3, 7], "paste_url": 21, "pastebin": 0, "pastefil": [0, 3, 7, 21], "pasterespons": [3, 7, 21], "pastetoolongerror": [3, 7, 21], "pasteunsupportedlexererror": [3, 7, 21], "pasteuploaderror": [3, 7, 21], "patch": [0, 3, 6, 7], "path": 1, "pattern": 22, "per": [3, 10, 20], "perform": 16, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "place": [3, 20], "pleas": 22, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": [8, 14, 16], "possibl": 1, "post": [3, 6, 21], "pre": 1, "predic": 0, "prefix": [1, 3, 4, 20], "prematur": 23, "press": 0, "prevent": [12, 16, 23], "previous": 0, "privatechannel": [0, 9], "problem": [10, 17], "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 17], "provid": [0, 1, 3, 8, 11, 13, 20, 23], "public": 0, "publish": 0, "purpos": 18, "push": 0, "put": [3, 6], "py": [0, 3, 14], "pydant": [3, 20, 21], "pydi": [0, 2], "pydis_cor": [0, 1, 3, 15, 17], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 21, 23], "pythondiscord": [0, 21], "qualifi": 7, "quot": 22, "r": [3, 7, 12], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 16, 18, 20, 21, 23], "raise_error": 16, "raise_for_statu": 6, "rate": 10, "rather": 7, "raw": [12, 22], "raw_code_regex": [3, 7, 22], "rc2": 0, "re": [1, 3, 13, 19, 23], "reach": 16, "reaction": [0, 3, 19, 20], "reaction_check": [0, 3, 7, 19], "read": 0, "readi": 3, "real": 0, "reason": [3, 20], "receiv": [0, 6, 9], "recognis": 17, "reconnect": 0, "redi": 0, "redirect": 10, "redirect_channel": 10, "redis_sess": 3, "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 14, "regex": [0, 3, 7], "regular": 22, "reinstal": 1, "reject": 21, "relat": [8, 17], "releas": 0, "relev": 3, "remain": [3, 20], "remov": [0, 3, 15, 19, 20, 21], "remove_command": [2, 3], "remove_rol": 18, "renam": 0, "replac": [3, 10, 14, 20, 21], "repli": [3, 11, 12, 13, 20], "repo": 0, "represent": 6, "request": [0, 3, 6, 22], "requir": [1, 3, 20, 21, 23], "resolut": 0, "resolv": [3, 14], "resourc": 16, "resource_id": 16, "resource_typ": 16, "respons": [0, 6, 21], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "restrict": [3, 20], "restrict_to_us": [3, 20], "result": [0, 23], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "reusabl": 5, "revert": 0, "right": [0, 3, 20], "role": [0, 1, 3, 10, 15, 18, 19, 20], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "run": [0, 1, 12, 16, 23], "runtimeerror": 16, "safe": 0, "same": [12, 23], "sampl": 0, "sanitis": 22, "save": [0, 3, 21], "scale": [3, 20], "scale_to_s": [3, 20], "schedul": [0, 3, 7], "schedule_at": [7, 23], "schedule_lat": [7, 23], "search": 2, "second": [3, 10, 12, 15, 20, 23], "secondari": 15, "see": [1, 14, 15, 16], "self": [0, 3, 15], "send": [0, 3, 6, 15, 20], "send_notic": 12, "send_to_paste_servic": [0, 3, 7, 21], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [3, 7, 14, 15, 20], "serv": [3, 20], "server": [3, 22], "servic": [0, 1, 3, 21], "session": [0, 3, 6, 21], "session_kwarg": 6, "set": [0, 1, 3, 12, 14, 15, 16, 20], "set_author": [3, 20], "setup": [0, 3], "setup_hook": [2, 3], "sever": 17, "share": [0, 14], "sharedev": [3, 7, 16], "should": [0, 1, 3, 6, 15, 20, 21], "should_rais": 6, "signatur": 12, "silent": 10, "similar": [15, 22], "sinc": 10, "singl": [0, 3, 20], "sir": 1, "site": [0, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [3, 8, 20, 21], "so": [0, 1, 7], "socket": 4, "sole": 18, "some": [0, 3, 20, 21], "someth": 22, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "specif": [0, 10], "specifi": [0, 10, 12, 15], "sphinx": 0, "stabl": 0, "standardis": [0, 17], "start": [0, 3, 23], "startup": 3, "startuperror": [2, 3], "stat": [0, 4], "state": 14, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 3], "step": 1, "still": [3, 20], "stop": [0, 7, 15], "store": [0, 3, 7, 8, 20], "str": [3, 4, 6, 7, 10, 11, 14, 15, 16, 17, 20, 21, 23], "string": [0, 6], "style": 15, "sub": [0, 3], "submodul": 2, "subpackag": 2, "subtract": 23, "success": [0, 21], "suffix": [3, 20], "suggest": 23, "support": [0, 4, 7, 23], "suppressed_except": 23, "sure": 1, "switch": [3, 20], "sync": [0, 3], "sync_app_command": 3, "system": [0, 1], "t": [0, 10, 11, 13, 14, 16, 23], "target": 8, "task": [0, 23], "task_id": 23, "task_return": 23, "templat": 1, "test": 2, "text": [0, 3, 6, 11, 20, 21], "textchannel": 9, "than": [7, 21], "thei": [3, 14, 19], "them": [1, 3, 14, 23], "thi": [0, 1, 3, 7, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 23], "thread": [0, 9], "three": [3, 20], "through": 16, "thrown": 7, "thu": 3, "tild": 0, "time": [0, 10, 23], "timeout": [0, 3, 15, 20], "timezon": 23, "token": [1, 6], "toml": [0, 1], "too": 21, "tool": [3, 7], "top": 7, "total": [3, 20], "trace": [0, 7, 17], "track": 23, "transport": 4, "trashcan": [3, 20], "trigger": 10, "true": [3, 6, 10, 12, 16, 17, 19, 20, 21, 23], "truncat": [3, 20], "tupl": [14, 23], "turn": 16, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23], "typeerror": [10, 14], "typehint": 14, "typevar": [12, 14, 23], "u": [0, 3, 20], "ui": 15, "unavail": 3, "unawait": 23, "under": 7, "underli": 16, "union": 10, "uniqu": 23, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 23, "unsupport": 21, "unti": [3, 20], "until": [0, 3, 16, 22], "up": [0, 1, 3, 20], "updat": [0, 14], "update_wrapper_glob": [3, 7, 14], "upload": [0, 21], "upon": 0, "url": [0, 3, 6, 20, 21], "urllib": 22, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 14, 16, 17, 18, 20, 21, 22, 23], "user": [0, 3, 10, 12, 15, 19, 20], "user_has_access": [0, 3, 7, 15], "utc": 23, "util": [0, 1, 2, 3, 8, 14, 15, 17], "v1": [0, 3, 20, 21], "valid": 0, "valu": [12, 14, 16, 17], "valueerror": [6, 14, 21], "vari": 1, "variabl": 1, "variou": [0, 9], "verifi": 10, "version": [0, 11], "view": [0, 15], "viewwithuserandrolecheck": [0, 3, 7, 15], "wa": [0, 9, 10, 23], "wait": [0, 3, 7, 16, 23], "wait_until_guild_avail": [2, 3], "want": 1, "warn": [0, 23], "wasn": 11, "we": [17, 18], "websocket": 0, "what": 1, "when": [0, 3, 4, 6, 7, 8, 10, 12, 14, 16, 20, 21, 23], "where": 10, "whether": [0, 3, 6, 9, 10, 15, 20], "which": [0, 1, 3, 7, 10, 12, 14, 16, 20, 23], "while": [3, 12, 16, 20], "whitelist": 10, "whitespac": [0, 22], "who": 15, "whom": [3, 20], "within": [0, 3], "without": [0, 10], "won": 14, "word": [3, 20], "work": [0, 1], "worker": 7, "workflow": 0, "would": [3, 20], "wrap": [8, 14, 23], "wrapper": [0, 6, 12, 14, 23], "write": 1, "wrong": 0, "www": 0, "you": [1, 9, 22], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "check": 10, "command": 11, "cooldown": 12, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 13, "ext": 5, "extra": 2, "function": 14, "interact": 15, "local": 1, "lock": 16, "log": 17, "member": 18, "messag": 19, "modul": 2, "option": 1, "pagin": 20, "paste_servic": 21, "project": 2, "pydi": 3, "refer": 2, "regex": 22, "schedul": 23, "site_api": 6, "submodul": [3, 7], "subpackag": 3, "test": 1, "util": 7}}) \ No newline at end of file diff --git a/v10.7.0/versions.html b/v10.7.0/versions.html index 599dbde8..8e3668e1 100644 --- a/v10.7.0/versions.html +++ b/v10.7.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v10.7.0 - + @@ -596,7 +596,7 @@ - + diff --git a/v11.0.0/.buildinfo b/v11.0.0/.buildinfo index fa1f0720..a915eec5 100644 --- a/v11.0.0/.buildinfo +++ b/v11.0.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: 78816a9681cf26bc67423a39386de0b1 +config: 4e24c01bd9f0dd7f201c81c5bd94a4a3 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v11.0.0/_static/basic.css b/v11.0.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v11.0.0/_static/basic.css +++ b/v11.0.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/v11.0.0/_static/doctools.js b/v11.0.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v11.0.0/_static/doctools.js +++ b/v11.0.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/v11.0.0/_static/language_data.js b/v11.0.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v11.0.0/_static/language_data.js +++ b/v11.0.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/v11.0.0/_static/searchtools.js b/v11.0.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v11.0.0/_static/searchtools.js +++ b/v11.0.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/v11.0.0/changelog.html b/v11.0.0/changelog.html index c41f106e..51a82670 100644 --- a/v11.0.0/changelog.html +++ b/v11.0.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v11.0.0 - + @@ -390,7 +390,7 @@
                                                                                  -

                                                                                  Changelog#

                                                                                  +

                                                                                  Changelog

                                                                                  11.0.0 18th March 2024

                                                                                  • [Breaking] #207: Enable more ruff linting rules. See GitHub release notes for breaking changes.

                                                                                  • @@ -801,7 +801,7 @@ - + diff --git a/v11.0.0/development.html b/v11.0.0/development.html index 51c8ac23..6a8d2ebc 100644 --- a/v11.0.0/development.html +++ b/v11.0.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v11.0.0 - + @@ -390,7 +390,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. @@ -402,7 +402,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

                                                                                        @@ -418,7 +418,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. @@ -518,7 +518,7 @@ to help you test out certain features. Use them as needed.

                                                                                        - + diff --git a/v11.0.0/genindex.html b/v11.0.0/genindex.html index 4111f2ec..cc818b96 100644 --- a/v11.0.0/genindex.html +++ b/v11.0.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v11.0.0 + Index - Pydis Core v11.0.0 - + @@ -1143,7 +1143,7 @@ - + diff --git a/v11.0.0/index.html b/v11.0.0/index.html index bba443c4..365817cf 100644 --- a/v11.0.0/index.html +++ b/v11.0.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v11.0.0 - + @@ -390,10 +390,10 @@
                                                                                        -

                                                                                        Bot Core Project Documentation#

                                                                                        +

                                                                                        Bot Core Project Documentation

                                                                                        -

                                                                                        Reference#

                                                                                        +

                                                                                        Reference

                                                                                        Modules:

                                                                                          @@ -471,7 +471,7 @@
                                                                                        -

                                                                                        Extras#

                                                                                        +

                                                                                        Extras

                                                                                        • Index

                                                                                        • Search Page

                                                                                        • @@ -521,7 +521,7 @@ - + diff --git a/v11.0.0/index_redirect.html b/v11.0.0/index_redirect.html index 0c8c6de0..5822ff4c 100644 --- a/v11.0.0/index_redirect.html +++ b/v11.0.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v11.0.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v11.0.0/output/pydis_core.async_stats.html b/v11.0.0/output/pydis_core.async_stats.html index 8bea164c..bf8eb8e3 100644 --- a/v11.0.0/output/pydis_core.async_stats.html +++ b/v11.0.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v11.0.0 - + @@ -390,16 +390,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:
                                                                                          @@ -416,7 +416,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:
                                                                                          @@ -502,7 +502,7 @@ - + diff --git a/v11.0.0/output/pydis_core.exts.html b/v11.0.0/output/pydis_core.exts.html index c1d839d3..ac13d06d 100644 --- a/v11.0.0/output/pydis_core.exts.html +++ b/v11.0.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v11.0.0 - + @@ -390,7 +390,7 @@
                                                                                          -

                                                                                          Exts#

                                                                                          +

                                                                                          Exts

                                                                                          Reusable Discord cogs.

                                                                                          @@ -444,7 +444,7 @@ - + diff --git a/v11.0.0/output/pydis_core.html b/v11.0.0/output/pydis_core.html index 0d443afb..1c95cfcf 100644 --- a/v11.0.0/output/pydis_core.html +++ b/v11.0.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v11.0.0 - + @@ -390,16 +390,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.

                                                                                          -guild_id[source]#
                                                                                          +guild_id[source]

                                                                                          ID of the guild that the bot belongs to.

                                                                                          Type:
                                                                                          @@ -410,7 +410,7 @@
                                                                                          -http_session[source]#
                                                                                          +http_session[source]

                                                                                          The http session used for sending out HTTP requests.

                                                                                          Type:
                                                                                          @@ -421,7 +421,7 @@
                                                                                          -api_client[source]#
                                                                                          +api_client[source]

                                                                                          The API client used for communications with the site service.

                                                                                          Type:
                                                                                          @@ -432,7 +432,7 @@
                                                                                          -statsd_url[source]#
                                                                                          +statsd_url[source]

                                                                                          The url that statsd sends metrics to.

                                                                                          Type:
                                                                                          @@ -443,7 +443,7 @@
                                                                                          -redis_session[source]#
                                                                                          +redis_session[source]

                                                                                          The redis session used to communicate with the Redis instance.

                                                                                          Type:
                                                                                          @@ -454,7 +454,7 @@
                                                                                          -stats[source]#
                                                                                          +stats[source]

                                                                                          The statsd client that sends metrics.

                                                                                          Type:
                                                                                          @@ -465,7 +465,7 @@
                                                                                          -all_extensions[source]#
                                                                                          +all_extensions[source]

                                                                                          All extensions that were found within the module passed to self.load_extensions. Use self.extensions to get the loaded extensions.

                                                                                          @@ -477,7 +477,7 @@
                                                                                          -__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:
                                                                                          @@ -496,7 +496,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:
                                                                                          @@ -507,7 +507,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:
                                                                                          @@ -518,7 +518,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:
                                                                                          @@ -529,7 +529,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:
                                                                                          @@ -540,7 +540,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:
                                                                                          @@ -554,7 +554,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:
                                                                                          @@ -565,7 +565,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.

                                                                                          @@ -578,7 +578,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:
                                                                                          @@ -589,7 +589,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:
                                                                                          @@ -600,7 +600,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.

                                                                                          @@ -612,7 +612,7 @@ will not be set and guild_available_but_cache_empty event will be e
                                                                                          -register_command_error_manager(manager)[source]#
                                                                                          +register_command_error_manager(manager)[source]

                                                                                          Bind an instance of the command error manager to both the bot and the command tree.

                                                                                          The reason this doesn’t happen in the constructor is because error handlers might need an instance of the bot. So registration needs to happen once the bot instance has been created.

                                                                                          @@ -625,7 +625,7 @@ So registration needs to happen once the bot instance has been created.

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

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

                                                                                          @@ -667,14 +667,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                                          Bases: Exception

                                                                                          Raised when attempting to paginate with empty contents.

                                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                          Bases: Paginator

                                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                                          @@ -691,14 +691,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                          -add_line(line='', *, empty=False)[source]#
                                                                                          +add_line(line='', *, empty=False)[source]

                                                                                          Adds a line to the current page.

                                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -726,7 +726,7 @@ page at a reasonable size.

                                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -770,24 +770,24 @@ to any user with a moderation role.

                                                                                          -class PaginationEmojis(**data)[source]#
                                                                                          +class PaginationEmojis(**data)[source]

                                                                                          Bases: BaseModel

                                                                                          The emojis that will be used for pagination.

                                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                          @@ -797,18 +797,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                          -exception StartupError(base)[source]#
                                                                                          +exception StartupError(base)[source]

                                                                                          Bases: Exception

                                                                                          Exception class for startup errors.

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

                                                                                          Subpackages#

                                                                                          +

                                                                                          Subpackages

                                                                                          • Exts
                                                                                          • @@ -925,7 +925,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                          -

                                                                                          Submodules#

                                                                                          +

                                                                                          Submodules

                                                                                          • async_stats
                                                                                              @@ -1073,7 +1073,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                          - + diff --git a/v11.0.0/output/pydis_core.site_api.html b/v11.0.0/output/pydis_core.site_api.html index 27596df5..d3c3fd02 100644 --- a/v11.0.0/output/pydis_core.site_api.html +++ b/v11.0.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v11.0.0 - + @@ -390,16 +390,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:
                                                                                          @@ -414,7 +414,7 @@
                                                                                          -async close()[source]#
                                                                                          +async close()[source]

                                                                                          Close the aiohttp session.

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

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

                                                                                          Return type:
                                                                                          @@ -436,7 +436,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:
                                                                                          @@ -447,7 +447,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:
                                                                                          @@ -467,7 +467,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:
                                                                                          @@ -478,7 +478,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:
                                                                                          @@ -489,7 +489,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:
                                                                                          @@ -500,7 +500,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:
                                                                                          @@ -527,12 +527,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:
                                                                                          @@ -547,7 +547,7 @@
                                                                                          -__str__()[source]#
                                                                                          +__str__()[source]

                                                                                          Return a string representation of the error.

                                                                                          @@ -640,7 +640,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.caching.html b/v11.0.0/output/pydis_core.utils.caching.html index ceb7aa21..6c0b3be2 100644 --- a/v11.0.0/output/pydis_core.utils.caching.html +++ b/v11.0.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v11.0.0 - + @@ -390,18 +390,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:
                                                                                          @@ -418,7 +418,7 @@
                                                                                          -__init__(max_size=128)[source]#
                                                                                          +__init__(max_size=128)[source]

                                                                                          Initialise a new AsyncCache instance.

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

                                                                                          Clear cache instance.

                                                                                          Return type:
                                                                                          @@ -516,7 +516,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.channel.html b/v11.0.0/output/pydis_core.utils.channel.html index b5c5435a..2b549521 100644 --- a/v11.0.0/output/pydis_core.utils.channel.html +++ b/v11.0.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v11.0.0 - + @@ -390,11 +390,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:
                                                                                          @@ -422,7 +422,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:
                                                                                          @@ -512,7 +512,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.checks.html b/v11.0.0/output/pydis_core.utils.checks.html index 79fcc8ca..71b9f31f 100644 --- a/v11.0.0/output/pydis_core.utils.checks.html +++ b/v11.0.0/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core v11.0.0 - + @@ -390,29 +390,29 @@
                                                                                          -

                                                                                          checks#

                                                                                          +

                                                                                          checks

                                                                                          -exception ContextCheckFailure(redirect_channel)[source]#
                                                                                          +exception ContextCheckFailure(redirect_channel)[source]

                                                                                          Bases: CheckFailure

                                                                                          Raised when a context-specific check fails.

                                                                                          -__init__(redirect_channel)[source]#
                                                                                          +__init__(redirect_channel)[source]
                                                                                          -exception InWhitelistCheckFailure(redirect_channel)[source]#
                                                                                          +exception InWhitelistCheckFailure(redirect_channel)[source]

                                                                                          Bases: ContextCheckFailure

                                                                                          Raised when the in_whitelist check fails.

                                                                                          -cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]#
                                                                                          +cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]

                                                                                          Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

                                                                                          Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

                                                                                          @@ -438,7 +438,7 @@
                                                                                          -async has_any_role_check(ctx, *roles)[source]#
                                                                                          +async has_any_role_check(ctx, *roles)[source]

                                                                                          Verify if the context’s author has any of the specified roles.

                                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                          @@ -459,7 +459,7 @@
                                                                                          -async has_no_roles_check(ctx, *roles)[source]#
                                                                                          +async has_no_roles_check(ctx, *roles)[source]

                                                                                          Verify if the context’s author doesn’t have any of the specified roles.

                                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                          @@ -480,7 +480,7 @@
                                                                                          -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]#
                                                                                          +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]

                                                                                          Check if a command was issued in a context that is whitelisted by channel, category, or roles.

                                                                                          Parameters:
                                                                                          @@ -584,7 +584,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.commands.html b/v11.0.0/output/pydis_core.utils.commands.html index e73ce5d6..b845a06a 100644 --- a/v11.0.0/output/pydis_core.utils.commands.html +++ b/v11.0.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v11.0.0 - + @@ -390,10 +390,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:
                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.cooldown.html b/v11.0.0/output/pydis_core.utils.cooldown.html index 4cf852c3..461536b2 100644 --- a/v11.0.0/output/pydis_core.utils.cooldown.html +++ b/v11.0.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v11.0.0 - + @@ -390,21 +390,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:
                                                                                          @@ -420,20 +420,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:
                                                                                          @@ -535,7 +535,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v11.0.0/output/pydis_core.utils.error_handling.commands.abc.html b/v11.0.0/output/pydis_core.utils.error_handling.commands.abc.html index f8a01481..0514ad36 100644 --- a/v11.0.0/output/pydis_core.utils.error_handling.commands.abc.html +++ b/v11.0.0/output/pydis_core.utils.error_handling.commands.abc.html @@ -5,14 +5,14 @@ - + abc - Pydis Core v11.0.0 - + @@ -390,15 +390,15 @@
                                                                                          -

                                                                                          abc#

                                                                                          +

                                                                                          abc

                                                                                          -class AbstractCommandErrorHandler[source]#
                                                                                          +class AbstractCommandErrorHandler[source]

                                                                                          Bases: ABC

                                                                                          An abstract command error handler.

                                                                                          -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                          +abstract async handle_app_command_error(interaction, error)[source]

                                                                                          Handle error raised in the context of app commands.

                                                                                          Return type:
                                                                                          @@ -409,7 +409,7 @@
                                                                                          -abstract async handle_text_command_error(context, error)[source]#
                                                                                          +abstract async handle_text_command_error(context, error)[source]

                                                                                          Handle error raised in the context of text commands.

                                                                                          Return type:
                                                                                          @@ -420,7 +420,7 @@
                                                                                          -abstract async should_handle_error(error)[source]#
                                                                                          +abstract async should_handle_error(error)[source]

                                                                                          A predicate that determines whether the error should be handled.

                                                                                          Return type:
                                                                                          @@ -507,7 +507,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.error_handling.commands.html b/v11.0.0/output/pydis_core.utils.error_handling.commands.html index f76d4543..40fa5834 100644 --- a/v11.0.0/output/pydis_core.utils.error_handling.commands.html +++ b/v11.0.0/output/pydis_core.utils.error_handling.commands.html @@ -5,14 +5,14 @@ - + commands package - Pydis Core v11.0.0 - + @@ -390,15 +390,15 @@
                                                                                          -

                                                                                          commands package#

                                                                                          +

                                                                                          commands package

                                                                                          -class AbstractCommandErrorHandler[source]#
                                                                                          +class AbstractCommandErrorHandler[source]

                                                                                          Bases: ABC

                                                                                          An abstract command error handler.

                                                                                          -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                          +abstract async handle_app_command_error(interaction, error)[source]

                                                                                          Handle error raised in the context of app commands.

                                                                                          Return type:
                                                                                          @@ -409,7 +409,7 @@
                                                                                          -abstract async handle_text_command_error(context, error)[source]#
                                                                                          +abstract async handle_text_command_error(context, error)[source]

                                                                                          Handle error raised in the context of text commands.

                                                                                          Return type:
                                                                                          @@ -420,7 +420,7 @@
                                                                                          -abstract async should_handle_error(error)[source]#
                                                                                          +abstract async should_handle_error(error)[source]

                                                                                          A predicate that determines whether the error should be handled.

                                                                                          Return type:
                                                                                          @@ -433,17 +433,17 @@
                                                                                          -class CommandErrorManager(default)[source]#
                                                                                          +class CommandErrorManager(default)[source]

                                                                                          Bases: object

                                                                                          A class that registers error handlers and handles all command related errors.

                                                                                          -__init__(default)[source]#
                                                                                          +__init__(default)[source]
                                                                                          -async handle_error(error, context_or_interaction)[source]#
                                                                                          +async handle_error(error, context_or_interaction)[source]

                                                                                          Handle a Discord exception.

                                                                                          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                          @@ -456,7 +456,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                          -register_handler(handler)[source]#
                                                                                          +register_handler(handler)[source]

                                                                                          Register a command error handler.

                                                                                          Return type:
                                                                                          @@ -468,7 +468,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                          -

                                                                                          Submodules#

                                                                                          +

                                                                                          Submodules

                                                                                          • abc
                                                                                              @@ -575,7 +575,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.error_handling.commands.manager.html b/v11.0.0/output/pydis_core.utils.error_handling.commands.manager.html index 91358c5c..fb539b7d 100644 --- a/v11.0.0/output/pydis_core.utils.error_handling.commands.manager.html +++ b/v11.0.0/output/pydis_core.utils.error_handling.commands.manager.html @@ -5,14 +5,14 @@ - + manager - Pydis Core v11.0.0 - + @@ -390,20 +390,20 @@
                                                                                          -

                                                                                          manager#

                                                                                          +

                                                                                          manager

                                                                                          -class CommandErrorManager(default)[source]#
                                                                                          +class CommandErrorManager(default)[source]

                                                                                          Bases: object

                                                                                          A class that registers error handlers and handles all command related errors.

                                                                                          -__init__(default)[source]#
                                                                                          +__init__(default)[source]
                                                                                          -async handle_error(error, context_or_interaction)[source]#
                                                                                          +async handle_error(error, context_or_interaction)[source]

                                                                                          Handle a Discord exception.

                                                                                          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                          @@ -416,7 +416,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                          -register_handler(handler)[source]#
                                                                                          +register_handler(handler)[source]

                                                                                          Register a command error handler.

                                                                                          Return type:
                                                                                          @@ -503,7 +503,7 @@ the error as determined by should_handle_error; there is no priorit - + diff --git a/v11.0.0/output/pydis_core.utils.error_handling.html b/v11.0.0/output/pydis_core.utils.error_handling.html index dad28234..25bf2906 100644 --- a/v11.0.0/output/pydis_core.utils.error_handling.html +++ b/v11.0.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling package - Pydis Core v11.0.0 - + @@ -390,10 +390,10 @@
                                                                                          -

                                                                                          error_handling package#

                                                                                          +

                                                                                          error_handling package

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

                                                                                          Subpackages#

                                                                                          +

                                                                                          Subpackages

                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.function.html b/v11.0.0/output/pydis_core.utils.function.html index e662104f..e3615433 100644 --- a/v11.0.0/output/pydis_core.utils.function.html +++ b/v11.0.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v11.0.0 - + @@ -390,18 +390,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.

                                                                                          @@ -425,7 +425,7 @@ with the wrapper replaced with the function
                                                                                          -get_arg_value(name_or_pos, arguments)[source]#
                                                                                          +get_arg_value(name_or_pos, arguments)[source]

                                                                                          Return a value from arguments based on a name or position.

                                                                                          Parameters:
                                                                                          @@ -448,7 +448,7 @@ with the wrapper replaced with the function
                                                                                          -get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
                                                                                          +get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]

                                                                                          Call decorator_func with the value of the arg at the given name/position.

                                                                                          Parameters:
                                                                                          @@ -470,7 +470,7 @@ parameter names to argument values of the function it’s decorating.

                                                                                          -get_bound_args(func, args, kwargs)[source]#
                                                                                          +get_bound_args(func, args, kwargs)[source]

                                                                                          Bind args and kwargs to func and return a mapping of parameter names to argument values.

                                                                                          Default parameter values are also set.

                                                                                          @@ -492,7 +492,7 @@ parameter names to argument values of the function it’s decorating.

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

                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.html b/v11.0.0/output/pydis_core.utils.html index 40d3b8c3..331f7be5 100644 --- a/v11.0.0/output/pydis_core.utils.html +++ b/v11.0.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v11.0.0 - + @@ -390,11 +390,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:
                                                                                          @@ -413,7 +413,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:
                                                                                          @@ -429,7 +429,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                          -

                                                                                          Subpackages#

                                                                                          +

                                                                                          Subpackages

                                                                                          • error_handling package
                                                                                              @@ -449,7 +449,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                          -

                                                                                          Submodules#

                                                                                          +

                                                                                          Submodules

                                                                                          • caching
                                                                                              @@ -687,7 +687,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.interactions.html b/v11.0.0/output/pydis_core.utils.interactions.html index 309a8284..147a5125 100644 --- a/v11.0.0/output/pydis_core.utils.interactions.html +++ b/v11.0.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v11.0.0 - + @@ -390,10 +390,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.

                                                                                          @@ -408,12 +408,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:
                                                                                          @@ -426,7 +426,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.

                                                                                          @@ -443,12 +443,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:
                                                                                          @@ -462,7 +462,7 @@ If None
                                                                                          -async on_timeout()[source]#
                                                                                          +async on_timeout()[source]

                                                                                          Remove the view from self.message if set.

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

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

                                                                                          Return type:
                                                                                          @@ -486,7 +486,7 @@ If None
                                                                                          -user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
                                                                                          +user_has_access(user, *, allowed_users=(), allowed_roles=())[source]

                                                                                          Return whether the user is in the allowed_users list, or has a role from allowed_roles.

                                                                                          Parameters:
                                                                                          @@ -585,7 +585,7 @@ If None - + diff --git a/v11.0.0/output/pydis_core.utils.lock.html b/v11.0.0/output/pydis_core.utils.lock.html index 001d237f..adc01f69 100644 --- a/v11.0.0/output/pydis_core.utils.lock.html +++ b/v11.0.0/output/pydis_core.utils.lock.html @@ -5,14 +5,14 @@ - + lock - Pydis Core v11.0.0 - + @@ -390,15 +390,15 @@
                                                                                          -

                                                                                          lock#

                                                                                          +

                                                                                          lock

                                                                                          -exception LockedResourceError(resource_type, resource_id)[source]#
                                                                                          +exception LockedResourceError(resource_type, resource_id)[source]

                                                                                          Bases: RuntimeError

                                                                                          Exception raised when an operation is attempted on a locked resource.

                                                                                          -type[source]#
                                                                                          +type[source]

                                                                                          Name of the locked resource’s type

                                                                                          Type:
                                                                                          @@ -409,7 +409,7 @@
                                                                                          -id[source]#
                                                                                          +id[source]

                                                                                          ID of the locked resource

                                                                                          Type:
                                                                                          @@ -420,38 +420,38 @@
                                                                                          -__init__(resource_type, resource_id)[source]#
                                                                                          +__init__(resource_type, resource_id)[source]
                                                                                          -class SharedEvent[source]#
                                                                                          +class SharedEvent[source]

                                                                                          Bases: object

                                                                                          Context manager managing an internal event exposed through the wait coro.

                                                                                          While any code is executing in this context manager, the underlying event will not be set; when all of the holders finish the event will be set.

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

                                                                                          Increment the count of the active holders and clear the internal event.

                                                                                          -__exit__(_exc_type, _exc_val, _exc_tb)[source]#
                                                                                          +__exit__(_exc_type, _exc_val, _exc_tb)[source]

                                                                                          Decrement the count of the active holders; if 0 is reached set the internal event.

                                                                                          -__init__()[source]#
                                                                                          +__init__()[source]
                                                                                          -async wait()[source]#
                                                                                          +async wait()[source]

                                                                                          Wait for all active holders to exit.

                                                                                          Return type:
                                                                                          @@ -464,7 +464,7 @@ when all of the holders finish the event will be set.

                                                                                          -lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
                                                                                          +lock(namespace, resource_id, *, raise_error=False, wait=False)[source]

                                                                                          Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.

                                                                                          If decorating a command, this decorator must go before (below) the command decorator.

                                                                                          @@ -491,7 +491,7 @@ and return None.

                                                                                          -lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
                                                                                          +lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]

                                                                                          Apply the lock decorator using the value of the arg at the given name/position as the ID.

                                                                                          See lock docs for more information.

                                                                                          @@ -589,7 +589,7 @@ and return None.

                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.logging.html b/v11.0.0/output/pydis_core.utils.logging.html index a9f20e18..45ea4b8b 100644 --- a/v11.0.0/output/pydis_core.utils.logging.html +++ b/v11.0.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v11.0.0 - + @@ -390,16 +390,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)
                                                                                          @@ -423,7 +423,7 @@
                                                                                           
                                                                                           
                                                                                          -get_logger(name=None)[source]#
                                                                                          +get_logger(name=None)[source]

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

                                                                                          Parameters:
                                                                                          @@ -440,7 +440,7 @@
                                                                                          -log_format[source]#
                                                                                          +log_format[source]

                                                                                          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                                          @@ -522,7 +522,7 @@
                                                                                          - + diff --git a/v11.0.0/output/pydis_core.utils.members.html b/v11.0.0/output/pydis_core.utils.members.html index 56de53af..307b7e80 100644 --- a/v11.0.0/output/pydis_core.utils.members.html +++ b/v11.0.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v11.0.0 - + @@ -390,11 +390,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:
                                                                                          @@ -408,7 +408,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.

                                                                                          @@ -498,7 +498,7 @@ - + diff --git a/v11.0.0/output/pydis_core.utils.messages.html b/v11.0.0/output/pydis_core.utils.messages.html index 611585cc..f202d0d2 100644 --- a/v11.0.0/output/pydis_core.utils.messages.html +++ b/v11.0.0/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core v11.0.0 - + @@ -390,10 +390,10 @@
                                                                                          -

                                                                                          messages#

                                                                                          +

                                                                                          messages

                                                                                          -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
                                                                                          +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

                                                                                          Check if a reaction’s emoji and author are allowed and the message is message_id.

                                                                                          If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

                                                                                          @@ -475,7 +475,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/v11.0.0/output/pydis_core.utils.pagination.html b/v11.0.0/output/pydis_core.utils.pagination.html index 8bdce1c5..f32adbc1 100644 --- a/v11.0.0/output/pydis_core.utils.pagination.html +++ b/v11.0.0/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core v11.0.0 - + @@ -390,17 +390,17 @@
                                                                                          -

                                                                                          pagination#

                                                                                          +

                                                                                          pagination

                                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                                          Bases: Exception

                                                                                          Raised when attempting to paginate with empty contents.

                                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                          Bases: Paginator

                                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                                          @@ -417,14 +417,14 @@
                                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                          -add_line(line='', *, empty=False)[source]#
                                                                                          +add_line(line='', *, empty=False)[source]

                                                                                          Adds a line to the current page.

                                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -452,7 +452,7 @@ page at a reasonable size.

                                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -496,24 +496,24 @@ to any user with a moderation role.

                                                                                          -class PaginationEmojis(**data)[source]#
                                                                                          +class PaginationEmojis(**data)[source]

                                                                                          Bases: BaseModel

                                                                                          The emojis that will be used for pagination.

                                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                          @@ -604,7 +604,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.0.0/output/pydis_core.utils.paste_service.html b/v11.0.0/output/pydis_core.utils.paste_service.html index 4daecf61..0a7e93dd 100644 --- a/v11.0.0/output/pydis_core.utils.paste_service.html +++ b/v11.0.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v11.0.0 - + @@ -390,16 +390,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.

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

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

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

                                                                                          @@ -470,28 +470,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:
                                                                                          @@ -605,7 +605,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.0.0/output/pydis_core.utils.regex.html b/v11.0.0/output/pydis_core.utils.regex.html index e456b657..f1340a10 100644 --- a/v11.0.0/output/pydis_core.utils.regex.html +++ b/v11.0.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v11.0.0 - + @@ -390,11 +390,11 @@
                                                                                          -

                                                                                          regex#

                                                                                          +

                                                                                          regex

                                                                                          Common regular expressions.

                                                                                          -DISCORD_INVITE[source]#
                                                                                          +DISCORD_INVITE[source]

                                                                                          Regex for Discord server invites.

                                                                                          Warning

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

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

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

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

                                                                                          @@ -495,7 +495,7 @@ such as - + diff --git a/v11.0.0/output/pydis_core.utils.scheduling.html b/v11.0.0/output/pydis_core.utils.scheduling.html index d39a2a71..b8c4b594 100644 --- a/v11.0.0/output/pydis_core.utils.scheduling.html +++ b/v11.0.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v11.0.0 - + @@ -390,11 +390,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 @@ -408,7 +408,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:
                                                                                          @@ -425,7 +425,7 @@ the same ID used to schedule it.

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

                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                          Unschedule all known tasks.

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

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

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

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

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

                                                                                          - + diff --git a/v11.0.0/py-modindex.html b/v11.0.0/py-modindex.html index f1909757..c21718b4 100644 --- a/v11.0.0/py-modindex.html +++ b/v11.0.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v11.0.0 + Python Module Index - Pydis Core v11.0.0 - + @@ -577,7 +577,7 @@ - + diff --git a/v11.0.0/search.html b/v11.0.0/search.html index f8d327c1..18c63eb2 100644 --- a/v11.0.0/search.html +++ b/v11.0.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v11.0.0 + Search - Pydis Core v11.0.0 - + @@ -429,7 +429,7 @@ - + diff --git a/v11.0.0/searchindex.js b/v11.0.0/searchindex.js index 11b3afbb..93a21949 100644 --- a/v11.0.0/searchindex.js +++ b/v11.0.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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"11": 0, "0": [0, 8, 10, 18, 19, 20], "18th": 0, "march": 0, "2024": 0, "break": [0, 3, 17, 23], "207": 0, "enabl": [0, 1], "more": [0, 1, 3, 17, 19, 23], "ruff": 0, "lint": 0, "rule": 0, "see": [0, 1, 17, 18, 19], "github": 0, "releas": 0, "note": [0, 10], "chang": [0, 1, 3, 17, 23], "208": 0, "drop": 0, "support": [0, 4, 7, 26], "pydant": [0, 3, 23, 24], "1": [0, 20], "x": 0, "python": [0, 1, 3, 24, 26], "3": 0, "10": 0, "split": 0, "fakeredi": 0, "option": [0, 8, 17, 19], "depend": [0, 9], "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "rediscach": 0, "extra": [0, 6], "you": [0, 1, 9, 25], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "now": [0, 1, 26], "instal": [0, 1], "just": 0, "lua": 0, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "either": [0, 3], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "both": [0, 1, 3, 24], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "allow": [0, 1, 3, 18, 22, 23, 24], "user": [0, 3, 10, 12, 18, 22, 23], "who": [0, 18], "do": [0, 1, 9, 19], "reli": 0, "12": 0, "environ": [0, 1], "featur": [0, 1, 3], "205": 0, "add": [0, 3, 10, 12, 23], "pydis_cor": [0, 1, 3, 18, 20], "util": [0, 1, 2, 3, 8, 17, 18, 20], "error_handl": [0, 3, 7], "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "abc": [0, 13, 14], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "manag": [0, 3, 13, 14, 19], "commanderrormanag": [0, 7, 13, 14, 16], "implement": [0, 3, 4, 8, 18, 20], "regist": [0, 14, 16], "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "handler": [0, 3, 14, 15, 16], "independantli": 0, "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "attribut": [0, 7, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "15": 0, "2": [0, 3, 18], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "config": [0, 3, 23, 24], "namespac": [0, 19, 26], "target": [0, 8], "isn": [0, 13, 17], "t": [0, 3, 10, 11, 13, 17, 19, 26], "Be": 0, "awar": [0, 26], "time": [0, 10, 26], "write": [0, 1], "our": [0, 1, 7], "usag": 0, "doe": [0, 17], "current": [0, 3, 19, 23, 26], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "due": 0, "lupa": 0, "requir": [0, 1, 3, 23, 24, 26], "script": 0, "within": [0, 3], "As": 0, "7": 0, "30th": 0, "januari": 0, "194": 0, "interact": [0, 3, 7, 9, 14, 15, 23], "user_has_access": [0, 3, 7, 18], "helper": [0, 9, 12, 21], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "allowed_us": [0, 18, 22], "list": [0, 1, 3, 18, 23, 24], "ha": [0, 3, 7, 10, 18], "role": [0, 1, 3, 10, 18, 21, 22, 23], "allowed_rol": [0, 1, 3, 18, 22, 23], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 20, 25], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "other": [0, 1, 19, 26], "bot": [0, 1, 3, 7, 9, 22], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "reaction_check": [0, 3, 7, 22], "predic": [0, 14, 15], "dictat": 0, "right": [0, 3, 23], "specif": [0, 10], "set": [0, 1, 3, 12, 17, 18, 19, 23], "reaction": [0, 3, 22, 23], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "over": [0, 3, 23], "content": [0, 3, 11, 23, 24], "emb": [0, 3, 23], "emoji": [0, 3, 22, 23], "facilit": 0, "navig": [0, 1, 3, 23], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "bug": 0, "200": 0, "attempt": [0, 3, 9, 19, 21, 23], "read": 0, "respons": [0, 6, 24], "bodi": 0, "http": [0, 3, 6, 24, 25], "code": [0, 1, 3, 6, 19, 23, 25], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 18, 23, 24], "did": 0, "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 18], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 23], "have": [0, 9, 10, 17, 20], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 20], "warn": [0, 26], "level": [0, 7, 20], "asyncio": [0, 4, 26], "info": [0, 1], "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "log_format": [0, 3, 7, 20], "log": [0, 3, 7, 13, 21, 26], "standardis": [0, 20], "across": [0, 3, 20, 23], "servic": [0, 1, 3, 24], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 17], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "ext": [0, 2, 3, 7, 9, 10, 11, 23], "process_command": [0, 2, 3], "ensur": [0, 3, 18, 25], "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "process": [0, 3], "until": [0, 3, 19, 25], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "188": 0, "send": [0, 3, 6, 18, 23], "multipl": 0, "file": [0, 1, 24], "onc": [0, 3, 8], "past": [0, 24, 26], "call": [0, 3, 12, 17, 26], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 24], "must": [0, 17, 19, 26], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "pastefil": [0, 3, 7, 24], "184": 0, "remov": [0, 3, 18, 22, 23, 24], "store": [0, 3, 7, 8, 23], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 18], "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "stop": [0, 7, 18], "addit": 0, "exist": [0, 1, 26], "timeout": [0, 3, 18, 23], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "includ": [0, 1, 13], "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 17], "expiri": 0, "label": [0, 18], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "182": 0, "lexer": [0, 24], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 23, 24], "pythondiscord": [0, 24], "com": [0, 24], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 23], "handl": [0, 13, 14, 15, 16, 21, 26], "forbidden": [0, 9, 13], "90001": [0, 13], "schedul": [0, 3, 7], "179": 0, "upload": [0, 24], "text": [0, 3, 6, 11, 14, 15, 23, 24], "6th": 0, "mai": [0, 3, 8, 19, 23], "175": 0, "wait": [0, 3, 7, 19, 26], "guild": [0, 1, 3, 10, 21], "avail": [0, 3, 14, 16, 19], "befor": [0, 3, 10, 18, 19, 23, 26], "cog": [0, 3, 5], "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3, 14, 15], "after": [0, 3, 18, 23, 26], "been": [0, 3], "also": [0, 3, 7, 17, 18, 19, 23], "need": [0, 1, 3, 23], "run": [0, 1, 12, 19, 26], "task": [0, 26], "23rd": 0, "170": 0, "save": [0, 3, 24], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 25], "member": [0, 3, 7, 18], "get_or_fetch_memb": [0, 3, 7, 21], "17th": 0, "novemb": 0, "151": 0, "162": 0, "being": [0, 7, 10, 21], "abl": 0, "button": [0, 18], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 17, 19], "success": [0, 24], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 20], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 25], "match": [0, 3, 17], "lead": 0, "www": 0, "27th": 0, "110": 0, "v1": [0, 3, 23, 24], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 17, 26], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "On": 0, "view": [0, 18], "its": [0, 3, 12, 17], "104": 0, "deletemessagebutton": [0, 3, 7, 18], "wrong": 0, "method": [0, 4, 6, 7, 20], "103": 0, "attach": 0, "parent": [0, 18], "gener": [0, 3, 12, 26], "98": 0, "close": [0, 2, 3, 6, 26], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 26], "91": 0, "miss": 0, "await": [0, 3, 12, 18, 19, 21, 23], "ping_servic": [0, 2, 3], "some": [0, 3, 23, 24], "case": [0, 3, 23], "pass": [0, 3, 6, 17, 20, 21, 26], "self": [0, 3, 18], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 21], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1, 14, 16], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 20, 23], "older": 0, "doc": [0, 19], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "out": [0, 1, 3, 18], "75": 0, "invit": [0, 25], "longer": [0, 18], "safe": 0, "result": [0, 26], "captur": [0, 17, 25], "charact": [0, 3, 23], "up": [0, 1, 3, 23], "whitespac": [0, 25], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 14, 16, 23], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 23, 24], "so": [0, 1, 3, 7], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 17, 21], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 17], "main": 0, "don": [0, 10, 26], "modul": [0, 3, 7, 17, 26], "start": [0, 3, 26], "_": 0, "66": 0, "each": [0, 3, 23], "own": [0, 17], "avoid": [0, 3, 23], "singl": [0, 3, 23], "crash": 0, "entir": [0, 3], "20th": 0, "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 17], "64": 0, "987235d": 0, "revert": 0, "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 20], "basic": [0, 18], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 24], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 19, 26], "_guild_avail": 0, "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 19, 23], "made": [0, 22], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 24], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "abstract": [0, 14, 15], "lot": 0, "share": [0, 17], "between": [0, 1, 17], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 20], "import": 0, "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 21], "wrapper": [0, 6, 12, 17, 26], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 21], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 18, 20, 23], "intersphinx": 0, "block": [0, 3, 12, 23, 25], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 3, 7], "poetri": [0, 1], "To": [1, 3, 20], "your": 1, "few": 1, "possibl": 1, "approach": 1, "copi": [1, 17], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "below": [1, 19], "what": 1, "go": [1, 3, 19, 23], "them": [1, 3, 17, 26], "ll": [1, 26], "might": [1, 3, 10], "mean": 1, "modifi": [1, 21], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "vari": 1, "re": [1, 3, 13, 22, 26], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 18, 23, 24, 26], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 17, 22], "free": 1, "howev": 1, "like": [1, 17], "m": 1, "docker": 1, "compos": 1, "d": [1, 17], "configur": [1, 3, 23, 24], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 23], "invok": [1, 10, 12, 18], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "anyth": [1, 24], "reinstal": 1, "applic": 1, "http_session": [2, 3, 24], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 19], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "register_command_error_manag": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 23], "add_lin": [2, 3, 7, 23], "paginationemoji": [2, 3, 7, 23], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "startuperror": [2, 3], "subpackag": 2, "submodul": [2, 13], "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 23], "inform": [2, 19, 20], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 17, 19, 20], "kwarg": [3, 6, 12, 17, 18, 20, 26], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "belong": 3, "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "clientsess": [3, 6, 24], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "redissess": 3, "were": 3, "found": [3, 17, 21, 26], "frozenset": [3, 17], "initialis": [3, 8], "server": [3, 25], "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "oper": [3, 19, 23, 26], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 18, 26], "instead": [3, 12, 26], "connector": 3, "resolv": [3, 17], "sync_app_command": 3, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "intern": [3, 7, 19], "becom": [3, 19], "appear": 3, "still": [3, 23], "empti": [3, 23], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 17, 22], "relev": 3, "bind": [3, 17], "tree": 3, "reason": [3, 23], "doesn": [3, 10, 26], "happen": 3, "constructor": [3, 6], "becaus": [3, 17], "registr": [3, 14, 16], "name": [3, 7, 17, 19, 20, 23, 24, 26], "alia": [3, 7, 12], "individu": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "second": [3, 10, 12, 18, 23, 26], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "suffix": [3, 23], "max_siz": [3, 8, 23, 24], "4000": [3, 23], "scale_to_s": [3, 23], "max_lin": [3, 23], "linesep": [3, 23], "n": [3, 23], "aid": [3, 23], "pagination_emoji": [3, 23], "insert": [3, 23], "everi": [3, 23], "e": [3, 23], "g": [3, 23], "three": [3, 23], "backtick": [3, 23], "append": [3, 23], "end": [3, 23], "maximum": [3, 8, 23, 24], "amount": [3, 23], "codepoint": [3, 23], "line": [3, 23], "scale": [3, 23], "overrid": [3, 23], "insid": [3, 23], "It": [3, 7, 19, 23], "order": [3, 8, 14, 16, 17, 19, 23, 26], "per": [3, 10, 23], "fals": [3, 10, 12, 19, 23, 24], "exce": [3, 8, 23], "overflow": [3, 23], "word": [3, 23], "exceed": [3, 23], "excess": [3, 23], "place": [3, 23], "next": [3, 23], "unti": [3, 23], "remain": [3, 23], "boundari": [3, 23], "truncat": [3, 23], "continu": [3, 23], "onto": [3, 23], "In": [3, 23], "alreadi": [3, 23, 26], "would": [3, 23], "caus": [3, 7, 23], "done": [3, 18, 23, 26], "best": [3, 23], "effort": [3, 23], "while": [3, 12, 19, 23], "keep": [3, 23, 26], "total": [3, 23], "length": [3, 12, 23], "size": [3, 8, 23, 24], "indic": [3, 21, 23], "classmethod": [3, 23], "ctx": [3, 10, 11, 18, 23], "500": [3, 23], "restrict_to_us": [3, 23], "300": [3, 23], "footer_text": [3, 23], "exception_on_empty_emb": [3, 23], "repli": [3, 11, 12, 13, 23], "switch": [3, 23], "finish": [3, 19, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "These": [3, 23], "five": [3, 23], "minut": [3, 23], "limit": [3, 23], "author": [3, 10, 22, 23], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "moder": [3, 18, 22, 23], "context": [3, 10, 11, 14, 15, 19, 23], "hold": [3, 19, 23], "serv": [3, 23], "whom": [3, 23], "restrict": [3, 23], "anymor": [3, 23], "footer": [3, 23], "sequenc": [3, 7, 17, 18, 23], "exampl": [3, 23], "set_author": [3, 23], "icon_url": [3, 23], "icon": [3, 23], "data": [3, 23, 24], "basemodel": [3, 23, 24], "classvar": [3, 23, 24], "dict": [3, 6, 17, 23, 24], "computedfieldinfo": [3, 23, 24], "dictionari": [3, 23, 24], "comput": [3, 23, 24], "field": [3, 23, 24], "correspond": [3, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "configdict": [3, 23, 24], "model": [3, 23, 24], "conform": [3, 23, 24], "fieldinfo": [3, 23, 24], "annot": [3, 17, 23, 24], "trashcan": [3, 23], "637136429717389331": [3, 23], "first": [3, 14, 16, 23], "last": [3, 10, 18, 23], "left": [3, 23], "metadata": [3, 23, 24], "about": [3, 12, 23, 24], "defin": [3, 23, 24], "map": [3, 17, 19, 23, 24], "replac": [3, 10, 17, 23, 24], "__fields__": [3, 23, 24], "handle_forbidden_from_block": [3, 7, 13], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "globalnameconflicterror": [3, 7, 17], "command_wrap": [3, 7, 17], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "update_wrapper_glob": [3, 7, 17], "lockedresourceerror": [3, 7, 19], "sharedev": [3, 7, 19], "lock_arg": [3, 7, 19], "customlogg": [3, 7, 20], "get_logg": [3, 7, 20], "max_paste_s": [3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "formatted_code_regex": [3, 7, 25], "raw_code_regex": [3, 7, 25], "create_task": [3, 7, 26], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 24], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 26], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 26], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 26], "authent": 6, "keyword": [6, 7, 17, 20], "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 17, 24], "represent": 6, "group": [7, 25], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 24], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 18], "interaction_check": [7, 18], "on_timeout": [7, 18], "__enter__": [7, 19], "__exit__": [7, 19], "__contains__": [7, 26], "cancel": [7, 26], "cancel_al": [7, 26], "schedule_at": [7, 26], "schedule_lat": [7, 26], "relat": [8, 14, 16, 20], "128": 8, "lru": 8, "coroutin": [8, 19, 21, 26], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 17, 19], "callabl": [8, 10, 12, 17, 19, 21], "wrap": [8, 17, 26], "item": 8, "channel_id": 9, "fetch": [9, 21], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 24], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "type_": 10, "bypass_rol": 10, "bypass": 10, "before_invok": 10, "introduc": 10, "problem": [10, 20], "futur": [10, 26], "trigger": 10, "float": [10, 12, 18, 26], "durat": 10, "long": [10, 24, 26], "buckettyp": 10, "iter": [10, 12, 14, 16], "describ": 10, "behavior": 10, "typeerror": [10, 17], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 19, 26], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 17, 26], "valu": [12, 17, 19, 20], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 19, 26], "same": [12, 26], "notifi": 12, "paramspec": [12, 17], "raw": [12, 25], "handle_app_command_error": [13, 14, 15], "handle_text_command_error": [13, 14, 15], "should_handle_error": [13, 14, 15, 16], "handle_error": [13, 14, 16], "register_handl": [13, 14, 16], "noreturn": [14, 15], "determin": [14, 15, 16], "context_or_interact": [14, 16], "through": [14, 16, 19], "choos": [14, 16], "capabl": [14, 16], "prioriti": [14, 16], "conflict": 17, "global": 17, "assign": 17, "__module__": 17, "__name__": 17, "__qualname__": 17, "__doc__": 17, "__annotations__": 17, "__dict__": 17, "ignored_conflict_nam": 17, "look": [17, 26], "forwardref": 17, "evalu": 17, "detail": 17, "_p": 17, "_r": 17, "behav": 17, "functool": 17, "name_or_po": [17, 19], "ordereddict": [17, 19], "decorator_func": 17, "func": [17, 19], "accept": [17, 18], "tupl": [17, 26], "For": 17, "__global__": 17, "state": 17, "won": 17, "reflect": 17, "typehint": 17, "style": 18, "secondari": 18, "click": 18, "itself": 18, "carri": 18, "buttonstyl": 18, "origin": 18, "180": 18, "ui": 18, "input": 18, "similar": [18, 25], "occur": 18, "listen": 18, "access": 18, "resource_typ": 19, "resource_id": 19, "runtimeerror": 19, "resourc": 19, "hashabl": [19, 26], "expos": 19, "coro": [19, 21, 26], "execut": [19, 26], "underli": 19, "holder": 19, "increment": 19, "count": 19, "activ": 19, "_exc_typ": 19, "_exc_val": 19, "_exc_tb": 19, "decrement": 19, "reach": 19, "exit": 19, "raise_error": 19, "turn": 19, "mutual": 19, "exclus": 19, "identifi": [19, 26], "collis": 19, "among": 19, "perform": 19, "acquir": 19, "msg": 20, "sever": 20, "exc_info": 20, "houston": 20, "we": [20, 21], "interest": 20, "mypi": 20, "recognis": 20, "formatt": 20, "interactin": 21, "member_id": 21, "failur": 21, "could": 21, "sole": 21, "expect": 21, "add_rol": 21, "remove_rol": 21, "purpos": 21, "intend": 21, "message_id": 22, "allowed_emoji": 22, "allow_mod": 22, "even": 22, "524288": 24, "byte": 24, "format": [24, 25], "link": 24, "too": 24, "larg": 24, "unsupport": 24, "encount": 24, "paste_url": 24, "max": 24, "larger": 24, "reject": 24, "max_length": 24, "greater": 24, "regular": 25, "express": 25, "pattern": 25, "pleas": 25, "sanitis": 25, "output": 25, "someth": 25, "urllib": 25, "pars": 25, "quot": 25, "track": 26, "distinguish": 26, "suggest": 26, "immedi": 26, "uniqu": 26, "prematur": 26, "task_id": 26, "unschedul": 26, "known": 26, "unawait": 26, "elsewher": 26, "timezon": 26, "calcul": 26, "subtract": 26, "na\u00efv": 26, "utc": 26, "datetim": 26, "delai": 26, "suppressed_except": 26, "event_loop": 26, "task_return": 26}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": [3, 7, 13], "submodul": [3, 7, 14], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "error_handl": 13, "packag": [13, 14], "abc": 15, "manag": 16, "function": 17, "interact": 18, "lock": 19, "log": 20, "member": 21, "messag": 22, "pagin": 23, "paste_servic": 24, "regex": 25, "schedul": 26}, "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": {"commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "Submodules": [[14, "submodules"], [7, "submodules"], [3, "submodules"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "Subpackages": [[13, "subpackages"], [7, "subpackages"], [3, "subpackages"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "function": [[17, "module-pydis_core.utils.function"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "caching": [[8, "module-pydis_core.utils.caching"]], "commands": [[11, "module-pydis_core.utils.commands"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "site_api": [[6, "module-pydis_core.site_api"]], "Utils": [[7, "module-pydis_core.utils"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Exts": [[5, "module-pydis_core.exts"]], "Pydis Core": [[3, "module-pydis_core"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "members": [[21, "module-pydis_core.utils.members"]], "logging": [[20, "module-pydis_core.utils.logging"]], "messages": [[22, "module-pydis_core.utils.messages"]], "lock": [[19, "module-pydis_core.utils.lock"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "regex": [[25, "module-pydis_core.utils.regex"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "scheduling": [[26, "module-pydis_core.utils.scheduling"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [23, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [23, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.error_handling.commands"], [15, "module-pydis_core.utils.error_handling.commands.abc"], [16, "module-pydis_core.utils.error_handling.commands.manager"], [17, "module-pydis_core.utils.function"], [18, "module-pydis_core.utils.interactions"], [19, "module-pydis_core.utils.lock"], [20, "module-pydis_core.utils.logging"], [21, "module-pydis_core.utils.members"], [22, "module-pydis_core.utils.messages"], [23, "module-pydis_core.utils.pagination"], [24, "module-pydis_core.utils.paste_service"], [25, "module-pydis_core.utils.regex"], [26, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [23, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager"]], "__init__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__"]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error"]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error"]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error"]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands"]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler"]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[24, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[26, "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"], [14, "submodules"]], "Subpackages": [[3, "subpackages"], [7, "subpackages"], [13, "subpackages"]], "Utils": [[7, "module-pydis_core.utils"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "function": [[17, "module-pydis_core.utils.function"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "lock": [[19, "module-pydis_core.utils.lock"]], "logging": [[20, "module-pydis_core.utils.logging"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "members": [[21, "module-pydis_core.utils.members"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "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.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__", false]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__", 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__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__", false]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__", false]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__", false], [23, "pydis_core.utils.pagination.LinePaginator.__init__", false]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__", false]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler", false]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog", false]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command", false]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line", false], [23, "pydis_core.utils.pagination.LinePaginator.add_line", false]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions", false]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client", 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)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "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)": [[17, "pydis_core.utils.function.command_wraps", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager", false]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure", false]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE", false]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError", false], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value", false]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper", false]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args", false]], "get_logger() (in module pydis_core.utils.logging)": [[20, "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)": [[21, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError", false]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id", false]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error", false]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change", false]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error", false]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check", false]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check", false]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session", false]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id", false]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check", false]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator", false]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock", false]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg", false]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError", false]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format", 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)": [[24, "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 (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields", false]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config", false]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields", false]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[24, "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.checks", false], [11, "module-pydis_core.utils.commands", false], [12, "module-pydis_core.utils.cooldown", false], [13, "module-pydis_core.utils.error_handling", false], [14, "module-pydis_core.utils.error_handling.commands", false], [15, "module-pydis_core.utils.error_handling.commands.abc", false], [16, "module-pydis_core.utils.error_handling.commands.manager", false], [17, "module-pydis_core.utils.function", false], [18, "module-pydis_core.utils.interactions", false], [19, "module-pydis_core.utils.lock", false], [20, "module-pydis_core.utils.logging", false], [21, "module-pydis_core.utils.members", false], [22, "module-pydis_core.utils.messages", false], [23, "module-pydis_core.utils.pagination", false], [24, "module-pydis_core.utils.paste_service", false], [25, "module-pydis_core.utils.regex", false], [26, "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)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P", false]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate", false], [23, "pydis_core.utils.pagination.LinePaginator.paginate", false]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis", false]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis", false]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[24, "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.checks": [[10, "module-pydis_core.utils.checks", false]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands", false]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc", false]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager", false]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock", false]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members", false]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages", false]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination", false]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check", false]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session", false]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager", false]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler", 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)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent", false]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats", false]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url", false]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace", false]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals", false]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait", 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, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "0": [0, 8, 10, 18, 19, 20], "0a0": 0, "0eb3d26": 0, "1": [0, 20], "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, "15": 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": 18, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "189": 0, "18th": 0, "190": 0, "192": 0, "194": 0, "195": 0, "196": 0, "197": 0, "199": 0, "19th": 0, "2": [0, 3, 18], "200": 0, "202": 0, "2021": 0, "2022": 0, "2023": 0, "2024": 0, "204": [0, 6], "205": 0, "206": 0, "207": 0, "208": 0, "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, "300": [3, 23], "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "4000": [3, 23], "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 12], "500": [3, 23], "524288": 24, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "637136429717389331": [3, 23], "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, 13], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "As": 0, "Be": 0, "For": 17, "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "In": [3, 23], "It": [3, 7, 19, 23], "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "These": [3, 23], "To": [1, 3, 20], "_": 0, "__annotations__": 17, "__call__": [7, 8], "__contains__": [7, 26], "__dict__": 17, "__doc__": 17, "__enter__": [7, 19], "__exit__": [7, 19], "__fields__": [3, 23, 24], "__global__": 17, "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "__module__": 17, "__name__": 17, "__qualname__": 17, "__str__": [3, 6], "_exc_tb": 19, "_exc_typ": 19, "_exc_val": 19, "_guild_avail": 0, "_p": 17, "_r": 17, "_transport": 0, "abc": [0, 13, 14], "abl": 0, "about": [3, 12, 23, 24], "abstract": [0, 14, 15], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "abstracteventloop": [4, 26], "accept": [17, 18], "access": 18, "acquir": 19, "across": [0, 3, 20, 23], "act": 7, "action": 0, "activ": 19, "actual": 0, "ad": [0, 1, 3, 7, 18, 20, 23], "add": [0, 3, 10, 12, 23], "add_cog": [2, 3], "add_command": [2, 3], "add_lin": [2, 3, 7, 23], "add_rol": 21, "addit": 0, "after": [0, 3, 18, 23, 26], "again": 1, "aid": [3, 23], "aiodn": 0, "aiohttp": [0, 3, 6, 24], "alia": [3, 7, 12], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "all_command": 3, "all_extens": [2, 3], "allow": [0, 1, 3, 18, 22, 23, 24], "allow_mod": 22, "allowed_emoji": 22, "allowed_rol": [0, 1, 3, 18, 22, 23], "allowed_us": [0, 18, 22], "alpha": 0, "alreadi": [3, 23, 26], "also": [0, 3, 7, 17, 18, 19, 23], "alwai": 10, "among": 19, "amount": [3, 23], "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "annot": [3, 17, 23, 24], "anymor": [3, 23], "anyth": [1, 24], "api": [0, 3, 6, 21], "api_cli": [0, 2, 3], "apicli": [0, 2, 3, 6], "app": [0, 3, 14, 15], "appear": 3, "append": [3, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "arg": [3, 12, 17, 19, 20], "arg_offset": 8, "args_preprocessor": 12, "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "around": 6, "assign": 17, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "async_rediscach": [0, 3], "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 26], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 19, 21, 23], "attr": 0, "attribut": [0, 7, 17], "august": 0, "authent": 6, "author": [3, 10, 22, 23], "auto": 0, "auto_mod": 0, "autogener": 0, "automat": [0, 3, 23], "avail": [0, 3, 14, 16, 19], "avoid": [0, 3, 23], "await": [0, 3, 12, 18, 19, 21, 23], "awar": [0, 26], "back": 0, "backtick": [3, 23], "bad": 0, "badargu": 11, "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "basemodel": [3, 23, 24], "basic": [0, 18], "becaus": [3, 17], "becom": [3, 19], "been": [0, 3], "befor": [0, 3, 10, 18, 19, 23, 26], "before_invok": 10, "behav": 17, "behavior": 10, "behaviour": [0, 3], "being": [0, 7, 10, 21], "belong": 3, "below": [1, 19], "best": [3, 23], "between": [0, 1, 17], "bind": [3, 17], "block": [0, 3, 12, 23, 25], "block_duplicate_invoc": [3, 7, 12], "bodi": 0, "boilerpl": 0, "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "bot": [0, 1, 3, 7, 9, 22], "bot_token": 1, "botbas": [0, 2, 3], "both": [0, 1, 3, 24], "boundari": [3, 23], "break": [0, 3, 17, 23], "broke": 0, "buckettyp": 10, "bug": 0, "bump": 0, "button": [0, 18], "buttonstyl": 18, "bypass": 10, "bypass_rol": 10, "byte": 24, "cach": [0, 3, 7, 9, 21], "calcul": 26, "call": [0, 3, 12, 17, 26], "call_without_cooldown": [7, 12], "callabl": [8, 10, 12, 17, 19, 21], "callback": [7, 10, 18], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "cancel": [7, 26], "cancel_al": [7, 26], "cannot": [0, 3, 19, 23], "capabl": [14, 16], "captur": [0, 17, 25], "carri": 18, "case": [0, 3, 23], "categori": [9, 10], "category_id": 9, "caus": [3, 7, 23], "certain": [0, 1], "chang": [0, 1, 3, 17, 23], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 10, 12], "channel_id": 9, "charact": [0, 3, 23], "chardet": 0, "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "checkfailur": 10, "choos": [14, 16], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "classmethod": [3, 23], "classvar": [3, 23, 24], "clean": [0, 11], "clean_text_or_repli": [3, 7, 11], "clear": [2, 3, 7, 8, 19], "click": 18, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 24], "close": [0, 2, 3, 6, 26], "cloudflar": 7, "code": [0, 1, 3, 6, 19, 23, 25], "codepoint": [3, 23], "cog": [0, 3, 5], "collect": 10, "collis": 19, "com": [0, 24], "comma": 1, "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "command_wrap": [3, 7, 17], "commanderror": 12, "commanderrormanag": [0, 7, 13, 14, 16], "commandoncooldown": [3, 7, 12], "commit": 0, "common": [0, 1, 3, 7, 20, 25], "commun": [3, 4], "compos": 1, "comput": [3, 23, 24], "computedfieldinfo": [3, 23, 24], "concurr": 0, "config": [0, 3, 23, 24], "configdict": [3, 23, 24], "configur": [1, 3, 23, 24], "conflict": 17, "conform": [3, 23, 24], "connect": [0, 3, 4], "connector": 3, "constructor": [3, 6], "contain": [1, 3, 10, 18, 23, 24, 26], "content": [0, 3, 11, 23, 24], "context": [3, 10, 11, 14, 15, 19, 23], "context_or_interact": [14, 16], "contextcheckfailur": [3, 7, 10], "continu": [3, 23], "control": 0, "cooldown": [3, 7, 10], "cooldown_dur": 12, "cooldown_with_role_bypass": [3, 7, 10], "copi": [1, 17], "core": [0, 1], "coro": [19, 21, 26], "coroutin": [8, 19, 21, 26], "correct": [0, 1], "correspond": [3, 23, 24], "could": 21, "count": 19, "crash": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 26], "creation": 0, "criteria": 0, "ctx": [3, 10, 11, 18, 23], "current": [0, 3, 19, 23, 26], "custom": [0, 8, 20], "customlogg": [3, 7, 20], "cut": 0, "d": [1, 17], "dai": 0, "data": [3, 23, 24], "datetim": 26, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 10, 12, 17, 19], "decorator_func": 17, "decrement": 19, "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "defin": [3, 23, 24], "delai": 26, "delet": [0, 3, 6, 8, 18, 23, 24], "deletemessagebutton": [0, 3, 7, 18], "depend": [0, 9], "deprec": 0, "describ": 10, "detail": 17, "detect": 0, "determin": [14, 15, 16], "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [3, 6, 17, 23, 24], "dictat": 0, "dictionari": [3, 23, 24], "did": 0, "directli": [0, 17], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "discord_invit": [0, 3, 7, 25], "disnak": 0, "distinguish": 26, "django": 6, "dm": 10, "do": [0, 1, 9, 19], "doc": [0, 19], "docker": 1, "docstr": 0, "document": 0, "doe": [0, 17], "doesn": [3, 10, 26], "don": [0, 10, 26], "done": [3, 18, 23, 26], "drop": 0, "due": 0, "dummi": [0, 3], "duplic": [0, 12], "durat": 10, "dynam": 0, "e": [3, 23], "each": [0, 3, 23], "edit": 3, "effort": [3, 23], "either": [0, 3], "els": 11, "elsewher": 26, "emb": [0, 3, 23], "emit": 3, "emoji": [0, 3, 22, 23], "empti": [3, 23], "emptypaginatorembederror": [2, 3, 7, 23], "enabl": [0, 1], "encount": 24, "end": [3, 23], "endpoint": 6, "ensur": [0, 3, 18, 25], "entir": [0, 3], "env": 1, "environ": [0, 1], "equival": 6, "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "error_handl": [0, 3, 7], "etc": [1, 10], "evalu": 17, "even": 22, "event": [0, 3, 4, 19, 26], "event_loop": 26, "everi": [3, 23], "exact": 1, "exampl": [3, 23], "exc_info": 20, "exce": [3, 8, 23], "exceed": [3, 23], "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "exception_on_empty_emb": [3, 23], "excess": [3, 23], "exclus": 19, "execut": [19, 26], "exist": [0, 1, 26], "exit": 19, "expect": 21, "expiri": 0, "explain": 0, "expos": 19, "express": 25, "ext": [0, 2, 3, 7, 9, 10, 11, 23], "extend": 0, "extens": [0, 3], "extra": [0, 6], "facilit": 0, "fail": [9, 10, 24], "fail_sil": 10, "failur": 21, "fakeredi": 0, "fals": [3, 10, 12, 19, 23, 24], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 21], "few": 1, "field": [3, 23, 24], "fieldinfo": [3, 23, 24], "fifo": 8, "file": [0, 1, 24], "filter": 0, "finish": [3, 19, 23], "first": [3, 14, 16, 23], "five": [3, 23], "fix": 0, "float": [10, 12, 18, 26], "folder": 1, "footer": [3, 23], "footer_text": [3, 23], "forbidden": [0, 9, 13], "format": [24, 25], "formatt": 20, "formatted_code_regex": [3, 7, 25], "forum": 0, "forwardref": 17, "found": [3, 17, 21, 26], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "frozenset": [3, 17], "func": [17, 19], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "functool": 17, "futur": [10, 26], "g": [3, 23], "gatewai": 3, "gener": [0, 3, 12, 26], "get": [0, 3, 6, 9, 17, 21], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "get_logg": [3, 7, 20], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 21], "git": 1, "github": 0, "give": 3, "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "global": 17, "globalnameconflicterror": [3, 7, 17], "go": [1, 3, 19, 23], "greater": 24, "groundwork": 1, "group": [7, 25], "guild": [0, 1, 3, 10, 21], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 2, 3], "guildchannel": 9, "ha": [0, 3, 7, 10, 18], "handl": [0, 13, 14, 15, 16, 21, 26], "handle_app_command_error": [13, 14, 15], "handle_error": [13, 14, 16], "handle_forbidden_from_block": [3, 7, 13], "handle_role_chang": [0, 3, 7, 21], "handle_text_command_error": [13, 14, 15], "handler": [0, 3, 14, 15, 16], "happen": 3, "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "hashabl": [19, 26], "have": [0, 9, 10, 17, 20], "heavi": 7, "help": [0, 1], "helper": [0, 9, 12, 21], "hold": [3, 19, 23], "holder": 19, "hook": 0, "host": 4, "houston": 20, "how": [0, 8, 10, 17, 26], "howev": 1, "http": [0, 3, 6, 24, 25], "http_session": [2, 3, 24], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "icon": [3, 23], "icon_url": [3, 23], "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "identifi": [19, 26], "ignor": [1, 7, 17, 22], "ignored_conflict_nam": 17, "immedi": 26, "implement": [0, 3, 4, 8, 18, 20], "import": 0, "in_whitelist": 10, "in_whitelist_check": [3, 7, 10], "inadequ": 3, "includ": [0, 1, 13], "incorrect": 0, "increment": 19, "independantli": 0, "index": 2, "indic": [3, 21, 23], "individu": 3, "info": [0, 1], "inform": [2, 19, 20], "init": [0, 3, 4], "initi": [6, 26], "initialis": [3, 8], "input": 18, "insert": [3, 23], "insid": [3, 23], "instal": [0, 1], "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "instanti": [3, 18, 26], "instead": [3, 12, 26], "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "intend": 21, "intent": 1, "interact": [0, 3, 7, 9, 14, 15, 23], "interactin": 21, "interaction_check": [7, 18], "interest": 20, "intern": [3, 7, 19], "intersphinx": 0, "introduc": 10, "invalid": 9, "invaliddata": 9, "invit": [0, 25], "invoc": [0, 12], "invok": [1, 10, 12, 18], "inwhitelistcheckfailur": [3, 7, 10], "is_in_categori": [3, 7, 9], "isn": [0, 13, 17], "issu": 10, "item": 8, "iter": [10, 12, 14, 16], "its": [0, 3, 12, 17], "itself": 18, "januari": 0, "json": 6, "juli": 0, "june": 0, "just": 0, "keep": [3, 23, 26], "kei": 8, "keyword": [6, 7, 17, 20], "known": 26, "kwarg": [3, 6, 12, 17, 18, 20, 26], "label": [0, 18], "lancebot": 1, "larg": 24, "larger": 24, "last": [3, 10, 18, 23], "latest": 0, "lead": 0, "least": 10, "left": [3, 23], "length": [3, 12, 23], "level": [0, 7, 20], "lexer": [0, 24], "librari": [0, 1], "like": [1, 17], "limit": [3, 23], "line": [3, 23], "linepagin": [0, 2, 3, 7, 23], "linesep": [3, 23], "link": 24, "lint": 0, "list": [0, 1, 3, 18, 23, 24], "listen": 18, "ll": [1, 26], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "lock": [0, 3, 7], "lock_arg": [3, 7, 19], "lockedresourceerror": [3, 7, 19], "log": [0, 3, 7, 13, 21, 26], "log_format": [0, 3, 7, 20], "log_to_dev_log": [2, 3], "logger": [0, 20], "logic": 0, "long": [10, 24, 26], "longer": [0, 18], "look": [17, 26], "loop": [4, 26], "lot": 0, "lru": 8, "lua": 0, "lupa": 0, "m": 1, "machin": 1, "made": [0, 22], "mai": [0, 3, 8, 19, 23], "main": 0, "make": [0, 1, 3, 20, 23], "manag": [0, 3, 13, 14, 19], "mani": [0, 3, 8], "manipul": [0, 17], "manual": 3, "map": [3, 17, 19, 23, 24], "march": 0, "mark": 0, "match": [0, 3, 17], "max": 24, "max_length": 24, "max_lin": [3, 23], "max_paste_s": [3, 7, 24], "max_siz": [3, 8, 23, 24], "maximum": [3, 8, 23, 24], "maybe_raise_for_statu": [3, 6], "mean": 1, "member": [0, 3, 7, 18], "member_id": 21, "mention": [1, 3], "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "message_id": 22, "message_typ": 0, "metadata": [3, 23, 24], "method": [0, 4, 6, 7, 20], "metric": 3, "might": [1, 3, 10], "migrat": 0, "minut": [3, 23], "miss": 0, "mod": 0, "model": [3, 23, 24], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "moder": [3, 18, 22, 23], "modifi": [1, 21], "modul": [0, 3, 7, 17, 26], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [0, 1, 3, 17, 19, 23], "most": 1, "move": 0, "msg": 20, "multipl": 0, "multivers": 0, "must": [0, 17, 19, 26], "mutual": 19, "mypi": 20, "n": [3, 23], "name": [3, 7, 17, 19, 20, 23, 24, 26], "name_or_po": [17, 19], "namespac": [0, 19, 26], "navig": [0, 1, 3, 23], "na\u00efv": 26, "need": [0, 1, 3, 23], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "newer": 0, "newli": 0, "next": [3, 23], "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "noreturn": [14, 15], "normal": 3, "notabl": 0, "note": [0, 10], "notfound": 9, "notic": 0, "notifi": 12, "novemb": 0, "now": [0, 1, 26], "number": [0, 3, 10, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "occur": 18, "octob": 0, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 18], "onc": [0, 3, 8], "one": [0, 3, 10, 14, 16, 23], "ones": 1, "onli": [0, 3], "onto": [3, 23], "oper": [3, 19, 23, 26], "option": [0, 8, 17, 19], "order": [3, 8, 14, 16, 17, 19, 23, 26], "ordereddict": [17, 19], "origin": 18, "other": [0, 1, 19, 26], "otherwis": [10, 19, 26], "our": [0, 1, 7], "out": [0, 1, 3, 18], "output": 25, "over": [0, 3, 23], "overflow": [3, 23], "overrid": [3, 23], "overwrit": [0, 3], "own": [0, 17], "p": [3, 7, 12], "packag": [0, 3, 7], "page": [2, 3, 23], "pagin": [0, 2, 3, 7], "pagination_emoji": [3, 23], "paginationemoji": [2, 3, 7, 23], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "paramspec": [12, 17], "parent": [0, 18], "pars": 25, "pass": [0, 3, 6, 17, 20, 21, 26], "past": [0, 24, 26], "paste_servic": [0, 3, 7], "paste_url": 24, "pastebin": 0, "pastefil": [0, 3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "patch": [0, 3, 6, 7], "path": 1, "pattern": 25, "per": [3, 10, 23], "perform": 19, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "place": [3, 23], "pleas": 25, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": [8, 17, 19], "possibl": 1, "post": [3, 6, 24], "pre": 1, "predic": [0, 14, 15], "prefix": [1, 3, 4, 23], "prematur": 26, "press": 0, "prevent": [12, 19, 26], "previous": 0, "prioriti": [14, 16], "privatechannel": [0, 9], "problem": [10, 20], "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 20], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "public": 0, "publish": 0, "purpos": 21, "push": 0, "put": [3, 6], "py": [0, 3, 17], "pydant": [0, 3, 23, 24], "pydi": [0, 2], "pydis_cor": [0, 1, 3, 18, 20], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 24, 26], "pythondiscord": [0, 24], "qualifi": 7, "quot": 25, "r": [3, 7, 12], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "raise_error": 19, "raise_for_statu": 6, "rate": 10, "rather": 7, "raw": [12, 25], "raw_code_regex": [3, 7, 25], "rc2": 0, "re": [1, 3, 13, 22, 26], "reach": 19, "reaction": [0, 3, 22, 23], "reaction_check": [0, 3, 7, 22], "read": 0, "readi": 3, "real": 0, "reason": [3, 23], "receiv": [0, 6, 9], "recognis": 20, "reconnect": 0, "redi": [0, 3], "redirect": 10, "redirect_channel": 10, "redis_sess": [2, 3], "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 17, "regex": [0, 3, 7], "regist": [0, 14, 16], "register_command_error_manag": [2, 3], "register_handl": [13, 14, 16], "registr": [3, 14, 16], "regular": 25, "reinstal": 1, "reject": 24, "relat": [8, 14, 16, 20], "releas": 0, "relev": 3, "reli": 0, "remain": [3, 23], "remov": [0, 3, 18, 22, 23, 24], "remove_command": [2, 3], "remove_rol": 21, "renam": 0, "replac": [3, 10, 17, 23, 24], "repli": [3, 11, 12, 13, 23], "repo": 0, "represent": 6, "request": [0, 3, 6, 25], "requir": [0, 1, 3, 23, 24, 26], "resolut": 0, "resolv": [3, 17], "resourc": 19, "resource_id": 19, "resource_typ": 19, "respons": [0, 6, 24], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "restrict": [3, 23], "restrict_to_us": [3, 23], "result": [0, 26], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "reusabl": 5, "revert": 0, "right": [0, 3, 23], "role": [0, 1, 3, 10, 18, 21, 22, 23], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "rule": 0, "run": [0, 1, 12, 19, 26], "runtimeerror": 19, "safe": 0, "same": [12, 26], "sampl": 0, "sanitis": 25, "save": [0, 3, 24], "scale": [3, 23], "scale_to_s": [3, 23], "schedul": [0, 3, 7], "schedule_at": [7, 26], "schedule_lat": [7, 26], "script": 0, "search": 2, "second": [3, 10, 12, 18, 23, 26], "secondari": 18, "see": [0, 1, 17, 18, 19], "self": [0, 3, 18], "send": [0, 3, 6, 18, 23], "send_notic": 12, "send_to_paste_servic": [0, 3, 7, 24], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [3, 7, 17, 18, 23], "serv": [3, 23], "server": [3, 25], "servic": [0, 1, 3, 24], "session": [0, 3, 6, 24], "session_kwarg": 6, "set": [0, 1, 3, 12, 17, 18, 19, 23], "set_author": [3, 23], "setup": [0, 3], "setup_hook": [2, 3], "sever": 20, "share": [0, 17], "sharedev": [3, 7, 19], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "should_handle_error": [13, 14, 15, 16], "should_rais": 6, "signatur": 12, "silent": 10, "similar": [18, 25], "sinc": 10, "singl": [0, 3, 23], "sir": 1, "site": [0, 3, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [3, 8, 23, 24], "so": [0, 1, 3, 7], "socket": 4, "sole": 21, "some": [0, 3, 23, 24], "someth": 25, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "specif": [0, 10], "specifi": [0, 10, 12, 18], "sphinx": 0, "split": 0, "stabl": 0, "standardis": [0, 20], "start": [0, 3, 26], "startup": 3, "startuperror": [2, 3], "stat": [0, 2, 3, 4], "state": 17, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 2, 3], "step": 1, "still": [3, 23], "stop": [0, 7, 18], "store": [0, 3, 7, 8, 23], "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "string": [0, 6], "style": 18, "sub": [0, 3], "submodul": [2, 13], "subpackag": 2, "subtract": 26, "success": [0, 24], "suffix": [3, 23], "suggest": 26, "support": [0, 4, 7, 26], "suppressed_except": 26, "sure": 1, "switch": [3, 23], "sync": [0, 3], "sync_app_command": 3, "system": [0, 1, 14, 16], "t": [0, 3, 10, 11, 13, 17, 19, 26], "target": [0, 8], "task": [0, 26], "task_id": 26, "task_return": 26, "templat": 1, "test": 2, "text": [0, 3, 6, 11, 14, 15, 23, 24], "textchannel": 9, "than": [7, 24], "thei": [3, 17, 22], "them": [1, 3, 17, 26], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "thread": [0, 9], "three": [3, 23], "through": [14, 16, 19], "thrown": 7, "thu": 3, "tild": 0, "time": [0, 10, 26], "timeout": [0, 3, 18, 23], "timezon": 26, "token": [1, 6], "toml": [0, 1], "too": 24, "tool": [3, 7], "top": 7, "total": [3, 23], "trace": [0, 7, 20], "track": 26, "transport": 4, "trashcan": [3, 23], "tree": 3, "trigger": 10, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "truncat": [3, 23], "tupl": [17, 26], "turn": 19, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "type_": 10, "typeerror": [10, 17], "typehint": 17, "typevar": [12, 17, 26], "u": [0, 3, 23], "ui": 18, "unavail": 3, "unawait": 26, "under": 7, "underli": 19, "union": 10, "uniqu": 26, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 26, "unsupport": 24, "unti": [3, 23], "until": [0, 3, 19, 25], "up": [0, 1, 3, 23], "updat": [0, 17], "update_wrapper_glob": [3, 7, 17], "upload": [0, 24], "upon": 0, "url": [0, 3, 6, 23, 24], "urllib": 25, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "usag": 0, "user": [0, 3, 10, 12, 18, 22, 23], "user_has_access": [0, 3, 7, 18], "utc": 26, "util": [0, 1, 2, 3, 8, 17, 18, 20], "v1": [0, 3, 23, 24], "valid": 0, "valu": [12, 17, 19, 20], "valueerror": [6, 17, 24], "vari": 1, "variabl": 1, "variou": [0, 9], "verifi": 10, "version": [0, 11], "view": [0, 18], "viewwithuserandrolecheck": [0, 3, 7, 18], "wa": [0, 9, 10, 26], "wait": [0, 3, 7, 19, 26], "wait_until_guild_avail": [2, 3], "want": 1, "warn": [0, 26], "wasn": 11, "we": [20, 21], "websocket": 0, "were": 3, "what": 1, "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "where": 10, "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "while": [3, 12, 19, 23], "whitelist": 10, "whitespac": [0, 25], "who": [0, 18], "whom": [3, 23], "within": [0, 3], "without": [0, 10], "won": 17, "word": [3, 23], "work": [0, 1], "worker": 7, "workflow": 0, "would": [3, 23], "wrap": [8, 17, 26], "wrapper": [0, 6, 12, 17, 26], "write": [0, 1], "wrong": 0, "www": 0, "x": 0, "you": [0, 1, 9, 25], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "abc": 15, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 13, "ext": 5, "extra": 2, "function": 17, "interact": 18, "local": 1, "lock": 19, "log": 20, "manag": 16, "member": 21, "messag": 22, "modul": 2, "option": 1, "packag": [13, 14], "pagin": 23, "paste_servic": 24, "project": 2, "pydi": 3, "refer": 2, "regex": 25, "schedul": 26, "site_api": 6, "submodul": [3, 7, 14], "subpackag": [3, 7, 13], "test": 1, "util": 7}}) \ No newline at end of file diff --git a/v11.0.0/versions.html b/v11.0.0/versions.html index c224f7c8..700c92b9 100644 --- a/v11.0.0/versions.html +++ b/v11.0.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v11.0.0 - + @@ -603,7 +603,7 @@ - + diff --git a/v11.0.1/.buildinfo b/v11.0.1/.buildinfo index 84fca6ed..1e3a0203 100644 --- a/v11.0.1/.buildinfo +++ b/v11.0.1/.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: fcc2bc989965d4753aa3beb9361141cc +config: b3c1bc14e9407480e040561ca178811b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v11.0.1/_static/basic.css b/v11.0.1/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v11.0.1/_static/basic.css +++ b/v11.0.1/_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/v11.0.1/_static/doctools.js b/v11.0.1/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v11.0.1/_static/doctools.js +++ b/v11.0.1/_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/v11.0.1/_static/language_data.js b/v11.0.1/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v11.0.1/_static/language_data.js +++ b/v11.0.1/_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/v11.0.1/_static/searchtools.js b/v11.0.1/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v11.0.1/_static/searchtools.js +++ b/v11.0.1/_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/v11.0.1/changelog.html b/v11.0.1/changelog.html index 23fc93fc..bca913c4 100644 --- a/v11.0.1/changelog.html +++ b/v11.0.1/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v11.0.1 - + @@ -390,7 +390,7 @@
                                                                                          -

                                                                                          Changelog#

                                                                                          +

                                                                                          Changelog

                                                                                          11.0.1 20th March 2024

                                                                                          • [Bug] #209: Extract original error from discord.ext.commands.errors.CommandInvokeError before handling it.

                                                                                          • @@ -806,7 +806,7 @@ - + diff --git a/v11.0.1/development.html b/v11.0.1/development.html index ca3b0e00..8ab3bcf4 100644 --- a/v11.0.1/development.html +++ b/v11.0.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v11.0.1 - + @@ -390,7 +390,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. @@ -402,7 +402,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

                                                                                                @@ -418,7 +418,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. @@ -518,7 +518,7 @@ to help you test out certain features. Use them as needed.

                                                                                                - + diff --git a/v11.0.1/genindex.html b/v11.0.1/genindex.html index 8d83003d..4052d3af 100644 --- a/v11.0.1/genindex.html +++ b/v11.0.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v11.0.1 + Index - Pydis Core v11.0.1 - + @@ -1143,7 +1143,7 @@ - + diff --git a/v11.0.1/index.html b/v11.0.1/index.html index e2a26d8c..66dda912 100644 --- a/v11.0.1/index.html +++ b/v11.0.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v11.0.1 - + @@ -390,10 +390,10 @@
                                                                                                -

                                                                                                Bot Core Project Documentation#

                                                                                                +

                                                                                                Bot Core Project Documentation

                                                                                                -

                                                                                                Reference#

                                                                                                +

                                                                                                Reference

                                                                                                Modules:

                                                                                                  @@ -471,7 +471,7 @@
                                                                                                -

                                                                                                Extras#

                                                                                                +

                                                                                                Extras

                                                                                                • Index

                                                                                                • Search Page

                                                                                                • @@ -521,7 +521,7 @@ - + diff --git a/v11.0.1/index_redirect.html b/v11.0.1/index_redirect.html index 069cbf8c..f9ad4015 100644 --- a/v11.0.1/index_redirect.html +++ b/v11.0.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v11.0.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v11.0.1/output/pydis_core.async_stats.html b/v11.0.1/output/pydis_core.async_stats.html index f745c507..7c04ca4e 100644 --- a/v11.0.1/output/pydis_core.async_stats.html +++ b/v11.0.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v11.0.1 - + @@ -390,16 +390,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:
                                                                                                  @@ -416,7 +416,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:
                                                                                                  @@ -502,7 +502,7 @@ - + diff --git a/v11.0.1/output/pydis_core.exts.html b/v11.0.1/output/pydis_core.exts.html index 40cff5bd..68027042 100644 --- a/v11.0.1/output/pydis_core.exts.html +++ b/v11.0.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v11.0.1 - + @@ -390,7 +390,7 @@
                                                                                                  -

                                                                                                  Exts#

                                                                                                  +

                                                                                                  Exts

                                                                                                  Reusable Discord cogs.

                                                                                                  @@ -444,7 +444,7 @@ - + diff --git a/v11.0.1/output/pydis_core.html b/v11.0.1/output/pydis_core.html index 0ed56f52..9d6b8ed5 100644 --- a/v11.0.1/output/pydis_core.html +++ b/v11.0.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v11.0.1 - + @@ -390,16 +390,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.

                                                                                                  -guild_id[source]#
                                                                                                  +guild_id[source]

                                                                                                  ID of the guild that the bot belongs to.

                                                                                                  Type:
                                                                                                  @@ -410,7 +410,7 @@
                                                                                                  -http_session[source]#
                                                                                                  +http_session[source]

                                                                                                  The http session used for sending out HTTP requests.

                                                                                                  Type:
                                                                                                  @@ -421,7 +421,7 @@
                                                                                                  -api_client[source]#
                                                                                                  +api_client[source]

                                                                                                  The API client used for communications with the site service.

                                                                                                  Type:
                                                                                                  @@ -432,7 +432,7 @@
                                                                                                  -statsd_url[source]#
                                                                                                  +statsd_url[source]

                                                                                                  The url that statsd sends metrics to.

                                                                                                  Type:
                                                                                                  @@ -443,7 +443,7 @@
                                                                                                  -redis_session[source]#
                                                                                                  +redis_session[source]

                                                                                                  The redis session used to communicate with the Redis instance.

                                                                                                  Type:
                                                                                                  @@ -454,7 +454,7 @@
                                                                                                  -stats[source]#
                                                                                                  +stats[source]

                                                                                                  The statsd client that sends metrics.

                                                                                                  Type:
                                                                                                  @@ -465,7 +465,7 @@
                                                                                                  -all_extensions[source]#
                                                                                                  +all_extensions[source]

                                                                                                  All extensions that were found within the module passed to self.load_extensions. Use self.extensions to get the loaded extensions.

                                                                                                  @@ -477,7 +477,7 @@
                                                                                                  -__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:
                                                                                                  @@ -496,7 +496,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:
                                                                                                  @@ -507,7 +507,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:
                                                                                                  @@ -518,7 +518,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:
                                                                                                  @@ -529,7 +529,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:
                                                                                                  @@ -540,7 +540,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:
                                                                                                  @@ -554,7 +554,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:
                                                                                                  @@ -565,7 +565,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.

                                                                                                  @@ -578,7 +578,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:
                                                                                                  @@ -589,7 +589,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:
                                                                                                  @@ -600,7 +600,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.

                                                                                                  @@ -612,7 +612,7 @@ will not be set and guild_available_but_cache_empty event will be e
                                                                                                  -register_command_error_manager(manager)[source]#
                                                                                                  +register_command_error_manager(manager)[source]

                                                                                                  Bind an instance of the command error manager to both the bot and the command tree.

                                                                                                  The reason this doesn’t happen in the constructor is because error handlers might need an instance of the bot. So registration needs to happen once the bot instance has been created.

                                                                                                  @@ -625,7 +625,7 @@ So registration needs to happen once the bot instance has been created.

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

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

                                                                                                  @@ -667,14 +667,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                  -exception EmptyPaginatorEmbedError[source]#
                                                                                                  +exception EmptyPaginatorEmbedError[source]

                                                                                                  Bases: Exception

                                                                                                  Raised when attempting to paginate with empty contents.

                                                                                                  -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                  +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                  Bases: Paginator

                                                                                                  A class that aids in paginating code blocks for Discord messages.

                                                                                                  @@ -691,14 +691,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                  -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                  +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                  This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                                  It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                                  -add_line(line='', *, empty=False)[source]#
                                                                                                  +add_line(line='', *, empty=False)[source]

                                                                                                  Adds a line to the current page.

                                                                                                  If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -726,7 +726,7 @@ page at a reasonable size.

                                                                                                  -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                                  +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                                  Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                                  The reactions are used to switch page, or to finish with pagination.

                                                                                                  When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -770,24 +770,24 @@ to any user with a moderation role.

                                                                                                  -class PaginationEmojis(**data)[source]#
                                                                                                  +class PaginationEmojis(**data)[source]

                                                                                                  Bases: BaseModel

                                                                                                  The emojis that will be used for pagination.

                                                                                                  -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                                  +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                                  @@ -797,18 +797,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                  -exception StartupError(base)[source]#
                                                                                                  +exception StartupError(base)[source]

                                                                                                  Bases: Exception

                                                                                                  Exception class for startup errors.

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

                                                                                                  Subpackages#

                                                                                                  +

                                                                                                  Subpackages

                                                                                                  • Exts
                                                                                                  • @@ -925,7 +925,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                  -

                                                                                                  Submodules#

                                                                                                  +

                                                                                                  Submodules

                                                                                                  • async_stats
                                                                                                      @@ -1073,7 +1073,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.site_api.html b/v11.0.1/output/pydis_core.site_api.html index 580d3f13..ba208090 100644 --- a/v11.0.1/output/pydis_core.site_api.html +++ b/v11.0.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v11.0.1 - + @@ -390,16 +390,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:
                                                                                                  @@ -414,7 +414,7 @@
                                                                                                  -async close()[source]#
                                                                                                  +async close()[source]

                                                                                                  Close the aiohttp session.

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

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

                                                                                                  Return type:
                                                                                                  @@ -436,7 +436,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:
                                                                                                  @@ -447,7 +447,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:
                                                                                                  @@ -467,7 +467,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:
                                                                                                  @@ -478,7 +478,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:
                                                                                                  @@ -489,7 +489,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:
                                                                                                  @@ -500,7 +500,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:
                                                                                                  @@ -527,12 +527,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:
                                                                                                  @@ -547,7 +547,7 @@
                                                                                                  -__str__()[source]#
                                                                                                  +__str__()[source]

                                                                                                  Return a string representation of the error.

                                                                                                  @@ -640,7 +640,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.caching.html b/v11.0.1/output/pydis_core.utils.caching.html index d8f71091..f87600b4 100644 --- a/v11.0.1/output/pydis_core.utils.caching.html +++ b/v11.0.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v11.0.1 - + @@ -390,18 +390,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:
                                                                                                  @@ -418,7 +418,7 @@
                                                                                                  -__init__(max_size=128)[source]#
                                                                                                  +__init__(max_size=128)[source]

                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                  Clear cache instance.

                                                                                                  Return type:
                                                                                                  @@ -516,7 +516,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.channel.html b/v11.0.1/output/pydis_core.utils.channel.html index 9f150f42..1a4e932f 100644 --- a/v11.0.1/output/pydis_core.utils.channel.html +++ b/v11.0.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v11.0.1 - + @@ -390,11 +390,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:
                                                                                                  @@ -422,7 +422,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:
                                                                                                  @@ -512,7 +512,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.checks.html b/v11.0.1/output/pydis_core.utils.checks.html index 9a901df2..663cf35a 100644 --- a/v11.0.1/output/pydis_core.utils.checks.html +++ b/v11.0.1/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core v11.0.1 - + @@ -390,29 +390,29 @@
                                                                                                  -

                                                                                                  checks#

                                                                                                  +

                                                                                                  checks

                                                                                                  -exception ContextCheckFailure(redirect_channel)[source]#
                                                                                                  +exception ContextCheckFailure(redirect_channel)[source]

                                                                                                  Bases: CheckFailure

                                                                                                  Raised when a context-specific check fails.

                                                                                                  -__init__(redirect_channel)[source]#
                                                                                                  +__init__(redirect_channel)[source]
                                                                                                  -exception InWhitelistCheckFailure(redirect_channel)[source]#
                                                                                                  +exception InWhitelistCheckFailure(redirect_channel)[source]

                                                                                                  Bases: ContextCheckFailure

                                                                                                  Raised when the in_whitelist check fails.

                                                                                                  -cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]#
                                                                                                  +cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]

                                                                                                  Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

                                                                                                  Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

                                                                                                  @@ -438,7 +438,7 @@
                                                                                                  -async has_any_role_check(ctx, *roles)[source]#
                                                                                                  +async has_any_role_check(ctx, *roles)[source]

                                                                                                  Verify if the context’s author has any of the specified roles.

                                                                                                  This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                                  @@ -459,7 +459,7 @@
                                                                                                  -async has_no_roles_check(ctx, *roles)[source]#
                                                                                                  +async has_no_roles_check(ctx, *roles)[source]

                                                                                                  Verify if the context’s author doesn’t have any of the specified roles.

                                                                                                  This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                                  @@ -480,7 +480,7 @@
                                                                                                  -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]#
                                                                                                  +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]

                                                                                                  Check if a command was issued in a context that is whitelisted by channel, category, or roles.

                                                                                                  Parameters:
                                                                                                  @@ -584,7 +584,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.commands.html b/v11.0.1/output/pydis_core.utils.commands.html index 69c1f51e..29cd6083 100644 --- a/v11.0.1/output/pydis_core.utils.commands.html +++ b/v11.0.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v11.0.1 - + @@ -390,10 +390,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:
                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.cooldown.html b/v11.0.1/output/pydis_core.utils.cooldown.html index 2cddeb12..82189e44 100644 --- a/v11.0.1/output/pydis_core.utils.cooldown.html +++ b/v11.0.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v11.0.1 - + @@ -390,21 +390,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:
                                                                                                  @@ -420,20 +420,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:
                                                                                                  @@ -535,7 +535,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v11.0.1/output/pydis_core.utils.error_handling.commands.abc.html b/v11.0.1/output/pydis_core.utils.error_handling.commands.abc.html index 71c8ede0..a574bd80 100644 --- a/v11.0.1/output/pydis_core.utils.error_handling.commands.abc.html +++ b/v11.0.1/output/pydis_core.utils.error_handling.commands.abc.html @@ -5,14 +5,14 @@ - + abc - Pydis Core v11.0.1 - + @@ -390,15 +390,15 @@
                                                                                                  -

                                                                                                  abc#

                                                                                                  +

                                                                                                  abc

                                                                                                  -class AbstractCommandErrorHandler[source]#
                                                                                                  +class AbstractCommandErrorHandler[source]

                                                                                                  Bases: ABC

                                                                                                  An abstract command error handler.

                                                                                                  -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                                  +abstract async handle_app_command_error(interaction, error)[source]

                                                                                                  Handle error raised in the context of app commands.

                                                                                                  Return type:
                                                                                                  @@ -409,7 +409,7 @@
                                                                                                  -abstract async handle_text_command_error(context, error)[source]#
                                                                                                  +abstract async handle_text_command_error(context, error)[source]

                                                                                                  Handle error raised in the context of text commands.

                                                                                                  Return type:
                                                                                                  @@ -420,7 +420,7 @@
                                                                                                  -abstract async should_handle_error(error)[source]#
                                                                                                  +abstract async should_handle_error(error)[source]

                                                                                                  A predicate that determines whether the error should be handled.

                                                                                                  Return type:
                                                                                                  @@ -507,7 +507,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.error_handling.commands.html b/v11.0.1/output/pydis_core.utils.error_handling.commands.html index d4a729fb..6911a0e6 100644 --- a/v11.0.1/output/pydis_core.utils.error_handling.commands.html +++ b/v11.0.1/output/pydis_core.utils.error_handling.commands.html @@ -5,14 +5,14 @@ - + commands package - Pydis Core v11.0.1 - + @@ -390,15 +390,15 @@
                                                                                                  -

                                                                                                  commands package#

                                                                                                  +

                                                                                                  commands package

                                                                                                  -class AbstractCommandErrorHandler[source]#
                                                                                                  +class AbstractCommandErrorHandler[source]

                                                                                                  Bases: ABC

                                                                                                  An abstract command error handler.

                                                                                                  -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                                  +abstract async handle_app_command_error(interaction, error)[source]

                                                                                                  Handle error raised in the context of app commands.

                                                                                                  Return type:
                                                                                                  @@ -409,7 +409,7 @@
                                                                                                  -abstract async handle_text_command_error(context, error)[source]#
                                                                                                  +abstract async handle_text_command_error(context, error)[source]

                                                                                                  Handle error raised in the context of text commands.

                                                                                                  Return type:
                                                                                                  @@ -420,7 +420,7 @@
                                                                                                  -abstract async should_handle_error(error)[source]#
                                                                                                  +abstract async should_handle_error(error)[source]

                                                                                                  A predicate that determines whether the error should be handled.

                                                                                                  Return type:
                                                                                                  @@ -433,17 +433,17 @@
                                                                                                  -class CommandErrorManager(default)[source]#
                                                                                                  +class CommandErrorManager(default)[source]

                                                                                                  Bases: object

                                                                                                  A class that registers error handlers and handles all command related errors.

                                                                                                  -__init__(default)[source]#
                                                                                                  +__init__(default)[source]
                                                                                                  -async handle_error(error, context_or_interaction)[source]#
                                                                                                  +async handle_error(error, context_or_interaction)[source]

                                                                                                  Handle a Discord exception.

                                                                                                  Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                                  @@ -456,7 +456,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                  -register_handler(handler)[source]#
                                                                                                  +register_handler(handler)[source]

                                                                                                  Register a command error handler.

                                                                                                  Return type:
                                                                                                  @@ -468,7 +468,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                  -

                                                                                                  Submodules#

                                                                                                  +

                                                                                                  Submodules

                                                                                                  • abc
                                                                                                      @@ -575,7 +575,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.error_handling.commands.manager.html b/v11.0.1/output/pydis_core.utils.error_handling.commands.manager.html index 2a9afe32..82b29ab4 100644 --- a/v11.0.1/output/pydis_core.utils.error_handling.commands.manager.html +++ b/v11.0.1/output/pydis_core.utils.error_handling.commands.manager.html @@ -5,14 +5,14 @@ - + manager - Pydis Core v11.0.1 - + @@ -390,20 +390,20 @@
                                                                                                  -

                                                                                                  manager#

                                                                                                  +

                                                                                                  manager

                                                                                                  -class CommandErrorManager(default)[source]#
                                                                                                  +class CommandErrorManager(default)[source]

                                                                                                  Bases: object

                                                                                                  A class that registers error handlers and handles all command related errors.

                                                                                                  -__init__(default)[source]#
                                                                                                  +__init__(default)[source]
                                                                                                  -async handle_error(error, context_or_interaction)[source]#
                                                                                                  +async handle_error(error, context_or_interaction)[source]

                                                                                                  Handle a Discord exception.

                                                                                                  Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                                  @@ -416,7 +416,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                  -register_handler(handler)[source]#
                                                                                                  +register_handler(handler)[source]

                                                                                                  Register a command error handler.

                                                                                                  Return type:
                                                                                                  @@ -503,7 +503,7 @@ the error as determined by should_handle_error; there is no priorit - + diff --git a/v11.0.1/output/pydis_core.utils.error_handling.html b/v11.0.1/output/pydis_core.utils.error_handling.html index c08213a2..758a4414 100644 --- a/v11.0.1/output/pydis_core.utils.error_handling.html +++ b/v11.0.1/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling package - Pydis Core v11.0.1 - + @@ -390,10 +390,10 @@
                                                                                                  -

                                                                                                  error_handling package#

                                                                                                  +

                                                                                                  error_handling package

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

                                                                                                  Subpackages#

                                                                                                  +

                                                                                                  Subpackages

                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.function.html b/v11.0.1/output/pydis_core.utils.function.html index 3d5d3299..fde4127c 100644 --- a/v11.0.1/output/pydis_core.utils.function.html +++ b/v11.0.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v11.0.1 - + @@ -390,18 +390,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.

                                                                                                  @@ -425,7 +425,7 @@ with the wrapper replaced with the function
                                                                                                  -get_arg_value(name_or_pos, arguments)[source]#
                                                                                                  +get_arg_value(name_or_pos, arguments)[source]

                                                                                                  Return a value from arguments based on a name or position.

                                                                                                  Parameters:
                                                                                                  @@ -448,7 +448,7 @@ with the wrapper replaced with the function
                                                                                                  -get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
                                                                                                  +get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]

                                                                                                  Call decorator_func with the value of the arg at the given name/position.

                                                                                                  Parameters:
                                                                                                  @@ -470,7 +470,7 @@ parameter names to argument values of the function it’s decorating.

                                                                                                  -get_bound_args(func, args, kwargs)[source]#
                                                                                                  +get_bound_args(func, args, kwargs)[source]

                                                                                                  Bind args and kwargs to func and return a mapping of parameter names to argument values.

                                                                                                  Default parameter values are also set.

                                                                                                  @@ -492,7 +492,7 @@ parameter names to argument values of the function it’s decorating.

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

                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.html b/v11.0.1/output/pydis_core.utils.html index 58fd5219..abf2cfb3 100644 --- a/v11.0.1/output/pydis_core.utils.html +++ b/v11.0.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v11.0.1 - + @@ -390,11 +390,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:
                                                                                                  @@ -413,7 +413,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:
                                                                                                  @@ -429,7 +429,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                  -

                                                                                                  Subpackages#

                                                                                                  +

                                                                                                  Subpackages

                                                                                                  • error_handling package
                                                                                                      @@ -449,7 +449,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                  -

                                                                                                  Submodules#

                                                                                                  +

                                                                                                  Submodules

                                                                                                  • caching
                                                                                                      @@ -687,7 +687,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.interactions.html b/v11.0.1/output/pydis_core.utils.interactions.html index 14ad84fb..0ead26ec 100644 --- a/v11.0.1/output/pydis_core.utils.interactions.html +++ b/v11.0.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v11.0.1 - + @@ -390,10 +390,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.

                                                                                                  @@ -408,12 +408,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:
                                                                                                  @@ -426,7 +426,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.

                                                                                                  @@ -443,12 +443,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:
                                                                                                  @@ -462,7 +462,7 @@ If None
                                                                                                  -async on_timeout()[source]#
                                                                                                  +async on_timeout()[source]

                                                                                                  Remove the view from self.message if set.

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

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

                                                                                                  Return type:
                                                                                                  @@ -486,7 +486,7 @@ If None
                                                                                                  -user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
                                                                                                  +user_has_access(user, *, allowed_users=(), allowed_roles=())[source]

                                                                                                  Return whether the user is in the allowed_users list, or has a role from allowed_roles.

                                                                                                  Parameters:
                                                                                                  @@ -585,7 +585,7 @@ If None - + diff --git a/v11.0.1/output/pydis_core.utils.lock.html b/v11.0.1/output/pydis_core.utils.lock.html index c33d0485..819622e6 100644 --- a/v11.0.1/output/pydis_core.utils.lock.html +++ b/v11.0.1/output/pydis_core.utils.lock.html @@ -5,14 +5,14 @@ - + lock - Pydis Core v11.0.1 - + @@ -390,15 +390,15 @@
                                                                                                  -

                                                                                                  lock#

                                                                                                  +

                                                                                                  lock

                                                                                                  -exception LockedResourceError(resource_type, resource_id)[source]#
                                                                                                  +exception LockedResourceError(resource_type, resource_id)[source]

                                                                                                  Bases: RuntimeError

                                                                                                  Exception raised when an operation is attempted on a locked resource.

                                                                                                  -type[source]#
                                                                                                  +type[source]

                                                                                                  Name of the locked resource’s type

                                                                                                  Type:
                                                                                                  @@ -409,7 +409,7 @@
                                                                                                  -id[source]#
                                                                                                  +id[source]

                                                                                                  ID of the locked resource

                                                                                                  Type:
                                                                                                  @@ -420,38 +420,38 @@
                                                                                                  -__init__(resource_type, resource_id)[source]#
                                                                                                  +__init__(resource_type, resource_id)[source]
                                                                                                  -class SharedEvent[source]#
                                                                                                  +class SharedEvent[source]

                                                                                                  Bases: object

                                                                                                  Context manager managing an internal event exposed through the wait coro.

                                                                                                  While any code is executing in this context manager, the underlying event will not be set; when all of the holders finish the event will be set.

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

                                                                                                  Increment the count of the active holders and clear the internal event.

                                                                                                  -__exit__(_exc_type, _exc_val, _exc_tb)[source]#
                                                                                                  +__exit__(_exc_type, _exc_val, _exc_tb)[source]

                                                                                                  Decrement the count of the active holders; if 0 is reached set the internal event.

                                                                                                  -__init__()[source]#
                                                                                                  +__init__()[source]
                                                                                                  -async wait()[source]#
                                                                                                  +async wait()[source]

                                                                                                  Wait for all active holders to exit.

                                                                                                  Return type:
                                                                                                  @@ -464,7 +464,7 @@ when all of the holders finish the event will be set.

                                                                                                  -lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
                                                                                                  +lock(namespace, resource_id, *, raise_error=False, wait=False)[source]

                                                                                                  Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.

                                                                                                  If decorating a command, this decorator must go before (below) the command decorator.

                                                                                                  @@ -491,7 +491,7 @@ and return None.

                                                                                                  -lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
                                                                                                  +lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]

                                                                                                  Apply the lock decorator using the value of the arg at the given name/position as the ID.

                                                                                                  See lock docs for more information.

                                                                                                  @@ -589,7 +589,7 @@ and return None.

                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.logging.html b/v11.0.1/output/pydis_core.utils.logging.html index 6600b7d8..3a95c036 100644 --- a/v11.0.1/output/pydis_core.utils.logging.html +++ b/v11.0.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v11.0.1 - + @@ -390,16 +390,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)
                                                                                                  @@ -423,7 +423,7 @@
                                                                                                   
                                                                                                   
                                                                                                  -get_logger(name=None)[source]#
                                                                                                  +get_logger(name=None)[source]

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

                                                                                                  Parameters:
                                                                                                  @@ -440,7 +440,7 @@
                                                                                                  -log_format[source]#
                                                                                                  +log_format[source]

                                                                                                  A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                                                  @@ -522,7 +522,7 @@
                                                                                                  - + diff --git a/v11.0.1/output/pydis_core.utils.members.html b/v11.0.1/output/pydis_core.utils.members.html index 74b49db0..67c33d32 100644 --- a/v11.0.1/output/pydis_core.utils.members.html +++ b/v11.0.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v11.0.1 - + @@ -390,11 +390,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:
                                                                                                  @@ -408,7 +408,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.

                                                                                                  @@ -498,7 +498,7 @@ - + diff --git a/v11.0.1/output/pydis_core.utils.messages.html b/v11.0.1/output/pydis_core.utils.messages.html index aeb53921..37f3c4c9 100644 --- a/v11.0.1/output/pydis_core.utils.messages.html +++ b/v11.0.1/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core v11.0.1 - + @@ -390,10 +390,10 @@
                                                                                                  -

                                                                                                  messages#

                                                                                                  +

                                                                                                  messages

                                                                                                  -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
                                                                                                  +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

                                                                                                  Check if a reaction’s emoji and author are allowed and the message is message_id.

                                                                                                  If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

                                                                                                  @@ -475,7 +475,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/v11.0.1/output/pydis_core.utils.pagination.html b/v11.0.1/output/pydis_core.utils.pagination.html index b7f5216a..97b04b25 100644 --- a/v11.0.1/output/pydis_core.utils.pagination.html +++ b/v11.0.1/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core v11.0.1 - + @@ -390,17 +390,17 @@
                                                                                                  -

                                                                                                  pagination#

                                                                                                  +

                                                                                                  pagination

                                                                                                  -exception EmptyPaginatorEmbedError[source]#
                                                                                                  +exception EmptyPaginatorEmbedError[source]

                                                                                                  Bases: Exception

                                                                                                  Raised when attempting to paginate with empty contents.

                                                                                                  -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                  +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                  Bases: Paginator

                                                                                                  A class that aids in paginating code blocks for Discord messages.

                                                                                                  @@ -417,14 +417,14 @@
                                                                                                  -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                  +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                  This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                                  It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                                  -add_line(line='', *, empty=False)[source]#
                                                                                                  +add_line(line='', *, empty=False)[source]

                                                                                                  Adds a line to the current page.

                                                                                                  If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -452,7 +452,7 @@ page at a reasonable size.

                                                                                                  -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                                  +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                                  Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                                  The reactions are used to switch page, or to finish with pagination.

                                                                                                  When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -496,24 +496,24 @@ to any user with a moderation role.

                                                                                                  -class PaginationEmojis(**data)[source]#
                                                                                                  +class PaginationEmojis(**data)[source]

                                                                                                  Bases: BaseModel

                                                                                                  The emojis that will be used for pagination.

                                                                                                  -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                                  +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                                  @@ -604,7 +604,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.0.1/output/pydis_core.utils.paste_service.html b/v11.0.1/output/pydis_core.utils.paste_service.html index bd6dde26..f7510466 100644 --- a/v11.0.1/output/pydis_core.utils.paste_service.html +++ b/v11.0.1/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v11.0.1 - + @@ -390,16 +390,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.

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

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

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

                                                                                                  @@ -470,28 +470,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:
                                                                                                  @@ -605,7 +605,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.0.1/output/pydis_core.utils.regex.html b/v11.0.1/output/pydis_core.utils.regex.html index 767db2e1..71ee9f69 100644 --- a/v11.0.1/output/pydis_core.utils.regex.html +++ b/v11.0.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v11.0.1 - + @@ -390,11 +390,11 @@
                                                                                                  -

                                                                                                  regex#

                                                                                                  +

                                                                                                  regex

                                                                                                  Common regular expressions.

                                                                                                  -DISCORD_INVITE[source]#
                                                                                                  +DISCORD_INVITE[source]

                                                                                                  Regex for Discord server invites.

                                                                                                  Warning

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

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

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

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

                                                                                                  @@ -495,7 +495,7 @@ such as - + diff --git a/v11.0.1/output/pydis_core.utils.scheduling.html b/v11.0.1/output/pydis_core.utils.scheduling.html index 8368f248..7eaa51fe 100644 --- a/v11.0.1/output/pydis_core.utils.scheduling.html +++ b/v11.0.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v11.0.1 - + @@ -390,11 +390,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 @@ -408,7 +408,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:
                                                                                                  @@ -425,7 +425,7 @@ the same ID used to schedule it.

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

                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                  Unschedule all known tasks.

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

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

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

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

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

                                                                                                  - + diff --git a/v11.0.1/py-modindex.html b/v11.0.1/py-modindex.html index 996bd6a7..383b178a 100644 --- a/v11.0.1/py-modindex.html +++ b/v11.0.1/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v11.0.1 + Python Module Index - Pydis Core v11.0.1 - + @@ -577,7 +577,7 @@ - + diff --git a/v11.0.1/search.html b/v11.0.1/search.html index fc130000..4ad07be8 100644 --- a/v11.0.1/search.html +++ b/v11.0.1/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v11.0.1 + Search - Pydis Core v11.0.1 - + @@ -429,7 +429,7 @@ - + diff --git a/v11.0.1/searchindex.js b/v11.0.1/searchindex.js index 2b666284..7e3aede9 100644 --- a/v11.0.1/searchindex.js +++ b/v11.0.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["changelog", "development", "index", "output/pydis_core", "output/pydis_core.async_stats", "output/pydis_core.exts", "output/pydis_core.site_api", "output/pydis_core.utils", "output/pydis_core.utils.caching", "output/pydis_core.utils.channel", "output/pydis_core.utils.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"11": 0, "0": [0, 8, 10, 18, 19, 20], "1": [0, 20], "20th": 0, "march": 0, "2024": 0, "bug": 0, "209": 0, "extract": 0, "origin": [0, 18], "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "ext": [0, 2, 3, 7, 9, 10, 11, 23], "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "commandinvokeerror": 0, "befor": [0, 3, 10, 18, 19, 23, 26], "handl": [0, 13, 14, 15, 16, 21, 26], "18th": 0, "break": [0, 3, 17, 23], "207": 0, "enabl": [0, 1], "more": [0, 1, 3, 17, 19, 23], "ruff": 0, "lint": 0, "rule": 0, "see": [0, 1, 17, 18, 19], "github": 0, "releas": 0, "note": [0, 10], "chang": [0, 1, 3, 17, 23], "208": 0, "drop": 0, "support": [0, 4, 7, 26], "pydant": [0, 3, 23, 24], "x": 0, "python": [0, 1, 3, 24, 26], "3": 0, "10": 0, "split": 0, "fakeredi": 0, "option": [0, 8, 17, 19], "depend": [0, 9], "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "rediscach": 0, "extra": [0, 6], "you": [0, 1, 9, 25], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "now": [0, 1, 26], "instal": [0, 1], "just": 0, "lua": 0, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "either": [0, 3], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "both": [0, 1, 3, 24], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "allow": [0, 1, 3, 18, 22, 23, 24], "user": [0, 3, 10, 12, 18, 22, 23], "who": [0, 18], "do": [0, 1, 9, 19], "reli": 0, "12": 0, "environ": [0, 1], "featur": [0, 1, 3], "205": 0, "add": [0, 3, 10, 12, 23], "pydis_cor": [0, 1, 3, 18, 20], "util": [0, 1, 2, 3, 8, 17, 18, 20], "error_handl": [0, 3, 7], "abc": [0, 13, 14], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "manag": [0, 3, 13, 14, 19], "commanderrormanag": [0, 7, 13, 14, 16], "implement": [0, 3, 4, 8, 18, 20], "regist": [0, 14, 16], "handler": [0, 3, 14, 15, 16], "independantli": 0, "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "attribut": [0, 7, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "15": 0, "2": [0, 3, 18], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "config": [0, 3, 23, 24], "namespac": [0, 19, 26], "target": [0, 8], "isn": [0, 13, 17], "t": [0, 3, 10, 11, 13, 17, 19, 26], "Be": 0, "awar": [0, 26], "time": [0, 10, 26], "write": [0, 1], "our": [0, 1, 7], "usag": 0, "doe": [0, 17], "current": [0, 3, 19, 23, 26], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "due": 0, "lupa": 0, "requir": [0, 1, 3, 23, 24, 26], "script": 0, "within": [0, 3], "As": 0, "7": 0, "30th": 0, "januari": 0, "194": 0, "interact": [0, 3, 7, 9, 14, 15, 23], "user_has_access": [0, 3, 7, 18], "helper": [0, 9, 12, 21], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "allowed_us": [0, 18, 22], "list": [0, 1, 3, 18, 23, 24], "ha": [0, 3, 7, 10, 18], "role": [0, 1, 3, 10, 18, 21, 22, 23], "allowed_rol": [0, 1, 3, 18, 22, 23], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 20, 25], "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "other": [0, 1, 19, 26], "bot": [0, 1, 3, 7, 9, 22], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "reaction_check": [0, 3, 7, 22], "predic": [0, 14, 15], "dictat": 0, "right": [0, 3, 23], "specif": [0, 10], "set": [0, 1, 3, 12, 17, 18, 19, 23], "reaction": [0, 3, 22, 23], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "over": [0, 3, 23], "content": [0, 3, 11, 23, 24], "emb": [0, 3, 23], "emoji": [0, 3, 22, 23], "facilit": 0, "navig": [0, 1, 3, 23], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "200": 0, "attempt": [0, 3, 9, 19, 21, 23], "read": 0, "respons": [0, 6, 24], "bodi": 0, "http": [0, 3, 6, 24, 25], "code": [0, 1, 3, 6, 19, 23, 25], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 18, 23, 24], "did": 0, "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 18], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 23], "have": [0, 9, 10, 17, 20], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 20], "warn": [0, 26], "level": [0, 7, 20], "asyncio": [0, 4, 26], "info": [0, 1], "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "log_format": [0, 3, 7, 20], "log": [0, 3, 7, 13, 21, 26], "standardis": [0, 20], "across": [0, 3, 20, 23], "servic": [0, 1, 3, 24], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 17], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "process_command": [0, 2, 3], "ensur": [0, 3, 18, 25], "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "process": [0, 3], "until": [0, 3, 19, 25], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "188": 0, "send": [0, 3, 6, 18, 23], "multipl": 0, "file": [0, 1, 24], "onc": [0, 3, 8], "past": [0, 24, 26], "call": [0, 3, 12, 17, 26], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 24], "must": [0, 17, 19, 26], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "pastefil": [0, 3, 7, 24], "184": 0, "remov": [0, 3, 18, 22, 23, 24], "store": [0, 3, 7, 8, 23], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 18], "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "stop": [0, 7, 18], "addit": 0, "exist": [0, 1, 26], "timeout": [0, 3, 18, 23], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "includ": [0, 1, 13], "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 17], "expiri": 0, "label": [0, 18], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "182": 0, "lexer": [0, 24], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 23, 24], "pythondiscord": [0, 24], "com": [0, 24], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "schedul": [0, 3, 7], "179": 0, "upload": [0, 24], "text": [0, 3, 6, 11, 14, 15, 23, 24], "6th": 0, "mai": [0, 3, 8, 19, 23], "175": 0, "wait": [0, 3, 7, 19, 26], "guild": [0, 1, 3, 10, 21], "avail": [0, 3, 14, 16, 19], "cog": [0, 3, 5], "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3, 14, 15], "after": [0, 3, 18, 23, 26], "been": [0, 3], "also": [0, 3, 7, 17, 18, 19, 23], "need": [0, 1, 3, 23], "run": [0, 1, 12, 19, 26], "task": [0, 26], "23rd": 0, "170": 0, "save": [0, 3, 24], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 25], "member": [0, 3, 7, 18], "get_or_fetch_memb": [0, 3, 7, 21], "17th": 0, "novemb": 0, "151": 0, "162": 0, "being": [0, 7, 10, 21], "abl": 0, "button": [0, 18], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 17, 19], "success": [0, 24], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 20], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 25], "match": [0, 3, 17], "lead": 0, "www": 0, "27th": 0, "110": 0, "v1": [0, 3, 23, 24], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 17, 26], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "On": 0, "view": [0, 18], "its": [0, 3, 12, 17], "104": 0, "deletemessagebutton": [0, 3, 7, 18], "wrong": 0, "method": [0, 4, 6, 7, 20], "103": 0, "attach": 0, "parent": [0, 18], "gener": [0, 3, 12, 26], "98": 0, "close": [0, 2, 3, 6, 26], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 26], "91": 0, "miss": 0, "await": [0, 3, 12, 18, 19, 21, 23], "ping_servic": [0, 2, 3], "some": [0, 3, 23, 24], "case": [0, 3, 23], "pass": [0, 3, 6, 17, 20, 21, 26], "self": [0, 3, 18], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 21], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1, 14, 16], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 20, 23], "older": 0, "doc": [0, 19], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "out": [0, 1, 3, 18], "75": 0, "invit": [0, 25], "longer": [0, 18], "safe": 0, "result": [0, 26], "captur": [0, 17, 25], "charact": [0, 3, 23], "up": [0, 1, 3, 23], "whitespac": [0, 25], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 14, 16, 23], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 23, 24], "so": [0, 1, 3, 7], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 17, 21], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 17], "main": 0, "don": [0, 10, 26], "modul": [0, 3, 7, 17, 26], "start": [0, 3, 26], "_": 0, "66": 0, "each": [0, 3, 23], "own": [0, 17], "avoid": [0, 3, 23], "singl": [0, 3, 23], "crash": 0, "entir": [0, 3], "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 17], "64": 0, "987235d": 0, "revert": 0, "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 20], "basic": [0, 18], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 24], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 19, 26], "_guild_avail": 0, "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 19, 23], "made": [0, 22], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 24], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "abstract": [0, 14, 15], "lot": 0, "share": [0, 17], "between": [0, 1, 17], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 20], "import": 0, "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 21], "wrapper": [0, 6, 12, 17, 26], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 21], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 18, 20, 23], "intersphinx": 0, "block": [0, 3, 12, 23, 25], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 3, 7], "poetri": [0, 1], "To": [1, 3, 20], "your": 1, "few": 1, "possibl": 1, "approach": 1, "copi": [1, 17], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "below": [1, 19], "what": 1, "go": [1, 3, 19, 23], "them": [1, 3, 17, 26], "ll": [1, 26], "might": [1, 3, 10], "mean": 1, "modifi": [1, 21], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "vari": 1, "re": [1, 3, 13, 22, 26], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 18, 23, 24, 26], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 17, 22], "free": 1, "howev": 1, "like": [1, 17], "m": 1, "docker": 1, "compos": 1, "d": [1, 17], "configur": [1, 3, 23, 24], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 23], "invok": [1, 10, 12, 18], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "anyth": [1, 24], "reinstal": 1, "applic": 1, "http_session": [2, 3, 24], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 19], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "register_command_error_manag": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 23], "add_lin": [2, 3, 7, 23], "paginationemoji": [2, 3, 7, 23], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "startuperror": [2, 3], "subpackag": 2, "submodul": [2, 13], "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 23], "inform": [2, 19, 20], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 17, 19, 20], "kwarg": [3, 6, 12, 17, 18, 20, 26], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "belong": 3, "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "clientsess": [3, 6, 24], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "redissess": 3, "were": 3, "found": [3, 17, 21, 26], "frozenset": [3, 17], "initialis": [3, 8], "server": [3, 25], "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "oper": [3, 19, 23, 26], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 18, 26], "instead": [3, 12, 26], "connector": 3, "resolv": [3, 17], "sync_app_command": 3, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "intern": [3, 7, 19], "becom": [3, 19], "appear": 3, "still": [3, 23], "empti": [3, 23], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 17, 22], "relev": 3, "bind": [3, 17], "tree": 3, "reason": [3, 23], "doesn": [3, 10, 26], "happen": 3, "constructor": [3, 6], "becaus": [3, 17], "registr": [3, 14, 16], "name": [3, 7, 17, 19, 20, 23, 24, 26], "alia": [3, 7, 12], "individu": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "second": [3, 10, 12, 18, 23, 26], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "suffix": [3, 23], "max_siz": [3, 8, 23, 24], "4000": [3, 23], "scale_to_s": [3, 23], "max_lin": [3, 23], "linesep": [3, 23], "n": [3, 23], "aid": [3, 23], "pagination_emoji": [3, 23], "insert": [3, 23], "everi": [3, 23], "e": [3, 23], "g": [3, 23], "three": [3, 23], "backtick": [3, 23], "append": [3, 23], "end": [3, 23], "maximum": [3, 8, 23, 24], "amount": [3, 23], "codepoint": [3, 23], "line": [3, 23], "scale": [3, 23], "overrid": [3, 23], "insid": [3, 23], "It": [3, 7, 19, 23], "order": [3, 8, 14, 16, 17, 19, 23, 26], "per": [3, 10, 23], "fals": [3, 10, 12, 19, 23, 24], "exce": [3, 8, 23], "overflow": [3, 23], "word": [3, 23], "exceed": [3, 23], "excess": [3, 23], "place": [3, 23], "next": [3, 23], "unti": [3, 23], "remain": [3, 23], "boundari": [3, 23], "truncat": [3, 23], "continu": [3, 23], "onto": [3, 23], "In": [3, 23], "alreadi": [3, 23, 26], "would": [3, 23], "caus": [3, 7, 23], "done": [3, 18, 23, 26], "best": [3, 23], "effort": [3, 23], "while": [3, 12, 19, 23], "keep": [3, 23, 26], "total": [3, 23], "length": [3, 12, 23], "size": [3, 8, 23, 24], "indic": [3, 21, 23], "classmethod": [3, 23], "ctx": [3, 10, 11, 18, 23], "500": [3, 23], "restrict_to_us": [3, 23], "300": [3, 23], "footer_text": [3, 23], "exception_on_empty_emb": [3, 23], "repli": [3, 11, 12, 13, 23], "switch": [3, 23], "finish": [3, 19, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "These": [3, 23], "five": [3, 23], "minut": [3, 23], "limit": [3, 23], "author": [3, 10, 22, 23], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "moder": [3, 18, 22, 23], "context": [3, 10, 11, 14, 15, 19, 23], "hold": [3, 19, 23], "serv": [3, 23], "whom": [3, 23], "restrict": [3, 23], "anymor": [3, 23], "footer": [3, 23], "sequenc": [3, 7, 17, 18, 23], "exampl": [3, 23], "set_author": [3, 23], "icon_url": [3, 23], "icon": [3, 23], "data": [3, 23, 24], "basemodel": [3, 23, 24], "classvar": [3, 23, 24], "dict": [3, 6, 17, 23, 24], "computedfieldinfo": [3, 23, 24], "dictionari": [3, 23, 24], "comput": [3, 23, 24], "field": [3, 23, 24], "correspond": [3, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "configdict": [3, 23, 24], "model": [3, 23, 24], "conform": [3, 23, 24], "fieldinfo": [3, 23, 24], "annot": [3, 17, 23, 24], "trashcan": [3, 23], "637136429717389331": [3, 23], "first": [3, 14, 16, 23], "last": [3, 10, 18, 23], "left": [3, 23], "metadata": [3, 23, 24], "about": [3, 12, 23, 24], "defin": [3, 23, 24], "map": [3, 17, 19, 23, 24], "replac": [3, 10, 17, 23, 24], "__fields__": [3, 23, 24], "handle_forbidden_from_block": [3, 7, 13], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "globalnameconflicterror": [3, 7, 17], "command_wrap": [3, 7, 17], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "update_wrapper_glob": [3, 7, 17], "lockedresourceerror": [3, 7, 19], "sharedev": [3, 7, 19], "lock_arg": [3, 7, 19], "customlogg": [3, 7, 20], "get_logg": [3, 7, 20], "max_paste_s": [3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "formatted_code_regex": [3, 7, 25], "raw_code_regex": [3, 7, 25], "create_task": [3, 7, 26], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 24], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 26], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 26], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 26], "authent": 6, "keyword": [6, 7, 17, 20], "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 17, 24], "represent": 6, "group": [7, 25], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 24], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 18], "interaction_check": [7, 18], "on_timeout": [7, 18], "__enter__": [7, 19], "__exit__": [7, 19], "__contains__": [7, 26], "cancel": [7, 26], "cancel_al": [7, 26], "schedule_at": [7, 26], "schedule_lat": [7, 26], "relat": [8, 14, 16, 20], "128": 8, "lru": 8, "coroutin": [8, 19, 21, 26], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 17, 19], "callabl": [8, 10, 12, 17, 19, 21], "wrap": [8, 17, 26], "item": 8, "channel_id": 9, "fetch": [9, 21], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 24], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "type_": 10, "bypass_rol": 10, "bypass": 10, "before_invok": 10, "introduc": 10, "problem": [10, 20], "futur": [10, 26], "trigger": 10, "float": [10, 12, 18, 26], "durat": 10, "long": [10, 24, 26], "buckettyp": 10, "iter": [10, 12, 14, 16], "describ": 10, "behavior": 10, "typeerror": [10, 17], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 19, 26], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 17, 26], "valu": [12, 17, 19, 20], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 19, 26], "same": [12, 26], "notifi": 12, "paramspec": [12, 17], "raw": [12, 25], "handle_app_command_error": [13, 14, 15], "handle_text_command_error": [13, 14, 15], "should_handle_error": [13, 14, 15, 16], "handle_error": [13, 14, 16], "register_handl": [13, 14, 16], "noreturn": [14, 15], "determin": [14, 15, 16], "context_or_interact": [14, 16], "through": [14, 16, 19], "choos": [14, 16], "capabl": [14, 16], "prioriti": [14, 16], "conflict": 17, "global": 17, "assign": 17, "__module__": 17, "__name__": 17, "__qualname__": 17, "__doc__": 17, "__annotations__": 17, "__dict__": 17, "ignored_conflict_nam": 17, "look": [17, 26], "forwardref": 17, "evalu": 17, "detail": 17, "_p": 17, "_r": 17, "behav": 17, "functool": 17, "name_or_po": [17, 19], "ordereddict": [17, 19], "decorator_func": 17, "func": [17, 19], "accept": [17, 18], "tupl": [17, 26], "For": 17, "__global__": 17, "state": 17, "won": 17, "reflect": 17, "typehint": 17, "style": 18, "secondari": 18, "click": 18, "itself": 18, "carri": 18, "buttonstyl": 18, "180": 18, "ui": 18, "input": 18, "similar": [18, 25], "occur": 18, "listen": 18, "access": 18, "resource_typ": 19, "resource_id": 19, "runtimeerror": 19, "resourc": 19, "hashabl": [19, 26], "expos": 19, "coro": [19, 21, 26], "execut": [19, 26], "underli": 19, "holder": 19, "increment": 19, "count": 19, "activ": 19, "_exc_typ": 19, "_exc_val": 19, "_exc_tb": 19, "decrement": 19, "reach": 19, "exit": 19, "raise_error": 19, "turn": 19, "mutual": 19, "exclus": 19, "identifi": [19, 26], "collis": 19, "among": 19, "perform": 19, "acquir": 19, "msg": 20, "sever": 20, "exc_info": 20, "houston": 20, "we": [20, 21], "interest": 20, "mypi": 20, "recognis": 20, "formatt": 20, "interactin": 21, "member_id": 21, "failur": 21, "could": 21, "sole": 21, "expect": 21, "add_rol": 21, "remove_rol": 21, "purpos": 21, "intend": 21, "message_id": 22, "allowed_emoji": 22, "allow_mod": 22, "even": 22, "524288": 24, "byte": 24, "format": [24, 25], "link": 24, "too": 24, "larg": 24, "unsupport": 24, "encount": 24, "paste_url": 24, "max": 24, "larger": 24, "reject": 24, "max_length": 24, "greater": 24, "regular": 25, "express": 25, "pattern": 25, "pleas": 25, "sanitis": 25, "output": 25, "someth": 25, "urllib": 25, "pars": 25, "quot": 25, "track": 26, "distinguish": 26, "suggest": 26, "immedi": 26, "uniqu": 26, "prematur": 26, "task_id": 26, "unschedul": 26, "known": 26, "unawait": 26, "elsewher": 26, "timezon": 26, "calcul": 26, "subtract": 26, "na\u00efv": 26, "utc": 26, "datetim": 26, "delai": 26, "suppressed_except": 26, "event_loop": 26, "task_return": 26}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": [3, 7, 13], "submodul": [3, 7, 14], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "error_handl": 13, "packag": [13, 14], "abc": 15, "manag": 16, "function": 17, "interact": 18, "lock": 19, "log": 20, "member": 21, "messag": 22, "pagin": 23, "paste_servic": 24, "regex": 25, "schedul": 26}, "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": {"cooldown": [[12, "module-pydis_core.utils.cooldown"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "Subpackages": [[13, "subpackages"], [7, "subpackages"], [3, "subpackages"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "function": [[17, "module-pydis_core.utils.function"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "Submodules": [[14, "submodules"], [7, "submodules"], [3, "submodules"]], "channel": [[9, "module-pydis_core.utils.channel"]], "caching": [[8, "module-pydis_core.utils.caching"]], "checks": [[10, "module-pydis_core.utils.checks"]], "Utils": [[7, "module-pydis_core.utils"]], "commands": [[11, "module-pydis_core.utils.commands"]], "site_api": [[6, "module-pydis_core.site_api"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Changelog": [[0, "changelog"]], "Pydis Core": [[3, "module-pydis_core"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Exts": [[5, "module-pydis_core.exts"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "logging": [[20, "module-pydis_core.utils.logging"]], "members": [[21, "module-pydis_core.utils.members"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "lock": [[19, "module-pydis_core.utils.lock"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "module-pydis_core.utils.scheduling"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [23, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [23, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.error_handling.commands"], [15, "module-pydis_core.utils.error_handling.commands.abc"], [16, "module-pydis_core.utils.error_handling.commands.manager"], [17, "module-pydis_core.utils.function"], [18, "module-pydis_core.utils.interactions"], [19, "module-pydis_core.utils.lock"], [20, "module-pydis_core.utils.logging"], [21, "module-pydis_core.utils.members"], [22, "module-pydis_core.utils.messages"], [23, "module-pydis_core.utils.pagination"], [24, "module-pydis_core.utils.paste_service"], [25, "module-pydis_core.utils.regex"], [26, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [23, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager"]], "__init__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__"]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error"]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error"]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error"]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands"]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler"]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[24, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[26, "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"], [14, "submodules"]], "Subpackages": [[3, "subpackages"], [7, "subpackages"], [13, "subpackages"]], "Utils": [[7, "module-pydis_core.utils"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "function": [[17, "module-pydis_core.utils.function"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "lock": [[19, "module-pydis_core.utils.lock"]], "logging": [[20, "module-pydis_core.utils.logging"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "members": [[21, "module-pydis_core.utils.members"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "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.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__", false]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__", 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__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__", false]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__", false]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__", false], [23, "pydis_core.utils.pagination.LinePaginator.__init__", false]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__", false]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler", false]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog", false]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command", false]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line", false], [23, "pydis_core.utils.pagination.LinePaginator.add_line", false]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions", false]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client", 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)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "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)": [[17, "pydis_core.utils.function.command_wraps", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager", false]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure", false]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE", false]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError", false], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value", false]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper", false]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args", false]], "get_logger() (in module pydis_core.utils.logging)": [[20, "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)": [[21, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError", false]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id", false]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error", false]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change", false]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error", false]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check", false]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check", false]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session", false]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id", false]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check", false]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator", false]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock", false]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg", false]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError", false]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format", 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)": [[24, "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 (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields", false]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config", false]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields", false]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[24, "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.checks", false], [11, "module-pydis_core.utils.commands", false], [12, "module-pydis_core.utils.cooldown", false], [13, "module-pydis_core.utils.error_handling", false], [14, "module-pydis_core.utils.error_handling.commands", false], [15, "module-pydis_core.utils.error_handling.commands.abc", false], [16, "module-pydis_core.utils.error_handling.commands.manager", false], [17, "module-pydis_core.utils.function", false], [18, "module-pydis_core.utils.interactions", false], [19, "module-pydis_core.utils.lock", false], [20, "module-pydis_core.utils.logging", false], [21, "module-pydis_core.utils.members", false], [22, "module-pydis_core.utils.messages", false], [23, "module-pydis_core.utils.pagination", false], [24, "module-pydis_core.utils.paste_service", false], [25, "module-pydis_core.utils.regex", false], [26, "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)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P", false]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate", false], [23, "pydis_core.utils.pagination.LinePaginator.paginate", false]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis", false]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis", false]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[24, "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.checks": [[10, "module-pydis_core.utils.checks", false]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands", false]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc", false]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager", false]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock", false]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members", false]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages", false]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination", false]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check", false]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session", false]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager", false]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler", 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)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent", false]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats", false]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url", false]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace", false]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals", false]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait", 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, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "0": [0, 8, 10, 18, 19, 20], "0a0": 0, "0eb3d26": 0, "1": [0, 20], "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, "15": 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": 18, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "189": 0, "18th": 0, "190": 0, "192": 0, "194": 0, "195": 0, "196": 0, "197": 0, "199": 0, "19th": 0, "2": [0, 3, 18], "200": 0, "202": 0, "2021": 0, "2022": 0, "2023": 0, "2024": 0, "204": [0, 6], "205": 0, "206": 0, "207": 0, "208": 0, "209": 0, "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, "300": [3, 23], "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "4000": [3, 23], "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 12], "500": [3, 23], "524288": 24, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "637136429717389331": [3, 23], "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, 13], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "As": 0, "Be": 0, "For": 17, "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "In": [3, 23], "It": [3, 7, 19, 23], "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "These": [3, 23], "To": [1, 3, 20], "_": 0, "__annotations__": 17, "__call__": [7, 8], "__contains__": [7, 26], "__dict__": 17, "__doc__": 17, "__enter__": [7, 19], "__exit__": [7, 19], "__fields__": [3, 23, 24], "__global__": 17, "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "__module__": 17, "__name__": 17, "__qualname__": 17, "__str__": [3, 6], "_exc_tb": 19, "_exc_typ": 19, "_exc_val": 19, "_guild_avail": 0, "_p": 17, "_r": 17, "_transport": 0, "abc": [0, 13, 14], "abl": 0, "about": [3, 12, 23, 24], "abstract": [0, 14, 15], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "abstracteventloop": [4, 26], "accept": [17, 18], "access": 18, "acquir": 19, "across": [0, 3, 20, 23], "act": 7, "action": 0, "activ": 19, "actual": 0, "ad": [0, 1, 3, 7, 18, 20, 23], "add": [0, 3, 10, 12, 23], "add_cog": [2, 3], "add_command": [2, 3], "add_lin": [2, 3, 7, 23], "add_rol": 21, "addit": 0, "after": [0, 3, 18, 23, 26], "again": 1, "aid": [3, 23], "aiodn": 0, "aiohttp": [0, 3, 6, 24], "alia": [3, 7, 12], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "all_command": 3, "all_extens": [2, 3], "allow": [0, 1, 3, 18, 22, 23, 24], "allow_mod": 22, "allowed_emoji": 22, "allowed_rol": [0, 1, 3, 18, 22, 23], "allowed_us": [0, 18, 22], "alpha": 0, "alreadi": [3, 23, 26], "also": [0, 3, 7, 17, 18, 19, 23], "alwai": 10, "among": 19, "amount": [3, 23], "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "annot": [3, 17, 23, 24], "anymor": [3, 23], "anyth": [1, 24], "api": [0, 3, 6, 21], "api_cli": [0, 2, 3], "apicli": [0, 2, 3, 6], "app": [0, 3, 14, 15], "appear": 3, "append": [3, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "arg": [3, 12, 17, 19, 20], "arg_offset": 8, "args_preprocessor": 12, "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "around": 6, "assign": 17, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "async_rediscach": [0, 3], "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 26], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 19, 21, 23], "attr": 0, "attribut": [0, 7, 17], "august": 0, "authent": 6, "author": [3, 10, 22, 23], "auto": 0, "auto_mod": 0, "autogener": 0, "automat": [0, 3, 23], "avail": [0, 3, 14, 16, 19], "avoid": [0, 3, 23], "await": [0, 3, 12, 18, 19, 21, 23], "awar": [0, 26], "back": 0, "backtick": [3, 23], "bad": 0, "badargu": 11, "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "basemodel": [3, 23, 24], "basic": [0, 18], "becaus": [3, 17], "becom": [3, 19], "been": [0, 3], "befor": [0, 3, 10, 18, 19, 23, 26], "before_invok": 10, "behav": 17, "behavior": 10, "behaviour": [0, 3], "being": [0, 7, 10, 21], "belong": 3, "below": [1, 19], "best": [3, 23], "between": [0, 1, 17], "bind": [3, 17], "block": [0, 3, 12, 23, 25], "block_duplicate_invoc": [3, 7, 12], "bodi": 0, "boilerpl": 0, "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "bot": [0, 1, 3, 7, 9, 22], "bot_token": 1, "botbas": [0, 2, 3], "both": [0, 1, 3, 24], "boundari": [3, 23], "break": [0, 3, 17, 23], "broke": 0, "buckettyp": 10, "bug": 0, "bump": 0, "button": [0, 18], "buttonstyl": 18, "bypass": 10, "bypass_rol": 10, "byte": 24, "cach": [0, 3, 7, 9, 21], "calcul": 26, "call": [0, 3, 12, 17, 26], "call_without_cooldown": [7, 12], "callabl": [8, 10, 12, 17, 19, 21], "callback": [7, 10, 18], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "cancel": [7, 26], "cancel_al": [7, 26], "cannot": [0, 3, 19, 23], "capabl": [14, 16], "captur": [0, 17, 25], "carri": 18, "case": [0, 3, 23], "categori": [9, 10], "category_id": 9, "caus": [3, 7, 23], "certain": [0, 1], "chang": [0, 1, 3, 17, 23], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 10, 12], "channel_id": 9, "charact": [0, 3, 23], "chardet": 0, "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "checkfailur": 10, "choos": [14, 16], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "classmethod": [3, 23], "classvar": [3, 23, 24], "clean": [0, 11], "clean_text_or_repli": [3, 7, 11], "clear": [2, 3, 7, 8, 19], "click": 18, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 24], "close": [0, 2, 3, 6, 26], "cloudflar": 7, "code": [0, 1, 3, 6, 19, 23, 25], "codepoint": [3, 23], "cog": [0, 3, 5], "collect": 10, "collis": 19, "com": [0, 24], "comma": 1, "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "command_wrap": [3, 7, 17], "commanderror": 12, "commanderrormanag": [0, 7, 13, 14, 16], "commandinvokeerror": 0, "commandoncooldown": [3, 7, 12], "commit": 0, "common": [0, 1, 3, 7, 20, 25], "commun": [3, 4], "compos": 1, "comput": [3, 23, 24], "computedfieldinfo": [3, 23, 24], "concurr": 0, "config": [0, 3, 23, 24], "configdict": [3, 23, 24], "configur": [1, 3, 23, 24], "conflict": 17, "conform": [3, 23, 24], "connect": [0, 3, 4], "connector": 3, "constructor": [3, 6], "contain": [1, 3, 10, 18, 23, 24, 26], "content": [0, 3, 11, 23, 24], "context": [3, 10, 11, 14, 15, 19, 23], "context_or_interact": [14, 16], "contextcheckfailur": [3, 7, 10], "continu": [3, 23], "control": 0, "cooldown": [3, 7, 10], "cooldown_dur": 12, "cooldown_with_role_bypass": [3, 7, 10], "copi": [1, 17], "core": [0, 1], "coro": [19, 21, 26], "coroutin": [8, 19, 21, 26], "correct": [0, 1], "correspond": [3, 23, 24], "could": 21, "count": 19, "crash": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 26], "creation": 0, "criteria": 0, "ctx": [3, 10, 11, 18, 23], "current": [0, 3, 19, 23, 26], "custom": [0, 8, 20], "customlogg": [3, 7, 20], "cut": 0, "d": [1, 17], "dai": 0, "data": [3, 23, 24], "datetim": 26, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 10, 12, 17, 19], "decorator_func": 17, "decrement": 19, "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "defin": [3, 23, 24], "delai": 26, "delet": [0, 3, 6, 8, 18, 23, 24], "deletemessagebutton": [0, 3, 7, 18], "depend": [0, 9], "deprec": 0, "describ": 10, "detail": 17, "detect": 0, "determin": [14, 15, 16], "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [3, 6, 17, 23, 24], "dictat": 0, "dictionari": [3, 23, 24], "did": 0, "directli": [0, 17], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "discord_invit": [0, 3, 7, 25], "disnak": 0, "distinguish": 26, "django": 6, "dm": 10, "do": [0, 1, 9, 19], "doc": [0, 19], "docker": 1, "docstr": 0, "document": 0, "doe": [0, 17], "doesn": [3, 10, 26], "don": [0, 10, 26], "done": [3, 18, 23, 26], "drop": 0, "due": 0, "dummi": [0, 3], "duplic": [0, 12], "durat": 10, "dynam": 0, "e": [3, 23], "each": [0, 3, 23], "edit": 3, "effort": [3, 23], "either": [0, 3], "els": 11, "elsewher": 26, "emb": [0, 3, 23], "emit": 3, "emoji": [0, 3, 22, 23], "empti": [3, 23], "emptypaginatorembederror": [2, 3, 7, 23], "enabl": [0, 1], "encount": 24, "end": [3, 23], "endpoint": 6, "ensur": [0, 3, 18, 25], "entir": [0, 3], "env": 1, "environ": [0, 1], "equival": 6, "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "error_handl": [0, 3, 7], "etc": [1, 10], "evalu": 17, "even": 22, "event": [0, 3, 4, 19, 26], "event_loop": 26, "everi": [3, 23], "exact": 1, "exampl": [3, 23], "exc_info": 20, "exce": [3, 8, 23], "exceed": [3, 23], "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "exception_on_empty_emb": [3, 23], "excess": [3, 23], "exclus": 19, "execut": [19, 26], "exist": [0, 1, 26], "exit": 19, "expect": 21, "expiri": 0, "explain": 0, "expos": 19, "express": 25, "ext": [0, 2, 3, 7, 9, 10, 11, 23], "extend": 0, "extens": [0, 3], "extra": [0, 6], "extract": 0, "facilit": 0, "fail": [9, 10, 24], "fail_sil": 10, "failur": 21, "fakeredi": 0, "fals": [3, 10, 12, 19, 23, 24], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 21], "few": 1, "field": [3, 23, 24], "fieldinfo": [3, 23, 24], "fifo": 8, "file": [0, 1, 24], "filter": 0, "finish": [3, 19, 23], "first": [3, 14, 16, 23], "five": [3, 23], "fix": 0, "float": [10, 12, 18, 26], "folder": 1, "footer": [3, 23], "footer_text": [3, 23], "forbidden": [0, 9, 13], "format": [24, 25], "formatt": 20, "formatted_code_regex": [3, 7, 25], "forum": 0, "forwardref": 17, "found": [3, 17, 21, 26], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "frozenset": [3, 17], "func": [17, 19], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "functool": 17, "futur": [10, 26], "g": [3, 23], "gatewai": 3, "gener": [0, 3, 12, 26], "get": [0, 3, 6, 9, 17, 21], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "get_logg": [3, 7, 20], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 21], "git": 1, "github": 0, "give": 3, "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "global": 17, "globalnameconflicterror": [3, 7, 17], "go": [1, 3, 19, 23], "greater": 24, "groundwork": 1, "group": [7, 25], "guild": [0, 1, 3, 10, 21], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 2, 3], "guildchannel": 9, "ha": [0, 3, 7, 10, 18], "handl": [0, 13, 14, 15, 16, 21, 26], "handle_app_command_error": [13, 14, 15], "handle_error": [13, 14, 16], "handle_forbidden_from_block": [3, 7, 13], "handle_role_chang": [0, 3, 7, 21], "handle_text_command_error": [13, 14, 15], "handler": [0, 3, 14, 15, 16], "happen": 3, "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "hashabl": [19, 26], "have": [0, 9, 10, 17, 20], "heavi": 7, "help": [0, 1], "helper": [0, 9, 12, 21], "hold": [3, 19, 23], "holder": 19, "hook": 0, "host": 4, "houston": 20, "how": [0, 8, 10, 17, 26], "howev": 1, "http": [0, 3, 6, 24, 25], "http_session": [2, 3, 24], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "icon": [3, 23], "icon_url": [3, 23], "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "identifi": [19, 26], "ignor": [1, 7, 17, 22], "ignored_conflict_nam": 17, "immedi": 26, "implement": [0, 3, 4, 8, 18, 20], "import": 0, "in_whitelist": 10, "in_whitelist_check": [3, 7, 10], "inadequ": 3, "includ": [0, 1, 13], "incorrect": 0, "increment": 19, "independantli": 0, "index": 2, "indic": [3, 21, 23], "individu": 3, "info": [0, 1], "inform": [2, 19, 20], "init": [0, 3, 4], "initi": [6, 26], "initialis": [3, 8], "input": 18, "insert": [3, 23], "insid": [3, 23], "instal": [0, 1], "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "instanti": [3, 18, 26], "instead": [3, 12, 26], "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "intend": 21, "intent": 1, "interact": [0, 3, 7, 9, 14, 15, 23], "interactin": 21, "interaction_check": [7, 18], "interest": 20, "intern": [3, 7, 19], "intersphinx": 0, "introduc": 10, "invalid": 9, "invaliddata": 9, "invit": [0, 25], "invoc": [0, 12], "invok": [1, 10, 12, 18], "inwhitelistcheckfailur": [3, 7, 10], "is_in_categori": [3, 7, 9], "isn": [0, 13, 17], "issu": 10, "item": 8, "iter": [10, 12, 14, 16], "its": [0, 3, 12, 17], "itself": 18, "januari": 0, "json": 6, "juli": 0, "june": 0, "just": 0, "keep": [3, 23, 26], "kei": 8, "keyword": [6, 7, 17, 20], "known": 26, "kwarg": [3, 6, 12, 17, 18, 20, 26], "label": [0, 18], "lancebot": 1, "larg": 24, "larger": 24, "last": [3, 10, 18, 23], "latest": 0, "lead": 0, "least": 10, "left": [3, 23], "length": [3, 12, 23], "level": [0, 7, 20], "lexer": [0, 24], "librari": [0, 1], "like": [1, 17], "limit": [3, 23], "line": [3, 23], "linepagin": [0, 2, 3, 7, 23], "linesep": [3, 23], "link": 24, "lint": 0, "list": [0, 1, 3, 18, 23, 24], "listen": 18, "ll": [1, 26], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "lock": [0, 3, 7], "lock_arg": [3, 7, 19], "lockedresourceerror": [3, 7, 19], "log": [0, 3, 7, 13, 21, 26], "log_format": [0, 3, 7, 20], "log_to_dev_log": [2, 3], "logger": [0, 20], "logic": 0, "long": [10, 24, 26], "longer": [0, 18], "look": [17, 26], "loop": [4, 26], "lot": 0, "lru": 8, "lua": 0, "lupa": 0, "m": 1, "machin": 1, "made": [0, 22], "mai": [0, 3, 8, 19, 23], "main": 0, "make": [0, 1, 3, 20, 23], "manag": [0, 3, 13, 14, 19], "mani": [0, 3, 8], "manipul": [0, 17], "manual": 3, "map": [3, 17, 19, 23, 24], "march": 0, "mark": 0, "match": [0, 3, 17], "max": 24, "max_length": 24, "max_lin": [3, 23], "max_paste_s": [3, 7, 24], "max_siz": [3, 8, 23, 24], "maximum": [3, 8, 23, 24], "maybe_raise_for_statu": [3, 6], "mean": 1, "member": [0, 3, 7, 18], "member_id": 21, "mention": [1, 3], "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "message_id": 22, "message_typ": 0, "metadata": [3, 23, 24], "method": [0, 4, 6, 7, 20], "metric": 3, "might": [1, 3, 10], "migrat": 0, "minut": [3, 23], "miss": 0, "mod": 0, "model": [3, 23, 24], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "moder": [3, 18, 22, 23], "modifi": [1, 21], "modul": [0, 3, 7, 17, 26], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [0, 1, 3, 17, 19, 23], "most": 1, "move": 0, "msg": 20, "multipl": 0, "multivers": 0, "must": [0, 17, 19, 26], "mutual": 19, "mypi": 20, "n": [3, 23], "name": [3, 7, 17, 19, 20, 23, 24, 26], "name_or_po": [17, 19], "namespac": [0, 19, 26], "navig": [0, 1, 3, 23], "na\u00efv": 26, "need": [0, 1, 3, 23], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "newer": 0, "newli": 0, "next": [3, 23], "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "noreturn": [14, 15], "normal": 3, "notabl": 0, "note": [0, 10], "notfound": 9, "notic": 0, "notifi": 12, "novemb": 0, "now": [0, 1, 26], "number": [0, 3, 10, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "occur": 18, "octob": 0, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 18], "onc": [0, 3, 8], "one": [0, 3, 10, 14, 16, 23], "ones": 1, "onli": [0, 3], "onto": [3, 23], "oper": [3, 19, 23, 26], "option": [0, 8, 17, 19], "order": [3, 8, 14, 16, 17, 19, 23, 26], "ordereddict": [17, 19], "origin": [0, 18], "other": [0, 1, 19, 26], "otherwis": [10, 19, 26], "our": [0, 1, 7], "out": [0, 1, 3, 18], "output": 25, "over": [0, 3, 23], "overflow": [3, 23], "overrid": [3, 23], "overwrit": [0, 3], "own": [0, 17], "p": [3, 7, 12], "packag": [0, 3, 7], "page": [2, 3, 23], "pagin": [0, 2, 3, 7], "pagination_emoji": [3, 23], "paginationemoji": [2, 3, 7, 23], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "paramspec": [12, 17], "parent": [0, 18], "pars": 25, "pass": [0, 3, 6, 17, 20, 21, 26], "past": [0, 24, 26], "paste_servic": [0, 3, 7], "paste_url": 24, "pastebin": 0, "pastefil": [0, 3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "patch": [0, 3, 6, 7], "path": 1, "pattern": 25, "per": [3, 10, 23], "perform": 19, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "place": [3, 23], "pleas": 25, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": [8, 17, 19], "possibl": 1, "post": [3, 6, 24], "pre": 1, "predic": [0, 14, 15], "prefix": [1, 3, 4, 23], "prematur": 26, "press": 0, "prevent": [12, 19, 26], "previous": 0, "prioriti": [14, 16], "privatechannel": [0, 9], "problem": [10, 20], "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 20], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "public": 0, "publish": 0, "purpos": 21, "push": 0, "put": [3, 6], "py": [0, 3, 17], "pydant": [0, 3, 23, 24], "pydi": [0, 2], "pydis_cor": [0, 1, 3, 18, 20], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 24, 26], "pythondiscord": [0, 24], "qualifi": 7, "quot": 25, "r": [3, 7, 12], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "raise_error": 19, "raise_for_statu": 6, "rate": 10, "rather": 7, "raw": [12, 25], "raw_code_regex": [3, 7, 25], "rc2": 0, "re": [1, 3, 13, 22, 26], "reach": 19, "reaction": [0, 3, 22, 23], "reaction_check": [0, 3, 7, 22], "read": 0, "readi": 3, "real": 0, "reason": [3, 23], "receiv": [0, 6, 9], "recognis": 20, "reconnect": 0, "redi": [0, 3], "redirect": 10, "redirect_channel": 10, "redis_sess": [2, 3], "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 17, "regex": [0, 3, 7], "regist": [0, 14, 16], "register_command_error_manag": [2, 3], "register_handl": [13, 14, 16], "registr": [3, 14, 16], "regular": 25, "reinstal": 1, "reject": 24, "relat": [8, 14, 16, 20], "releas": 0, "relev": 3, "reli": 0, "remain": [3, 23], "remov": [0, 3, 18, 22, 23, 24], "remove_command": [2, 3], "remove_rol": 21, "renam": 0, "replac": [3, 10, 17, 23, 24], "repli": [3, 11, 12, 13, 23], "repo": 0, "represent": 6, "request": [0, 3, 6, 25], "requir": [0, 1, 3, 23, 24, 26], "resolut": 0, "resolv": [3, 17], "resourc": 19, "resource_id": 19, "resource_typ": 19, "respons": [0, 6, 24], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "restrict": [3, 23], "restrict_to_us": [3, 23], "result": [0, 26], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "reusabl": 5, "revert": 0, "right": [0, 3, 23], "role": [0, 1, 3, 10, 18, 21, 22, 23], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "rule": 0, "run": [0, 1, 12, 19, 26], "runtimeerror": 19, "safe": 0, "same": [12, 26], "sampl": 0, "sanitis": 25, "save": [0, 3, 24], "scale": [3, 23], "scale_to_s": [3, 23], "schedul": [0, 3, 7], "schedule_at": [7, 26], "schedule_lat": [7, 26], "script": 0, "search": 2, "second": [3, 10, 12, 18, 23, 26], "secondari": 18, "see": [0, 1, 17, 18, 19], "self": [0, 3, 18], "send": [0, 3, 6, 18, 23], "send_notic": 12, "send_to_paste_servic": [0, 3, 7, 24], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [3, 7, 17, 18, 23], "serv": [3, 23], "server": [3, 25], "servic": [0, 1, 3, 24], "session": [0, 3, 6, 24], "session_kwarg": 6, "set": [0, 1, 3, 12, 17, 18, 19, 23], "set_author": [3, 23], "setup": [0, 3], "setup_hook": [2, 3], "sever": 20, "share": [0, 17], "sharedev": [3, 7, 19], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "should_handle_error": [13, 14, 15, 16], "should_rais": 6, "signatur": 12, "silent": 10, "similar": [18, 25], "sinc": 10, "singl": [0, 3, 23], "sir": 1, "site": [0, 3, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [3, 8, 23, 24], "so": [0, 1, 3, 7], "socket": 4, "sole": 21, "some": [0, 3, 23, 24], "someth": 25, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "specif": [0, 10], "specifi": [0, 10, 12, 18], "sphinx": 0, "split": 0, "stabl": 0, "standardis": [0, 20], "start": [0, 3, 26], "startup": 3, "startuperror": [2, 3], "stat": [0, 2, 3, 4], "state": 17, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 2, 3], "step": 1, "still": [3, 23], "stop": [0, 7, 18], "store": [0, 3, 7, 8, 23], "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "string": [0, 6], "style": 18, "sub": [0, 3], "submodul": [2, 13], "subpackag": 2, "subtract": 26, "success": [0, 24], "suffix": [3, 23], "suggest": 26, "support": [0, 4, 7, 26], "suppressed_except": 26, "sure": 1, "switch": [3, 23], "sync": [0, 3], "sync_app_command": 3, "system": [0, 1, 14, 16], "t": [0, 3, 10, 11, 13, 17, 19, 26], "target": [0, 8], "task": [0, 26], "task_id": 26, "task_return": 26, "templat": 1, "test": 2, "text": [0, 3, 6, 11, 14, 15, 23, 24], "textchannel": 9, "than": [7, 24], "thei": [3, 17, 22], "them": [1, 3, 17, 26], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "thread": [0, 9], "three": [3, 23], "through": [14, 16, 19], "thrown": 7, "thu": 3, "tild": 0, "time": [0, 10, 26], "timeout": [0, 3, 18, 23], "timezon": 26, "token": [1, 6], "toml": [0, 1], "too": 24, "tool": [3, 7], "top": 7, "total": [3, 23], "trace": [0, 7, 20], "track": 26, "transport": 4, "trashcan": [3, 23], "tree": 3, "trigger": 10, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "truncat": [3, 23], "tupl": [17, 26], "turn": 19, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "type_": 10, "typeerror": [10, 17], "typehint": 17, "typevar": [12, 17, 26], "u": [0, 3, 23], "ui": 18, "unavail": 3, "unawait": 26, "under": 7, "underli": 19, "union": 10, "uniqu": 26, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 26, "unsupport": 24, "unti": [3, 23], "until": [0, 3, 19, 25], "up": [0, 1, 3, 23], "updat": [0, 17], "update_wrapper_glob": [3, 7, 17], "upload": [0, 24], "upon": 0, "url": [0, 3, 6, 23, 24], "urllib": 25, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "usag": 0, "user": [0, 3, 10, 12, 18, 22, 23], "user_has_access": [0, 3, 7, 18], "utc": 26, "util": [0, 1, 2, 3, 8, 17, 18, 20], "v1": [0, 3, 23, 24], "valid": 0, "valu": [12, 17, 19, 20], "valueerror": [6, 17, 24], "vari": 1, "variabl": 1, "variou": [0, 9], "verifi": 10, "version": [0, 11], "view": [0, 18], "viewwithuserandrolecheck": [0, 3, 7, 18], "wa": [0, 9, 10, 26], "wait": [0, 3, 7, 19, 26], "wait_until_guild_avail": [2, 3], "want": 1, "warn": [0, 26], "wasn": 11, "we": [20, 21], "websocket": 0, "were": 3, "what": 1, "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "where": 10, "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "while": [3, 12, 19, 23], "whitelist": 10, "whitespac": [0, 25], "who": [0, 18], "whom": [3, 23], "within": [0, 3], "without": [0, 10], "won": 17, "word": [3, 23], "work": [0, 1], "worker": 7, "workflow": 0, "would": [3, 23], "wrap": [8, 17, 26], "wrapper": [0, 6, 12, 17, 26], "write": [0, 1], "wrong": 0, "www": 0, "x": 0, "you": [0, 1, 9, 25], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "abc": 15, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 13, "ext": 5, "extra": 2, "function": 17, "interact": 18, "local": 1, "lock": 19, "log": 20, "manag": 16, "member": 21, "messag": 22, "modul": 2, "option": 1, "packag": [13, 14], "pagin": 23, "paste_servic": 24, "project": 2, "pydi": 3, "refer": 2, "regex": 25, "schedul": 26, "site_api": 6, "submodul": [3, 7, 14], "subpackag": [3, 7, 13], "test": 1, "util": 7}}) \ No newline at end of file diff --git a/v11.0.1/versions.html b/v11.0.1/versions.html index 25c50f77..a80ce66e 100644 --- a/v11.0.1/versions.html +++ b/v11.0.1/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v11.0.1 - + @@ -603,7 +603,7 @@ - + diff --git a/v11.1.0/.buildinfo b/v11.1.0/.buildinfo index fe015aeb..84f5dcec 100644 --- a/v11.1.0/.buildinfo +++ b/v11.1.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: fb009f0df396fdbd0fab54da0f919017 +config: d55e1d01afc3a05ebd7e5e3231bcfbfe tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v11.1.0/_static/basic.css b/v11.1.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v11.1.0/_static/basic.css +++ b/v11.1.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/v11.1.0/_static/doctools.js b/v11.1.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v11.1.0/_static/doctools.js +++ b/v11.1.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/v11.1.0/_static/language_data.js b/v11.1.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v11.1.0/_static/language_data.js +++ b/v11.1.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/v11.1.0/_static/searchtools.js b/v11.1.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v11.1.0/_static/searchtools.js +++ b/v11.1.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/v11.1.0/changelog.html b/v11.1.0/changelog.html index 24acd604..6f728f44 100644 --- a/v11.1.0/changelog.html +++ b/v11.1.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v11.1.0 - + @@ -390,7 +390,7 @@
                                                                                                  -

                                                                                                  Changelog#

                                                                                                  +

                                                                                                  Changelog

                                                                                                  11.1.0 30th March 2024

                                                                                                  • [Support] #210: Drop the restriction that meant fakeredis could not be installed on Python 3.12 as lupa now supports 3.12

                                                                                                  • @@ -811,7 +811,7 @@ - + diff --git a/v11.1.0/development.html b/v11.1.0/development.html index 45a936f5..9c74baef 100644 --- a/v11.1.0/development.html +++ b/v11.1.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v11.1.0 - + @@ -390,7 +390,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. @@ -402,7 +402,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

                                                                                                        @@ -418,7 +418,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. @@ -518,7 +518,7 @@ to help you test out certain features. Use them as needed.

                                                                                                        - + diff --git a/v11.1.0/genindex.html b/v11.1.0/genindex.html index bec97891..652e632c 100644 --- a/v11.1.0/genindex.html +++ b/v11.1.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v11.1.0 + Index - Pydis Core v11.1.0 - + @@ -1143,7 +1143,7 @@ - + diff --git a/v11.1.0/index.html b/v11.1.0/index.html index bbebd408..393b852f 100644 --- a/v11.1.0/index.html +++ b/v11.1.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v11.1.0 - + @@ -390,10 +390,10 @@
                                                                                                        -

                                                                                                        Bot Core Project Documentation#

                                                                                                        +

                                                                                                        Bot Core Project Documentation

                                                                                                        -

                                                                                                        Reference#

                                                                                                        +

                                                                                                        Reference

                                                                                                        Modules:

                                                                                                          @@ -471,7 +471,7 @@
                                                                                                        -

                                                                                                        Extras#

                                                                                                        +

                                                                                                        Extras

                                                                                                        • Index

                                                                                                        • Search Page

                                                                                                        • @@ -521,7 +521,7 @@ - + diff --git a/v11.1.0/index_redirect.html b/v11.1.0/index_redirect.html index aaf1d82c..780838bc 100644 --- a/v11.1.0/index_redirect.html +++ b/v11.1.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v11.1.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v11.1.0/output/pydis_core.async_stats.html b/v11.1.0/output/pydis_core.async_stats.html index b2a6a60a..43a6364b 100644 --- a/v11.1.0/output/pydis_core.async_stats.html +++ b/v11.1.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v11.1.0 - + @@ -390,16 +390,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:
                                                                                                          @@ -416,7 +416,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:
                                                                                                          @@ -502,7 +502,7 @@ - + diff --git a/v11.1.0/output/pydis_core.exts.html b/v11.1.0/output/pydis_core.exts.html index b858c3ab..deef1a00 100644 --- a/v11.1.0/output/pydis_core.exts.html +++ b/v11.1.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v11.1.0 - + @@ -390,7 +390,7 @@
                                                                                                          -

                                                                                                          Exts#

                                                                                                          +

                                                                                                          Exts

                                                                                                          Reusable Discord cogs.

                                                                                                          @@ -444,7 +444,7 @@ - + diff --git a/v11.1.0/output/pydis_core.html b/v11.1.0/output/pydis_core.html index 3d758d22..700597df 100644 --- a/v11.1.0/output/pydis_core.html +++ b/v11.1.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v11.1.0 - + @@ -390,16 +390,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.

                                                                                                          -guild_id[source]#
                                                                                                          +guild_id[source]

                                                                                                          ID of the guild that the bot belongs to.

                                                                                                          Type:
                                                                                                          @@ -410,7 +410,7 @@
                                                                                                          -http_session[source]#
                                                                                                          +http_session[source]

                                                                                                          The http session used for sending out HTTP requests.

                                                                                                          Type:
                                                                                                          @@ -421,7 +421,7 @@
                                                                                                          -api_client[source]#
                                                                                                          +api_client[source]

                                                                                                          The API client used for communications with the site service.

                                                                                                          Type:
                                                                                                          @@ -432,7 +432,7 @@
                                                                                                          -statsd_url[source]#
                                                                                                          +statsd_url[source]

                                                                                                          The url that statsd sends metrics to.

                                                                                                          Type:
                                                                                                          @@ -443,7 +443,7 @@
                                                                                                          -redis_session[source]#
                                                                                                          +redis_session[source]

                                                                                                          The redis session used to communicate with the Redis instance.

                                                                                                          Type:
                                                                                                          @@ -454,7 +454,7 @@
                                                                                                          -stats[source]#
                                                                                                          +stats[source]

                                                                                                          The statsd client that sends metrics.

                                                                                                          Type:
                                                                                                          @@ -465,7 +465,7 @@
                                                                                                          -all_extensions[source]#
                                                                                                          +all_extensions[source]

                                                                                                          All extensions that were found within the module passed to self.load_extensions. Use self.extensions to get the loaded extensions.

                                                                                                          @@ -477,7 +477,7 @@
                                                                                                          -__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:
                                                                                                          @@ -496,7 +496,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:
                                                                                                          @@ -507,7 +507,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:
                                                                                                          @@ -518,7 +518,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:
                                                                                                          @@ -529,7 +529,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:
                                                                                                          @@ -540,7 +540,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:
                                                                                                          @@ -554,7 +554,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:
                                                                                                          @@ -565,7 +565,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.

                                                                                                          @@ -578,7 +578,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:
                                                                                                          @@ -589,7 +589,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:
                                                                                                          @@ -600,7 +600,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.

                                                                                                          @@ -612,7 +612,7 @@ will not be set and guild_available_but_cache_empty event will be e
                                                                                                          -register_command_error_manager(manager)[source]#
                                                                                                          +register_command_error_manager(manager)[source]

                                                                                                          Bind an instance of the command error manager to both the bot and the command tree.

                                                                                                          The reason this doesn’t happen in the constructor is because error handlers might need an instance of the bot. So registration needs to happen once the bot instance has been created.

                                                                                                          @@ -625,7 +625,7 @@ So registration needs to happen once the bot instance has been created.

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

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

                                                                                                          @@ -667,14 +667,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                                                          Bases: Exception

                                                                                                          Raised when attempting to paginate with empty contents.

                                                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                          Bases: Paginator

                                                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                                                          @@ -691,14 +691,14 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                                          -add_line(line='', *, empty=False)[source]#
                                                                                                          +add_line(line='', *, empty=False)[source]

                                                                                                          Adds a line to the current page.

                                                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -726,7 +726,7 @@ page at a reasonable size.

                                                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -770,24 +770,24 @@ to any user with a moderation role.

                                                                                                          -class PaginationEmojis(**data)[source]#
                                                                                                          +class PaginationEmojis(**data)[source]

                                                                                                          Bases: BaseModel

                                                                                                          The emojis that will be used for pagination.

                                                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                                          @@ -797,18 +797,18 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                          -exception StartupError(base)[source]#
                                                                                                          +exception StartupError(base)[source]

                                                                                                          Bases: Exception

                                                                                                          Exception class for startup errors.

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

                                                                                                          Subpackages#

                                                                                                          +

                                                                                                          Subpackages

                                                                                                          • Exts
                                                                                                          • @@ -925,7 +925,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                          -

                                                                                                          Submodules#

                                                                                                          +

                                                                                                          Submodules

                                                                                                          • async_stats
                                                                                                              @@ -1073,7 +1073,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.site_api.html b/v11.1.0/output/pydis_core.site_api.html index 492e3290..b956c086 100644 --- a/v11.1.0/output/pydis_core.site_api.html +++ b/v11.1.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v11.1.0 - + @@ -390,16 +390,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:
                                                                                                          @@ -414,7 +414,7 @@
                                                                                                          -async close()[source]#
                                                                                                          +async close()[source]

                                                                                                          Close the aiohttp session.

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

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

                                                                                                          Return type:
                                                                                                          @@ -436,7 +436,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:
                                                                                                          @@ -447,7 +447,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:
                                                                                                          @@ -467,7 +467,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:
                                                                                                          @@ -478,7 +478,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:
                                                                                                          @@ -489,7 +489,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:
                                                                                                          @@ -500,7 +500,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:
                                                                                                          @@ -527,12 +527,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:
                                                                                                          @@ -547,7 +547,7 @@
                                                                                                          -__str__()[source]#
                                                                                                          +__str__()[source]

                                                                                                          Return a string representation of the error.

                                                                                                          @@ -640,7 +640,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.caching.html b/v11.1.0/output/pydis_core.utils.caching.html index 80238eac..23a50b22 100644 --- a/v11.1.0/output/pydis_core.utils.caching.html +++ b/v11.1.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v11.1.0 - + @@ -390,18 +390,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:
                                                                                                          @@ -418,7 +418,7 @@
                                                                                                          -__init__(max_size=128)[source]#
                                                                                                          +__init__(max_size=128)[source]

                                                                                                          Initialise a new AsyncCache instance.

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

                                                                                                          Clear cache instance.

                                                                                                          Return type:
                                                                                                          @@ -516,7 +516,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.channel.html b/v11.1.0/output/pydis_core.utils.channel.html index b7e05d9c..330dead1 100644 --- a/v11.1.0/output/pydis_core.utils.channel.html +++ b/v11.1.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v11.1.0 - + @@ -390,11 +390,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:
                                                                                                          @@ -422,7 +422,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:
                                                                                                          @@ -512,7 +512,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.checks.html b/v11.1.0/output/pydis_core.utils.checks.html index 1fccb43b..9620bfc9 100644 --- a/v11.1.0/output/pydis_core.utils.checks.html +++ b/v11.1.0/output/pydis_core.utils.checks.html @@ -5,14 +5,14 @@ - + checks - Pydis Core v11.1.0 - + @@ -390,29 +390,29 @@
                                                                                                          -

                                                                                                          checks#

                                                                                                          +

                                                                                                          checks

                                                                                                          -exception ContextCheckFailure(redirect_channel)[source]#
                                                                                                          +exception ContextCheckFailure(redirect_channel)[source]

                                                                                                          Bases: CheckFailure

                                                                                                          Raised when a context-specific check fails.

                                                                                                          -__init__(redirect_channel)[source]#
                                                                                                          +__init__(redirect_channel)[source]
                                                                                                          -exception InWhitelistCheckFailure(redirect_channel)[source]#
                                                                                                          +exception InWhitelistCheckFailure(redirect_channel)[source]

                                                                                                          Bases: ContextCheckFailure

                                                                                                          Raised when the in_whitelist check fails.

                                                                                                          -cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]#
                                                                                                          +cooldown_with_role_bypass(rate, per, type_=('default', 0), *, bypass_roles)[source]

                                                                                                          Decorate a command to have a cooldown, which can be bypassed by users with specified roles.

                                                                                                          Note: This replaces the Command.before_invoke callback, which might introduce problems in the future.

                                                                                                          @@ -438,7 +438,7 @@
                                                                                                          -async has_any_role_check(ctx, *roles)[source]#
                                                                                                          +async has_any_role_check(ctx, *roles)[source]

                                                                                                          Verify if the context’s author has any of the specified roles.

                                                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                                          @@ -459,7 +459,7 @@
                                                                                                          -async has_no_roles_check(ctx, *roles)[source]#
                                                                                                          +async has_no_roles_check(ctx, *roles)[source]

                                                                                                          Verify if the context’s author doesn’t have any of the specified roles.

                                                                                                          This check will always fail if the context is a DM, since DMs don’t have roles.

                                                                                                          @@ -480,7 +480,7 @@
                                                                                                          -in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]#
                                                                                                          +in_whitelist_check(ctx, redirect, channels=(), categories=(), roles=(), *, fail_silently=False)[source]

                                                                                                          Check if a command was issued in a context that is whitelisted by channel, category, or roles.

                                                                                                          Parameters:
                                                                                                          @@ -584,7 +584,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.commands.html b/v11.1.0/output/pydis_core.utils.commands.html index 8b7d8060..ef8fcc49 100644 --- a/v11.1.0/output/pydis_core.utils.commands.html +++ b/v11.1.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v11.1.0 - + @@ -390,10 +390,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:
                                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.cooldown.html b/v11.1.0/output/pydis_core.utils.cooldown.html index 1701a6e4..05b0dfe9 100644 --- a/v11.1.0/output/pydis_core.utils.cooldown.html +++ b/v11.1.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v11.1.0 - + @@ -390,21 +390,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:
                                                                                                          @@ -420,20 +420,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:
                                                                                                          @@ -535,7 +535,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v11.1.0/output/pydis_core.utils.error_handling.commands.abc.html b/v11.1.0/output/pydis_core.utils.error_handling.commands.abc.html index bf39c0b1..6051952b 100644 --- a/v11.1.0/output/pydis_core.utils.error_handling.commands.abc.html +++ b/v11.1.0/output/pydis_core.utils.error_handling.commands.abc.html @@ -5,14 +5,14 @@ - + abc - Pydis Core v11.1.0 - + @@ -390,15 +390,15 @@
                                                                                                          -

                                                                                                          abc#

                                                                                                          +

                                                                                                          abc

                                                                                                          -class AbstractCommandErrorHandler[source]#
                                                                                                          +class AbstractCommandErrorHandler[source]

                                                                                                          Bases: ABC

                                                                                                          An abstract command error handler.

                                                                                                          -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                                          +abstract async handle_app_command_error(interaction, error)[source]

                                                                                                          Handle error raised in the context of app commands.

                                                                                                          Return type:
                                                                                                          @@ -409,7 +409,7 @@
                                                                                                          -abstract async handle_text_command_error(context, error)[source]#
                                                                                                          +abstract async handle_text_command_error(context, error)[source]

                                                                                                          Handle error raised in the context of text commands.

                                                                                                          Return type:
                                                                                                          @@ -420,7 +420,7 @@
                                                                                                          -abstract async should_handle_error(error)[source]#
                                                                                                          +abstract async should_handle_error(error)[source]

                                                                                                          A predicate that determines whether the error should be handled.

                                                                                                          Return type:
                                                                                                          @@ -507,7 +507,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.error_handling.commands.html b/v11.1.0/output/pydis_core.utils.error_handling.commands.html index ea9d9b4b..d7c17b28 100644 --- a/v11.1.0/output/pydis_core.utils.error_handling.commands.html +++ b/v11.1.0/output/pydis_core.utils.error_handling.commands.html @@ -5,14 +5,14 @@ - + commands package - Pydis Core v11.1.0 - + @@ -390,15 +390,15 @@
                                                                                                          -

                                                                                                          commands package#

                                                                                                          +

                                                                                                          commands package

                                                                                                          -class AbstractCommandErrorHandler[source]#
                                                                                                          +class AbstractCommandErrorHandler[source]

                                                                                                          Bases: ABC

                                                                                                          An abstract command error handler.

                                                                                                          -abstract async handle_app_command_error(interaction, error)[source]#
                                                                                                          +abstract async handle_app_command_error(interaction, error)[source]

                                                                                                          Handle error raised in the context of app commands.

                                                                                                          Return type:
                                                                                                          @@ -409,7 +409,7 @@
                                                                                                          -abstract async handle_text_command_error(context, error)[source]#
                                                                                                          +abstract async handle_text_command_error(context, error)[source]

                                                                                                          Handle error raised in the context of text commands.

                                                                                                          Return type:
                                                                                                          @@ -420,7 +420,7 @@
                                                                                                          -abstract async should_handle_error(error)[source]#
                                                                                                          +abstract async should_handle_error(error)[source]

                                                                                                          A predicate that determines whether the error should be handled.

                                                                                                          Return type:
                                                                                                          @@ -433,17 +433,17 @@
                                                                                                          -class CommandErrorManager(default)[source]#
                                                                                                          +class CommandErrorManager(default)[source]

                                                                                                          Bases: object

                                                                                                          A class that registers error handlers and handles all command related errors.

                                                                                                          -__init__(default)[source]#
                                                                                                          +__init__(default)[source]
                                                                                                          -async handle_error(error, context_or_interaction)[source]#
                                                                                                          +async handle_error(error, context_or_interaction)[source]

                                                                                                          Handle a Discord exception.

                                                                                                          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                                          @@ -456,7 +456,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                          -register_handler(handler)[source]#
                                                                                                          +register_handler(handler)[source]

                                                                                                          Register a command error handler.

                                                                                                          Return type:
                                                                                                          @@ -468,7 +468,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                          -

                                                                                                          Submodules#

                                                                                                          +

                                                                                                          Submodules

                                                                                                          • abc
                                                                                                              @@ -575,7 +575,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.error_handling.commands.manager.html b/v11.1.0/output/pydis_core.utils.error_handling.commands.manager.html index 765f10dd..35aee6f6 100644 --- a/v11.1.0/output/pydis_core.utils.error_handling.commands.manager.html +++ b/v11.1.0/output/pydis_core.utils.error_handling.commands.manager.html @@ -5,14 +5,14 @@ - + manager - Pydis Core v11.1.0 - + @@ -390,20 +390,20 @@
                                                                                                          -

                                                                                                          manager#

                                                                                                          +

                                                                                                          manager

                                                                                                          -class CommandErrorManager(default)[source]#
                                                                                                          +class CommandErrorManager(default)[source]

                                                                                                          Bases: object

                                                                                                          A class that registers error handlers and handles all command related errors.

                                                                                                          -__init__(default)[source]#
                                                                                                          +__init__(default)[source]
                                                                                                          -async handle_error(error, context_or_interaction)[source]#
                                                                                                          +async handle_error(error, context_or_interaction)[source]

                                                                                                          Handle a Discord exception.

                                                                                                          Iterate through available handlers by registration order, and choose the first one capable of handling the error as determined by should_handle_error; there is no priority system.

                                                                                                          @@ -416,7 +416,7 @@ the error as determined by should_handle_error; there is no priorit
                                                                                                          -register_handler(handler)[source]#
                                                                                                          +register_handler(handler)[source]

                                                                                                          Register a command error handler.

                                                                                                          Return type:
                                                                                                          @@ -503,7 +503,7 @@ the error as determined by should_handle_error; there is no priorit - + diff --git a/v11.1.0/output/pydis_core.utils.error_handling.html b/v11.1.0/output/pydis_core.utils.error_handling.html index 36697148..cd867100 100644 --- a/v11.1.0/output/pydis_core.utils.error_handling.html +++ b/v11.1.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling package - Pydis Core v11.1.0 - + @@ -390,10 +390,10 @@
                                                                                                          -

                                                                                                          error_handling package#

                                                                                                          +

                                                                                                          error_handling package

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

                                                                                                          Subpackages#

                                                                                                          +

                                                                                                          Subpackages

                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.function.html b/v11.1.0/output/pydis_core.utils.function.html index 3cca874e..d650df62 100644 --- a/v11.1.0/output/pydis_core.utils.function.html +++ b/v11.1.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v11.1.0 - + @@ -390,18 +390,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.

                                                                                                          @@ -425,7 +425,7 @@ with the wrapper replaced with the function
                                                                                                          -get_arg_value(name_or_pos, arguments)[source]#
                                                                                                          +get_arg_value(name_or_pos, arguments)[source]

                                                                                                          Return a value from arguments based on a name or position.

                                                                                                          Parameters:
                                                                                                          @@ -448,7 +448,7 @@ with the wrapper replaced with the function
                                                                                                          -get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]#
                                                                                                          +get_arg_value_wrapper(decorator_func, name_or_pos, func=None)[source]

                                                                                                          Call decorator_func with the value of the arg at the given name/position.

                                                                                                          Parameters:
                                                                                                          @@ -470,7 +470,7 @@ parameter names to argument values of the function it’s decorating.

                                                                                                          -get_bound_args(func, args, kwargs)[source]#
                                                                                                          +get_bound_args(func, args, kwargs)[source]

                                                                                                          Bind args and kwargs to func and return a mapping of parameter names to argument values.

                                                                                                          Default parameter values are also set.

                                                                                                          @@ -492,7 +492,7 @@ parameter names to argument values of the function it’s decorating.

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

                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.html b/v11.1.0/output/pydis_core.utils.html index 873488d5..e1b25da5 100644 --- a/v11.1.0/output/pydis_core.utils.html +++ b/v11.1.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v11.1.0 - + @@ -390,11 +390,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:
                                                                                                          @@ -413,7 +413,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:
                                                                                                          @@ -429,7 +429,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                          -

                                                                                                          Subpackages#

                                                                                                          +

                                                                                                          Subpackages

                                                                                                          • error_handling package
                                                                                                              @@ -449,7 +449,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                          -

                                                                                                          Submodules#

                                                                                                          +

                                                                                                          Submodules

                                                                                                          • caching
                                                                                                              @@ -687,7 +687,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.interactions.html b/v11.1.0/output/pydis_core.utils.interactions.html index e918d9dd..d162cdce 100644 --- a/v11.1.0/output/pydis_core.utils.interactions.html +++ b/v11.1.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v11.1.0 - + @@ -390,10 +390,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.

                                                                                                          @@ -408,12 +408,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:
                                                                                                          @@ -426,7 +426,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.

                                                                                                          @@ -443,12 +443,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:
                                                                                                          @@ -462,7 +462,7 @@ If None
                                                                                                          -async on_timeout()[source]#
                                                                                                          +async on_timeout()[source]

                                                                                                          Remove the view from self.message if set.

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

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

                                                                                                          Return type:
                                                                                                          @@ -486,7 +486,7 @@ If None
                                                                                                          -user_has_access(user, *, allowed_users=(), allowed_roles=())[source]#
                                                                                                          +user_has_access(user, *, allowed_users=(), allowed_roles=())[source]

                                                                                                          Return whether the user is in the allowed_users list, or has a role from allowed_roles.

                                                                                                          Parameters:
                                                                                                          @@ -585,7 +585,7 @@ If None - + diff --git a/v11.1.0/output/pydis_core.utils.lock.html b/v11.1.0/output/pydis_core.utils.lock.html index c4556de1..485b2927 100644 --- a/v11.1.0/output/pydis_core.utils.lock.html +++ b/v11.1.0/output/pydis_core.utils.lock.html @@ -5,14 +5,14 @@ - + lock - Pydis Core v11.1.0 - + @@ -390,15 +390,15 @@
                                                                                                          -

                                                                                                          lock#

                                                                                                          +

                                                                                                          lock

                                                                                                          -exception LockedResourceError(resource_type, resource_id)[source]#
                                                                                                          +exception LockedResourceError(resource_type, resource_id)[source]

                                                                                                          Bases: RuntimeError

                                                                                                          Exception raised when an operation is attempted on a locked resource.

                                                                                                          -type[source]#
                                                                                                          +type[source]

                                                                                                          Name of the locked resource’s type

                                                                                                          Type:
                                                                                                          @@ -409,7 +409,7 @@
                                                                                                          -id[source]#
                                                                                                          +id[source]

                                                                                                          ID of the locked resource

                                                                                                          Type:
                                                                                                          @@ -420,38 +420,38 @@
                                                                                                          -__init__(resource_type, resource_id)[source]#
                                                                                                          +__init__(resource_type, resource_id)[source]
                                                                                                          -class SharedEvent[source]#
                                                                                                          +class SharedEvent[source]

                                                                                                          Bases: object

                                                                                                          Context manager managing an internal event exposed through the wait coro.

                                                                                                          While any code is executing in this context manager, the underlying event will not be set; when all of the holders finish the event will be set.

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

                                                                                                          Increment the count of the active holders and clear the internal event.

                                                                                                          -__exit__(_exc_type, _exc_val, _exc_tb)[source]#
                                                                                                          +__exit__(_exc_type, _exc_val, _exc_tb)[source]

                                                                                                          Decrement the count of the active holders; if 0 is reached set the internal event.

                                                                                                          -__init__()[source]#
                                                                                                          +__init__()[source]
                                                                                                          -async wait()[source]#
                                                                                                          +async wait()[source]

                                                                                                          Wait for all active holders to exit.

                                                                                                          Return type:
                                                                                                          @@ -464,7 +464,7 @@ when all of the holders finish the event will be set.

                                                                                                          -lock(namespace, resource_id, *, raise_error=False, wait=False)[source]#
                                                                                                          +lock(namespace, resource_id, *, raise_error=False, wait=False)[source]

                                                                                                          Turn the decorated coroutine function into a mutually exclusive operation on a resource_id.

                                                                                                          If decorating a command, this decorator must go before (below) the command decorator.

                                                                                                          @@ -491,7 +491,7 @@ and return None.

                                                                                                          -lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]#
                                                                                                          +lock_arg(namespace, name_or_pos, func=None, *, raise_error=False, wait=False)[source]

                                                                                                          Apply the lock decorator using the value of the arg at the given name/position as the ID.

                                                                                                          See lock docs for more information.

                                                                                                          @@ -589,7 +589,7 @@ and return None.

                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.logging.html b/v11.1.0/output/pydis_core.utils.logging.html index 258b01d5..922f9527 100644 --- a/v11.1.0/output/pydis_core.utils.logging.html +++ b/v11.1.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v11.1.0 - + @@ -390,16 +390,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)
                                                                                                          @@ -423,7 +423,7 @@
                                                                                                           
                                                                                                           
                                                                                                          -get_logger(name=None)[source]#
                                                                                                          +get_logger(name=None)[source]

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

                                                                                                          Parameters:
                                                                                                          @@ -440,7 +440,7 @@
                                                                                                          -log_format[source]#
                                                                                                          +log_format[source]

                                                                                                          A logging.Formatter that can be used to standardise logging across all projects using pydis_core.

                                                                                                          @@ -522,7 +522,7 @@
                                                                                                          - + diff --git a/v11.1.0/output/pydis_core.utils.members.html b/v11.1.0/output/pydis_core.utils.members.html index abf7a9a7..75182db9 100644 --- a/v11.1.0/output/pydis_core.utils.members.html +++ b/v11.1.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v11.1.0 - + @@ -390,11 +390,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:
                                                                                                          @@ -408,7 +408,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.

                                                                                                          @@ -498,7 +498,7 @@ - + diff --git a/v11.1.0/output/pydis_core.utils.messages.html b/v11.1.0/output/pydis_core.utils.messages.html index 006ae63a..19bf91fb 100644 --- a/v11.1.0/output/pydis_core.utils.messages.html +++ b/v11.1.0/output/pydis_core.utils.messages.html @@ -5,14 +5,14 @@ - + messages - Pydis Core v11.1.0 - + @@ -390,10 +390,10 @@
                                                                                                          -

                                                                                                          messages#

                                                                                                          +

                                                                                                          messages

                                                                                                          -reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]#
                                                                                                          +reaction_check(reaction, user, *, message_id, allowed_emoji, allowed_users, allowed_roles=None)[source]

                                                                                                          Check if a reaction’s emoji and author are allowed and the message is message_id.

                                                                                                          If the user is not allowed, remove the reaction. Ignore reactions made by the bot. If allow_mods is True, allow users with moderator roles even if they’re not in allowed_users.

                                                                                                          @@ -475,7 +475,7 @@ If allow_mods is True, allow users with moderator roles even if the - + diff --git a/v11.1.0/output/pydis_core.utils.pagination.html b/v11.1.0/output/pydis_core.utils.pagination.html index 32844ae2..ef4ddf1d 100644 --- a/v11.1.0/output/pydis_core.utils.pagination.html +++ b/v11.1.0/output/pydis_core.utils.pagination.html @@ -5,14 +5,14 @@ - + pagination - Pydis Core v11.1.0 - + @@ -390,17 +390,17 @@
                                                                                                          -

                                                                                                          pagination#

                                                                                                          +

                                                                                                          pagination

                                                                                                          -exception EmptyPaginatorEmbedError[source]#
                                                                                                          +exception EmptyPaginatorEmbedError[source]

                                                                                                          Bases: Exception

                                                                                                          Raised when attempting to paginate with empty contents.

                                                                                                          -class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                          +class LinePaginator(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                          Bases: Paginator

                                                                                                          A class that aids in paginating code blocks for Discord messages.

                                                                                                          @@ -417,14 +417,14 @@
                                                                                                          -__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]#
                                                                                                          +__init__(prefix='```', suffix='```', max_size=4000, scale_to_size=4000, max_lines=None, linesep='\\n')[source]

                                                                                                          This function overrides the Paginator.__init__ from inside discord.ext.commands.

                                                                                                          It overrides in order to allow us to configure the maximum number of lines per page.

                                                                                                          -add_line(line='', *, empty=False)[source]#
                                                                                                          +add_line(line='', *, empty=False)[source]

                                                                                                          Adds a line to the current page.

                                                                                                          If a line on a page exceeds max_size characters, then max_size will go up to scale_to_size for a single line before creating a new page for the overflow words. If it @@ -452,7 +452,7 @@ page at a reasonable size.

                                                                                                          -async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]#
                                                                                                          +async classmethod paginate(pagination_emojis, lines, ctx, embed, *, prefix='', suffix='', max_lines=None, max_size=500, scale_to_size=4000, empty=True, restrict_to_user=None, timeout=300, footer_text=None, url=None, exception_on_empty_embed=False, reply=False, allowed_roles=None)[source]

                                                                                                          Use a paginator and set of reactions to provide pagination over a set of lines.

                                                                                                          The reactions are used to switch page, or to finish with pagination.

                                                                                                          When used, this will send a message using ctx.send() and apply a set of reactions to it. These reactions may @@ -496,24 +496,24 @@ to any user with a moderation role.

                                                                                                          -class PaginationEmojis(**data)[source]#
                                                                                                          +class PaginationEmojis(**data)[source]

                                                                                                          Bases: BaseModel

                                                                                                          The emojis that will be used for pagination.

                                                                                                          -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]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': FieldInfo(annotation=str, required=False, default='➡')}#
                                                                                                          +model_fields: ClassVar[dict[str, FieldInfo]] = {'delete': FieldInfo(annotation=str, required=False, default='<:trashcan:637136429717389331>'), 'first': FieldInfo(annotation=str, required=False, default='⏮'), 'last': FieldInfo(annotation=str, required=False, default='⏭'), 'left': FieldInfo(annotation=str, required=False, default='⬅'), 'right': 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.

                                                                                                          @@ -604,7 +604,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.1.0/output/pydis_core.utils.paste_service.html b/v11.1.0/output/pydis_core.utils.paste_service.html index 64f0a49c..9d88be0c 100644 --- a/v11.1.0/output/pydis_core.utils.paste_service.html +++ b/v11.1.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v11.1.0 - + @@ -390,16 +390,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.

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

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

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

                                                                                                          @@ -470,28 +470,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:
                                                                                                          @@ -605,7 +605,7 @@ mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - + diff --git a/v11.1.0/output/pydis_core.utils.regex.html b/v11.1.0/output/pydis_core.utils.regex.html index 6f7d003d..e39621a8 100644 --- a/v11.1.0/output/pydis_core.utils.regex.html +++ b/v11.1.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v11.1.0 - + @@ -390,11 +390,11 @@
                                                                                                          -

                                                                                                          regex#

                                                                                                          +

                                                                                                          regex

                                                                                                          Common regular expressions.

                                                                                                          -DISCORD_INVITE[source]#
                                                                                                          +DISCORD_INVITE[source]

                                                                                                          Regex for Discord server invites.

                                                                                                          Warning

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

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

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

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

                                                                                                          @@ -495,7 +495,7 @@ such as - + diff --git a/v11.1.0/output/pydis_core.utils.scheduling.html b/v11.1.0/output/pydis_core.utils.scheduling.html index bfce1223..fa651fbe 100644 --- a/v11.1.0/output/pydis_core.utils.scheduling.html +++ b/v11.1.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v11.1.0 - + @@ -390,11 +390,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 @@ -408,7 +408,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:
                                                                                                          @@ -425,7 +425,7 @@ the same ID used to schedule it.

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

                                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                                          Unschedule all known tasks.

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

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

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

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

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

                                                                                                          - + diff --git a/v11.1.0/py-modindex.html b/v11.1.0/py-modindex.html index de5b42e5..caa531c7 100644 --- a/v11.1.0/py-modindex.html +++ b/v11.1.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v11.1.0 + Python Module Index - Pydis Core v11.1.0 - + @@ -577,7 +577,7 @@ - + diff --git a/v11.1.0/search.html b/v11.1.0/search.html index 7df68aff..3b9e080b 100644 --- a/v11.1.0/search.html +++ b/v11.1.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v11.1.0 + Search - Pydis Core v11.1.0 - + @@ -429,7 +429,7 @@ - + diff --git a/v11.1.0/searchindex.js b/v11.1.0/searchindex.js index 35d290c7..58395ced 100644 --- a/v11.1.0/searchindex.js +++ b/v11.1.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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "filenames": ["changelog.rst", "development.rst", "index.rst", "output/pydis_core.rst", "output/pydis_core.async_stats.rst", "output/pydis_core.exts.rst", "output/pydis_core.site_api.rst", "output/pydis_core.utils.rst", "output/pydis_core.utils.caching.rst", "output/pydis_core.utils.channel.rst", "output/pydis_core.utils.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "terms": {"11": 0, "1": [0, 20], "0": [0, 8, 10, 18, 19, 20], "30th": 0, "march": 0, "2024": 0, "support": [0, 4, 7, 26], "210": 0, "drop": 0, "restrict": [0, 3, 23], "meant": 0, "fakeredi": 0, "could": [0, 21], "instal": [0, 1], "python": [0, 1, 3, 24, 26], "3": 0, "12": 0, "lupa": 0, "now": [0, 1, 26], "20th": 0, "bug": 0, "209": 0, "extract": 0, "origin": [0, 18], "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "ext": [0, 2, 3, 7, 9, 10, 11, 23], "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "commandinvokeerror": 0, "befor": [0, 3, 10, 18, 19, 23, 26], "handl": [0, 13, 14, 15, 16, 21, 26], "18th": 0, "break": [0, 3, 17, 23], "207": 0, "enabl": [0, 1], "more": [0, 1, 3, 17, 19, 23], "ruff": 0, "lint": 0, "rule": 0, "see": [0, 1, 17, 18, 19], "github": 0, "releas": 0, "note": [0, 10], "chang": [0, 1, 3, 17, 23], "208": 0, "pydant": [0, 3, 23, 24], "x": 0, "10": 0, "split": 0, "option": [0, 8, 17, 19], "depend": [0, 9], "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "rediscach": 0, "extra": [0, 6], "you": [0, 1, 9, 25], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "just": 0, "lua": 0, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "either": [0, 3], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "both": [0, 1, 3, 24], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "allow": [0, 1, 3, 18, 22, 23, 24], "user": [0, 3, 10, 12, 18, 22, 23], "who": [0, 18], "do": [0, 1, 9, 19], "reli": 0, "environ": [0, 1], "featur": [0, 1, 3], "205": 0, "add": [0, 3, 10, 12, 23], "pydis_cor": [0, 1, 3, 18, 20], "util": [0, 1, 2, 3, 8, 17, 18, 20], "error_handl": [0, 3, 7], "abc": [0, 13, 14], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "manag": [0, 3, 13, 14, 19], "commanderrormanag": [0, 7, 13, 14, 16], "implement": [0, 3, 4, 8, 18, 20], "regist": [0, 14, 16], "handler": [0, 3, 14, 15, 16], "independantli": 0, "204": [0, 6], "document": 0, "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "attribut": [0, 7, 17], "botbas": [0, 2, 3], "206": 0, "bump": 0, "15": 0, "2": [0, 3, 18], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "config": [0, 3, 23, 24], "namespac": [0, 19, 26], "target": [0, 8], "isn": [0, 13, 17], "t": [0, 3, 10, 11, 13, 17, 19, 26], "Be": 0, "awar": [0, 26], "time": [0, 10, 26], "write": [0, 1], "our": [0, 1, 7], "usag": 0, "doe": [0, 17], "current": [0, 3, 19, 23, 26], "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "due": 0, "requir": [0, 1, 3, 23, 24, 26], "script": 0, "within": [0, 3], "As": 0, "7": 0, "januari": 0, "194": 0, "interact": [0, 3, 7, 9, 14, 15, 23], "user_has_access": [0, 3, 7, 18], "helper": [0, 9, 12, 21], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "allowed_us": [0, 18, 22], "list": [0, 1, 3, 18, 23, 24], "ha": [0, 3, 7, 10, 18], "role": [0, 1, 3, 10, 18, 21, 22, 23], "allowed_rol": [0, 1, 3, 18, 22, 23], "158": 0, "lock": [0, 3, 7], "control": 0, "concurr": 0, "logic": 0, "202": 0, "variou": [0, 9], "develop": [0, 2, 3, 7], "ci": 0, "workflow": 0, "action": 0, "version": [0, 11], "6": 0, "199": 0, "port": [0, 4], "common": [0, 1, 3, 7, 20, 25], "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "other": [0, 1, 19, 26], "bot": [0, 1, 3, 7, 9, 22], "189": 0, "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "reaction_check": [0, 3, 7, 22], "predic": [0, 14, 15], "dictat": 0, "right": [0, 3, 23], "specif": [0, 10], "set": [0, 1, 3, 12, 17, 18, 19, 23], "reaction": [0, 3, 22, 23], "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "certain": [0, 1], "criteria": 0, "pagin": [0, 2, 3, 7], "linepagin": [0, 2, 3, 7, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "over": [0, 3, 23], "content": [0, 3, 11, 23, 24], "emb": [0, 3, 23], "emoji": [0, 3, 22, 23], "facilit": 0, "navig": [0, 1, 3, 23], "5": [0, 12], "14th": 0, "decemb": 0, "2023": 0, "200": 0, "attempt": [0, 3, 9, 19, 21, 23], "read": 0, "respons": [0, 6, 24], "bodi": 0, "http": [0, 3, 6, 24, 25], "code": [0, 1, 3, 6, 19, 23, 25], "previous": 0, "onli": [0, 3], "site_api": [0, 2, 3], "apicli": [0, 2, 3, 6], "delet": [0, 3, 6, 8, 18, 23, 24], "did": 0, "10th": 0, "197": 0, "mark": 0, "tild": 0, "specifi": [0, 10, 12, 18], "pydi": [0, 2], "core": [0, 1], "newer": 0, "librari": [0, 1], "without": [0, 10], "u": [0, 3, 23], "have": [0, 9, 10, 17, 20], "cut": 0, "4": 0, "26th": 0, "octob": 0, "196": 0, "mani": [0, 3, 8], "aiodn": 0, "19th": 0, "septemb": 0, "195": 0, "websocket": 0, "chardet": 0, "async_rediscach": [0, 3], "logger": [0, 20], "warn": [0, 26], "level": [0, 7, 20], "asyncio": [0, 4, 26], "info": [0, 1], "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "log_format": [0, 3, 7, 20], "log": [0, 3, 7, 13, 21, 26], "standardis": [0, 20], "across": [0, 3, 20, 23], "servic": [0, 1, 3, 24], "28th": 0, "august": 0, "192": 0, "py": [0, 3, 17], "25th": 0, "juli": 0, "190": 0, "overwrit": [0, 3], "process_command": [0, 2, 3], "ensur": [0, 3, 18, 25], "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "process": [0, 3], "until": [0, 3, 19, 25], "extens": [0, 3], "load": [0, 1, 3, 7], "work": [0, 1], "client": [0, 3, 4], "load_extens": [0, 2, 3], "188": 0, "send": [0, 3, 6, 18, 23], "multipl": 0, "file": [0, 1, 24], "onc": [0, 3, 8], "past": [0, 24, 26], "call": [0, 3, 12, 17, 26], "paste_servic": [0, 3, 7], "send_to_paste_servic": [0, 3, 7, 24], "must": [0, 17, 19, 26], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "pastefil": [0, 3, 7, 24], "184": 0, "remov": [0, 3, 18, 22, 23, 24], "store": [0, 3, 7, 8, 23], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 18], "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "stop": [0, 7, 18], "addit": 0, "exist": [0, 1, 26], "timeout": [0, 3, 18, 23], "187": 0, "fix": 0, "channel": [0, 3, 7, 10, 12], "get_or_fetch_channel": [0, 3, 7, 9], "": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "includ": [0, 1, 13], "privatechannel": [0, 9], "thread": [0, 9], "9": 0, "2nd": 0, "185": 0, "updat": [0, 17], "expiri": 0, "label": [0, 18], "month": 0, "30": 0, "dai": 0, "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "182": 0, "lexer": [0, 24], "valid": 0, "pastebin": 0, "url": [0, 3, 6, 23, 24], "pythondiscord": [0, 24], "com": [0, 24], "8": 0, "13th": 0, "181": 0, "176": 0, "migrat": 0, "repo": 0, "177": 0, "automat": [0, 3, 23], "forbidden": [0, 9, 13], "90001": [0, 13], "schedul": [0, 3, 7], "179": 0, "upload": [0, 24], "text": [0, 3, 6, 11, 14, 15, 23, 24], "6th": 0, "mai": [0, 3, 8, 19, 23], "175": 0, "wait": [0, 3, 7, 19, 26], "guild": [0, 1, 3, 10, 21], "avail": [0, 3, 14, 16, 19], "cog": [0, 3, 5], "174": 0, "februari": 0, "173": 0, "9th": 0, "172": 0, "24th": 0, "2022": 0, "171": 0, "sync": [0, 3], "app": [0, 3, 14, 15], "after": [0, 3, 18, 23, 26], "been": [0, 3], "also": [0, 3, 7, 17, 18, 19, 23], "need": [0, 1, 3, 23], "run": [0, 1, 12, 19, 26], "task": [0, 26], "23rd": 0, "170": 0, "save": [0, 3, 24], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "169": 0, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "upon": 0, "receiv": [0, 6, 9], "bad": 0, "request": [0, 3, 6, 25], "member": [0, 3, 7, 18], "get_or_fetch_memb": [0, 3, 7, 21], "17th": 0, "novemb": 0, "151": 0, "162": 0, "being": [0, 7, 10, 21], "abl": 0, "button": [0, 18], "press": 0, "88": 0, "decor": [0, 8, 10, 12, 17, 19], "success": [0, 24], "duplic": [0, 12], "invoc": [0, 12], "5th": 0, "157": 0, "renam": 0, "project": [0, 1, 20], "publish": 0, "138": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 25], "match": [0, 3, 17], "lead": 0, "www": 0, "27th": 0, "110": 0, "v1": [0, 3, 23, 24], "rc2": 0, "107": 0, "declar": 0, "sampl": 0, "boilerpl": 0, "explain": 0, "how": [0, 8, 10, 17, 26], "108": 0, "101": 0, "clean": [0, 11], "string": [0, 6], "referenc": 0, "106": 0, "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "On": 0, "view": [0, 18], "its": [0, 3, 12, 17], "104": 0, "deletemessagebutton": [0, 3, 7, 18], "wrong": 0, "method": [0, 4, 6, 7, 20], "103": 0, "attach": 0, "parent": [0, 18], "gener": [0, 3, 12, 26], "98": 0, "close": [0, 2, 3, 6, 26], "stat": [0, 2, 3, 4], "_transport": 0, "wa": [0, 9, 10, 26], "91": 0, "miss": 0, "await": [0, 3, 12, 18, 19, 21, 23], "ping_servic": [0, 2, 3], "some": [0, 3, 23, 24], "case": [0, 3, 23], "pass": [0, 3, 6, 17, 20, 21, 26], "self": [0, 3, 18], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "incorrect": 0, "docstr": 0, "handle_role_chang": [0, 3, 7, 21], "96": 0, "connect": [0, 3, 4], "statsd_url": [0, 2, 3], "93": 0, "0eb3d26": 0, "auto": 0, "mod": 0, "auto_mod": 0, "message_typ": 0, "filter": 0, "system": [0, 1, 14, 16], "79": 0, "restor": 0, "site": [0, 3, 6], "sphinx": 0, "multivers": 0, "make": [0, 1, 3, 20, 23], "older": 0, "doc": [0, 19], "78": 0, "4cbe8f5": 0, "permiss": [0, 9], "resolut": 0, "deal": 0, "out": [0, 1, 3, 18], "75": 0, "invit": [0, 25], "longer": [0, 18], "safe": 0, "result": [0, 26], "captur": [0, 17, 25], "charact": [0, 3, 23], "up": [0, 1, 3, 23], "whitespac": [0, 25], "april": 0, "72": 0, "5a06fa5": 0, "notabl": 0, "one": [0, 3, 10, 14, 16, 23], "commit": 0, "dynam": 0, "extend": 0, "chunk": 0, "number": [0, 3, 10, 23, 24], "so": [0, 1, 3, 7], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "actual": 0, "69": 0, "get": [0, 3, 6, 9, 17, 21], "21st": 0, "68": 0, "pyproject": [0, 1], "toml": [0, 1], "directli": [0, 17], "main": 0, "don": [0, 10, 26], "modul": [0, 3, 7, 17, 26], "start": [0, 3, 26], "_": 0, "66": 0, "each": [0, 3, 23], "own": [0, 17], "avoid": [0, 3, 23], "singl": [0, 3, 23], "crash": 0, "entir": [0, 3], "65": 0, "unqualifi": [0, 2, 3, 7], "manipul": [0, 17], "64": 0, "987235d": 0, "revert": 0, "help": [0, 1], "behaviour": [0, 3], "broke": 0, "custom": [0, 8, 20], "basic": [0, 18], "forum": 0, "63": 0, "api_cli": [0, 2, 3], "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "61": 0, "reconnect": 0, "redi": [0, 3], "session": [0, 3, 6, 24], "setup": [0, 3], "56": 0, "move": 0, "creation": 0, "event": [0, 3, 4, 19, 26], "_guild_avail": 0, "hook": 0, "deprec": 0, "notic": 0, "dummi": [0, 3], "asyncstatsdcli": 0, "real": 0, "cannot": [0, 3, 19, 23], "made": [0, 22], "init": [0, 3, 4], "54": 0, "aiohttp": [0, 3, 6, 24], "asyncresolv": 0, "42": 0, "public": 0, "statsd": [0, 3, 4], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "abstract": [0, 14, 15], "lot": 0, "share": [0, 17], "between": [0, 1, 17], "latest": 0, "alpha": 0, "39": 0, "back": 0, "37": 0, "trace": [0, 7, 20], "import": 0, "3rd": 0, "35": 0, "apply_monkey_patch": [0, 2, 3, 7], "34": 0, "api": [0, 3, 6, 21], "wrapper": [0, 6, 12, 17, 26], "32": 0, "0a0": 0, "disnak": 0, "29": 0, "cach": [0, 3, 7, 9, 21], "monkei": [0, 7], "patch": [0, 3, 6, 7], "ad": [0, 1, 3, 7, 18, 20, 23], "intersphinx": 0, "block": [0, 3, 12, 23, 25], "detect": 0, "2021": 0, "autogener": 0, "packag": [0, 3, 7], "poetri": [0, 1], "To": [1, 3, 20], "your": 1, "few": 1, "possibl": 1, "approach": 1, "copi": [1, 17], "pre": 1, "templat": 1, "dev": [1, 3], "folder": 1, "below": [1, 19], "what": 1, "go": [1, 3, 19, 23], "them": [1, 3, 17, 26], "ll": [1, 26], "might": [1, 3, 10], "mean": 1, "modifi": [1, 21], "ones": 1, "etc": [1, 10], "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "step": 1, "most": 1, "groundwork": 1, "exact": 1, "vari": 1, "re": [1, 3, 13, 22, 26], "want": 1, "sir": 1, "lancebot": 1, "pip": 1, "path": 1, "root": [1, 3, 7], "directori": 1, "machin": 1, "That": 1, "contain": [1, 3, 10, 18, 23, 24, 26], "sure": 1, "again": 1, "git": 1, "ignor": [1, 7, 17, 22], "free": 1, "howev": 1, "like": [1, 17], "m": 1, "docker": 1, "compos": 1, "d": [1, 17], "configur": [1, 3, 23, 24], "variabl": 1, "program": 1, "env": 1, "bot_token": 1, "token": [1, 6], "intent": 1, "guild_id": [1, 2, 3], "monitor": 1, "prefix": [1, 3, 4, 23], "invok": [1, 10, 12, 18], "mention": [1, 3], "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "comma": 1, "seper": 1, "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "anyth": [1, 24], "reinstal": 1, "applic": 1, "http_session": [2, 3, 24], "redis_sess": [2, 3], "all_extens": [2, 3], "add_cog": [2, 3], "add_command": [2, 3], "clear": [2, 3, 7, 8, 19], "log_to_dev_log": [2, 3], "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "register_command_error_manag": [2, 3], "remove_command": [2, 3], "setup_hook": [2, 3], "wait_until_guild_avail": [2, 3], "emptypaginatorembederror": [2, 3, 7, 23], "add_lin": [2, 3, 7, 23], "paginationemoji": [2, 3, 7, 23], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "startuperror": [2, 3], "subpackag": 2, "submodul": [2, 13], "async_stat": [2, 3], "asyncstatscli": [2, 3, 4], "responsecodeerror": [2, 3, 6], "index": 2, "search": 2, "page": [2, 3, 23], "inform": [2, 19, 20], "local": 2, "test": 2, "changelog": 2, "tool": [3, 7], "arg": [3, 12, 17, 19, 20], "kwarg": [3, 6, 12, 17, 18, 20, 26], "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "belong": 3, "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "clientsess": [3, 6, 24], "commun": [3, 4], "metric": 3, "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "redissess": 3, "were": 3, "found": [3, 17, 21, 26], "frozenset": [3, 17], "initialis": [3, 8], "server": [3, 25], "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "oper": [3, 19, 23, 26], "normal": 3, "alias": [3, 7], "Not": 3, "instanti": [3, 18, 26], "instead": [3, 12, 26], "connector": 3, "resolv": [3, 17], "sync_app_command": 3, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "intern": [3, 7, 19], "becom": [3, 19], "appear": 3, "still": [3, 23], "empti": [3, 23], "guild_available_but_cache_empti": 3, "emit": 3, "unavail": 3, "ping": 3, "thei": [3, 17, 22], "relev": 3, "bind": [3, 17], "tree": 3, "reason": [3, 23], "doesn": [3, 10, 26], "happen": 3, "constructor": [3, 6], "becaus": [3, 17], "registr": [3, 14, 16], "name": [3, 7, 17, 19, 20, 23, 24, 26], "alia": [3, 7, 12], "individu": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "create_socket": [3, 4], "readi": 3, "on_readi": 3, "inadequ": 3, "second": [3, 10, 12, 18, 23, 26], "guild_creat": 3, "gatewai": 3, "give": 3, "thu": 3, "popul": 3, "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "suffix": [3, 23], "max_siz": [3, 8, 23, 24], "4000": [3, 23], "scale_to_s": [3, 23], "max_lin": [3, 23], "linesep": [3, 23], "n": [3, 23], "aid": [3, 23], "pagination_emoji": [3, 23], "insert": [3, 23], "everi": [3, 23], "e": [3, 23], "g": [3, 23], "three": [3, 23], "backtick": [3, 23], "append": [3, 23], "end": [3, 23], "maximum": [3, 8, 23, 24], "amount": [3, 23], "codepoint": [3, 23], "line": [3, 23], "scale": [3, 23], "overrid": [3, 23], "insid": [3, 23], "It": [3, 7, 19, 23], "order": [3, 8, 14, 16, 17, 19, 23, 26], "per": [3, 10, 23], "fals": [3, 10, 12, 19, 23, 24], "exce": [3, 8, 23], "overflow": [3, 23], "word": [3, 23], "exceed": [3, 23], "excess": [3, 23], "place": [3, 23], "next": [3, 23], "unti": [3, 23], "remain": [3, 23], "boundari": [3, 23], "truncat": [3, 23], "continu": [3, 23], "onto": [3, 23], "In": [3, 23], "alreadi": [3, 23, 26], "would": [3, 23], "caus": [3, 7, 23], "done": [3, 18, 23, 26], "best": [3, 23], "effort": [3, 23], "while": [3, 12, 19, 23], "keep": [3, 23, 26], "total": [3, 23], "length": [3, 12, 23], "size": [3, 8, 23, 24], "indic": [3, 21, 23], "classmethod": [3, 23], "ctx": [3, 10, 11, 18, 23], "500": [3, 23], "restrict_to_us": [3, 23], "300": [3, 23], "footer_text": [3, 23], "exception_on_empty_emb": [3, 23], "repli": [3, 11, 12, 13, 23], "switch": [3, 23], "finish": [3, 19, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "These": [3, 23], "five": [3, 23], "minut": [3, 23], "limit": [3, 23], "author": [3, 10, 22, 23], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "moder": [3, 18, 22, 23], "context": [3, 10, 11, 14, 15, 19, 23], "hold": [3, 19, 23], "serv": [3, 23], "whom": [3, 23], "anymor": [3, 23], "footer": [3, 23], "sequenc": [3, 7, 17, 18, 23], "exampl": [3, 23], "set_author": [3, 23], "icon_url": [3, 23], "icon": [3, 23], "data": [3, 23, 24], "basemodel": [3, 23, 24], "classvar": [3, 23, 24], "dict": [3, 6, 17, 23, 24], "computedfieldinfo": [3, 23, 24], "dictionari": [3, 23, 24], "comput": [3, 23, 24], "field": [3, 23, 24], "correspond": [3, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "configdict": [3, 23, 24], "model": [3, 23, 24], "conform": [3, 23, 24], "fieldinfo": [3, 23, 24], "annot": [3, 17, 23, 24], "trashcan": [3, 23], "637136429717389331": [3, 23], "first": [3, 14, 16, 23], "last": [3, 10, 18, 23], "left": [3, 23], "metadata": [3, 23, 24], "about": [3, 12, 23, 24], "defin": [3, 23, 24], "map": [3, 17, 19, 23, 24], "replac": [3, 10, 17, 23, 24], "__fields__": [3, 23, 24], "handle_forbidden_from_block": [3, 7, 13], "asynccach": [3, 7, 8], "is_in_categori": [3, 7, 9], "contextcheckfailur": [3, 7, 10], "inwhitelistcheckfailur": [3, 7, 10], "cooldown_with_role_bypass": [3, 7, 10], "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "in_whitelist_check": [3, 7, 10], "clean_text_or_repli": [3, 7, 11], "cooldown": [3, 7, 10], "commandoncooldown": [3, 7, 12], "p": [3, 7, 12], "r": [3, 7, 12], "block_duplicate_invoc": [3, 7, 12], "globalnameconflicterror": [3, 7, 17], "command_wrap": [3, 7, 17], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "update_wrapper_glob": [3, 7, 17], "lockedresourceerror": [3, 7, 19], "sharedev": [3, 7, 19], "lock_arg": [3, 7, 19], "customlogg": [3, 7, 20], "get_logg": [3, 7, 20], "max_paste_s": [3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "formatted_code_regex": [3, 7, 25], "raw_code_regex": [3, 7, 25], "create_task": [3, 7, 26], "maybe_raise_for_statu": [3, 6], "post": [3, 6, 24], "put": [3, 6], "__str__": [3, 6], "transport": 4, "loop": [4, 26], "host": 4, "localhost": 4, "8125": 4, "statsclientbas": 4, "abstracteventloop": [4, 26], "create_datagram_endpoint": 4, "socket": 4, "reusabl": 5, "around": 6, "site_api_url": 6, "site_api_token": 6, "session_kwarg": 6, "django": 6, "initi": [6, 26], "authent": 6, "keyword": [6, 7, 17, 20], "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "endpoint": 6, "raise_for_statu": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "ok": 6, "clientrespons": 6, "json": 6, "response_json": 6, "response_text": 6, "valueerror": [6, 17, 24], "represent": 6, "group": [7, 25], "root_alias": 7, "two": 7, "act": 7, "top": 7, "rather": 7, "than": [7, 24], "send_typ": 7, "403": 7, "under": 7, "heavi": 7, "cloudflar": 7, "worker": 7, "rout": 7, "thrown": 7, "qualifi": 7, "__call__": [7, 8], "call_without_cooldown": [7, 12], "callback": [7, 10, 18], "interaction_check": [7, 18], "on_timeout": [7, 18], "__enter__": [7, 19], "__exit__": [7, 19], "__contains__": [7, 26], "cancel": [7, 26], "cancel_al": [7, 26], "schedule_at": [7, 26], "schedule_lat": [7, 26], "relat": [8, 14, 16, 20], "128": 8, "lru": 8, "coroutin": [8, 19, 21, 26], "kei": 8, "fifo": 8, "offset": 8, "arg_offset": 8, "posit": [8, 17, 19], "callabl": [8, 10, 12, 17, 19, 21], "wrap": [8, 17, 26], "item": 8, "channel_id": 9, "fetch": [9, 21], "invaliddata": 9, "unknown": 9, "httpexcept": 9, "retriev": 9, "fail": [9, 10, 24], "notfound": 9, "invalid": 9, "guildchannel": 9, "category_id": 9, "categori": [9, 10], "textchannel": 9, "redirect_channel": 10, "checkfailur": 10, "in_whitelist": 10, "rate": 10, "type_": 10, "bypass_rol": 10, "bypass": 10, "before_invok": 10, "introduc": 10, "problem": [10, 20], "futur": [10, 26], "trigger": 10, "float": [10, 12, 18, 26], "durat": 10, "long": [10, 24, 26], "buckettyp": 10, "iter": [10, 12, 14, 16], "describ": 10, "behavior": 10, "typeerror": [10, 17], "verifi": 10, "alwai": 10, "dm": 10, "sinc": 10, "where": 10, "union": 10, "collect": 10, "least": 10, "otherwis": [10, 19, 26], "redirect": 10, "fail_sil": 10, "issu": 10, "whitelist": 10, "silent": 10, "badargu": 11, "wasn": 11, "els": 11, "commanderror": 12, "typevar": [12, 17, 26], "valu": [12, 17, 19, 20], "signatur": 12, "cooldown_dur": 12, "send_notic": 12, "args_preprocessor": 12, "prevent": [12, 19, 26], "same": [12, 26], "notifi": 12, "paramspec": [12, 17], "raw": [12, 25], "handle_app_command_error": [13, 14, 15], "handle_text_command_error": [13, 14, 15], "should_handle_error": [13, 14, 15, 16], "handle_error": [13, 14, 16], "register_handl": [13, 14, 16], "noreturn": [14, 15], "determin": [14, 15, 16], "context_or_interact": [14, 16], "through": [14, 16, 19], "choos": [14, 16], "capabl": [14, 16], "prioriti": [14, 16], "conflict": 17, "global": 17, "assign": 17, "__module__": 17, "__name__": 17, "__qualname__": 17, "__doc__": 17, "__annotations__": 17, "__dict__": 17, "ignored_conflict_nam": 17, "look": [17, 26], "forwardref": 17, "evalu": 17, "detail": 17, "_p": 17, "_r": 17, "behav": 17, "functool": 17, "name_or_po": [17, 19], "ordereddict": [17, 19], "decorator_func": 17, "func": [17, 19], "accept": [17, 18], "tupl": [17, 26], "For": 17, "__global__": 17, "state": 17, "won": 17, "reflect": 17, "typehint": 17, "style": 18, "secondari": 18, "click": 18, "itself": 18, "carri": 18, "buttonstyl": 18, "180": 18, "ui": 18, "input": 18, "similar": [18, 25], "occur": 18, "listen": 18, "access": 18, "resource_typ": 19, "resource_id": 19, "runtimeerror": 19, "resourc": 19, "hashabl": [19, 26], "expos": 19, "coro": [19, 21, 26], "execut": [19, 26], "underli": 19, "holder": 19, "increment": 19, "count": 19, "activ": 19, "_exc_typ": 19, "_exc_val": 19, "_exc_tb": 19, "decrement": 19, "reach": 19, "exit": 19, "raise_error": 19, "turn": 19, "mutual": 19, "exclus": 19, "identifi": [19, 26], "collis": 19, "among": 19, "perform": 19, "acquir": 19, "msg": 20, "sever": 20, "exc_info": 20, "houston": 20, "we": [20, 21], "interest": 20, "mypi": 20, "recognis": 20, "formatt": 20, "interactin": 21, "member_id": 21, "failur": 21, "sole": 21, "expect": 21, "add_rol": 21, "remove_rol": 21, "purpos": 21, "intend": 21, "message_id": 22, "allowed_emoji": 22, "allow_mod": 22, "even": 22, "524288": 24, "byte": 24, "format": [24, 25], "link": 24, "too": 24, "larg": 24, "unsupport": 24, "encount": 24, "paste_url": 24, "max": 24, "larger": 24, "reject": 24, "max_length": 24, "greater": 24, "regular": 25, "express": 25, "pattern": 25, "pleas": 25, "sanitis": 25, "output": 25, "someth": 25, "urllib": 25, "pars": 25, "quot": 25, "track": 26, "distinguish": 26, "suggest": 26, "immedi": 26, "uniqu": 26, "prematur": 26, "task_id": 26, "unschedul": 26, "known": 26, "unawait": 26, "elsewher": 26, "timezon": 26, "calcul": 26, "subtract": 26, "na\u00efv": 26, "utc": 26, "datetim": 26, "delai": 26, "suppressed_except": 26, "event_loop": 26, "task_return": 26}, "objects": {"": [[3, 0, 0, "-", "pydis_core"]], "pydis_core": [[3, 1, 1, "", "BotBase"], [3, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "titleterms": {"changelog": 0, "local": 1, "develop": 1, "test": 1, "option": 1, "1": 1, "2": 1, "bot": 2, "core": [2, 3], "project": 2, "document": 2, "refer": 2, "modul": 2, "extra": 2, "pydi": 3, "subpackag": [3, 7, 13], "submodul": [3, 7, 14], "async_stat": 4, "ext": 5, "site_api": 6, "util": 7, "cach": 8, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "error_handl": 13, "packag": [13, 14], "abc": 15, "manag": 16, "function": 17, "interact": 18, "lock": 19, "log": 20, "member": 21, "messag": 22, "pagin": 23, "paste_servic": 24, "regex": 25, "schedul": 26}, "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": {"cooldown": [[12, "module-pydis_core.utils.cooldown"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "Subpackages": [[13, "subpackages"], [7, "subpackages"], [3, "subpackages"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "Submodules": [[14, "submodules"], [7, "submodules"], [3, "submodules"]], "function": [[17, "module-pydis_core.utils.function"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "site_api": [[6, "module-pydis_core.site_api"]], "commands": [[11, "module-pydis_core.utils.commands"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Utils": [[7, "module-pydis_core.utils"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Pydis Core": [[3, "module-pydis_core"]], "Exts": [[5, "module-pydis_core.exts"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "members": [[21, "module-pydis_core.utils.members"]], "lock": [[19, "module-pydis_core.utils.lock"]], "messages": [[22, "module-pydis_core.utils.messages"]], "logging": [[20, "module-pydis_core.utils.logging"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "module-pydis_core.utils.scheduling"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]]}, "indexentries": {"botbase (class in pydis_core)": [[3, "pydis_core.BotBase"]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError"], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError"]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator"]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis"]], "startuperror": [[3, "pydis_core.StartupError"]], "__init__() (botbase method)": [[3, "pydis_core.BotBase.__init__"]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__"], [23, "pydis_core.utils.pagination.LinePaginator.__init__"]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__"]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog"]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command"]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line"], [23, "pydis_core.utils.pagination.LinePaginator.add_line"]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions"]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client"]], "clear() (botbase method)": [[3, "pydis_core.BotBase.clear"]], "close() (botbase method)": [[3, "pydis_core.BotBase.close"]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id"]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session"]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions"]], "log_to_dev_log() (botbase method)": [[3, "pydis_core.BotBase.log_to_dev_log"]], "model_computed_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields"]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config"]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields"], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields"]], "module": [[3, "module-pydis_core"], [4, "module-pydis_core.async_stats"], [5, "module-pydis_core.exts"], [6, "module-pydis_core.site_api"], [7, "module-pydis_core.utils"], [8, "module-pydis_core.utils.caching"], [9, "module-pydis_core.utils.channel"], [10, "module-pydis_core.utils.checks"], [11, "module-pydis_core.utils.commands"], [12, "module-pydis_core.utils.cooldown"], [13, "module-pydis_core.utils.error_handling"], [14, "module-pydis_core.utils.error_handling.commands"], [15, "module-pydis_core.utils.error_handling.commands.abc"], [16, "module-pydis_core.utils.error_handling.commands.manager"], [17, "module-pydis_core.utils.function"], [18, "module-pydis_core.utils.interactions"], [19, "module-pydis_core.utils.lock"], [20, "module-pydis_core.utils.logging"], [21, "module-pydis_core.utils.members"], [22, "module-pydis_core.utils.messages"], [23, "module-pydis_core.utils.pagination"], [24, "module-pydis_core.utils.paste_service"], [25, "module-pydis_core.utils.regex"], [26, "module-pydis_core.utils.scheduling"]], "on_guild_available() (botbase method)": [[3, "pydis_core.BotBase.on_guild_available"]], "on_guild_unavailable() (botbase method)": [[3, "pydis_core.BotBase.on_guild_unavailable"]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate"], [23, "pydis_core.utils.pagination.LinePaginator.paginate"]], "ping_services() (botbase method)": [[3, "pydis_core.BotBase.ping_services"]], "process_commands() (botbase method)": [[3, "pydis_core.BotBase.process_commands"]], "pydis_core": [[3, "module-pydis_core"]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session"]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager"]], "remove_command() (botbase method)": [[3, "pydis_core.BotBase.remove_command"]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook"]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats"]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url"]], "wait_until_guild_available() (botbase method)": [[3, "pydis_core.BotBase.wait_until_guild_available"]], "asyncstatsclient (class in pydis_core.async_stats)": [[4, "pydis_core.async_stats.AsyncStatsClient"]], "__init__() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.__init__"]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket"]], "pydis_core.async_stats": [[4, "module-pydis_core.async_stats"]], "pydis_core.exts": [[5, "module-pydis_core.exts"]], "apiclient (class in pydis_core.site_api)": [[6, "pydis_core.site_api.APIClient"]], "responsecodeerror": [[6, "pydis_core.site_api.ResponseCodeError"]], "__init__() (apiclient method)": [[6, "pydis_core.site_api.APIClient.__init__"]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__"]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__"]], "close() (apiclient method)": [[6, "pydis_core.site_api.APIClient.close"]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete"]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get"]], "maybe_raise_for_status() (apiclient static method)": [[6, "pydis_core.site_api.APIClient.maybe_raise_for_status"]], "patch() (apiclient method)": [[6, "pydis_core.site_api.APIClient.patch"]], "post() (apiclient method)": [[6, "pydis_core.site_api.APIClient.post"]], "put() (apiclient method)": [[6, "pydis_core.site_api.APIClient.put"]], "pydis_core.site_api": [[6, "module-pydis_core.site_api"]], "request() (apiclient method)": [[6, "pydis_core.site_api.APIClient.request"]], "apply_monkey_patches() (in module pydis_core.utils)": [[7, "pydis_core.utils.apply_monkey_patches"]], "pydis_core.utils": [[7, "module-pydis_core.utils"]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify"]], "asynccache (class in pydis_core.utils.caching)": [[8, "pydis_core.utils.caching.AsyncCache"]], "__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__"]], "__init__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__init__"]], "clear() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.clear"]], "pydis_core.utils.caching": [[8, "module-pydis_core.utils.caching"]], "get_or_fetch_channel() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.get_or_fetch_channel"]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category"]], "pydis_core.utils.channel": [[9, "module-pydis_core.utils.channel"]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure"]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure"]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__"]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass"]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check"]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check"]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check"]], "pydis_core.utils.checks": [[10, "module-pydis_core.utils.checks"]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "pydis_core.utils.commands.clean_text_or_reply"]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands"]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown"]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P"]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R"]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__"]], "block_duplicate_invocations() (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations"]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown"]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown"]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block"]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager"]], "__init__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__"]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error"]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error"]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error"]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands"]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler"], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler"]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error"], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error"]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError"]], "command_wraps() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.command_wraps"]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value"]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper"]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args"]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function"]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals"]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton"]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck"]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__"]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__"]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback"]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check"]], "on_timeout() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout"]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions"]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop"]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access"]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError"]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent"]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__"]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__"]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__"]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__"]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id"]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock"]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg"]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock"]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type"]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait"]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger"]], "get_logger() (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.get_logger"]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format"]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging"]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace"]], "get_or_fetch_member() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.get_or_fetch_member"]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change"]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members"]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages"]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check"]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator"]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis"]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination"]], "max_paste_size (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.MAX_PASTE_SIZE"]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError"]], "pasteuploaderror": [[24, "pydis_core.utils.paste_service.PasteUploadError"]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields"]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields"]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config"]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config"]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields"]], "model_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_fields"]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service"]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service"]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE"]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX"]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX"]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex"]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler"]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__"]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__"]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel"]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all"]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task"]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling"]], "schedule() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule"]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at"]], "schedule_later() (scheduler method)": [[26, "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"], [14, "submodules"]], "Subpackages": [[3, "subpackages"], [7, "subpackages"], [13, "subpackages"]], "Utils": [[7, "module-pydis_core.utils"]], "abc": [[15, "module-pydis_core.utils.error_handling.commands.abc"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "checks": [[10, "module-pydis_core.utils.checks"]], "commands": [[11, "module-pydis_core.utils.commands"]], "commands package": [[14, "module-pydis_core.utils.error_handling.commands"]], "cooldown": [[12, "module-pydis_core.utils.cooldown"]], "error_handling package": [[13, "module-pydis_core.utils.error_handling"]], "function": [[17, "module-pydis_core.utils.function"]], "interactions": [[18, "module-pydis_core.utils.interactions"]], "lock": [[19, "module-pydis_core.utils.lock"]], "logging": [[20, "module-pydis_core.utils.logging"]], "manager": [[16, "module-pydis_core.utils.error_handling.commands.manager"]], "members": [[21, "module-pydis_core.utils.members"]], "messages": [[22, "module-pydis_core.utils.messages"]], "pagination": [[23, "module-pydis_core.utils.pagination"]], "paste_service": [[24, "module-pydis_core.utils.paste_service"]], "regex": [[25, "module-pydis_core.utils.regex"]], "scheduling": [[26, "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.checks", "output/pydis_core.utils.commands", "output/pydis_core.utils.cooldown", "output/pydis_core.utils.error_handling", "output/pydis_core.utils.error_handling.commands", "output/pydis_core.utils.error_handling.commands.abc", "output/pydis_core.utils.error_handling.commands.manager", "output/pydis_core.utils.function", "output/pydis_core.utils.interactions", "output/pydis_core.utils.lock", "output/pydis_core.utils.logging", "output/pydis_core.utils.members", "output/pydis_core.utils.messages", "output/pydis_core.utils.pagination", "output/pydis_core.utils.paste_service", "output/pydis_core.utils.regex", "output/pydis_core.utils.scheduling"], "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.checks.rst", "output/pydis_core.utils.commands.rst", "output/pydis_core.utils.cooldown.rst", "output/pydis_core.utils.error_handling.rst", "output/pydis_core.utils.error_handling.commands.rst", "output/pydis_core.utils.error_handling.commands.abc.rst", "output/pydis_core.utils.error_handling.commands.manager.rst", "output/pydis_core.utils.function.rst", "output/pydis_core.utils.interactions.rst", "output/pydis_core.utils.lock.rst", "output/pydis_core.utils.logging.rst", "output/pydis_core.utils.members.rst", "output/pydis_core.utils.messages.rst", "output/pydis_core.utils.pagination.rst", "output/pydis_core.utils.paste_service.rst", "output/pydis_core.utils.regex.rst", "output/pydis_core.utils.scheduling.rst"], "indexentries": {"__call__() (asynccache method)": [[8, "pydis_core.utils.caching.AsyncCache.__call__", false]], "__contains__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__contains__", false]], "__enter__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__enter__", false]], "__exit__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__exit__", 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__() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.__init__", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__", false]], "__init__() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.__init__", false]], "__init__() (contextcheckfailure method)": [[10, "pydis_core.utils.checks.ContextCheckFailure.__init__", false]], "__init__() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.__init__", false]], "__init__() (linepaginator method)": [[3, "pydis_core.LinePaginator.__init__", false], [23, "pydis_core.utils.pagination.LinePaginator.__init__", false]], "__init__() (lockedresourceerror method)": [[19, "pydis_core.utils.lock.LockedResourceError.__init__", false]], "__init__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__init__", false]], "__init__() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.__init__", false]], "__init__() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.__init__", false]], "__init__() (startuperror method)": [[3, "pydis_core.StartupError.__init__", false]], "__init__() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__", false]], "__str__() (responsecodeerror method)": [[6, "pydis_core.site_api.ResponseCodeError.__str__", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler", false]], "abstractcommanderrorhandler (class in pydis_core.utils.error_handling.commands.abc)": [[15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler", false]], "add_cog() (botbase method)": [[3, "pydis_core.BotBase.add_cog", false]], "add_command() (botbase method)": [[3, "pydis_core.BotBase.add_command", false]], "add_line() (linepaginator method)": [[3, "pydis_core.LinePaginator.add_line", false], [23, "pydis_core.utils.pagination.LinePaginator.add_line", false]], "all_extensions (botbase attribute)": [[3, "pydis_core.BotBase.all_extensions", false]], "api_client (botbase attribute)": [[3, "pydis_core.BotBase.api_client", 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)": [[12, "pydis_core.utils.cooldown.block_duplicate_invocations", false]], "botbase (class in pydis_core)": [[3, "pydis_core.BotBase", false]], "call_without_cooldown() (commandoncooldown method)": [[12, "pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown", false]], "callback() (deletemessagebutton method)": [[18, "pydis_core.utils.interactions.DeleteMessageButton.callback", false]], "cancel() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel", false]], "cancel_all() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.cancel_all", false]], "clean_text_or_reply() (in module pydis_core.utils.commands)": [[11, "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)": [[17, "pydis_core.utils.function.command_wraps", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager", false]], "commanderrormanager (class in pydis_core.utils.error_handling.commands.manager)": [[16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager", false]], "commandoncooldown": [[12, "pydis_core.utils.cooldown.CommandOnCooldown", false]], "contextcheckfailure": [[10, "pydis_core.utils.checks.ContextCheckFailure", false]], "cooldown_with_role_bypass() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.cooldown_with_role_bypass", false]], "create_socket() (asyncstatsclient method)": [[4, "pydis_core.async_stats.AsyncStatsClient.create_socket", false]], "create_task() (in module pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.create_task", false]], "customlogger (class in pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.CustomLogger", false]], "delete() (apiclient method)": [[6, "pydis_core.site_api.APIClient.delete", false]], "deletemessagebutton (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.DeleteMessageButton", false]], "discord_invite (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.DISCORD_INVITE", false]], "emptypaginatorembederror": [[3, "pydis_core.EmptyPaginatorEmbedError", false], [23, "pydis_core.utils.pagination.EmptyPaginatorEmbedError", false]], "formatted_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.FORMATTED_CODE_REGEX", false]], "get() (apiclient method)": [[6, "pydis_core.site_api.APIClient.get", false]], "get_arg_value() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value", false]], "get_arg_value_wrapper() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_arg_value_wrapper", false]], "get_bound_args() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.get_bound_args", false]], "get_logger() (in module pydis_core.utils.logging)": [[20, "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)": [[21, "pydis_core.utils.members.get_or_fetch_member", false]], "globalnameconflicterror": [[17, "pydis_core.utils.function.GlobalNameConflictError", false]], "guild_id (botbase attribute)": [[3, "pydis_core.BotBase.guild_id", false]], "handle_app_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error", false]], "handle_error() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error", false]], "handle_forbidden_from_block() (in module pydis_core.utils.error_handling)": [[13, "pydis_core.utils.error_handling.handle_forbidden_from_block", false]], "handle_role_change() (in module pydis_core.utils.members)": [[21, "pydis_core.utils.members.handle_role_change", false]], "handle_text_command_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error", false]], "has_any_role_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_any_role_check", false]], "has_no_roles_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.has_no_roles_check", false]], "http_session (botbase attribute)": [[3, "pydis_core.BotBase.http_session", false]], "id (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.id", false]], "in_whitelist_check() (in module pydis_core.utils.checks)": [[10, "pydis_core.utils.checks.in_whitelist_check", false]], "interaction_check() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check", false]], "inwhitelistcheckfailure": [[10, "pydis_core.utils.checks.InWhitelistCheckFailure", false]], "is_in_category() (in module pydis_core.utils.channel)": [[9, "pydis_core.utils.channel.is_in_category", false]], "linepaginator (class in pydis_core)": [[3, "pydis_core.LinePaginator", false]], "linepaginator (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.LinePaginator", false]], "load_extensions() (botbase method)": [[3, "pydis_core.BotBase.load_extensions", false]], "lock() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock", false]], "lock_arg() (in module pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.lock_arg", false]], "lockedresourceerror": [[19, "pydis_core.utils.lock.LockedResourceError", false]], "log_format (in module pydis_core.utils.logging)": [[20, "pydis_core.utils.logging.log_format", 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)": [[24, "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 (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_computed_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_computed_fields", false]], "model_computed_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_computed_fields", false]], "model_computed_fields (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_computed_fields", false]], "model_config (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_config", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_config", false]], "model_config (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_config", false]], "model_config (pasteresponse attribute)": [[24, "pydis_core.utils.paste_service.PasteResponse.model_config", false]], "model_fields (paginationemojis attribute)": [[3, "pydis_core.PaginationEmojis.model_fields", false], [23, "pydis_core.utils.pagination.PaginationEmojis.model_fields", false]], "model_fields (pastefile attribute)": [[24, "pydis_core.utils.paste_service.PasteFile.model_fields", false]], "model_fields (pasteresponse attribute)": [[24, "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.checks", false], [11, "module-pydis_core.utils.commands", false], [12, "module-pydis_core.utils.cooldown", false], [13, "module-pydis_core.utils.error_handling", false], [14, "module-pydis_core.utils.error_handling.commands", false], [15, "module-pydis_core.utils.error_handling.commands.abc", false], [16, "module-pydis_core.utils.error_handling.commands.manager", false], [17, "module-pydis_core.utils.function", false], [18, "module-pydis_core.utils.interactions", false], [19, "module-pydis_core.utils.lock", false], [20, "module-pydis_core.utils.logging", false], [21, "module-pydis_core.utils.members", false], [22, "module-pydis_core.utils.messages", false], [23, "module-pydis_core.utils.pagination", false], [24, "module-pydis_core.utils.paste_service", false], [25, "module-pydis_core.utils.regex", false], [26, "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)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout", false]], "p (in module pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.P", false]], "paginate() (linepaginator class method)": [[3, "pydis_core.LinePaginator.paginate", false], [23, "pydis_core.utils.pagination.LinePaginator.paginate", false]], "paginationemojis (class in pydis_core)": [[3, "pydis_core.PaginationEmojis", false]], "paginationemojis (class in pydis_core.utils.pagination)": [[23, "pydis_core.utils.pagination.PaginationEmojis", false]], "pastefile (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteFile", false]], "pasteresponse (class in pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.PasteResponse", false]], "pastetoolongerror": [[24, "pydis_core.utils.paste_service.PasteTooLongError", false]], "pasteunsupportedlexererror": [[24, "pydis_core.utils.paste_service.PasteUnsupportedLexerError", false]], "pasteuploaderror": [[24, "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.checks": [[10, "module-pydis_core.utils.checks", false]], "pydis_core.utils.commands": [[11, "module-pydis_core.utils.commands", false]], "pydis_core.utils.cooldown": [[12, "module-pydis_core.utils.cooldown", false]], "pydis_core.utils.error_handling": [[13, "module-pydis_core.utils.error_handling", false]], "pydis_core.utils.error_handling.commands": [[14, "module-pydis_core.utils.error_handling.commands", false]], "pydis_core.utils.error_handling.commands.abc": [[15, "module-pydis_core.utils.error_handling.commands.abc", false]], "pydis_core.utils.error_handling.commands.manager": [[16, "module-pydis_core.utils.error_handling.commands.manager", false]], "pydis_core.utils.function": [[17, "module-pydis_core.utils.function", false]], "pydis_core.utils.interactions": [[18, "module-pydis_core.utils.interactions", false]], "pydis_core.utils.lock": [[19, "module-pydis_core.utils.lock", false]], "pydis_core.utils.logging": [[20, "module-pydis_core.utils.logging", false]], "pydis_core.utils.members": [[21, "module-pydis_core.utils.members", false]], "pydis_core.utils.messages": [[22, "module-pydis_core.utils.messages", false]], "pydis_core.utils.pagination": [[23, "module-pydis_core.utils.pagination", false]], "pydis_core.utils.paste_service": [[24, "module-pydis_core.utils.paste_service", false]], "pydis_core.utils.regex": [[25, "module-pydis_core.utils.regex", false]], "pydis_core.utils.scheduling": [[26, "module-pydis_core.utils.scheduling", false]], "r (class in pydis_core.utils.cooldown)": [[12, "pydis_core.utils.cooldown.R", false]], "raw_code_regex (in module pydis_core.utils.regex)": [[25, "pydis_core.utils.regex.RAW_CODE_REGEX", false]], "reaction_check() (in module pydis_core.utils.messages)": [[22, "pydis_core.utils.messages.reaction_check", false]], "redis_session (botbase attribute)": [[3, "pydis_core.BotBase.redis_session", false]], "register_command_error_manager() (botbase method)": [[3, "pydis_core.BotBase.register_command_error_manager", false]], "register_handler() (commanderrormanager method)": [[14, "pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler", false], [16, "pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler", 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)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule", false]], "schedule_at() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_at", false]], "schedule_later() (scheduler method)": [[26, "pydis_core.utils.scheduling.Scheduler.schedule_later", false]], "scheduler (class in pydis_core.utils.scheduling)": [[26, "pydis_core.utils.scheduling.Scheduler", false]], "send_to_paste_service() (in module pydis_core.utils.paste_service)": [[24, "pydis_core.utils.paste_service.send_to_paste_service", false]], "setup_hook() (botbase method)": [[3, "pydis_core.BotBase.setup_hook", false]], "sharedevent (class in pydis_core.utils.lock)": [[19, "pydis_core.utils.lock.SharedEvent", false]], "should_handle_error() (abstractcommanderrorhandler method)": [[14, "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error", false], [15, "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error", false]], "startuperror": [[3, "pydis_core.StartupError", false]], "stats (botbase attribute)": [[3, "pydis_core.BotBase.stats", false]], "statsd_url (botbase attribute)": [[3, "pydis_core.BotBase.statsd_url", false]], "stop() (viewwithuserandrolecheck method)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop", false]], "trace() (customlogger method)": [[20, "pydis_core.utils.logging.CustomLogger.trace", false]], "type (lockedresourceerror attribute)": [[19, "pydis_core.utils.lock.LockedResourceError.type", false]], "unqualify() (in module pydis_core.utils)": [[7, "pydis_core.utils.unqualify", false]], "update_wrapper_globals() (in module pydis_core.utils.function)": [[17, "pydis_core.utils.function.update_wrapper_globals", false]], "user_has_access() (in module pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.user_has_access", false]], "viewwithuserandrolecheck (class in pydis_core.utils.interactions)": [[18, "pydis_core.utils.interactions.ViewWithUserAndRoleCheck", false]], "wait() (sharedevent method)": [[19, "pydis_core.utils.lock.SharedEvent.wait", 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, 4, 1, "", "EmptyPaginatorEmbedError"], [3, 1, 1, "", "LinePaginator"], [3, 1, 1, "", "PaginationEmojis"], [3, 4, 1, "", "StartupError"], [4, 0, 0, "-", "async_stats"], [5, 0, 0, "-", "exts"], [6, 0, 0, "-", "site_api"], [7, 0, 0, "-", "utils"]], "pydis_core.BotBase": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_cog"], [3, 2, 1, "", "add_command"], [3, 3, 1, "", "all_extensions"], [3, 3, 1, "", "api_client"], [3, 2, 1, "", "clear"], [3, 2, 1, "", "close"], [3, 3, 1, "", "guild_id"], [3, 3, 1, "", "http_session"], [3, 2, 1, "", "load_extensions"], [3, 2, 1, "", "log_to_dev_log"], [3, 2, 1, "", "on_guild_available"], [3, 2, 1, "", "on_guild_unavailable"], [3, 2, 1, "", "ping_services"], [3, 2, 1, "", "process_commands"], [3, 3, 1, "", "redis_session"], [3, 2, 1, "", "register_command_error_manager"], [3, 2, 1, "", "remove_command"], [3, 2, 1, "", "setup_hook"], [3, 3, 1, "", "stats"], [3, 3, 1, "", "statsd_url"], [3, 2, 1, "", "wait_until_guild_available"]], "pydis_core.LinePaginator": [[3, 2, 1, "", "__init__"], [3, 2, 1, "", "add_line"], [3, 2, 1, "", "paginate"]], "pydis_core.PaginationEmojis": [[3, 3, 1, "", "model_computed_fields"], [3, 3, 1, "", "model_config"], [3, 3, 1, "", "model_fields"]], "pydis_core.StartupError": [[3, 2, 1, "", "__init__"]], "pydis_core.async_stats": [[4, 1, 1, "", "AsyncStatsClient"]], "pydis_core.async_stats.AsyncStatsClient": [[4, 2, 1, "", "__init__"], [4, 2, 1, "", "create_socket"]], "pydis_core.site_api": [[6, 1, 1, "", "APIClient"], [6, 4, 1, "", "ResponseCodeError"]], "pydis_core.site_api.APIClient": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "close"], [6, 2, 1, "", "delete"], [6, 2, 1, "", "get"], [6, 2, 1, "", "maybe_raise_for_status"], [6, 2, 1, "", "patch"], [6, 2, 1, "", "post"], [6, 2, 1, "", "put"], [6, 2, 1, "", "request"]], "pydis_core.site_api.ResponseCodeError": [[6, 2, 1, "", "__init__"], [6, 2, 1, "", "__str__"]], "pydis_core.utils": [[7, 5, 1, "", "apply_monkey_patches"], [8, 0, 0, "-", "caching"], [9, 0, 0, "-", "channel"], [10, 0, 0, "-", "checks"], [11, 0, 0, "-", "commands"], [12, 0, 0, "-", "cooldown"], [13, 0, 0, "-", "error_handling"], [17, 0, 0, "-", "function"], [18, 0, 0, "-", "interactions"], [19, 0, 0, "-", "lock"], [20, 0, 0, "-", "logging"], [21, 0, 0, "-", "members"], [22, 0, 0, "-", "messages"], [23, 0, 0, "-", "pagination"], [24, 0, 0, "-", "paste_service"], [25, 0, 0, "-", "regex"], [26, 0, 0, "-", "scheduling"], [7, 5, 1, "", "unqualify"]], "pydis_core.utils.caching": [[8, 1, 1, "", "AsyncCache"]], "pydis_core.utils.caching.AsyncCache": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "__init__"], [8, 2, 1, "", "clear"]], "pydis_core.utils.channel": [[9, 5, 1, "", "get_or_fetch_channel"], [9, 5, 1, "", "is_in_category"]], "pydis_core.utils.checks": [[10, 4, 1, "", "ContextCheckFailure"], [10, 4, 1, "", "InWhitelistCheckFailure"], [10, 5, 1, "", "cooldown_with_role_bypass"], [10, 5, 1, "", "has_any_role_check"], [10, 5, 1, "", "has_no_roles_check"], [10, 5, 1, "", "in_whitelist_check"]], "pydis_core.utils.checks.ContextCheckFailure": [[10, 2, 1, "", "__init__"]], "pydis_core.utils.commands": [[11, 5, 1, "", "clean_text_or_reply"]], "pydis_core.utils.cooldown": [[12, 4, 1, "", "CommandOnCooldown"], [12, 6, 1, "", "P"], [12, 1, 1, "", "R"], [12, 5, 1, "", "block_duplicate_invocations"]], "pydis_core.utils.cooldown.CommandOnCooldown": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "call_without_cooldown"]], "pydis_core.utils.error_handling": [[14, 0, 0, "-", "commands"], [13, 5, 1, "", "handle_forbidden_from_block"]], "pydis_core.utils.error_handling.commands": [[14, 1, 1, "", "AbstractCommandErrorHandler"], [14, 1, 1, "", "CommandErrorManager"], [15, 0, 0, "-", "abc"], [16, 0, 0, "-", "manager"]], "pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler": [[14, 2, 1, "", "handle_app_command_error"], [14, 2, 1, "", "handle_text_command_error"], [14, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.CommandErrorManager": [[14, 2, 1, "", "__init__"], [14, 2, 1, "", "handle_error"], [14, 2, 1, "", "register_handler"]], "pydis_core.utils.error_handling.commands.abc": [[15, 1, 1, "", "AbstractCommandErrorHandler"]], "pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler": [[15, 2, 1, "", "handle_app_command_error"], [15, 2, 1, "", "handle_text_command_error"], [15, 2, 1, "", "should_handle_error"]], "pydis_core.utils.error_handling.commands.manager": [[16, 1, 1, "", "CommandErrorManager"]], "pydis_core.utils.error_handling.commands.manager.CommandErrorManager": [[16, 2, 1, "", "__init__"], [16, 2, 1, "", "handle_error"], [16, 2, 1, "", "register_handler"]], "pydis_core.utils.function": [[17, 4, 1, "", "GlobalNameConflictError"], [17, 5, 1, "", "command_wraps"], [17, 5, 1, "", "get_arg_value"], [17, 5, 1, "", "get_arg_value_wrapper"], [17, 5, 1, "", "get_bound_args"], [17, 5, 1, "", "update_wrapper_globals"]], "pydis_core.utils.interactions": [[18, 1, 1, "", "DeleteMessageButton"], [18, 1, 1, "", "ViewWithUserAndRoleCheck"], [18, 5, 1, "", "user_has_access"]], "pydis_core.utils.interactions.DeleteMessageButton": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "callback"]], "pydis_core.utils.interactions.ViewWithUserAndRoleCheck": [[18, 2, 1, "", "__init__"], [18, 2, 1, "", "interaction_check"], [18, 2, 1, "", "on_timeout"], [18, 2, 1, "", "stop"]], "pydis_core.utils.lock": [[19, 4, 1, "", "LockedResourceError"], [19, 1, 1, "", "SharedEvent"], [19, 5, 1, "", "lock"], [19, 5, 1, "", "lock_arg"]], "pydis_core.utils.lock.LockedResourceError": [[19, 2, 1, "", "__init__"], [19, 3, 1, "", "id"], [19, 3, 1, "", "type"]], "pydis_core.utils.lock.SharedEvent": [[19, 2, 1, "", "__enter__"], [19, 2, 1, "", "__exit__"], [19, 2, 1, "", "__init__"], [19, 2, 1, "", "wait"]], "pydis_core.utils.logging": [[20, 1, 1, "", "CustomLogger"], [20, 5, 1, "", "get_logger"], [20, 6, 1, "", "log_format"]], "pydis_core.utils.logging.CustomLogger": [[20, 2, 1, "", "trace"]], "pydis_core.utils.members": [[21, 5, 1, "", "get_or_fetch_member"], [21, 5, 1, "", "handle_role_change"]], "pydis_core.utils.messages": [[22, 5, 1, "", "reaction_check"]], "pydis_core.utils.pagination": [[23, 4, 1, "", "EmptyPaginatorEmbedError"], [23, 1, 1, "", "LinePaginator"], [23, 1, 1, "", "PaginationEmojis"]], "pydis_core.utils.pagination.LinePaginator": [[23, 2, 1, "", "__init__"], [23, 2, 1, "", "add_line"], [23, 2, 1, "", "paginate"]], "pydis_core.utils.pagination.PaginationEmojis": [[23, 3, 1, "", "model_computed_fields"], [23, 3, 1, "", "model_config"], [23, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service": [[24, 6, 1, "", "MAX_PASTE_SIZE"], [24, 1, 1, "", "PasteFile"], [24, 1, 1, "", "PasteResponse"], [24, 4, 1, "", "PasteTooLongError"], [24, 4, 1, "", "PasteUnsupportedLexerError"], [24, 4, 1, "", "PasteUploadError"], [24, 5, 1, "", "send_to_paste_service"]], "pydis_core.utils.paste_service.PasteFile": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.paste_service.PasteResponse": [[24, 3, 1, "", "model_computed_fields"], [24, 3, 1, "", "model_config"], [24, 3, 1, "", "model_fields"]], "pydis_core.utils.regex": [[25, 6, 1, "", "DISCORD_INVITE"], [25, 6, 1, "", "FORMATTED_CODE_REGEX"], [25, 6, 1, "", "RAW_CODE_REGEX"]], "pydis_core.utils.scheduling": [[26, 1, 1, "", "Scheduler"], [26, 5, 1, "", "create_task"]], "pydis_core.utils.scheduling.Scheduler": [[26, 2, 1, "", "__contains__"], [26, 2, 1, "", "__init__"], [26, 2, 1, "", "cancel"], [26, 2, 1, "", "cancel_all"], [26, 2, 1, "", "schedule"], [26, 2, 1, "", "schedule_at"], [26, 2, 1, "", "schedule_later"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "exception", "Python exception"], "5": ["py", "function", "Python function"], "6": ["py", "data", "Python data"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:exception", "5": "py:function", "6": "py:data"}, "terms": {"": [0, 1, 3, 7, 8, 10, 11, 12, 17, 18, 19, 20, 22, 23, 25, 26], "0": [0, 8, 10, 18, 19, 20], "0a0": 0, "0eb3d26": 0, "1": [0, 20], "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, "15": 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": 18, "181": 0, "182": 0, "183": 0, "184": 0, "185": 0, "187": 0, "188": 0, "189": 0, "18th": 0, "190": 0, "192": 0, "194": 0, "195": 0, "196": 0, "197": 0, "199": 0, "19th": 0, "2": [0, 3, 18], "200": 0, "202": 0, "2021": 0, "2022": 0, "2023": 0, "2024": 0, "204": [0, 6], "205": 0, "206": 0, "207": 0, "208": 0, "209": 0, "20th": 0, "210": 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, "300": [3, 23], "30th": 0, "32": 0, "34": 0, "35": 0, "37": 0, "39": 0, "3rd": 0, "4": 0, "4000": [3, 23], "403": 7, "42": 0, "4cbe8f5": 0, "5": [0, 12], "500": [3, 23], "524288": 24, "54": 0, "56": 0, "5a06fa5": 0, "5th": 0, "6": 0, "61": 0, "63": 0, "637136429717389331": [3, 23], "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, 13], "91": 0, "93": 0, "96": 0, "98": 0, "987235d": 0, "9th": 0, "A": [1, 3, 6, 7, 8, 9, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 26], "As": 0, "Be": 0, "For": 17, "If": [3, 6, 10, 12, 17, 18, 19, 22, 23, 26], "In": [3, 23], "It": [3, 7, 19, 23], "Not": 3, "On": 0, "That": 1, "The": [1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 20, 21, 23, 24, 26], "These": [3, 23], "To": [1, 3, 20], "_": 0, "__annotations__": 17, "__call__": [7, 8], "__contains__": [7, 26], "__dict__": 17, "__doc__": 17, "__enter__": [7, 19], "__exit__": [7, 19], "__fields__": [3, 23, 24], "__global__": 17, "__init__": [0, 2, 3, 4, 6, 7, 8, 10, 12, 13, 14, 16, 18, 19, 23, 26], "__module__": 17, "__name__": 17, "__qualname__": 17, "__str__": [3, 6], "_exc_tb": 19, "_exc_typ": 19, "_exc_val": 19, "_guild_avail": 0, "_p": 17, "_r": 17, "_transport": 0, "abc": [0, 13, 14], "abl": 0, "about": [3, 12, 23, 24], "abstract": [0, 14, 15], "abstractcommanderrorhandl": [0, 7, 13, 14, 15], "abstracteventloop": [4, 26], "accept": [17, 18], "access": 18, "acquir": 19, "across": [0, 3, 20, 23], "act": 7, "action": 0, "activ": 19, "actual": 0, "ad": [0, 1, 3, 7, 18, 20, 23], "add": [0, 3, 10, 12, 23], "add_cog": [2, 3], "add_command": [2, 3], "add_lin": [2, 3, 7, 23], "add_rol": 21, "addit": 0, "after": [0, 3, 18, 23, 26], "again": 1, "aid": [3, 23], "aiodn": 0, "aiohttp": [0, 3, 6, 24], "alia": [3, 7, 12], "alias": [3, 7], "all": [0, 1, 3, 4, 7, 14, 16, 19, 20, 26], "all_command": 3, "all_extens": [2, 3], "allow": [0, 1, 3, 18, 22, 23, 24], "allow_mod": 22, "allowed_emoji": 22, "allowed_rol": [0, 1, 3, 18, 22, 23], "allowed_us": [0, 18, 22], "alpha": 0, "alreadi": [3, 23, 26], "also": [0, 3, 7, 17, 18, 19, 23], "alwai": 10, "among": 19, "amount": [3, 23], "an": [0, 1, 3, 4, 6, 7, 8, 9, 10, 14, 15, 17, 19, 20, 23, 24, 26], "ani": [3, 6, 10, 17, 19, 23, 25, 26], "annot": [3, 17, 23, 24], "anymor": [3, 23], "anyth": [1, 24], "api": [0, 3, 6, 21], "api_cli": [0, 2, 3], "apicli": [0, 2, 3, 6], "app": [0, 3, 14, 15], "appear": 3, "append": [3, 23], "appli": [3, 7, 8, 10, 12, 19, 23, 24], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [0, 1, 3, 8, 17, 18, 22, 23, 25], "arg": [3, 12, 17, 19, 20], "arg_offset": 8, "args_preprocessor": 12, "argument": [6, 7, 8, 11, 12, 17, 19, 20, 21], "around": 6, "assign": 17, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 21, 23, 24], "async_rediscach": [0, 3], "async_stat": [2, 3], "asynccach": [3, 7, 8], "asyncio": [0, 4, 26], "asyncresolv": 0, "asyncstatscli": [2, 3, 4], "asyncstatsdcli": 0, "attach": 0, "attempt": [0, 3, 9, 19, 21, 23], "attr": 0, "attribut": [0, 7, 17], "august": 0, "authent": 6, "author": [3, 10, 22, 23], "auto": 0, "auto_mod": 0, "autogener": 0, "automat": [0, 3, 23], "avail": [0, 3, 14, 16, 19], "avoid": [0, 3, 23], "await": [0, 3, 12, 18, 19, 21, 23], "awar": [0, 26], "back": 0, "backtick": [3, 23], "bad": 0, "badargu": 11, "base": [0, 3, 4, 6, 8, 10, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 26], "basemodel": [3, 23, 24], "basic": [0, 18], "becaus": [3, 17], "becom": [3, 19], "been": [0, 3], "befor": [0, 3, 10, 18, 19, 23, 26], "before_invok": 10, "behav": 17, "behavior": 10, "behaviour": [0, 3], "being": [0, 7, 10, 21], "belong": 3, "below": [1, 19], "best": [3, 23], "between": [0, 1, 17], "bind": [3, 17], "block": [0, 3, 12, 23, 25], "block_duplicate_invoc": [3, 7, 12], "bodi": 0, "boilerpl": 0, "bool": [3, 6, 9, 10, 12, 14, 15, 18, 19, 22, 23, 26], "bot": [0, 1, 3, 7, 9, 22], "bot_token": 1, "botbas": [0, 2, 3], "both": [0, 1, 3, 24], "boundari": [3, 23], "break": [0, 3, 17, 23], "broke": 0, "buckettyp": 10, "bug": 0, "bump": 0, "button": [0, 18], "buttonstyl": 18, "bypass": 10, "bypass_rol": 10, "byte": 24, "cach": [0, 3, 7, 9, 21], "calcul": 26, "call": [0, 3, 12, 17, 26], "call_without_cooldown": [7, 12], "callabl": [8, 10, 12, 17, 19, 21], "callback": [7, 10, 18], "can": [0, 1, 3, 10, 18, 19, 20, 23, 26], "cancel": [7, 26], "cancel_al": [7, 26], "cannot": [0, 3, 19, 23], "capabl": [14, 16], "captur": [0, 17, 25], "carri": 18, "case": [0, 3, 23], "categori": [9, 10], "category_id": 9, "caus": [3, 7, 23], "certain": [0, 1], "chang": [0, 1, 3, 17, 23], "changelog": 2, "changeset": 0, "channel": [0, 3, 7, 10, 12], "channel_id": 9, "charact": [0, 3, 23], "chardet": 0, "check": [0, 3, 6, 7, 9, 12, 13, 18, 22, 26], "checkfailur": 10, "choos": [14, 16], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 12, 14, 15, 16, 18, 19, 20, 23, 24, 26], "classmethod": [3, 23], "classvar": [3, 23, 24], "clean": [0, 11], "clean_text_or_repli": [3, 7, 11], "clear": [2, 3, 7, 8, 19], "click": 18, "client": [0, 3, 4], "clientrespons": 6, "clientsess": [3, 6, 24], "close": [0, 2, 3, 6, 26], "cloudflar": 7, "code": [0, 1, 3, 6, 19, 23, 25], "codepoint": [3, 23], "cog": [0, 3, 5], "collect": 10, "collis": 19, "com": [0, 24], "comma": 1, "command": [0, 1, 3, 7, 9, 10, 12, 13, 15, 16, 17, 19, 23], "command_wrap": [3, 7, 17], "commanderror": 12, "commanderrormanag": [0, 7, 13, 14, 16], "commandinvokeerror": 0, "commandoncooldown": [3, 7, 12], "commit": 0, "common": [0, 1, 3, 7, 20, 25], "commun": [3, 4], "compos": 1, "comput": [3, 23, 24], "computedfieldinfo": [3, 23, 24], "concurr": 0, "config": [0, 3, 23, 24], "configdict": [3, 23, 24], "configur": [1, 3, 23, 24], "conflict": 17, "conform": [3, 23, 24], "connect": [0, 3, 4], "connector": 3, "constructor": [3, 6], "contain": [1, 3, 10, 18, 23, 24, 26], "content": [0, 3, 11, 23, 24], "context": [3, 10, 11, 14, 15, 19, 23], "context_or_interact": [14, 16], "contextcheckfailur": [3, 7, 10], "continu": [3, 23], "control": 0, "cooldown": [3, 7, 10], "cooldown_dur": 12, "cooldown_with_role_bypass": [3, 7, 10], "copi": [1, 17], "core": [0, 1], "coro": [19, 21, 26], "coroutin": [8, 19, 21, 26], "correct": [0, 1], "correspond": [3, 23, 24], "could": [0, 21], "count": 19, "crash": 0, "creat": [0, 3, 4, 8, 12, 17, 23, 26], "create_datagram_endpoint": 4, "create_socket": [3, 4], "create_task": [3, 7, 26], "creation": 0, "criteria": 0, "ctx": [3, 10, 11, 18, 23], "current": [0, 3, 19, 23, 26], "custom": [0, 8, 20], "customlogg": [3, 7, 20], "cut": 0, "d": [1, 17], "dai": 0, "data": [3, 23, 24], "datetim": 26, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 10, 12, 17, 19], "decorator_func": 17, "decrement": 19, "default": [0, 1, 3, 10, 14, 16, 17, 23, 24], "defin": [3, 23, 24], "delai": 26, "delet": [0, 3, 6, 8, 18, 23, 24], "deletemessagebutton": [0, 3, 7, 18], "depend": [0, 9], "deprec": 0, "describ": 10, "detail": 17, "detect": 0, "determin": [14, 15, 16], "dev": [1, 3], "develop": [0, 2, 3, 7], "dict": [3, 6, 17, 23, 24], "dictat": 0, "dictionari": [3, 23, 24], "did": 0, "directli": [0, 17], "directori": 1, "discord": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 16, 17, 21, 23, 25], "discord_invit": [0, 3, 7, 25], "disnak": 0, "distinguish": 26, "django": 6, "dm": 10, "do": [0, 1, 9, 19], "doc": [0, 19], "docker": 1, "docstr": 0, "document": 0, "doe": [0, 17], "doesn": [3, 10, 26], "don": [0, 10, 26], "done": [3, 18, 23, 26], "drop": 0, "due": 0, "dummi": [0, 3], "duplic": [0, 12], "durat": 10, "dynam": 0, "e": [3, 23], "each": [0, 3, 23], "edit": 3, "effort": [3, 23], "either": [0, 3], "els": 11, "elsewher": 26, "emb": [0, 3, 23], "emit": 3, "emoji": [0, 3, 22, 23], "empti": [3, 23], "emptypaginatorembederror": [2, 3, 7, 23], "enabl": [0, 1], "encount": 24, "end": [3, 23], "endpoint": 6, "ensur": [0, 3, 18, 25], "entir": [0, 3], "env": 1, "environ": [0, 1], "equival": 6, "error": [0, 3, 6, 7, 13, 14, 15, 16, 21, 24], "error_handl": [0, 3, 7], "etc": [1, 10], "evalu": 17, "even": 22, "event": [0, 3, 4, 19, 26], "event_loop": 26, "everi": [3, 23], "exact": 1, "exampl": [3, 23], "exc_info": 20, "exce": [3, 8, 23], "exceed": [3, 23], "except": [3, 6, 10, 12, 14, 16, 17, 19, 20, 23, 24, 26], "exception_on_empty_emb": [3, 23], "excess": [3, 23], "exclus": 19, "execut": [19, 26], "exist": [0, 1, 26], "exit": 19, "expect": 21, "expiri": 0, "explain": 0, "expos": 19, "express": 25, "ext": [0, 2, 3, 7, 9, 10, 11, 23], "extend": 0, "extens": [0, 3], "extra": [0, 6], "extract": 0, "facilit": 0, "fail": [9, 10, 24], "fail_sil": 10, "failur": 21, "fakeredi": 0, "fals": [3, 10, 12, 19, 23, 24], "featur": [0, 1, 3], "februari": 0, "fetch": [9, 21], "few": 1, "field": [3, 23, 24], "fieldinfo": [3, 23, 24], "fifo": 8, "file": [0, 1, 24], "filter": 0, "finish": [3, 19, 23], "first": [3, 14, 16, 23], "five": [3, 23], "fix": 0, "float": [10, 12, 18, 26], "folder": 1, "footer": [3, 23], "footer_text": [3, 23], "forbidden": [0, 9, 13], "format": [24, 25], "formatt": 20, "formatted_code_regex": [3, 7, 25], "forum": 0, "forwardref": 17, "found": [3, 17, 21, 26], "free": 1, "from": [0, 1, 3, 4, 6, 7, 9, 17, 18, 21, 23, 24, 26], "frozenset": [3, 17], "func": [17, 19], "function": [0, 3, 7, 8, 9, 12, 19, 20, 21, 23, 26], "functool": 17, "futur": [10, 26], "g": [3, 23], "gatewai": 3, "gener": [0, 3, 12, 26], "get": [0, 3, 6, 9, 17, 21], "get_arg_valu": [3, 7, 17], "get_arg_value_wrapp": [3, 7, 17], "get_bound_arg": [3, 7, 17], "get_logg": [3, 7, 20], "get_or_fetch_channel": [0, 3, 7, 9], "get_or_fetch_memb": [0, 3, 7, 21], "git": 1, "github": 0, "give": 3, "given": [0, 3, 4, 7, 9, 11, 17, 19, 20, 21, 26], "global": 17, "globalnameconflicterror": [3, 7, 17], "go": [1, 3, 19, 23], "greater": 24, "groundwork": 1, "group": [7, 25], "guild": [0, 1, 3, 10, 21], "guild_available_but_cache_empti": 3, "guild_creat": 3, "guild_id": [1, 2, 3], "guildchannel": 9, "ha": [0, 3, 7, 10, 18], "handl": [0, 13, 14, 15, 16, 21, 26], "handle_app_command_error": [13, 14, 15], "handle_error": [13, 14, 16], "handle_forbidden_from_block": [3, 7, 13], "handle_role_chang": [0, 3, 7, 21], "handle_text_command_error": [13, 14, 15], "handler": [0, 3, 14, 15, 16], "happen": 3, "has_any_role_check": [3, 7, 10], "has_no_roles_check": [3, 7, 10], "hashabl": [19, 26], "have": [0, 9, 10, 17, 20], "heavi": 7, "help": [0, 1], "helper": [0, 9, 12, 21], "hold": [3, 19, 23], "holder": 19, "hook": 0, "host": 4, "houston": 20, "how": [0, 8, 10, 17, 26], "howev": 1, "http": [0, 3, 6, 24, 25], "http_session": [2, 3, 24], "httpexcept": 9, "i": [0, 1, 3, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "icon": [3, 23], "icon_url": [3, 23], "id": [1, 3, 7, 9, 10, 18, 19, 23, 26], "identifi": [19, 26], "ignor": [1, 7, 17, 22], "ignored_conflict_nam": 17, "immedi": 26, "implement": [0, 3, 4, 8, 18, 20], "import": 0, "in_whitelist": 10, "in_whitelist_check": [3, 7, 10], "inadequ": 3, "includ": [0, 1, 13], "incorrect": 0, "increment": 19, "independantli": 0, "index": 2, "indic": [3, 21, 23], "individu": 3, "info": [0, 1], "inform": [2, 19, 20], "init": [0, 3, 4], "initi": [6, 26], "initialis": [3, 8], "input": 18, "insert": [3, 23], "insid": [3, 23], "instal": [0, 1], "instanc": [0, 3, 6, 8, 9, 10, 20, 26], "instanti": [3, 18, 26], "instead": [3, 12, 26], "int": [3, 4, 8, 9, 10, 17, 18, 23, 24], "intend": 21, "intent": 1, "interact": [0, 3, 7, 9, 14, 15, 23], "interactin": 21, "interaction_check": [7, 18], "interest": 20, "intern": [3, 7, 19], "intersphinx": 0, "introduc": 10, "invalid": 9, "invaliddata": 9, "invit": [0, 25], "invoc": [0, 12], "invok": [1, 10, 12, 18], "inwhitelistcheckfailur": [3, 7, 10], "is_in_categori": [3, 7, 9], "isn": [0, 13, 17], "issu": 10, "item": 8, "iter": [10, 12, 14, 16], "its": [0, 3, 12, 17], "itself": 18, "januari": 0, "json": 6, "juli": 0, "june": 0, "just": 0, "keep": [3, 23, 26], "kei": 8, "keyword": [6, 7, 17, 20], "known": 26, "kwarg": [3, 6, 12, 17, 18, 20, 26], "label": [0, 18], "lancebot": 1, "larg": 24, "larger": 24, "last": [3, 10, 18, 23], "latest": 0, "lead": 0, "least": 10, "left": [3, 23], "length": [3, 12, 23], "level": [0, 7, 20], "lexer": [0, 24], "librari": [0, 1], "like": [1, 17], "limit": [3, 23], "line": [3, 23], "linepagin": [0, 2, 3, 7, 23], "linesep": [3, 23], "link": 24, "lint": 0, "list": [0, 1, 3, 18, 23, 24], "listen": 18, "ll": [1, 26], "load": [0, 1, 3, 7], "load_extens": [0, 2, 3], "local": 2, "localhost": 4, "lock": [0, 3, 7], "lock_arg": [3, 7, 19], "lockedresourceerror": [3, 7, 19], "log": [0, 3, 7, 13, 21, 26], "log_format": [0, 3, 7, 20], "log_to_dev_log": [2, 3], "logger": [0, 20], "logic": 0, "long": [10, 24, 26], "longer": [0, 18], "look": [17, 26], "loop": [4, 26], "lot": 0, "lru": 8, "lua": 0, "lupa": 0, "m": 1, "machin": 1, "made": [0, 22], "mai": [0, 3, 8, 19, 23], "main": 0, "make": [0, 1, 3, 20, 23], "manag": [0, 3, 13, 14, 19], "mani": [0, 3, 8], "manipul": [0, 17], "manual": 3, "map": [3, 17, 19, 23, 24], "march": 0, "mark": 0, "match": [0, 3, 17], "max": 24, "max_length": 24, "max_lin": [3, 23], "max_paste_s": [3, 7, 24], "max_siz": [3, 8, 23, 24], "maximum": [3, 8, 23, 24], "maybe_raise_for_statu": [3, 6], "mean": 1, "meant": 0, "member": [0, 3, 7, 18], "member_id": 21, "mention": [1, 3], "messag": [0, 3, 7, 11, 12, 13, 18, 20, 23, 26], "message_id": 22, "message_typ": 0, "metadata": [3, 23, 24], "method": [0, 4, 6, 7, 20], "metric": 3, "might": [1, 3, 10], "migrat": 0, "minut": [3, 23], "miss": 0, "mod": 0, "model": [3, 23, 24], "model_computed_field": [2, 3, 7, 23, 24], "model_config": [2, 3, 7, 23, 24], "model_field": [2, 3, 7, 23, 24], "moder": [3, 18, 22, 23], "modifi": [1, 21], "modul": [0, 3, 7, 17, 26], "monitor": 1, "monkei": [0, 7], "month": 0, "more": [0, 1, 3, 17, 19, 23], "most": 1, "move": 0, "msg": 20, "multipl": 0, "multivers": 0, "must": [0, 17, 19, 26], "mutual": 19, "mypi": 20, "n": [3, 23], "name": [3, 7, 17, 19, 20, 23, 24, 26], "name_or_po": [17, 19], "namespac": [0, 19, 26], "navig": [0, 1, 3, 23], "na\u00efv": 26, "need": [0, 1, 3, 23], "new": [0, 1, 3, 4, 6, 8, 17, 23, 26], "newer": 0, "newli": 0, "next": [3, 23], "non": 6, "none": [0, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 26], "noreturn": [14, 15], "normal": 3, "notabl": 0, "note": [0, 10], "notfound": 9, "notic": 0, "notifi": 12, "novemb": 0, "now": [0, 1, 26], "number": [0, 3, 10, 23, 24], "object": [3, 6, 7, 8, 9, 12, 14, 16, 19, 21, 23, 24, 26], "occur": 18, "octob": 0, "offset": 8, "ok": 6, "older": 0, "on_guild_avail": [2, 3], "on_guild_unavail": [2, 3], "on_readi": 3, "on_timeout": [7, 18], "onc": [0, 3, 8], "one": [0, 3, 10, 14, 16, 23], "ones": 1, "onli": [0, 3], "onto": [3, 23], "oper": [3, 19, 23, 26], "option": [0, 8, 17, 19], "order": [3, 8, 14, 16, 17, 19, 23, 26], "ordereddict": [17, 19], "origin": [0, 18], "other": [0, 1, 19, 26], "otherwis": [10, 19, 26], "our": [0, 1, 7], "out": [0, 1, 3, 18], "output": 25, "over": [0, 3, 23], "overflow": [3, 23], "overrid": [3, 23], "overwrit": [0, 3], "own": [0, 17], "p": [3, 7, 12], "packag": [0, 3, 7], "page": [2, 3, 23], "pagin": [0, 2, 3, 7], "pagination_emoji": [3, 23], "paginationemoji": [2, 3, 7, 23], "paramet": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 23, 24, 26], "paramspec": [12, 17], "parent": [0, 18], "pars": 25, "pass": [0, 3, 6, 17, 20, 21, 26], "past": [0, 24, 26], "paste_servic": [0, 3, 7], "paste_url": 24, "pastebin": 0, "pastefil": [0, 3, 7, 24], "pasterespons": [3, 7, 24], "pastetoolongerror": [3, 7, 24], "pasteunsupportedlexererror": [3, 7, 24], "pasteuploaderror": [3, 7, 24], "patch": [0, 3, 6, 7], "path": 1, "pattern": 25, "per": [3, 10, 23], "perform": 19, "permiss": [0, 9], "ping": 3, "ping_servic": [0, 2, 3], "pip": 1, "place": [3, 23], "pleas": 25, "poetri": [0, 1], "popul": 3, "port": [0, 4], "posit": [8, 17, 19], "possibl": 1, "post": [3, 6, 24], "pre": 1, "predic": [0, 14, 15], "prefix": [1, 3, 4, 23], "prematur": 26, "press": 0, "prevent": [12, 19, 26], "previous": 0, "prioriti": [14, 16], "privatechannel": [0, 9], "problem": [10, 20], "process": [0, 3], "process_command": [0, 2, 3], "program": 1, "project": [0, 1, 20], "provid": [0, 1, 3, 8, 11, 13, 23, 26], "public": 0, "publish": 0, "purpos": 21, "push": 0, "put": [3, 6], "py": [0, 3, 17], "pydant": [0, 3, 23, 24], "pydi": [0, 2], "pydis_cor": [0, 1, 3, 18, 20], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 24, 26], "pythondiscord": [0, 24], "qualifi": 7, "quot": 25, "r": [3, 7, 12], "rais": [3, 6, 9, 10, 11, 12, 13, 14, 15, 17, 19, 21, 23, 24, 26], "raise_error": 19, "raise_for_statu": 6, "rate": 10, "rather": 7, "raw": [12, 25], "raw_code_regex": [3, 7, 25], "rc2": 0, "re": [1, 3, 13, 22, 26], "reach": 19, "reaction": [0, 3, 22, 23], "reaction_check": [0, 3, 7, 22], "read": 0, "readi": 3, "real": 0, "reason": [3, 23], "receiv": [0, 6, 9], "recognis": 20, "reconnect": 0, "redi": [0, 3], "redirect": 10, "redirect_channel": 10, "redis_sess": [2, 3], "rediscach": 0, "redissess": 3, "refer": 0, "referenc": 0, "reflect": 17, "regex": [0, 3, 7], "regist": [0, 14, 16], "register_command_error_manag": [2, 3], "register_handl": [13, 14, 16], "registr": [3, 14, 16], "regular": 25, "reinstal": 1, "reject": 24, "relat": [8, 14, 16, 20], "releas": 0, "relev": 3, "reli": 0, "remain": [3, 23], "remov": [0, 3, 18, 22, 23, 24], "remove_command": [2, 3], "remove_rol": 21, "renam": 0, "replac": [3, 10, 17, 23, 24], "repli": [3, 11, 12, 13, 23], "repo": 0, "represent": 6, "request": [0, 3, 6, 25], "requir": [0, 1, 3, 23, 24, 26], "resolut": 0, "resolv": [3, 17], "resourc": 19, "resource_id": 19, "resource_typ": 19, "respons": [0, 6, 24], "response_json": 6, "response_text": 6, "responsecodeerror": [2, 3, 6], "restor": 0, "restrict": [0, 3, 23], "restrict_to_us": [3, 23], "result": [0, 26], "retriev": 9, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "reusabl": 5, "revert": 0, "right": [0, 3, 23], "role": [0, 1, 3, 10, 18, 21, 22, 23], "root": [1, 3, 7], "root_alias": 7, "rout": 7, "ruff": 0, "rule": 0, "run": [0, 1, 12, 19, 26], "runtimeerror": 19, "safe": 0, "same": [12, 26], "sampl": 0, "sanitis": 25, "save": [0, 3, 24], "scale": [3, 23], "scale_to_s": [3, 23], "schedul": [0, 3, 7], "schedule_at": [7, 26], "schedule_lat": [7, 26], "script": 0, "search": 2, "second": [3, 10, 12, 18, 23, 26], "secondari": 18, "see": [0, 1, 17, 18, 19], "self": [0, 3, 18], "send": [0, 3, 6, 18, 23], "send_notic": 12, "send_to_paste_servic": [0, 3, 7, 24], "send_typ": 7, "seper": 1, "septemb": 0, "sequenc": [3, 7, 17, 18, 23], "serv": [3, 23], "server": [3, 25], "servic": [0, 1, 3, 24], "session": [0, 3, 6, 24], "session_kwarg": 6, "set": [0, 1, 3, 12, 17, 18, 19, 23], "set_author": [3, 23], "setup": [0, 3], "setup_hook": [2, 3], "sever": 20, "share": [0, 17], "sharedev": [3, 7, 19], "should": [0, 1, 3, 6, 14, 15, 18, 23, 24], "should_handle_error": [13, 14, 15, 16], "should_rais": 6, "signatur": 12, "silent": 10, "similar": [18, 25], "sinc": 10, "singl": [0, 3, 23], "sir": 1, "site": [0, 3, 6], "site_api": [0, 2, 3], "site_api_token": 6, "site_api_url": 6, "size": [3, 8, 23, 24], "so": [0, 1, 3, 7], "socket": 4, "sole": 21, "some": [0, 3, 23, 24], "someth": 25, "sourc": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], "specif": [0, 10], "specifi": [0, 10, 12, 18], "sphinx": 0, "split": 0, "stabl": 0, "standardis": [0, 20], "start": [0, 3, 26], "startup": 3, "startuperror": [2, 3], "stat": [0, 2, 3, 4], "state": 17, "static": 6, "statsclientbas": 4, "statsd": [0, 3, 4], "statsd_url": [0, 2, 3], "step": 1, "still": [3, 23], "stop": [0, 7, 18], "store": [0, 3, 7, 8, 23], "str": [3, 4, 6, 7, 10, 11, 17, 18, 19, 20, 23, 24, 26], "string": [0, 6], "style": 18, "sub": [0, 3], "submodul": [2, 13], "subpackag": 2, "subtract": 26, "success": [0, 24], "suffix": [3, 23], "suggest": 26, "support": [0, 4, 7, 26], "suppressed_except": 26, "sure": 1, "switch": [3, 23], "sync": [0, 3], "sync_app_command": 3, "system": [0, 1, 14, 16], "t": [0, 3, 10, 11, 13, 17, 19, 26], "target": [0, 8], "task": [0, 26], "task_id": 26, "task_return": 26, "templat": 1, "test": 2, "text": [0, 3, 6, 11, 14, 15, 23, 24], "textchannel": 9, "than": [7, 24], "thei": [3, 17, 22], "them": [1, 3, 17, 26], "thi": [0, 1, 3, 7, 9, 10, 12, 17, 18, 19, 21, 23, 24, 25, 26], "thread": [0, 9], "three": [3, 23], "through": [14, 16, 19], "thrown": 7, "thu": 3, "tild": 0, "time": [0, 10, 26], "timeout": [0, 3, 18, 23], "timezon": 26, "token": [1, 6], "toml": [0, 1], "too": 24, "tool": [3, 7], "top": 7, "total": [3, 23], "trace": [0, 7, 20], "track": 26, "transport": 4, "trashcan": [3, 23], "tree": 3, "trigger": 10, "true": [3, 6, 10, 12, 19, 20, 22, 23, 24, 26], "truncat": [3, 23], "tupl": [17, 26], "turn": 19, "two": 7, "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26], "type_": 10, "typeerror": [10, 17], "typehint": 17, "typevar": [12, 17, 26], "u": [0, 3, 23], "ui": 18, "unavail": 3, "unawait": 26, "under": 7, "underli": 19, "union": 10, "uniqu": 26, "unknown": 9, "unqualifi": [0, 2, 3, 7], "unschedul": 26, "unsupport": 24, "unti": [3, 23], "until": [0, 3, 19, 25], "up": [0, 1, 3, 23], "updat": [0, 17], "update_wrapper_glob": [3, 7, 17], "upload": [0, 24], "upon": 0, "url": [0, 3, 6, 23, 24], "urllib": 25, "us": [0, 1, 3, 4, 6, 7, 9, 10, 12, 17, 19, 20, 21, 23, 24, 25, 26], "usag": 0, "user": [0, 3, 10, 12, 18, 22, 23], "user_has_access": [0, 3, 7, 18], "utc": 26, "util": [0, 1, 2, 3, 8, 17, 18, 20], "v1": [0, 3, 23, 24], "valid": 0, "valu": [12, 17, 19, 20], "valueerror": [6, 17, 24], "vari": 1, "variabl": 1, "variou": [0, 9], "verifi": 10, "version": [0, 11], "view": [0, 18], "viewwithuserandrolecheck": [0, 3, 7, 18], "wa": [0, 9, 10, 26], "wait": [0, 3, 7, 19, 26], "wait_until_guild_avail": [2, 3], "want": 1, "warn": [0, 26], "wasn": 11, "we": [20, 21], "websocket": 0, "were": 3, "what": 1, "when": [0, 3, 4, 6, 7, 8, 10, 12, 17, 19, 23, 24, 26], "where": 10, "whether": [0, 3, 6, 9, 10, 14, 15, 18, 23], "which": [0, 1, 3, 7, 10, 12, 17, 19, 23, 26], "while": [3, 12, 19, 23], "whitelist": 10, "whitespac": [0, 25], "who": [0, 18], "whom": [3, 23], "within": [0, 3], "without": [0, 10], "won": 17, "word": [3, 23], "work": [0, 1], "worker": 7, "workflow": 0, "would": [3, 23], "wrap": [8, 17, 26], "wrapper": [0, 6, 12, 17, 26], "write": [0, 1], "wrong": 0, "www": 0, "x": 0, "you": [0, 1, 9, 25], "your": 1}, "titles": ["Changelog", "Local Development & Testing", "Bot Core Project Documentation", "Pydis Core", "async_stats", "Exts", "site_api", "Utils", "caching", "channel", "checks", "commands", "cooldown", "error_handling package", "commands package", "abc", "manager", "function", "interactions", "lock", "logging", "members", "messages", "pagination", "paste_service", "regex", "scheduling"], "titleterms": {"1": 1, "2": 1, "abc": 15, "async_stat": 4, "bot": 2, "cach": 8, "changelog": 0, "channel": 9, "check": 10, "command": [11, 14], "cooldown": 12, "core": [2, 3], "develop": 1, "document": 2, "error_handl": 13, "ext": 5, "extra": 2, "function": 17, "interact": 18, "local": 1, "lock": 19, "log": 20, "manag": 16, "member": 21, "messag": 22, "modul": 2, "option": 1, "packag": [13, 14], "pagin": 23, "paste_servic": 24, "project": 2, "pydi": 3, "refer": 2, "regex": 25, "schedul": 26, "site_api": 6, "submodul": [3, 7, 14], "subpackag": [3, 7, 13], "test": 1, "util": 7}}) \ No newline at end of file diff --git a/v11.1.0/versions.html b/v11.1.0/versions.html index 94c4c7be..8add56f0 100644 --- a/v11.1.0/versions.html +++ b/v11.1.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v11.1.0 - + @@ -603,7 +603,7 @@ - + diff --git a/v9.0.0/.buildinfo b/v9.0.0/.buildinfo index 125f9c9c..58dd43ae 100644 --- a/v9.0.0/.buildinfo +++ b/v9.0.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: 4eb2db997341898f6657a50fbf364b9d +config: 8da83d7b3c17bafadcb445b699714659 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.0.0/_static/basic.css b/v9.0.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.0.0/_static/basic.css +++ b/v9.0.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/v9.0.0/_static/doctools.js b/v9.0.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.0.0/_static/doctools.js +++ b/v9.0.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/v9.0.0/_static/language_data.js b/v9.0.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.0.0/_static/language_data.js +++ b/v9.0.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/v9.0.0/_static/searchtools.js b/v9.0.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.0.0/_static/searchtools.js +++ b/v9.0.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/v9.0.0/changelog.html b/v9.0.0/changelog.html index 4988d8ad..7f015818 100644 --- a/v9.0.0/changelog.html +++ b/v9.0.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.0.0 - + @@ -377,7 +377,7 @@
                                                                                                          -

                                                                                                          Changelog#

                                                                                                          +

                                                                                                          Changelog

                                                                                                          9.0.0 5th November 2022

                                                                                                          • [Breaking] #157: Rename project to pydis_core to allow for publishing to pypi.

                                                                                                          • @@ -641,7 +641,7 @@ - + diff --git a/v9.0.0/development.html b/v9.0.0/development.html index 211608f9..dac5e598 100644 --- a/v9.0.0/development.html +++ b/v9.0.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.0.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                - + diff --git a/v9.0.0/genindex.html b/v9.0.0/genindex.html index 663f8f1b..55744fe4 100644 --- a/v9.0.0/genindex.html +++ b/v9.0.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.0.0 + Index - Pydis Core v9.0.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.0.0/index.html b/v9.0.0/index.html index 934694b5..4c6f37d3 100644 --- a/v9.0.0/index.html +++ b/v9.0.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.0.0 - + @@ -377,10 +377,10 @@
                                                                                                                -

                                                                                                                Bot Core Project Documentation#

                                                                                                                +

                                                                                                                Bot Core Project Documentation

                                                                                                                -

                                                                                                                Reference#

                                                                                                                +

                                                                                                                Reference

                                                                                                                Modules:

                                                                                                                  @@ -435,7 +435,7 @@
                                                                                                                -

                                                                                                                Extras#

                                                                                                                +

                                                                                                                Extras

                                                                                                                • Index

                                                                                                                • Search Page

                                                                                                                • @@ -485,7 +485,7 @@ - + diff --git a/v9.0.0/index_redirect.html b/v9.0.0/index_redirect.html index 4d72bf8a..b666d91b 100644 --- a/v9.0.0/index_redirect.html +++ b/v9.0.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.0.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.0.0/output/pydis_core.async_stats.html b/v9.0.0/output/pydis_core.async_stats.html index d6932ff9..18934f1a 100644 --- a/v9.0.0/output/pydis_core.async_stats.html +++ b/v9.0.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.0.0 - + @@ -377,16 +377,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:
                                                                                                                  @@ -403,7 +403,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:
                                                                                                                  @@ -489,7 +489,7 @@ - + diff --git a/v9.0.0/output/pydis_core.exts.html b/v9.0.0/output/pydis_core.exts.html index 0e448e4a..e90c378e 100644 --- a/v9.0.0/output/pydis_core.exts.html +++ b/v9.0.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.0.0 - + @@ -377,7 +377,7 @@
                                                                                                                  -

                                                                                                                  Exts#

                                                                                                                  +

                                                                                                                  Exts

                                                                                                                  Reusable Discord cogs.

                                                                                                                  @@ -431,7 +431,7 @@ - + diff --git a/v9.0.0/output/pydis_core.html b/v9.0.0/output/pydis_core.html index 4ddcd560..ae42b104 100644 --- a/v9.0.0/output/pydis_core.html +++ b/v9.0.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.0.0 - + @@ -377,16 +377,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:
                                                                                                                  @@ -405,7 +405,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:
                                                                                                                  @@ -416,7 +416,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:
                                                                                                                  @@ -427,7 +427,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:
                                                                                                                  @@ -438,7 +438,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:
                                                                                                                  @@ -449,7 +449,7 @@ a dummy statsd client will be created.

                                                                                                                  -async load_extensions(module)[source]#
                                                                                                                  +async load_extensions(module)[source]

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

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

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

                                                                                                                  @@ -485,7 +485,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:
                                                                                                                  @@ -496,7 +496,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:
                                                                                                                  @@ -507,7 +507,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.

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

                                                                                                                  @@ -549,18 +549,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
                                                                                                                  • @@ -628,7 +628,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                  -

                                                                                                                  Submodules#

                                                                                                                  +

                                                                                                                  Submodules

                                                                                                                  • async_stats
                                                                                                                      @@ -754,7 +754,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                  - + diff --git a/v9.0.0/output/pydis_core.site_api.html b/v9.0.0/output/pydis_core.site_api.html index 8d7d944f..af0e47b1 100644 --- a/v9.0.0/output/pydis_core.site_api.html +++ b/v9.0.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.0.0 - + @@ -377,16 +377,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:
                                                                                                                  @@ -401,7 +401,7 @@
                                                                                                                  -async close()[source]#
                                                                                                                  +async close()[source]

                                                                                                                  Close the aiohttp session.

                                                                                                                  Return type:
                                                                                                                  @@ -412,7 +412,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:
                                                                                                                  @@ -433,7 +433,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:
                                                                                                                  @@ -444,7 +444,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:
                                                                                                                  @@ -464,7 +464,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:
                                                                                                                  @@ -475,7 +475,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:
                                                                                                                  @@ -486,7 +486,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:
                                                                                                                  @@ -497,7 +497,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:
                                                                                                                  @@ -524,12 +524,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:
                                                                                                                  @@ -544,7 +544,7 @@
                                                                                                                  -__str__()[source]#
                                                                                                                  +__str__()[source]

                                                                                                                  Return a string representation of the error.

                                                                                                                  @@ -637,7 +637,7 @@ - + diff --git a/v9.0.0/output/pydis_core.utils.caching.html b/v9.0.0/output/pydis_core.utils.caching.html index 262f2679..40318e81 100644 --- a/v9.0.0/output/pydis_core.utils.caching.html +++ b/v9.0.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.0.0 - + @@ -377,18 +377,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:
                                                                                                                  @@ -405,7 +405,7 @@
                                                                                                                  -__init__(max_size=128)[source]#
                                                                                                                  +__init__(max_size=128)[source]

                                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                                  Clear cache instance.

                                                                                                                  Return type:
                                                                                                                  @@ -503,7 +503,7 @@ - + diff --git a/v9.0.0/output/pydis_core.utils.channel.html b/v9.0.0/output/pydis_core.utils.channel.html index 267fd66d..0c39414d 100644 --- a/v9.0.0/output/pydis_core.utils.channel.html +++ b/v9.0.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.0.0 - + @@ -377,11 +377,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:
                                                                                                                  @@ -409,7 +409,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:
                                                                                                                  @@ -499,7 +499,7 @@ - + diff --git a/v9.0.0/output/pydis_core.utils.commands.html b/v9.0.0/output/pydis_core.utils.commands.html index d694f7f0..1f367f67 100644 --- a/v9.0.0/output/pydis_core.utils.commands.html +++ b/v9.0.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.0.0 - + @@ -377,10 +377,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:
                                                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v9.0.0/output/pydis_core.utils.cooldown.html b/v9.0.0/output/pydis_core.utils.cooldown.html index 8ad73fee..33bfc6b3 100644 --- a/v9.0.0/output/pydis_core.utils.cooldown.html +++ b/v9.0.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.0.0 - + @@ -377,21 +377,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:
                                                                                                                  @@ -407,20 +407,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:
                                                                                                                  @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.0.0/output/pydis_core.utils.function.html b/v9.0.0/output/pydis_core.utils.function.html index 44e6190b..6c6b45ed 100644 --- a/v9.0.0/output/pydis_core.utils.function.html +++ b/v9.0.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.0.0 - + @@ -377,18 +377,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.

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

                                                                                                                  - + diff --git a/v9.0.0/output/pydis_core.utils.html b/v9.0.0/output/pydis_core.utils.html index bf3c0cdd..d7bfd8e6 100644 --- a/v9.0.0/output/pydis_core.utils.html +++ b/v9.0.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.0.0 - + @@ -377,11 +377,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:
                                                                                                                  @@ -400,7 +400,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:
                                                                                                                  @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                  -

                                                                                                                  Submodules#

                                                                                                                  +

                                                                                                                  Submodules

                                                                                                                  • caching
                                                                                                                      @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                  - + diff --git a/v9.0.0/output/pydis_core.utils.interactions.html b/v9.0.0/output/pydis_core.utils.interactions.html index bf418ed0..dc87f6ed 100644 --- a/v9.0.0/output/pydis_core.utils.interactions.html +++ b/v9.0.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.0.0 - + @@ -377,10 +377,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.

                                                                                                                  @@ -395,12 +395,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:
                                                                                                                  @@ -413,7 +413,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.

                                                                                                                  @@ -430,12 +430,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:
                                                                                                                  @@ -449,7 +449,7 @@ If None
                                                                                                                  -async on_timeout()[source]#
                                                                                                                  +async on_timeout()[source]

                                                                                                                  Remove the view from self.message if set.

                                                                                                                  Return type:
                                                                                                                  @@ -541,7 +541,7 @@ If None - + diff --git a/v9.0.0/output/pydis_core.utils.logging.html b/v9.0.0/output/pydis_core.utils.logging.html index aeb263a5..fe0c2491 100644 --- a/v9.0.0/output/pydis_core.utils.logging.html +++ b/v9.0.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.0.0 - + @@ -377,16 +377,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)
                                                                                                                  @@ -410,7 +410,7 @@
                                                                                                                   
                                                                                                                   
                                                                                                                  -get_logger(name=None)[source]#
                                                                                                                  +get_logger(name=None)[source]

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

                                                                                                                  Parameters:
                                                                                                                  @@ -500,7 +500,7 @@
                                                                                                                  - + diff --git a/v9.0.0/output/pydis_core.utils.members.html b/v9.0.0/output/pydis_core.utils.members.html index 40dd124a..d2ba7bfe 100644 --- a/v9.0.0/output/pydis_core.utils.members.html +++ b/v9.0.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.0.0 - + @@ -377,11 +377,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:
                                                                                                                  @@ -395,7 +395,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.

                                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v9.0.0/output/pydis_core.utils.regex.html b/v9.0.0/output/pydis_core.utils.regex.html index 5c2aa6ee..9fff67d0 100644 --- a/v9.0.0/output/pydis_core.utils.regex.html +++ b/v9.0.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.0.0 - + @@ -377,11 +377,11 @@
                                                                                                                  -

                                                                                                                  regex#

                                                                                                                  +

                                                                                                                  regex

                                                                                                                  Common regular expressions.

                                                                                                                  -DISCORD_INVITE[source]#
                                                                                                                  +DISCORD_INVITE[source]

                                                                                                                  Regex for Discord server invites.

                                                                                                                  Warning

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

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

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

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

                                                                                                                  @@ -482,7 +482,7 @@ such as - + diff --git a/v9.0.0/output/pydis_core.utils.scheduling.html b/v9.0.0/output/pydis_core.utils.scheduling.html index 181ca5a0..3cd28bf6 100644 --- a/v9.0.0/output/pydis_core.utils.scheduling.html +++ b/v9.0.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.0.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                  @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                                  Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                  Changelog#

                                                                                                                  +

                                                                                                                  Changelog

                                                                                                                  9.1.1 14th November 2022

                                                                                                                  • [Bug] #162: Handle not being able to delete the interaction message on button press/timeout.

                                                                                                                  • @@ -651,7 +651,7 @@ - + diff --git a/v9.1.1/development.html b/v9.1.1/development.html index 7221d2f0..daf7de5d 100644 --- a/v9.1.1/development.html +++ b/v9.1.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.1.1 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                        @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                        - + diff --git a/v9.1.1/genindex.html b/v9.1.1/genindex.html index 10cc1d1f..9c15d7ce 100644 --- a/v9.1.1/genindex.html +++ b/v9.1.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.1.1 + Index - Pydis Core v9.1.1 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.1.1/index.html b/v9.1.1/index.html index 91e61311..1c90d47c 100644 --- a/v9.1.1/index.html +++ b/v9.1.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.1.1 - + @@ -377,10 +377,10 @@
                                                                                                                        -

                                                                                                                        Bot Core Project Documentation#

                                                                                                                        +

                                                                                                                        Bot Core Project Documentation

                                                                                                                        -

                                                                                                                        Reference#

                                                                                                                        +

                                                                                                                        Reference

                                                                                                                        Modules:

                                                                                                                          @@ -435,7 +435,7 @@
                                                                                                                        -

                                                                                                                        Extras#

                                                                                                                        +

                                                                                                                        Extras

                                                                                                                        • Index

                                                                                                                        • Search Page

                                                                                                                        • @@ -485,7 +485,7 @@ - + diff --git a/v9.1.1/index_redirect.html b/v9.1.1/index_redirect.html index 51ad9a72..2ab34b39 100644 --- a/v9.1.1/index_redirect.html +++ b/v9.1.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.1.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.1.1/output/pydis_core.async_stats.html b/v9.1.1/output/pydis_core.async_stats.html index 6c95edde..e7f33063 100644 --- a/v9.1.1/output/pydis_core.async_stats.html +++ b/v9.1.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.1.1 - + @@ -377,16 +377,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:
                                                                                                                          @@ -403,7 +403,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:
                                                                                                                          @@ -489,7 +489,7 @@ - + diff --git a/v9.1.1/output/pydis_core.exts.html b/v9.1.1/output/pydis_core.exts.html index 7f2cf913..8f783004 100644 --- a/v9.1.1/output/pydis_core.exts.html +++ b/v9.1.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.1.1 - + @@ -377,7 +377,7 @@
                                                                                                                          -

                                                                                                                          Exts#

                                                                                                                          +

                                                                                                                          Exts

                                                                                                                          Reusable Discord cogs.

                                                                                                                          @@ -431,7 +431,7 @@ - + diff --git a/v9.1.1/output/pydis_core.html b/v9.1.1/output/pydis_core.html index 521330aa..970e272a 100644 --- a/v9.1.1/output/pydis_core.html +++ b/v9.1.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.1.1 - + @@ -377,16 +377,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:
                                                                                                                          @@ -405,7 +405,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:
                                                                                                                          @@ -416,7 +416,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:
                                                                                                                          @@ -427,7 +427,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:
                                                                                                                          @@ -438,7 +438,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:
                                                                                                                          @@ -449,7 +449,7 @@ a dummy statsd client will be created.

                                                                                                                          -async load_extensions(module)[source]#
                                                                                                                          +async load_extensions(module)[source]

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

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

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

                                                                                                                          @@ -485,7 +485,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:
                                                                                                                          @@ -496,7 +496,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:
                                                                                                                          @@ -507,7 +507,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.

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

                                                                                                                          @@ -549,18 +549,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
                                                                                                                          • @@ -628,7 +628,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                          -

                                                                                                                          Submodules#

                                                                                                                          +

                                                                                                                          Submodules

                                                                                                                          • async_stats
                                                                                                                              @@ -754,7 +754,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                          - + diff --git a/v9.1.1/output/pydis_core.site_api.html b/v9.1.1/output/pydis_core.site_api.html index 52c85864..7e614817 100644 --- a/v9.1.1/output/pydis_core.site_api.html +++ b/v9.1.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.1.1 - + @@ -377,16 +377,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:
                                                                                                                          @@ -401,7 +401,7 @@
                                                                                                                          -async close()[source]#
                                                                                                                          +async close()[source]

                                                                                                                          Close the aiohttp session.

                                                                                                                          Return type:
                                                                                                                          @@ -412,7 +412,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:
                                                                                                                          @@ -433,7 +433,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:
                                                                                                                          @@ -444,7 +444,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:
                                                                                                                          @@ -464,7 +464,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:
                                                                                                                          @@ -475,7 +475,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:
                                                                                                                          @@ -486,7 +486,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:
                                                                                                                          @@ -497,7 +497,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:
                                                                                                                          @@ -524,12 +524,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:
                                                                                                                          @@ -544,7 +544,7 @@
                                                                                                                          -__str__()[source]#
                                                                                                                          +__str__()[source]

                                                                                                                          Return a string representation of the error.

                                                                                                                          @@ -637,7 +637,7 @@ - + diff --git a/v9.1.1/output/pydis_core.utils.caching.html b/v9.1.1/output/pydis_core.utils.caching.html index 0d20f65a..a958aeef 100644 --- a/v9.1.1/output/pydis_core.utils.caching.html +++ b/v9.1.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.1.1 - + @@ -377,18 +377,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:
                                                                                                                          @@ -405,7 +405,7 @@
                                                                                                                          -__init__(max_size=128)[source]#
                                                                                                                          +__init__(max_size=128)[source]

                                                                                                                          Initialise a new AsyncCache instance.

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

                                                                                                                          Clear cache instance.

                                                                                                                          Return type:
                                                                                                                          @@ -503,7 +503,7 @@ - + diff --git a/v9.1.1/output/pydis_core.utils.channel.html b/v9.1.1/output/pydis_core.utils.channel.html index a343c1d0..b2e242fb 100644 --- a/v9.1.1/output/pydis_core.utils.channel.html +++ b/v9.1.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.1.1 - + @@ -377,11 +377,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:
                                                                                                                          @@ -409,7 +409,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:
                                                                                                                          @@ -499,7 +499,7 @@ - + diff --git a/v9.1.1/output/pydis_core.utils.commands.html b/v9.1.1/output/pydis_core.utils.commands.html index 24e9921e..ea85c657 100644 --- a/v9.1.1/output/pydis_core.utils.commands.html +++ b/v9.1.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.1.1 - + @@ -377,10 +377,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:
                                                                                                                          @@ -472,7 +472,7 @@ - + diff --git a/v9.1.1/output/pydis_core.utils.cooldown.html b/v9.1.1/output/pydis_core.utils.cooldown.html index 3b6a02ee..069ec3c7 100644 --- a/v9.1.1/output/pydis_core.utils.cooldown.html +++ b/v9.1.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.1.1 - + @@ -377,21 +377,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:
                                                                                                                          @@ -407,20 +407,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:
                                                                                                                          @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.1.1/output/pydis_core.utils.function.html b/v9.1.1/output/pydis_core.utils.function.html index 3021e6fd..8c29adf8 100644 --- a/v9.1.1/output/pydis_core.utils.function.html +++ b/v9.1.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.1.1 - + @@ -377,18 +377,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.

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

                                                                                                                          - + diff --git a/v9.1.1/output/pydis_core.utils.html b/v9.1.1/output/pydis_core.utils.html index 971cb9d3..e3f49957 100644 --- a/v9.1.1/output/pydis_core.utils.html +++ b/v9.1.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.1.1 - + @@ -377,11 +377,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:
                                                                                                                          @@ -400,7 +400,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:
                                                                                                                          @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                          -

                                                                                                                          Submodules#

                                                                                                                          +

                                                                                                                          Submodules

                                                                                                                          • caching
                                                                                                                              @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                          - + diff --git a/v9.1.1/output/pydis_core.utils.interactions.html b/v9.1.1/output/pydis_core.utils.interactions.html index ecead376..b7d4d918 100644 --- a/v9.1.1/output/pydis_core.utils.interactions.html +++ b/v9.1.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.1.1 - + @@ -377,10 +377,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.

                                                                                                                          @@ -395,12 +395,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:
                                                                                                                          @@ -413,7 +413,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.

                                                                                                                          @@ -430,12 +430,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:
                                                                                                                          @@ -449,7 +449,7 @@ If None
                                                                                                                          -async on_timeout()[source]#
                                                                                                                          +async on_timeout()[source]

                                                                                                                          Remove the view from self.message if set.

                                                                                                                          Return type:
                                                                                                                          @@ -541,7 +541,7 @@ If None - + diff --git a/v9.1.1/output/pydis_core.utils.logging.html b/v9.1.1/output/pydis_core.utils.logging.html index b706363c..6b8bb467 100644 --- a/v9.1.1/output/pydis_core.utils.logging.html +++ b/v9.1.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.1.1 - + @@ -377,16 +377,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)
                                                                                                                          @@ -410,7 +410,7 @@
                                                                                                                           
                                                                                                                           
                                                                                                                          -get_logger(name=None)[source]#
                                                                                                                          +get_logger(name=None)[source]

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

                                                                                                                          Parameters:
                                                                                                                          @@ -500,7 +500,7 @@
                                                                                                                          - + diff --git a/v9.1.1/output/pydis_core.utils.members.html b/v9.1.1/output/pydis_core.utils.members.html index b941f7a4..791c6a23 100644 --- a/v9.1.1/output/pydis_core.utils.members.html +++ b/v9.1.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.1.1 - + @@ -377,11 +377,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:
                                                                                                                          @@ -395,7 +395,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.

                                                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v9.1.1/output/pydis_core.utils.regex.html b/v9.1.1/output/pydis_core.utils.regex.html index 6ff13eb2..0d224d3e 100644 --- a/v9.1.1/output/pydis_core.utils.regex.html +++ b/v9.1.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.1.1 - + @@ -377,11 +377,11 @@
                                                                                                                          -

                                                                                                                          regex#

                                                                                                                          +

                                                                                                                          regex

                                                                                                                          Common regular expressions.

                                                                                                                          -DISCORD_INVITE[source]#
                                                                                                                          +DISCORD_INVITE[source]

                                                                                                                          Regex for Discord server invites.

                                                                                                                          Warning

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

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

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

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

                                                                                                                          @@ -482,7 +482,7 @@ such as - + diff --git a/v9.1.1/output/pydis_core.utils.scheduling.html b/v9.1.1/output/pydis_core.utils.scheduling.html index 0c87d74c..6a8b0107 100644 --- a/v9.1.1/output/pydis_core.utils.scheduling.html +++ b/v9.1.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.1.1 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                          @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                                                          Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                          Changelog#

                                                                                                                          +

                                                                                                                          Changelog

                                                                                                                          9.9.2 2nd July 2023

                                                                                                                          • [Bug] #185: Update expiry label from 1 month to 30 days in paste service.

                                                                                                                          • @@ -723,7 +723,7 @@ - + diff --git a/v9.10.0-alpha.1/development.html b/v9.10.0-alpha.1/development.html index 26b404d6..e17ab335 100644 --- a/v9.10.0-alpha.1/development.html +++ b/v9.10.0-alpha.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/genindex.html b/v9.10.0-alpha.1/genindex.html index 0716eaa5..17a52b2c 100644 --- a/v9.10.0-alpha.1/genindex.html +++ b/v9.10.0-alpha.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.10.0-alpha.1 + Index - Pydis Core v9.10.0-alpha.1 - + @@ -919,7 +919,7 @@ - + diff --git a/v9.10.0-alpha.1/index.html b/v9.10.0-alpha.1/index.html index bb8bdf0e..3d65f2d0 100644 --- a/v9.10.0-alpha.1/index.html +++ b/v9.10.0-alpha.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.10.0-alpha.1 - + @@ -379,10 +379,10 @@
                                                                                                                                -

                                                                                                                                Bot Core Project Documentation#

                                                                                                                                +

                                                                                                                                Bot Core Project Documentation

                                                                                                                                -

                                                                                                                                Reference#

                                                                                                                                +

                                                                                                                                Reference

                                                                                                                                Modules:

                                                                                                                                  @@ -437,7 +437,7 @@
                                                                                                                                -

                                                                                                                                Extras#

                                                                                                                                +

                                                                                                                                Extras

                                                                                                                                • Index

                                                                                                                                • Search Page

                                                                                                                                • @@ -487,7 +487,7 @@ - + diff --git a/v9.10.0-alpha.1/index_redirect.html b/v9.10.0-alpha.1/index_redirect.html index 1e636552..c8d134e7 100644 --- a/v9.10.0-alpha.1/index_redirect.html +++ b/v9.10.0-alpha.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.10.0-alpha.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.10.0-alpha.1/output/pydis_core.async_stats.html b/v9.10.0-alpha.1/output/pydis_core.async_stats.html index 58aa90a3..1291b5a9 100644 --- a/v9.10.0-alpha.1/output/pydis_core.async_stats.html +++ b/v9.10.0-alpha.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.exts.html b/v9.10.0-alpha.1/output/pydis_core.exts.html index 7d36ed77..08213dc2 100644 --- a/v9.10.0-alpha.1/output/pydis_core.exts.html +++ b/v9.10.0-alpha.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.10.0-alpha.1 - + @@ -379,7 +379,7 @@
                                                                                                                                  -

                                                                                                                                  Exts#

                                                                                                                                  +

                                                                                                                                  Exts

                                                                                                                                  Reusable Discord cogs.

                                                                                                                                  @@ -433,7 +433,7 @@ - + diff --git a/v9.10.0-alpha.1/output/pydis_core.html b/v9.10.0-alpha.1/output/pydis_core.html index ea2290e7..4bb68777 100644 --- a/v9.10.0-alpha.1/output/pydis_core.html +++ b/v9.10.0-alpha.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.10.0-alpha.1 - + @@ -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
                                                                                                                                  -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.

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

                                                                                                                                  @@ -553,18 +553,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
                                                                                                                                  • @@ -645,7 +645,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                  -

                                                                                                                                  Submodules#

                                                                                                                                  +

                                                                                                                                  Submodules

                                                                                                                                  • async_stats
                                                                                                                                      @@ -771,7 +771,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                  - + diff --git a/v9.10.0-alpha.1/output/pydis_core.site_api.html b/v9.10.0-alpha.1/output/pydis_core.site_api.html index 58ef344f..8bddc92a 100644 --- a/v9.10.0-alpha.1/output/pydis_core.site_api.html +++ b/v9.10.0-alpha.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.caching.html b/v9.10.0-alpha.1/output/pydis_core.utils.caching.html index db953ff1..d3128479 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.caching.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.channel.html b/v9.10.0-alpha.1/output/pydis_core.utils.channel.html index 43bba0da..da0bd455 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.channel.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.commands.html b/v9.10.0-alpha.1/output/pydis_core.utils.commands.html index e43b3227..9f6efe92 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.commands.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.cooldown.html b/v9.10.0-alpha.1/output/pydis_core.utils.cooldown.html index f0fcb724..3732af2c 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.cooldown.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.error_handling.html b/v9.10.0-alpha.1/output/pydis_core.utils.error_handling.html index cf7a3ab5..363dcc66 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.error_handling.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.function.html b/v9.10.0-alpha.1/output/pydis_core.utils.function.html index 1405cd9f..9c5ca5d6 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.function.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.html b/v9.10.0-alpha.1/output/pydis_core.utils.html index f787c767..b5643b80 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.10.0-alpha.1 - + @@ -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
                                                                                                                                      @@ -592,7 +592,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                  - + diff --git a/v9.10.0-alpha.1/output/pydis_core.utils.interactions.html b/v9.10.0-alpha.1/output/pydis_core.utils.interactions.html index be4ea98f..ad1f1f39 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.interactions.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.10.0-alpha.1 - + @@ -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:
                                                                                                                                  @@ -543,7 +543,7 @@ If None - + diff --git a/v9.10.0-alpha.1/output/pydis_core.utils.logging.html b/v9.10.0-alpha.1/output/pydis_core.utils.logging.html index e93b8c6f..9f9b51c3 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.logging.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.members.html b/v9.10.0-alpha.1/output/pydis_core.utils.members.html index 07d9c824..dd5f56de 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.members.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.paste_service.html b/v9.10.0-alpha.1/output/pydis_core.utils.paste_service.html index 43583516..554b4382 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.paste_service.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.10.0-alpha.1 - + @@ -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 PasteResponse[source]#
                                                                                                                                  +class PasteResponse[source]

                                                                                                                                  Bases: TypedDict

                                                                                                                                  A successful response from the paste service.

                                                                                                                                  @@ -403,28 +403,28 @@
                                                                                                                                  -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(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
                                                                                                                                  +async send_to_paste_service(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]

                                                                                                                                  Upload some contents to the paste service.

                                                                                                                                  Parameters:
                                                                                                                                  @@ -529,7 +529,7 @@ - + diff --git a/v9.10.0-alpha.1/output/pydis_core.utils.regex.html b/v9.10.0-alpha.1/output/pydis_core.utils.regex.html index bc85ae14..a3022088 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.regex.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/output/pydis_core.utils.scheduling.html b/v9.10.0-alpha.1/output/pydis_core.utils.scheduling.html index 0dfbbef1..d1208b34 100644 --- a/v9.10.0-alpha.1/output/pydis_core.utils.scheduling.html +++ b/v9.10.0-alpha.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.10.0-alpha.1 - + @@ -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/v9.10.0-alpha.1/py-modindex.html b/v9.10.0-alpha.1/py-modindex.html index 40e820de..886d72d3 100644 --- a/v9.10.0-alpha.1/py-modindex.html +++ b/v9.10.0-alpha.1/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.10.0-alpha.1 + Python Module Index - Pydis Core v9.10.0-alpha.1 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.10.0-alpha.1/search.html b/v9.10.0-alpha.1/search.html index ae7229af..146ef646 100644 --- a/v9.10.0-alpha.1/search.html +++ b/v9.10.0-alpha.1/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.10.0-alpha.1 + Search - Pydis Core v9.10.0-alpha.1 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.10.0-alpha.1/searchindex.js b/v9.10.0-alpha.1/searchindex.js index f96b457f..33c0f85a 100644 --- a/v9.10.0-alpha.1/searchindex.js +++ b/v9.10.0-alpha.1/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": {"9": 0, "2": [0, 3, 14], "2nd": 0, "juli": 0, "2023": 0, "bug": 0, "185": 0, "updat": [0, 13], "expiri": 0, "label": [0, 14], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "1": [0, 15], "month": 0, "30": 0, "dai": 0, "past": [0, 17, 19], "servic": [0, 1, 3, 17], "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "0": [0, 8, 14, 15], "18th": 0, "featur": [0, 1, 3], "182": 0, "add": [0, 3, 11], "support": [0, 4, 7, 19], "lexer": [0, 17], "valid": 0, "default": [0, 1], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "3": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "march": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "septemb": 0, "138": 0, "august": 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, "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "actual": 0, "now": [0, 1, 19], "25th": 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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "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, "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, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "file_nam": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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": {"Exts": [[5, "module-pydis_core.exts"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "site_api": [[6, "module-pydis_core.site_api"]], "members": [[16, "module-pydis_core.utils.members"]], "regex": [[18, "module-pydis_core.utils.regex"]], "logging": [[15, "module-pydis_core.utils.logging"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "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"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "function": [[13, "module-pydis_core.utils.function"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "commands": [[10, "module-pydis_core.utils.commands"]], "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"]], "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"]], "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"]], "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"]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "185": 0, "18th": 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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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, "configur": 1, "conflict": 13, "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], "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, "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1], "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, "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": [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": [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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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": [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": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "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, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pastebin": 0, "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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "push": 0, "put": [3, 6], "py": [0, 13], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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": [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, "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/v9.10.0-alpha.1/versions.html b/v9.10.0-alpha.1/versions.html index ef927ad3..5509a6fd 100644 --- a/v9.10.0-alpha.1/versions.html +++ b/v9.10.0-alpha.1/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.10.0-alpha.1 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.10.0-alpha.2/.buildinfo b/v9.10.0-alpha.2/.buildinfo index a4e85be4..ad47e9d4 100644 --- a/v9.10.0-alpha.2/.buildinfo +++ b/v9.10.0-alpha.2/.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: 11ac370bb150389069da7960a9abf02b +config: c6d769606ade2b38e3dc5853d4c78882 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.10.0-alpha.2/_static/basic.css b/v9.10.0-alpha.2/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.10.0-alpha.2/_static/basic.css +++ b/v9.10.0-alpha.2/_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/v9.10.0-alpha.2/_static/doctools.js b/v9.10.0-alpha.2/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.10.0-alpha.2/_static/doctools.js +++ b/v9.10.0-alpha.2/_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/v9.10.0-alpha.2/_static/language_data.js b/v9.10.0-alpha.2/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.10.0-alpha.2/_static/language_data.js +++ b/v9.10.0-alpha.2/_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/v9.10.0-alpha.2/_static/searchtools.js b/v9.10.0-alpha.2/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.10.0-alpha.2/_static/searchtools.js +++ b/v9.10.0-alpha.2/_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/v9.10.0-alpha.2/changelog.html b/v9.10.0-alpha.2/changelog.html index 5c0549e0..e05b9331 100644 --- a/v9.10.0-alpha.2/changelog.html +++ b/v9.10.0-alpha.2/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.10.0-alpha.2 - + @@ -379,7 +379,7 @@
                                                                                                                                  -

                                                                                                                                  Changelog#

                                                                                                                                  +

                                                                                                                                  Changelog

                                                                                                                                  9.9.2 2nd July 2023

                                                                                                                                  • [Bug] #185: Update expiry label from 1 month to 30 days in paste service.

                                                                                                                                  • @@ -723,7 +723,7 @@ - + diff --git a/v9.10.0-alpha.2/development.html b/v9.10.0-alpha.2/development.html index 58a908e9..6633b33f 100644 --- a/v9.10.0-alpha.2/development.html +++ b/v9.10.0-alpha.2/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/genindex.html b/v9.10.0-alpha.2/genindex.html index b7c669f8..2353125b 100644 --- a/v9.10.0-alpha.2/genindex.html +++ b/v9.10.0-alpha.2/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.10.0-alpha.2 + Index - Pydis Core v9.10.0-alpha.2 - + @@ -919,7 +919,7 @@ - + diff --git a/v9.10.0-alpha.2/index.html b/v9.10.0-alpha.2/index.html index d7262fb9..91c8674c 100644 --- a/v9.10.0-alpha.2/index.html +++ b/v9.10.0-alpha.2/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.10.0-alpha.2 - + @@ -379,10 +379,10 @@
                                                                                                                                        -

                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                        +

                                                                                                                                        Bot Core Project Documentation

                                                                                                                                        -

                                                                                                                                        Reference#

                                                                                                                                        +

                                                                                                                                        Reference

                                                                                                                                        Modules:

                                                                                                                                          @@ -437,7 +437,7 @@
                                                                                                                                        -

                                                                                                                                        Extras#

                                                                                                                                        +

                                                                                                                                        Extras

                                                                                                                                        • Index

                                                                                                                                        • Search Page

                                                                                                                                        • @@ -487,7 +487,7 @@ - + diff --git a/v9.10.0-alpha.2/index_redirect.html b/v9.10.0-alpha.2/index_redirect.html index 991b8cb7..e89bc86c 100644 --- a/v9.10.0-alpha.2/index_redirect.html +++ b/v9.10.0-alpha.2/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.10.0-alpha.2 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.10.0-alpha.2/output/pydis_core.async_stats.html b/v9.10.0-alpha.2/output/pydis_core.async_stats.html index 8c40f02f..f292ed9a 100644 --- a/v9.10.0-alpha.2/output/pydis_core.async_stats.html +++ b/v9.10.0-alpha.2/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.exts.html b/v9.10.0-alpha.2/output/pydis_core.exts.html index 5c509248..ea20ab98 100644 --- a/v9.10.0-alpha.2/output/pydis_core.exts.html +++ b/v9.10.0-alpha.2/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.10.0-alpha.2 - + @@ -379,7 +379,7 @@
                                                                                                                                          -

                                                                                                                                          Exts#

                                                                                                                                          +

                                                                                                                                          Exts

                                                                                                                                          Reusable Discord cogs.

                                                                                                                                          @@ -433,7 +433,7 @@ - + diff --git a/v9.10.0-alpha.2/output/pydis_core.html b/v9.10.0-alpha.2/output/pydis_core.html index 455be862..56b692db 100644 --- a/v9.10.0-alpha.2/output/pydis_core.html +++ b/v9.10.0-alpha.2/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.10.0-alpha.2 - + @@ -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
                                                                                                                                          -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.

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

                                                                                                                                          @@ -553,18 +553,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
                                                                                                                                          • @@ -645,7 +645,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                          -

                                                                                                                                          Submodules#

                                                                                                                                          +

                                                                                                                                          Submodules

                                                                                                                                          • async_stats
                                                                                                                                              @@ -771,7 +771,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                          - + diff --git a/v9.10.0-alpha.2/output/pydis_core.site_api.html b/v9.10.0-alpha.2/output/pydis_core.site_api.html index 170398c6..17293684 100644 --- a/v9.10.0-alpha.2/output/pydis_core.site_api.html +++ b/v9.10.0-alpha.2/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.caching.html b/v9.10.0-alpha.2/output/pydis_core.utils.caching.html index aea7882b..1510b9ad 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.caching.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.channel.html b/v9.10.0-alpha.2/output/pydis_core.utils.channel.html index 3a1e7d9e..6f4c914c 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.channel.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.commands.html b/v9.10.0-alpha.2/output/pydis_core.utils.commands.html index 90889b36..ef20154e 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.commands.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.cooldown.html b/v9.10.0-alpha.2/output/pydis_core.utils.cooldown.html index a4ed512d..4b93ca6c 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.cooldown.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.error_handling.html b/v9.10.0-alpha.2/output/pydis_core.utils.error_handling.html index 3b8c5160..9d614d79 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.error_handling.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.function.html b/v9.10.0-alpha.2/output/pydis_core.utils.function.html index 48bb99c8..49c7237c 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.function.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.html b/v9.10.0-alpha.2/output/pydis_core.utils.html index 472cb763..3192082d 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.10.0-alpha.2 - + @@ -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
                                                                                                                                              @@ -592,7 +592,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                          - + diff --git a/v9.10.0-alpha.2/output/pydis_core.utils.interactions.html b/v9.10.0-alpha.2/output/pydis_core.utils.interactions.html index 5cdf7f3b..dcf61e0e 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.interactions.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.10.0-alpha.2 - + @@ -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:
                                                                                                                                          @@ -543,7 +543,7 @@ If None - + diff --git a/v9.10.0-alpha.2/output/pydis_core.utils.logging.html b/v9.10.0-alpha.2/output/pydis_core.utils.logging.html index a913acd2..50e1a058 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.logging.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.members.html b/v9.10.0-alpha.2/output/pydis_core.utils.members.html index 2d3e71b3..8aeaad90 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.members.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.paste_service.html b/v9.10.0-alpha.2/output/pydis_core.utils.paste_service.html index 8e266a02..b932e37d 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.paste_service.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.10.0-alpha.2 - + @@ -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 PasteResponse[source]#
                                                                                                                                          +class PasteResponse[source]

                                                                                                                                          Bases: TypedDict

                                                                                                                                          A successful response from the paste service.

                                                                                                                                          @@ -403,28 +403,28 @@
                                                                                                                                          -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(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
                                                                                                                                          +async send_to_paste_service(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]

                                                                                                                                          Upload some contents to the paste service.

                                                                                                                                          Parameters:
                                                                                                                                          @@ -529,7 +529,7 @@ - + diff --git a/v9.10.0-alpha.2/output/pydis_core.utils.regex.html b/v9.10.0-alpha.2/output/pydis_core.utils.regex.html index 3a9cb161..ecbf0f4c 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.regex.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/output/pydis_core.utils.scheduling.html b/v9.10.0-alpha.2/output/pydis_core.utils.scheduling.html index 9c78b089..f0472a11 100644 --- a/v9.10.0-alpha.2/output/pydis_core.utils.scheduling.html +++ b/v9.10.0-alpha.2/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.10.0-alpha.2 - + @@ -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/v9.10.0-alpha.2/py-modindex.html b/v9.10.0-alpha.2/py-modindex.html index 7fcab6da..0bdf7db2 100644 --- a/v9.10.0-alpha.2/py-modindex.html +++ b/v9.10.0-alpha.2/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.10.0-alpha.2 + Python Module Index - Pydis Core v9.10.0-alpha.2 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.10.0-alpha.2/search.html b/v9.10.0-alpha.2/search.html index e328b3a0..35c2454a 100644 --- a/v9.10.0-alpha.2/search.html +++ b/v9.10.0-alpha.2/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.10.0-alpha.2 + Search - Pydis Core v9.10.0-alpha.2 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.10.0-alpha.2/searchindex.js b/v9.10.0-alpha.2/searchindex.js index 3897941b..33c0f85a 100644 --- a/v9.10.0-alpha.2/searchindex.js +++ b/v9.10.0-alpha.2/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": {"9": 0, "2": [0, 3, 14], "2nd": 0, "juli": 0, "2023": 0, "bug": 0, "185": 0, "updat": [0, 13], "expiri": 0, "label": [0, 14], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "1": [0, 15], "month": 0, "30": 0, "dai": 0, "past": [0, 17, 19], "servic": [0, 1, 3, 17], "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "0": [0, 8, 14, 15], "18th": 0, "featur": [0, 1, 3], "182": 0, "add": [0, 3, 11], "support": [0, 4, 7, 19], "lexer": [0, 17], "valid": 0, "default": [0, 1], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "3": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "march": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "septemb": 0, "138": 0, "august": 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, "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "actual": 0, "now": [0, 1, 19], "25th": 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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "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, "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, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "file_nam": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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": {"site_api": [[6, "module-pydis_core.site_api"]], "Exts": [[5, "module-pydis_core.exts"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "channel": [[9, "module-pydis_core.utils.channel"]], "caching": [[8, "module-pydis_core.utils.caching"]], "members": [[16, "module-pydis_core.utils.members"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "function": [[13, "module-pydis_core.utils.function"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "commands": [[10, "module-pydis_core.utils.commands"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]]}, "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"]], "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"]], "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"]], "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"]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "185": 0, "18th": 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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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, "configur": 1, "conflict": 13, "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], "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, "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1], "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, "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": [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": [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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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": [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": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "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, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pastebin": 0, "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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "push": 0, "put": [3, 6], "py": [0, 13], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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": [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, "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/v9.10.0-alpha.2/versions.html b/v9.10.0-alpha.2/versions.html index 77a71b22..165261fe 100644 --- a/v9.10.0-alpha.2/versions.html +++ b/v9.10.0-alpha.2/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.10.0-alpha.2 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.2.0/.buildinfo b/v9.2.0/.buildinfo index 576638d3..df832814 100644 --- a/v9.2.0/.buildinfo +++ b/v9.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: 90507bd18f595c7be20abdabdcc51b2d +config: 134cf5c5f022b6e88a1d4ca2f53aa0a5 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.2.0/_static/basic.css b/v9.2.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.2.0/_static/basic.css +++ b/v9.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/v9.2.0/_static/doctools.js b/v9.2.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.2.0/_static/doctools.js +++ b/v9.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/v9.2.0/_static/language_data.js b/v9.2.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.2.0/_static/language_data.js +++ b/v9.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/v9.2.0/_static/searchtools.js b/v9.2.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.2.0/_static/searchtools.js +++ b/v9.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/v9.2.0/changelog.html b/v9.2.0/changelog.html index 33d4c0de..3007004b 100644 --- a/v9.2.0/changelog.html +++ b/v9.2.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.2.0 - + @@ -377,7 +377,7 @@
                                                                                                                                          -

                                                                                                                                          Changelog#

                                                                                                                                          +

                                                                                                                                          Changelog

                                                                                                                                          9.2.0 17th November 2022

                                                                                                                                          • [Support] #151: Add support for Python 3.11

                                                                                                                                          • @@ -657,7 +657,7 @@ - + diff --git a/v9.2.0/development.html b/v9.2.0/development.html index 9fc386ca..e17630be 100644 --- a/v9.2.0/development.html +++ b/v9.2.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.2.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                - + diff --git a/v9.2.0/genindex.html b/v9.2.0/genindex.html index e2898a18..261649a4 100644 --- a/v9.2.0/genindex.html +++ b/v9.2.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.2.0 + Index - Pydis Core v9.2.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.2.0/index.html b/v9.2.0/index.html index 3bef0604..f8f6826e 100644 --- a/v9.2.0/index.html +++ b/v9.2.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.2.0 - + @@ -377,10 +377,10 @@
                                                                                                                                                -

                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                +

                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                -

                                                                                                                                                Reference#

                                                                                                                                                +

                                                                                                                                                Reference

                                                                                                                                                Modules:

                                                                                                                                                  @@ -435,7 +435,7 @@
                                                                                                                                                -

                                                                                                                                                Extras#

                                                                                                                                                +

                                                                                                                                                Extras

                                                                                                                                                • Index

                                                                                                                                                • Search Page

                                                                                                                                                • @@ -485,7 +485,7 @@ - + diff --git a/v9.2.0/index_redirect.html b/v9.2.0/index_redirect.html index f30274e7..f4f8f118 100644 --- a/v9.2.0/index_redirect.html +++ b/v9.2.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.2.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.2.0/output/pydis_core.async_stats.html b/v9.2.0/output/pydis_core.async_stats.html index 9fc4cdf7..fceffb89 100644 --- a/v9.2.0/output/pydis_core.async_stats.html +++ b/v9.2.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.2.0 - + @@ -377,16 +377,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:
                                                                                                                                                  @@ -403,7 +403,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:
                                                                                                                                                  @@ -489,7 +489,7 @@ - + diff --git a/v9.2.0/output/pydis_core.exts.html b/v9.2.0/output/pydis_core.exts.html index c6dd9c46..86fdb7ae 100644 --- a/v9.2.0/output/pydis_core.exts.html +++ b/v9.2.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.2.0 - + @@ -377,7 +377,7 @@
                                                                                                                                                  -

                                                                                                                                                  Exts#

                                                                                                                                                  +

                                                                                                                                                  Exts

                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                  @@ -431,7 +431,7 @@ - + diff --git a/v9.2.0/output/pydis_core.html b/v9.2.0/output/pydis_core.html index 1b2dc98f..fd1c86c2 100644 --- a/v9.2.0/output/pydis_core.html +++ b/v9.2.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.2.0 - + @@ -377,16 +377,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:
                                                                                                                                                  @@ -405,7 +405,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:
                                                                                                                                                  @@ -416,7 +416,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:
                                                                                                                                                  @@ -427,7 +427,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:
                                                                                                                                                  @@ -438,7 +438,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:
                                                                                                                                                  @@ -449,7 +449,7 @@ a dummy statsd client will be created.

                                                                                                                                                  -async load_extensions(module)[source]#
                                                                                                                                                  +async load_extensions(module)[source]

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

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

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

                                                                                                                                                  @@ -485,7 +485,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:
                                                                                                                                                  @@ -496,7 +496,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:
                                                                                                                                                  @@ -507,7 +507,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.

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

                                                                                                                                                  @@ -549,18 +549,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
                                                                                                                                                  • @@ -628,7 +628,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                  -

                                                                                                                                                  Submodules#

                                                                                                                                                  +

                                                                                                                                                  Submodules

                                                                                                                                                  • async_stats
                                                                                                                                                      @@ -754,7 +754,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                  - + diff --git a/v9.2.0/output/pydis_core.site_api.html b/v9.2.0/output/pydis_core.site_api.html index c017f8ed..d3ef094f 100644 --- a/v9.2.0/output/pydis_core.site_api.html +++ b/v9.2.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.2.0 - + @@ -377,16 +377,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:
                                                                                                                                                  @@ -401,7 +401,7 @@
                                                                                                                                                  -async close()[source]#
                                                                                                                                                  +async close()[source]

                                                                                                                                                  Close the aiohttp session.

                                                                                                                                                  Return type:
                                                                                                                                                  @@ -412,7 +412,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:
                                                                                                                                                  @@ -433,7 +433,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:
                                                                                                                                                  @@ -444,7 +444,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:
                                                                                                                                                  @@ -464,7 +464,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:
                                                                                                                                                  @@ -475,7 +475,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:
                                                                                                                                                  @@ -486,7 +486,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:
                                                                                                                                                  @@ -497,7 +497,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:
                                                                                                                                                  @@ -524,12 +524,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:
                                                                                                                                                  @@ -544,7 +544,7 @@
                                                                                                                                                  -__str__()[source]#
                                                                                                                                                  +__str__()[source]

                                                                                                                                                  Return a string representation of the error.

                                                                                                                                                  @@ -637,7 +637,7 @@ - + diff --git a/v9.2.0/output/pydis_core.utils.caching.html b/v9.2.0/output/pydis_core.utils.caching.html index 512b59a0..6b6e9ecd 100644 --- a/v9.2.0/output/pydis_core.utils.caching.html +++ b/v9.2.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.2.0 - + @@ -377,18 +377,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:
                                                                                                                                                  @@ -405,7 +405,7 @@
                                                                                                                                                  -__init__(max_size=128)[source]#
                                                                                                                                                  +__init__(max_size=128)[source]

                                                                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                                                                  Clear cache instance.

                                                                                                                                                  Return type:
                                                                                                                                                  @@ -503,7 +503,7 @@ - + diff --git a/v9.2.0/output/pydis_core.utils.channel.html b/v9.2.0/output/pydis_core.utils.channel.html index 1a9b378a..e97fe26c 100644 --- a/v9.2.0/output/pydis_core.utils.channel.html +++ b/v9.2.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.2.0 - + @@ -377,11 +377,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:
                                                                                                                                                  @@ -409,7 +409,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:
                                                                                                                                                  @@ -499,7 +499,7 @@ - + diff --git a/v9.2.0/output/pydis_core.utils.commands.html b/v9.2.0/output/pydis_core.utils.commands.html index 8e82c49f..2d687e00 100644 --- a/v9.2.0/output/pydis_core.utils.commands.html +++ b/v9.2.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.2.0 - + @@ -377,10 +377,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:
                                                                                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v9.2.0/output/pydis_core.utils.cooldown.html b/v9.2.0/output/pydis_core.utils.cooldown.html index dcbd78c4..3cdea879 100644 --- a/v9.2.0/output/pydis_core.utils.cooldown.html +++ b/v9.2.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.2.0 - + @@ -377,21 +377,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:
                                                                                                                                                  @@ -407,20 +407,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:
                                                                                                                                                  @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.2.0/output/pydis_core.utils.function.html b/v9.2.0/output/pydis_core.utils.function.html index 39dc8dd0..9e590769 100644 --- a/v9.2.0/output/pydis_core.utils.function.html +++ b/v9.2.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.2.0 - + @@ -377,18 +377,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.

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

                                                                                                                                                  - + diff --git a/v9.2.0/output/pydis_core.utils.html b/v9.2.0/output/pydis_core.utils.html index d0d307e9..df03809c 100644 --- a/v9.2.0/output/pydis_core.utils.html +++ b/v9.2.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.2.0 - + @@ -377,11 +377,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:
                                                                                                                                                  @@ -400,7 +400,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:
                                                                                                                                                  @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                  -

                                                                                                                                                  Submodules#

                                                                                                                                                  +

                                                                                                                                                  Submodules

                                                                                                                                                  • caching
                                                                                                                                                      @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                  - + diff --git a/v9.2.0/output/pydis_core.utils.interactions.html b/v9.2.0/output/pydis_core.utils.interactions.html index 9a64f928..14a65e17 100644 --- a/v9.2.0/output/pydis_core.utils.interactions.html +++ b/v9.2.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.2.0 - + @@ -377,10 +377,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.

                                                                                                                                                  @@ -395,12 +395,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:
                                                                                                                                                  @@ -413,7 +413,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.

                                                                                                                                                  @@ -430,12 +430,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:
                                                                                                                                                  @@ -449,7 +449,7 @@ If None
                                                                                                                                                  -async on_timeout()[source]#
                                                                                                                                                  +async on_timeout()[source]

                                                                                                                                                  Remove the view from self.message if set.

                                                                                                                                                  Return type:
                                                                                                                                                  @@ -541,7 +541,7 @@ If None - + diff --git a/v9.2.0/output/pydis_core.utils.logging.html b/v9.2.0/output/pydis_core.utils.logging.html index 716e98f9..d86aadfd 100644 --- a/v9.2.0/output/pydis_core.utils.logging.html +++ b/v9.2.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.2.0 - + @@ -377,16 +377,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)
                                                                                                                                                  @@ -410,7 +410,7 @@
                                                                                                                                                   
                                                                                                                                                   
                                                                                                                                                  -get_logger(name=None)[source]#
                                                                                                                                                  +get_logger(name=None)[source]

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

                                                                                                                                                  Parameters:
                                                                                                                                                  @@ -500,7 +500,7 @@
                                                                                                                                                  - + diff --git a/v9.2.0/output/pydis_core.utils.members.html b/v9.2.0/output/pydis_core.utils.members.html index 89974886..fe65cca8 100644 --- a/v9.2.0/output/pydis_core.utils.members.html +++ b/v9.2.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.2.0 - + @@ -377,11 +377,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:
                                                                                                                                                  @@ -395,7 +395,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.

                                                                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v9.2.0/output/pydis_core.utils.regex.html b/v9.2.0/output/pydis_core.utils.regex.html index bc2cf49a..95e5de88 100644 --- a/v9.2.0/output/pydis_core.utils.regex.html +++ b/v9.2.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.2.0 - + @@ -377,11 +377,11 @@
                                                                                                                                                  -

                                                                                                                                                  regex#

                                                                                                                                                  +

                                                                                                                                                  regex

                                                                                                                                                  Common regular expressions.

                                                                                                                                                  -DISCORD_INVITE[source]#
                                                                                                                                                  +DISCORD_INVITE[source]

                                                                                                                                                  Regex for Discord server invites.

                                                                                                                                                  Warning

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

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

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

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

                                                                                                                                                  @@ -482,7 +482,7 @@ such as - + diff --git a/v9.2.0/output/pydis_core.utils.scheduling.html b/v9.2.0/output/pydis_core.utils.scheduling.html index dd248dac..90f0050b 100644 --- a/v9.2.0/output/pydis_core.utils.scheduling.html +++ b/v9.2.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.2.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                  @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                                                                  Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                  Changelog#

                                                                                                                                                  +

                                                                                                                                                  Changelog

                                                                                                                                                  9.3.0 13th December 2022

                                                                                                                                                  • [Feature] #169: Return None upon receiving a bad request from Discord in pydis_core.utils.members.get_or_fetch_member

                                                                                                                                                  • @@ -662,7 +662,7 @@ - + diff --git a/v9.3.0/development.html b/v9.3.0/development.html index 598b0e05..e770ad68 100644 --- a/v9.3.0/development.html +++ b/v9.3.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.3.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                        @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                        - + diff --git a/v9.3.0/genindex.html b/v9.3.0/genindex.html index de1628fb..7ad6c5d6 100644 --- a/v9.3.0/genindex.html +++ b/v9.3.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.3.0 + Index - Pydis Core v9.3.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.3.0/index.html b/v9.3.0/index.html index 8b9c68f9..b24a3360 100644 --- a/v9.3.0/index.html +++ b/v9.3.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.3.0 - + @@ -377,10 +377,10 @@
                                                                                                                                                        -

                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                        +

                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                        -

                                                                                                                                                        Reference#

                                                                                                                                                        +

                                                                                                                                                        Reference

                                                                                                                                                        Modules:

                                                                                                                                                          @@ -435,7 +435,7 @@
                                                                                                                                                        -

                                                                                                                                                        Extras#

                                                                                                                                                        +

                                                                                                                                                        Extras

                                                                                                                                                        • Index

                                                                                                                                                        • Search Page

                                                                                                                                                        • @@ -485,7 +485,7 @@ - + diff --git a/v9.3.0/index_redirect.html b/v9.3.0/index_redirect.html index b2719985..2f803826 100644 --- a/v9.3.0/index_redirect.html +++ b/v9.3.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.3.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.3.0/output/pydis_core.async_stats.html b/v9.3.0/output/pydis_core.async_stats.html index e859561f..bc1ebc63 100644 --- a/v9.3.0/output/pydis_core.async_stats.html +++ b/v9.3.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.3.0 - + @@ -377,16 +377,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:
                                                                                                                                                          @@ -403,7 +403,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:
                                                                                                                                                          @@ -489,7 +489,7 @@ - + diff --git a/v9.3.0/output/pydis_core.exts.html b/v9.3.0/output/pydis_core.exts.html index d099ef0a..387d0fa6 100644 --- a/v9.3.0/output/pydis_core.exts.html +++ b/v9.3.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.3.0 - + @@ -377,7 +377,7 @@
                                                                                                                                                          -

                                                                                                                                                          Exts#

                                                                                                                                                          +

                                                                                                                                                          Exts

                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                          @@ -431,7 +431,7 @@ - + diff --git a/v9.3.0/output/pydis_core.html b/v9.3.0/output/pydis_core.html index f59a692f..afe6cf36 100644 --- a/v9.3.0/output/pydis_core.html +++ b/v9.3.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.3.0 - + @@ -377,16 +377,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:
                                                                                                                                                          @@ -405,7 +405,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:
                                                                                                                                                          @@ -416,7 +416,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:
                                                                                                                                                          @@ -427,7 +427,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:
                                                                                                                                                          @@ -438,7 +438,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:
                                                                                                                                                          @@ -449,7 +449,7 @@ a dummy statsd client will be created.

                                                                                                                                                          -async load_extensions(module)[source]#
                                                                                                                                                          +async load_extensions(module)[source]

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

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

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

                                                                                                                                                          @@ -485,7 +485,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:
                                                                                                                                                          @@ -496,7 +496,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:
                                                                                                                                                          @@ -507,7 +507,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.

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

                                                                                                                                                          @@ -549,18 +549,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
                                                                                                                                                          • @@ -628,7 +628,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                          -

                                                                                                                                                          Submodules#

                                                                                                                                                          +

                                                                                                                                                          Submodules

                                                                                                                                                          • async_stats
                                                                                                                                                              @@ -754,7 +754,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                          - + diff --git a/v9.3.0/output/pydis_core.site_api.html b/v9.3.0/output/pydis_core.site_api.html index f5d06915..d646a641 100644 --- a/v9.3.0/output/pydis_core.site_api.html +++ b/v9.3.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.3.0 - + @@ -377,16 +377,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:
                                                                                                                                                          @@ -401,7 +401,7 @@
                                                                                                                                                          -async close()[source]#
                                                                                                                                                          +async close()[source]

                                                                                                                                                          Close the aiohttp session.

                                                                                                                                                          Return type:
                                                                                                                                                          @@ -412,7 +412,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:
                                                                                                                                                          @@ -433,7 +433,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:
                                                                                                                                                          @@ -444,7 +444,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:
                                                                                                                                                          @@ -464,7 +464,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:
                                                                                                                                                          @@ -475,7 +475,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:
                                                                                                                                                          @@ -486,7 +486,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:
                                                                                                                                                          @@ -497,7 +497,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:
                                                                                                                                                          @@ -524,12 +524,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:
                                                                                                                                                          @@ -544,7 +544,7 @@
                                                                                                                                                          -__str__()[source]#
                                                                                                                                                          +__str__()[source]

                                                                                                                                                          Return a string representation of the error.

                                                                                                                                                          @@ -637,7 +637,7 @@ - + diff --git a/v9.3.0/output/pydis_core.utils.caching.html b/v9.3.0/output/pydis_core.utils.caching.html index 096ef896..d8ada90b 100644 --- a/v9.3.0/output/pydis_core.utils.caching.html +++ b/v9.3.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.3.0 - + @@ -377,18 +377,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:
                                                                                                                                                          @@ -405,7 +405,7 @@
                                                                                                                                                          -__init__(max_size=128)[source]#
                                                                                                                                                          +__init__(max_size=128)[source]

                                                                                                                                                          Initialise a new AsyncCache instance.

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

                                                                                                                                                          Clear cache instance.

                                                                                                                                                          Return type:
                                                                                                                                                          @@ -503,7 +503,7 @@ - + diff --git a/v9.3.0/output/pydis_core.utils.channel.html b/v9.3.0/output/pydis_core.utils.channel.html index 5cdb403b..d9f8a9ed 100644 --- a/v9.3.0/output/pydis_core.utils.channel.html +++ b/v9.3.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.3.0 - + @@ -377,11 +377,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:
                                                                                                                                                          @@ -409,7 +409,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:
                                                                                                                                                          @@ -499,7 +499,7 @@ - + diff --git a/v9.3.0/output/pydis_core.utils.commands.html b/v9.3.0/output/pydis_core.utils.commands.html index 9767de0b..5b6f4a31 100644 --- a/v9.3.0/output/pydis_core.utils.commands.html +++ b/v9.3.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.3.0 - + @@ -377,10 +377,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:
                                                                                                                                                          @@ -472,7 +472,7 @@ - + diff --git a/v9.3.0/output/pydis_core.utils.cooldown.html b/v9.3.0/output/pydis_core.utils.cooldown.html index 146cdfb0..8b7e9405 100644 --- a/v9.3.0/output/pydis_core.utils.cooldown.html +++ b/v9.3.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.3.0 - + @@ -377,21 +377,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:
                                                                                                                                                          @@ -407,20 +407,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:
                                                                                                                                                          @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.3.0/output/pydis_core.utils.function.html b/v9.3.0/output/pydis_core.utils.function.html index 2656e163..f882fd50 100644 --- a/v9.3.0/output/pydis_core.utils.function.html +++ b/v9.3.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.3.0 - + @@ -377,18 +377,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.

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

                                                                                                                                                          - + diff --git a/v9.3.0/output/pydis_core.utils.html b/v9.3.0/output/pydis_core.utils.html index 1b1a5449..d7b6db9c 100644 --- a/v9.3.0/output/pydis_core.utils.html +++ b/v9.3.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.3.0 - + @@ -377,11 +377,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:
                                                                                                                                                          @@ -400,7 +400,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:
                                                                                                                                                          @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                          -

                                                                                                                                                          Submodules#

                                                                                                                                                          +

                                                                                                                                                          Submodules

                                                                                                                                                          • caching
                                                                                                                                                              @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                          - + diff --git a/v9.3.0/output/pydis_core.utils.interactions.html b/v9.3.0/output/pydis_core.utils.interactions.html index 7ec92d41..00a423cd 100644 --- a/v9.3.0/output/pydis_core.utils.interactions.html +++ b/v9.3.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.3.0 - + @@ -377,10 +377,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.

                                                                                                                                                          @@ -395,12 +395,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:
                                                                                                                                                          @@ -413,7 +413,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.

                                                                                                                                                          @@ -430,12 +430,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:
                                                                                                                                                          @@ -449,7 +449,7 @@ If None
                                                                                                                                                          -async on_timeout()[source]#
                                                                                                                                                          +async on_timeout()[source]

                                                                                                                                                          Remove the view from self.message if set.

                                                                                                                                                          Return type:
                                                                                                                                                          @@ -541,7 +541,7 @@ If None - + diff --git a/v9.3.0/output/pydis_core.utils.logging.html b/v9.3.0/output/pydis_core.utils.logging.html index cfde844e..afba8c61 100644 --- a/v9.3.0/output/pydis_core.utils.logging.html +++ b/v9.3.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.3.0 - + @@ -377,16 +377,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)
                                                                                                                                                          @@ -410,7 +410,7 @@
                                                                                                                                                           
                                                                                                                                                           
                                                                                                                                                          -get_logger(name=None)[source]#
                                                                                                                                                          +get_logger(name=None)[source]

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

                                                                                                                                                          Parameters:
                                                                                                                                                          @@ -500,7 +500,7 @@
                                                                                                                                                          - + diff --git a/v9.3.0/output/pydis_core.utils.members.html b/v9.3.0/output/pydis_core.utils.members.html index aced2d38..68f4294b 100644 --- a/v9.3.0/output/pydis_core.utils.members.html +++ b/v9.3.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.3.0 - + @@ -377,11 +377,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:
                                                                                                                                                          @@ -395,7 +395,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.

                                                                                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v9.3.0/output/pydis_core.utils.regex.html b/v9.3.0/output/pydis_core.utils.regex.html index 4bd8d67f..fdd4a96e 100644 --- a/v9.3.0/output/pydis_core.utils.regex.html +++ b/v9.3.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.3.0 - + @@ -377,11 +377,11 @@
                                                                                                                                                          -

                                                                                                                                                          regex#

                                                                                                                                                          +

                                                                                                                                                          regex

                                                                                                                                                          Common regular expressions.

                                                                                                                                                          -DISCORD_INVITE[source]#
                                                                                                                                                          +DISCORD_INVITE[source]

                                                                                                                                                          Regex for Discord server invites.

                                                                                                                                                          Warning

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

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

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

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

                                                                                                                                                          @@ -482,7 +482,7 @@ such as - + diff --git a/v9.3.0/output/pydis_core.utils.scheduling.html b/v9.3.0/output/pydis_core.utils.scheduling.html index 9875afa6..ea7a900a 100644 --- a/v9.3.0/output/pydis_core.utils.scheduling.html +++ b/v9.3.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.3.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                          @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                                                                                          Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                          Changelog#

                                                                                                                                                          +

                                                                                                                                                          Changelog

                                                                                                                                                          9.4.0 24th December 2022

                                                                                                                                                          • [Feature] #171: Sync all app commands after extensions have been loaded. This release also removes the need to run pydis_core.BotBase.load_extensions in a task.

                                                                                                                                                          • @@ -672,7 +672,7 @@ - + diff --git a/v9.4.0/development.html b/v9.4.0/development.html index 01659dd9..c376a848 100644 --- a/v9.4.0/development.html +++ b/v9.4.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.4.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                                @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                                - + diff --git a/v9.4.0/genindex.html b/v9.4.0/genindex.html index a53868e9..131790f1 100644 --- a/v9.4.0/genindex.html +++ b/v9.4.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.4.0 + Index - Pydis Core v9.4.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.4.0/index.html b/v9.4.0/index.html index 2bf3b626..6d0dcd56 100644 --- a/v9.4.0/index.html +++ b/v9.4.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.4.0 - + @@ -377,10 +377,10 @@
                                                                                                                                                                -

                                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                                +

                                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                                -

                                                                                                                                                                Reference#

                                                                                                                                                                +

                                                                                                                                                                Reference

                                                                                                                                                                Modules:

                                                                                                                                                                  @@ -435,7 +435,7 @@
                                                                                                                                                                -

                                                                                                                                                                Extras#

                                                                                                                                                                +

                                                                                                                                                                Extras

                                                                                                                                                                • Index

                                                                                                                                                                • Search Page

                                                                                                                                                                • @@ -485,7 +485,7 @@ - + diff --git a/v9.4.0/index_redirect.html b/v9.4.0/index_redirect.html index fade36f2..1ba5cc2e 100644 --- a/v9.4.0/index_redirect.html +++ b/v9.4.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.4.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.4.0/output/pydis_core.async_stats.html b/v9.4.0/output/pydis_core.async_stats.html index 71f9e90d..438e9d3a 100644 --- a/v9.4.0/output/pydis_core.async_stats.html +++ b/v9.4.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.4.0 - + @@ -377,16 +377,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:
                                                                                                                                                                  @@ -403,7 +403,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:
                                                                                                                                                                  @@ -489,7 +489,7 @@ - + diff --git a/v9.4.0/output/pydis_core.exts.html b/v9.4.0/output/pydis_core.exts.html index 454411a1..f7aaddbb 100644 --- a/v9.4.0/output/pydis_core.exts.html +++ b/v9.4.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.4.0 - + @@ -377,7 +377,7 @@
                                                                                                                                                                  -

                                                                                                                                                                  Exts#

                                                                                                                                                                  +

                                                                                                                                                                  Exts

                                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                                  @@ -431,7 +431,7 @@ - + diff --git a/v9.4.0/output/pydis_core.html b/v9.4.0/output/pydis_core.html index 767e5a52..31aed285 100644 --- a/v9.4.0/output/pydis_core.html +++ b/v9.4.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.4.0 - + @@ -377,16 +377,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:
                                                                                                                                                                  @@ -405,7 +405,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:
                                                                                                                                                                  @@ -416,7 +416,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:
                                                                                                                                                                  @@ -427,7 +427,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:
                                                                                                                                                                  @@ -438,7 +438,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:
                                                                                                                                                                  @@ -449,7 +449,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:
                                                                                                                                                                  @@ -463,7 +463,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:
                                                                                                                                                                  @@ -474,7 +474,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.

                                                                                                                                                                  @@ -487,7 +487,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:
                                                                                                                                                                  @@ -498,7 +498,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:
                                                                                                                                                                  @@ -509,7 +509,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.

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

                                                                                                                                                                  @@ -551,18 +551,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
                                                                                                                                                                  • @@ -630,7 +630,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                  -

                                                                                                                                                                  Submodules#

                                                                                                                                                                  +

                                                                                                                                                                  Submodules

                                                                                                                                                                  • async_stats
                                                                                                                                                                      @@ -756,7 +756,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                  - + diff --git a/v9.4.0/output/pydis_core.site_api.html b/v9.4.0/output/pydis_core.site_api.html index 82c0b5b2..ab03919d 100644 --- a/v9.4.0/output/pydis_core.site_api.html +++ b/v9.4.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.4.0 - + @@ -377,16 +377,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:
                                                                                                                                                                  @@ -401,7 +401,7 @@
                                                                                                                                                                  -async close()[source]#
                                                                                                                                                                  +async close()[source]

                                                                                                                                                                  Close the aiohttp session.

                                                                                                                                                                  Return type:
                                                                                                                                                                  @@ -412,7 +412,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:
                                                                                                                                                                  @@ -433,7 +433,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:
                                                                                                                                                                  @@ -444,7 +444,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:
                                                                                                                                                                  @@ -464,7 +464,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:
                                                                                                                                                                  @@ -475,7 +475,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:
                                                                                                                                                                  @@ -486,7 +486,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:
                                                                                                                                                                  @@ -497,7 +497,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:
                                                                                                                                                                  @@ -524,12 +524,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:
                                                                                                                                                                  @@ -544,7 +544,7 @@
                                                                                                                                                                  -__str__()[source]#
                                                                                                                                                                  +__str__()[source]

                                                                                                                                                                  Return a string representation of the error.

                                                                                                                                                                  @@ -637,7 +637,7 @@ - + diff --git a/v9.4.0/output/pydis_core.utils.caching.html b/v9.4.0/output/pydis_core.utils.caching.html index 24750e02..d8b157f1 100644 --- a/v9.4.0/output/pydis_core.utils.caching.html +++ b/v9.4.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.4.0 - + @@ -377,18 +377,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:
                                                                                                                                                                  @@ -405,7 +405,7 @@
                                                                                                                                                                  -__init__(max_size=128)[source]#
                                                                                                                                                                  +__init__(max_size=128)[source]

                                                                                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                                                                                  Clear cache instance.

                                                                                                                                                                  Return type:
                                                                                                                                                                  @@ -503,7 +503,7 @@ - + diff --git a/v9.4.0/output/pydis_core.utils.channel.html b/v9.4.0/output/pydis_core.utils.channel.html index 243181ad..56727731 100644 --- a/v9.4.0/output/pydis_core.utils.channel.html +++ b/v9.4.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.4.0 - + @@ -377,11 +377,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:
                                                                                                                                                                  @@ -409,7 +409,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:
                                                                                                                                                                  @@ -499,7 +499,7 @@ - + diff --git a/v9.4.0/output/pydis_core.utils.commands.html b/v9.4.0/output/pydis_core.utils.commands.html index b5b03a8c..bdae6c84 100644 --- a/v9.4.0/output/pydis_core.utils.commands.html +++ b/v9.4.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.4.0 - + @@ -377,10 +377,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:
                                                                                                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v9.4.0/output/pydis_core.utils.cooldown.html b/v9.4.0/output/pydis_core.utils.cooldown.html index e68d14cc..a2dd5108 100644 --- a/v9.4.0/output/pydis_core.utils.cooldown.html +++ b/v9.4.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.4.0 - + @@ -377,21 +377,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:
                                                                                                                                                                  @@ -407,20 +407,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:
                                                                                                                                                                  @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.4.0/output/pydis_core.utils.function.html b/v9.4.0/output/pydis_core.utils.function.html index 2a020363..8c269e49 100644 --- a/v9.4.0/output/pydis_core.utils.function.html +++ b/v9.4.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.4.0 - + @@ -377,18 +377,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.

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

                                                                                                                                                                  - + diff --git a/v9.4.0/output/pydis_core.utils.html b/v9.4.0/output/pydis_core.utils.html index 27bec999..c2b3b802 100644 --- a/v9.4.0/output/pydis_core.utils.html +++ b/v9.4.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.4.0 - + @@ -377,11 +377,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:
                                                                                                                                                                  @@ -400,7 +400,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:
                                                                                                                                                                  @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                  -

                                                                                                                                                                  Submodules#

                                                                                                                                                                  +

                                                                                                                                                                  Submodules

                                                                                                                                                                  • caching
                                                                                                                                                                      @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                  - + diff --git a/v9.4.0/output/pydis_core.utils.interactions.html b/v9.4.0/output/pydis_core.utils.interactions.html index abf84f5a..1879dd6f 100644 --- a/v9.4.0/output/pydis_core.utils.interactions.html +++ b/v9.4.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.4.0 - + @@ -377,10 +377,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.

                                                                                                                                                                  @@ -395,12 +395,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:
                                                                                                                                                                  @@ -413,7 +413,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.

                                                                                                                                                                  @@ -430,12 +430,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:
                                                                                                                                                                  @@ -449,7 +449,7 @@ If None
                                                                                                                                                                  -async on_timeout()[source]#
                                                                                                                                                                  +async on_timeout()[source]

                                                                                                                                                                  Remove the view from self.message if set.

                                                                                                                                                                  Return type:
                                                                                                                                                                  @@ -541,7 +541,7 @@ If None - + diff --git a/v9.4.0/output/pydis_core.utils.logging.html b/v9.4.0/output/pydis_core.utils.logging.html index ac9b63de..8dafc330 100644 --- a/v9.4.0/output/pydis_core.utils.logging.html +++ b/v9.4.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.4.0 - + @@ -377,16 +377,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)
                                                                                                                                                                  @@ -410,7 +410,7 @@
                                                                                                                                                                   
                                                                                                                                                                   
                                                                                                                                                                  -get_logger(name=None)[source]#
                                                                                                                                                                  +get_logger(name=None)[source]

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

                                                                                                                                                                  Parameters:
                                                                                                                                                                  @@ -500,7 +500,7 @@
                                                                                                                                                                  - + diff --git a/v9.4.0/output/pydis_core.utils.members.html b/v9.4.0/output/pydis_core.utils.members.html index 4a817f22..66080fb4 100644 --- a/v9.4.0/output/pydis_core.utils.members.html +++ b/v9.4.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.4.0 - + @@ -377,11 +377,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:
                                                                                                                                                                  @@ -395,7 +395,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.

                                                                                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v9.4.0/output/pydis_core.utils.regex.html b/v9.4.0/output/pydis_core.utils.regex.html index 5d7fd698..f35e5cbe 100644 --- a/v9.4.0/output/pydis_core.utils.regex.html +++ b/v9.4.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.4.0 - + @@ -377,11 +377,11 @@
                                                                                                                                                                  -

                                                                                                                                                                  regex#

                                                                                                                                                                  +

                                                                                                                                                                  regex

                                                                                                                                                                  Common regular expressions.

                                                                                                                                                                  -DISCORD_INVITE[source]#
                                                                                                                                                                  +DISCORD_INVITE[source]

                                                                                                                                                                  Regex for Discord server invites.

                                                                                                                                                                  Warning

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

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

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

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

                                                                                                                                                                  @@ -482,7 +482,7 @@ such as - + diff --git a/v9.4.0/output/pydis_core.utils.scheduling.html b/v9.4.0/output/pydis_core.utils.scheduling.html index 56bcaea6..5e3b183e 100644 --- a/v9.4.0/output/pydis_core.utils.scheduling.html +++ b/v9.4.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.4.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                                  @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                                                                                  Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                                  Changelog#

                                                                                                                                                                  +

                                                                                                                                                                  Changelog

                                                                                                                                                                  Next 9.x feature release

                                                                                                                                                                  • [Feature] #172: Bump Discord.py to 2.1.1.

                                                                                                                                                                  • @@ -677,7 +677,7 @@ - + diff --git a/v9.4.1/development.html b/v9.4.1/development.html index d7c66ddb..dfa4dc36 100644 --- a/v9.4.1/development.html +++ b/v9.4.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.4.1 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                                        @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                                        - + diff --git a/v9.4.1/genindex.html b/v9.4.1/genindex.html index 1edad5dc..854390a2 100644 --- a/v9.4.1/genindex.html +++ b/v9.4.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.4.1 + Index - Pydis Core v9.4.1 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.4.1/index.html b/v9.4.1/index.html index f8bb66d5..6eb2eb40 100644 --- a/v9.4.1/index.html +++ b/v9.4.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.4.1 - + @@ -377,10 +377,10 @@
                                                                                                                                                                        -

                                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                                        +

                                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                                        -

                                                                                                                                                                        Reference#

                                                                                                                                                                        +

                                                                                                                                                                        Reference

                                                                                                                                                                        Modules:

                                                                                                                                                                          @@ -435,7 +435,7 @@
                                                                                                                                                                        -

                                                                                                                                                                        Extras#

                                                                                                                                                                        +

                                                                                                                                                                        Extras

                                                                                                                                                                        • Index

                                                                                                                                                                        • Search Page

                                                                                                                                                                        • @@ -485,7 +485,7 @@ - + diff --git a/v9.4.1/index_redirect.html b/v9.4.1/index_redirect.html index 97646da0..17175296 100644 --- a/v9.4.1/index_redirect.html +++ b/v9.4.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.4.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.4.1/output/pydis_core.async_stats.html b/v9.4.1/output/pydis_core.async_stats.html index d9837c5f..2daeb226 100644 --- a/v9.4.1/output/pydis_core.async_stats.html +++ b/v9.4.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.4.1 - + @@ -377,16 +377,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:
                                                                                                                                                                          @@ -403,7 +403,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:
                                                                                                                                                                          @@ -489,7 +489,7 @@ - + diff --git a/v9.4.1/output/pydis_core.exts.html b/v9.4.1/output/pydis_core.exts.html index 92e36e0f..91be71ce 100644 --- a/v9.4.1/output/pydis_core.exts.html +++ b/v9.4.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.4.1 - + @@ -377,7 +377,7 @@
                                                                                                                                                                          -

                                                                                                                                                                          Exts#

                                                                                                                                                                          +

                                                                                                                                                                          Exts

                                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                                          @@ -431,7 +431,7 @@ - + diff --git a/v9.4.1/output/pydis_core.html b/v9.4.1/output/pydis_core.html index 34c2d7d0..9e0303d2 100644 --- a/v9.4.1/output/pydis_core.html +++ b/v9.4.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.4.1 - + @@ -377,16 +377,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:
                                                                                                                                                                          @@ -405,7 +405,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:
                                                                                                                                                                          @@ -416,7 +416,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:
                                                                                                                                                                          @@ -427,7 +427,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:
                                                                                                                                                                          @@ -438,7 +438,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:
                                                                                                                                                                          @@ -449,7 +449,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:
                                                                                                                                                                          @@ -463,7 +463,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:
                                                                                                                                                                          @@ -474,7 +474,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.

                                                                                                                                                                          @@ -487,7 +487,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:
                                                                                                                                                                          @@ -498,7 +498,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:
                                                                                                                                                                          @@ -509,7 +509,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.

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

                                                                                                                                                                          @@ -551,18 +551,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
                                                                                                                                                                          • @@ -630,7 +630,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                          -

                                                                                                                                                                          Submodules#

                                                                                                                                                                          +

                                                                                                                                                                          Submodules

                                                                                                                                                                          • async_stats
                                                                                                                                                                              @@ -756,7 +756,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                          - + diff --git a/v9.4.1/output/pydis_core.site_api.html b/v9.4.1/output/pydis_core.site_api.html index 6edd4e56..71216a86 100644 --- a/v9.4.1/output/pydis_core.site_api.html +++ b/v9.4.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.4.1 - + @@ -377,16 +377,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:
                                                                                                                                                                          @@ -401,7 +401,7 @@
                                                                                                                                                                          -async close()[source]#
                                                                                                                                                                          +async close()[source]

                                                                                                                                                                          Close the aiohttp session.

                                                                                                                                                                          Return type:
                                                                                                                                                                          @@ -412,7 +412,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:
                                                                                                                                                                          @@ -433,7 +433,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:
                                                                                                                                                                          @@ -444,7 +444,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:
                                                                                                                                                                          @@ -464,7 +464,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:
                                                                                                                                                                          @@ -475,7 +475,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:
                                                                                                                                                                          @@ -486,7 +486,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:
                                                                                                                                                                          @@ -497,7 +497,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:
                                                                                                                                                                          @@ -524,12 +524,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:
                                                                                                                                                                          @@ -544,7 +544,7 @@
                                                                                                                                                                          -__str__()[source]#
                                                                                                                                                                          +__str__()[source]

                                                                                                                                                                          Return a string representation of the error.

                                                                                                                                                                          @@ -637,7 +637,7 @@ - + diff --git a/v9.4.1/output/pydis_core.utils.caching.html b/v9.4.1/output/pydis_core.utils.caching.html index 0c096681..d247dd89 100644 --- a/v9.4.1/output/pydis_core.utils.caching.html +++ b/v9.4.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.4.1 - + @@ -377,18 +377,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:
                                                                                                                                                                          @@ -405,7 +405,7 @@
                                                                                                                                                                          -__init__(max_size=128)[source]#
                                                                                                                                                                          +__init__(max_size=128)[source]

                                                                                                                                                                          Initialise a new AsyncCache instance.

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

                                                                                                                                                                          Clear cache instance.

                                                                                                                                                                          Return type:
                                                                                                                                                                          @@ -503,7 +503,7 @@ - + diff --git a/v9.4.1/output/pydis_core.utils.channel.html b/v9.4.1/output/pydis_core.utils.channel.html index e008d2f9..e2c61c7e 100644 --- a/v9.4.1/output/pydis_core.utils.channel.html +++ b/v9.4.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.4.1 - + @@ -377,11 +377,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:
                                                                                                                                                                          @@ -409,7 +409,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:
                                                                                                                                                                          @@ -499,7 +499,7 @@ - + diff --git a/v9.4.1/output/pydis_core.utils.commands.html b/v9.4.1/output/pydis_core.utils.commands.html index 4f038b1c..e7a258ce 100644 --- a/v9.4.1/output/pydis_core.utils.commands.html +++ b/v9.4.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.4.1 - + @@ -377,10 +377,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:
                                                                                                                                                                          @@ -472,7 +472,7 @@ - + diff --git a/v9.4.1/output/pydis_core.utils.cooldown.html b/v9.4.1/output/pydis_core.utils.cooldown.html index a1582d6e..a93a2359 100644 --- a/v9.4.1/output/pydis_core.utils.cooldown.html +++ b/v9.4.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.4.1 - + @@ -377,21 +377,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:
                                                                                                                                                                          @@ -407,20 +407,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:
                                                                                                                                                                          @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.4.1/output/pydis_core.utils.function.html b/v9.4.1/output/pydis_core.utils.function.html index ab36036a..d36584ba 100644 --- a/v9.4.1/output/pydis_core.utils.function.html +++ b/v9.4.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.4.1 - + @@ -377,18 +377,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.

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

                                                                                                                                                                          - + diff --git a/v9.4.1/output/pydis_core.utils.html b/v9.4.1/output/pydis_core.utils.html index df9a7d84..f6fb6a5d 100644 --- a/v9.4.1/output/pydis_core.utils.html +++ b/v9.4.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.4.1 - + @@ -377,11 +377,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:
                                                                                                                                                                          @@ -400,7 +400,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:
                                                                                                                                                                          @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                          -

                                                                                                                                                                          Submodules#

                                                                                                                                                                          +

                                                                                                                                                                          Submodules

                                                                                                                                                                          • caching
                                                                                                                                                                              @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                          - + diff --git a/v9.4.1/output/pydis_core.utils.interactions.html b/v9.4.1/output/pydis_core.utils.interactions.html index a1c720ed..7f83aacf 100644 --- a/v9.4.1/output/pydis_core.utils.interactions.html +++ b/v9.4.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.4.1 - + @@ -377,10 +377,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.

                                                                                                                                                                          @@ -395,12 +395,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:
                                                                                                                                                                          @@ -413,7 +413,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.

                                                                                                                                                                          @@ -430,12 +430,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:
                                                                                                                                                                          @@ -449,7 +449,7 @@ If None
                                                                                                                                                                          -async on_timeout()[source]#
                                                                                                                                                                          +async on_timeout()[source]

                                                                                                                                                                          Remove the view from self.message if set.

                                                                                                                                                                          Return type:
                                                                                                                                                                          @@ -541,7 +541,7 @@ If None - + diff --git a/v9.4.1/output/pydis_core.utils.logging.html b/v9.4.1/output/pydis_core.utils.logging.html index d7966929..82408f25 100644 --- a/v9.4.1/output/pydis_core.utils.logging.html +++ b/v9.4.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.4.1 - + @@ -377,16 +377,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)
                                                                                                                                                                          @@ -410,7 +410,7 @@
                                                                                                                                                                           
                                                                                                                                                                           
                                                                                                                                                                          -get_logger(name=None)[source]#
                                                                                                                                                                          +get_logger(name=None)[source]

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

                                                                                                                                                                          Parameters:
                                                                                                                                                                          @@ -500,7 +500,7 @@
                                                                                                                                                                          - + diff --git a/v9.4.1/output/pydis_core.utils.members.html b/v9.4.1/output/pydis_core.utils.members.html index f7c88f85..ccf3b89d 100644 --- a/v9.4.1/output/pydis_core.utils.members.html +++ b/v9.4.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.4.1 - + @@ -377,11 +377,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:
                                                                                                                                                                          @@ -395,7 +395,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.

                                                                                                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v9.4.1/output/pydis_core.utils.regex.html b/v9.4.1/output/pydis_core.utils.regex.html index 1faf247a..96784eb5 100644 --- a/v9.4.1/output/pydis_core.utils.regex.html +++ b/v9.4.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.4.1 - + @@ -377,11 +377,11 @@
                                                                                                                                                                          -

                                                                                                                                                                          regex#

                                                                                                                                                                          +

                                                                                                                                                                          regex

                                                                                                                                                                          Common regular expressions.

                                                                                                                                                                          -DISCORD_INVITE[source]#
                                                                                                                                                                          +DISCORD_INVITE[source]

                                                                                                                                                                          Regex for Discord server invites.

                                                                                                                                                                          Warning

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

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

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

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

                                                                                                                                                                          @@ -482,7 +482,7 @@ such as - + diff --git a/v9.4.1/output/pydis_core.utils.scheduling.html b/v9.4.1/output/pydis_core.utils.scheduling.html index bac60ce7..6cfde4b9 100644 --- a/v9.4.1/output/pydis_core.utils.scheduling.html +++ b/v9.4.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.4.1 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                                          @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                                                                                                          Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                                          Changelog#

                                                                                                                                                                          +

                                                                                                                                                                          Changelog

                                                                                                                                                                          9.5.0 28th February 2023

                                                                                                                                                                          • [Feature] #172: Bump Discord.py to 2.1.1.

                                                                                                                                                                          • @@ -678,7 +678,7 @@ - + diff --git a/v9.5.0/development.html b/v9.5.0/development.html index 43589545..3083172c 100644 --- a/v9.5.0/development.html +++ b/v9.5.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.5.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                                                @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                                                - + diff --git a/v9.5.0/genindex.html b/v9.5.0/genindex.html index 99b60453..93de032d 100644 --- a/v9.5.0/genindex.html +++ b/v9.5.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.5.0 + Index - Pydis Core v9.5.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.5.0/index.html b/v9.5.0/index.html index 79333a3f..7f9f0b62 100644 --- a/v9.5.0/index.html +++ b/v9.5.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.5.0 - + @@ -377,10 +377,10 @@
                                                                                                                                                                                -

                                                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                                                +

                                                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                                                -

                                                                                                                                                                                Reference#

                                                                                                                                                                                +

                                                                                                                                                                                Reference

                                                                                                                                                                                Modules:

                                                                                                                                                                                  @@ -435,7 +435,7 @@
                                                                                                                                                                                -

                                                                                                                                                                                Extras#

                                                                                                                                                                                +

                                                                                                                                                                                Extras

                                                                                                                                                                                • Index

                                                                                                                                                                                • Search Page

                                                                                                                                                                                • @@ -485,7 +485,7 @@ - + diff --git a/v9.5.0/index_redirect.html b/v9.5.0/index_redirect.html index 46e29b70..ae3faff4 100644 --- a/v9.5.0/index_redirect.html +++ b/v9.5.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.5.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.5.0/output/pydis_core.async_stats.html b/v9.5.0/output/pydis_core.async_stats.html index ba989b2b..cba431b1 100644 --- a/v9.5.0/output/pydis_core.async_stats.html +++ b/v9.5.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.5.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                  @@ -403,7 +403,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:
                                                                                                                                                                                  @@ -489,7 +489,7 @@ - + diff --git a/v9.5.0/output/pydis_core.exts.html b/v9.5.0/output/pydis_core.exts.html index 0707d37e..6dbb1918 100644 --- a/v9.5.0/output/pydis_core.exts.html +++ b/v9.5.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.5.0 - + @@ -377,7 +377,7 @@
                                                                                                                                                                                  -

                                                                                                                                                                                  Exts#

                                                                                                                                                                                  +

                                                                                                                                                                                  Exts

                                                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                                                  @@ -431,7 +431,7 @@ - + diff --git a/v9.5.0/output/pydis_core.html b/v9.5.0/output/pydis_core.html index 74f8dc05..d8745ee6 100644 --- a/v9.5.0/output/pydis_core.html +++ b/v9.5.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.5.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                  @@ -405,7 +405,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:
                                                                                                                                                                                  @@ -416,7 +416,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:
                                                                                                                                                                                  @@ -427,7 +427,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:
                                                                                                                                                                                  @@ -438,7 +438,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:
                                                                                                                                                                                  @@ -449,7 +449,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:
                                                                                                                                                                                  @@ -463,7 +463,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:
                                                                                                                                                                                  @@ -474,7 +474,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.

                                                                                                                                                                                  @@ -487,7 +487,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:
                                                                                                                                                                                  @@ -498,7 +498,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:
                                                                                                                                                                                  @@ -509,7 +509,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.

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

                                                                                                                                                                                  @@ -551,18 +551,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
                                                                                                                                                                                  • @@ -630,7 +630,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                  -

                                                                                                                                                                                  Submodules#

                                                                                                                                                                                  +

                                                                                                                                                                                  Submodules

                                                                                                                                                                                  • async_stats
                                                                                                                                                                                      @@ -756,7 +756,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                  - + diff --git a/v9.5.0/output/pydis_core.site_api.html b/v9.5.0/output/pydis_core.site_api.html index f8a1f00f..1e1f44fa 100644 --- a/v9.5.0/output/pydis_core.site_api.html +++ b/v9.5.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.5.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                  @@ -401,7 +401,7 @@
                                                                                                                                                                                  -async close()[source]#
                                                                                                                                                                                  +async close()[source]

                                                                                                                                                                                  Close the aiohttp session.

                                                                                                                                                                                  Return type:
                                                                                                                                                                                  @@ -412,7 +412,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:
                                                                                                                                                                                  @@ -433,7 +433,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:
                                                                                                                                                                                  @@ -444,7 +444,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:
                                                                                                                                                                                  @@ -464,7 +464,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:
                                                                                                                                                                                  @@ -475,7 +475,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:
                                                                                                                                                                                  @@ -486,7 +486,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:
                                                                                                                                                                                  @@ -497,7 +497,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:
                                                                                                                                                                                  @@ -524,12 +524,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:
                                                                                                                                                                                  @@ -544,7 +544,7 @@
                                                                                                                                                                                  -__str__()[source]#
                                                                                                                                                                                  +__str__()[source]

                                                                                                                                                                                  Return a string representation of the error.

                                                                                                                                                                                  @@ -637,7 +637,7 @@ - + diff --git a/v9.5.0/output/pydis_core.utils.caching.html b/v9.5.0/output/pydis_core.utils.caching.html index 9b4e1962..0d5e6a9c 100644 --- a/v9.5.0/output/pydis_core.utils.caching.html +++ b/v9.5.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.5.0 - + @@ -377,18 +377,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:
                                                                                                                                                                                  @@ -405,7 +405,7 @@
                                                                                                                                                                                  -__init__(max_size=128)[source]#
                                                                                                                                                                                  +__init__(max_size=128)[source]

                                                                                                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                                                                                                  Clear cache instance.

                                                                                                                                                                                  Return type:
                                                                                                                                                                                  @@ -503,7 +503,7 @@ - + diff --git a/v9.5.0/output/pydis_core.utils.channel.html b/v9.5.0/output/pydis_core.utils.channel.html index b6f07ad5..dd243083 100644 --- a/v9.5.0/output/pydis_core.utils.channel.html +++ b/v9.5.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.5.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                  @@ -409,7 +409,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:
                                                                                                                                                                                  @@ -499,7 +499,7 @@ - + diff --git a/v9.5.0/output/pydis_core.utils.commands.html b/v9.5.0/output/pydis_core.utils.commands.html index eccdf342..11d71dd1 100644 --- a/v9.5.0/output/pydis_core.utils.commands.html +++ b/v9.5.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.5.0 - + @@ -377,10 +377,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:
                                                                                                                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v9.5.0/output/pydis_core.utils.cooldown.html b/v9.5.0/output/pydis_core.utils.cooldown.html index 61ae0cec..4b71e686 100644 --- a/v9.5.0/output/pydis_core.utils.cooldown.html +++ b/v9.5.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.5.0 - + @@ -377,21 +377,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:
                                                                                                                                                                                  @@ -407,20 +407,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:
                                                                                                                                                                                  @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.5.0/output/pydis_core.utils.function.html b/v9.5.0/output/pydis_core.utils.function.html index 46908ca7..1fcff7fc 100644 --- a/v9.5.0/output/pydis_core.utils.function.html +++ b/v9.5.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.5.0 - + @@ -377,18 +377,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.

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

                                                                                                                                                                                  - + diff --git a/v9.5.0/output/pydis_core.utils.html b/v9.5.0/output/pydis_core.utils.html index 025e78d0..88320a02 100644 --- a/v9.5.0/output/pydis_core.utils.html +++ b/v9.5.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.5.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                  @@ -400,7 +400,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:
                                                                                                                                                                                  @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                  -

                                                                                                                                                                                  Submodules#

                                                                                                                                                                                  +

                                                                                                                                                                                  Submodules

                                                                                                                                                                                  • caching
                                                                                                                                                                                      @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                  - + diff --git a/v9.5.0/output/pydis_core.utils.interactions.html b/v9.5.0/output/pydis_core.utils.interactions.html index 0cd8375a..803e0899 100644 --- a/v9.5.0/output/pydis_core.utils.interactions.html +++ b/v9.5.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.5.0 - + @@ -377,10 +377,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.

                                                                                                                                                                                  @@ -395,12 +395,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:
                                                                                                                                                                                  @@ -413,7 +413,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.

                                                                                                                                                                                  @@ -430,12 +430,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:
                                                                                                                                                                                  @@ -449,7 +449,7 @@ If None
                                                                                                                                                                                  -async on_timeout()[source]#
                                                                                                                                                                                  +async on_timeout()[source]

                                                                                                                                                                                  Remove the view from self.message if set.

                                                                                                                                                                                  Return type:
                                                                                                                                                                                  @@ -541,7 +541,7 @@ If None - + diff --git a/v9.5.0/output/pydis_core.utils.logging.html b/v9.5.0/output/pydis_core.utils.logging.html index 1116f900..c45a2992 100644 --- a/v9.5.0/output/pydis_core.utils.logging.html +++ b/v9.5.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.5.0 - + @@ -377,16 +377,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)
                                                                                                                                                                                  @@ -410,7 +410,7 @@
                                                                                                                                                                                   
                                                                                                                                                                                   
                                                                                                                                                                                  -get_logger(name=None)[source]#
                                                                                                                                                                                  +get_logger(name=None)[source]

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

                                                                                                                                                                                  Parameters:
                                                                                                                                                                                  @@ -500,7 +500,7 @@
                                                                                                                                                                                  - + diff --git a/v9.5.0/output/pydis_core.utils.members.html b/v9.5.0/output/pydis_core.utils.members.html index c76b0c08..eb49303f 100644 --- a/v9.5.0/output/pydis_core.utils.members.html +++ b/v9.5.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.5.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                  @@ -395,7 +395,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.

                                                                                                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v9.5.0/output/pydis_core.utils.regex.html b/v9.5.0/output/pydis_core.utils.regex.html index dbdb835d..c61c058b 100644 --- a/v9.5.0/output/pydis_core.utils.regex.html +++ b/v9.5.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.5.0 - + @@ -377,11 +377,11 @@
                                                                                                                                                                                  -

                                                                                                                                                                                  regex#

                                                                                                                                                                                  +

                                                                                                                                                                                  regex

                                                                                                                                                                                  Common regular expressions.

                                                                                                                                                                                  -DISCORD_INVITE[source]#
                                                                                                                                                                                  +DISCORD_INVITE[source]

                                                                                                                                                                                  Regex for Discord server invites.

                                                                                                                                                                                  Warning

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

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

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

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

                                                                                                                                                                                  @@ -482,7 +482,7 @@ such as - + diff --git a/v9.5.0/output/pydis_core.utils.scheduling.html b/v9.5.0/output/pydis_core.utils.scheduling.html index bd1a0deb..7ecf8242 100644 --- a/v9.5.0/output/pydis_core.utils.scheduling.html +++ b/v9.5.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.5.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                                                  @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                                                                                                  Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                                                  Changelog#

                                                                                                                                                                                  +

                                                                                                                                                                                  Changelog

                                                                                                                                                                                  9.5.1 2nd March 2023

                                                                                                                                                                                  • [Bug] #174: Bump Discord.py to 2.2.2.

                                                                                                                                                                                  • @@ -687,7 +687,7 @@ - + diff --git a/v9.5.1/development.html b/v9.5.1/development.html index 4b9d1c88..50ceec7e 100644 --- a/v9.5.1/development.html +++ b/v9.5.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.5.1 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                                                        @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                                                        - + diff --git a/v9.5.1/genindex.html b/v9.5.1/genindex.html index 8e9bf4de..994f52ed 100644 --- a/v9.5.1/genindex.html +++ b/v9.5.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.5.1 + Index - Pydis Core v9.5.1 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.5.1/index.html b/v9.5.1/index.html index f5f8f3c3..672a14c0 100644 --- a/v9.5.1/index.html +++ b/v9.5.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.5.1 - + @@ -377,10 +377,10 @@
                                                                                                                                                                                        -

                                                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                                                        +

                                                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                                                        -

                                                                                                                                                                                        Reference#

                                                                                                                                                                                        +

                                                                                                                                                                                        Reference

                                                                                                                                                                                        Modules:

                                                                                                                                                                                          @@ -435,7 +435,7 @@
                                                                                                                                                                                        -

                                                                                                                                                                                        Extras#

                                                                                                                                                                                        +

                                                                                                                                                                                        Extras

                                                                                                                                                                                        • Index

                                                                                                                                                                                        • Search Page

                                                                                                                                                                                        • @@ -485,7 +485,7 @@ - + diff --git a/v9.5.1/index_redirect.html b/v9.5.1/index_redirect.html index b7d88be9..0a27897f 100644 --- a/v9.5.1/index_redirect.html +++ b/v9.5.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.5.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.5.1/output/pydis_core.async_stats.html b/v9.5.1/output/pydis_core.async_stats.html index 79ebe9ad..cb58d303 100644 --- a/v9.5.1/output/pydis_core.async_stats.html +++ b/v9.5.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.5.1 - + @@ -377,16 +377,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:
                                                                                                                                                                                          @@ -403,7 +403,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:
                                                                                                                                                                                          @@ -489,7 +489,7 @@ - + diff --git a/v9.5.1/output/pydis_core.exts.html b/v9.5.1/output/pydis_core.exts.html index aa40acad..56327864 100644 --- a/v9.5.1/output/pydis_core.exts.html +++ b/v9.5.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.5.1 - + @@ -377,7 +377,7 @@
                                                                                                                                                                                          -

                                                                                                                                                                                          Exts#

                                                                                                                                                                                          +

                                                                                                                                                                                          Exts

                                                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                                                          @@ -431,7 +431,7 @@ - + diff --git a/v9.5.1/output/pydis_core.html b/v9.5.1/output/pydis_core.html index a3f18a19..2eb00dde 100644 --- a/v9.5.1/output/pydis_core.html +++ b/v9.5.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.5.1 - + @@ -377,16 +377,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:
                                                                                                                                                                                          @@ -405,7 +405,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:
                                                                                                                                                                                          @@ -416,7 +416,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:
                                                                                                                                                                                          @@ -427,7 +427,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:
                                                                                                                                                                                          @@ -438,7 +438,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:
                                                                                                                                                                                          @@ -449,7 +449,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:
                                                                                                                                                                                          @@ -463,7 +463,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:
                                                                                                                                                                                          @@ -474,7 +474,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.

                                                                                                                                                                                          @@ -487,7 +487,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:
                                                                                                                                                                                          @@ -498,7 +498,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:
                                                                                                                                                                                          @@ -509,7 +509,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.

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

                                                                                                                                                                                          @@ -551,18 +551,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
                                                                                                                                                                                          • @@ -630,7 +630,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                          -

                                                                                                                                                                                          Submodules#

                                                                                                                                                                                          +

                                                                                                                                                                                          Submodules

                                                                                                                                                                                          • async_stats
                                                                                                                                                                                              @@ -756,7 +756,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                          - + diff --git a/v9.5.1/output/pydis_core.site_api.html b/v9.5.1/output/pydis_core.site_api.html index 0d59bcd1..c7c489ba 100644 --- a/v9.5.1/output/pydis_core.site_api.html +++ b/v9.5.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.5.1 - + @@ -377,16 +377,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:
                                                                                                                                                                                          @@ -401,7 +401,7 @@
                                                                                                                                                                                          -async close()[source]#
                                                                                                                                                                                          +async close()[source]

                                                                                                                                                                                          Close the aiohttp session.

                                                                                                                                                                                          Return type:
                                                                                                                                                                                          @@ -412,7 +412,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:
                                                                                                                                                                                          @@ -433,7 +433,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:
                                                                                                                                                                                          @@ -444,7 +444,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:
                                                                                                                                                                                          @@ -464,7 +464,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:
                                                                                                                                                                                          @@ -475,7 +475,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:
                                                                                                                                                                                          @@ -486,7 +486,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:
                                                                                                                                                                                          @@ -497,7 +497,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:
                                                                                                                                                                                          @@ -524,12 +524,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:
                                                                                                                                                                                          @@ -544,7 +544,7 @@
                                                                                                                                                                                          -__str__()[source]#
                                                                                                                                                                                          +__str__()[source]

                                                                                                                                                                                          Return a string representation of the error.

                                                                                                                                                                                          @@ -637,7 +637,7 @@ - + diff --git a/v9.5.1/output/pydis_core.utils.caching.html b/v9.5.1/output/pydis_core.utils.caching.html index e9cd6532..ad7347e4 100644 --- a/v9.5.1/output/pydis_core.utils.caching.html +++ b/v9.5.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.5.1 - + @@ -377,18 +377,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:
                                                                                                                                                                                          @@ -405,7 +405,7 @@
                                                                                                                                                                                          -__init__(max_size=128)[source]#
                                                                                                                                                                                          +__init__(max_size=128)[source]

                                                                                                                                                                                          Initialise a new AsyncCache instance.

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

                                                                                                                                                                                          Clear cache instance.

                                                                                                                                                                                          Return type:
                                                                                                                                                                                          @@ -503,7 +503,7 @@ - + diff --git a/v9.5.1/output/pydis_core.utils.channel.html b/v9.5.1/output/pydis_core.utils.channel.html index 56769f90..3e7ec44a 100644 --- a/v9.5.1/output/pydis_core.utils.channel.html +++ b/v9.5.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.5.1 - + @@ -377,11 +377,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:
                                                                                                                                                                                          @@ -409,7 +409,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:
                                                                                                                                                                                          @@ -499,7 +499,7 @@ - + diff --git a/v9.5.1/output/pydis_core.utils.commands.html b/v9.5.1/output/pydis_core.utils.commands.html index 1e02b04f..d0cb0d8c 100644 --- a/v9.5.1/output/pydis_core.utils.commands.html +++ b/v9.5.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.5.1 - + @@ -377,10 +377,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:
                                                                                                                                                                                          @@ -472,7 +472,7 @@ - + diff --git a/v9.5.1/output/pydis_core.utils.cooldown.html b/v9.5.1/output/pydis_core.utils.cooldown.html index c4f38623..a36bcfb2 100644 --- a/v9.5.1/output/pydis_core.utils.cooldown.html +++ b/v9.5.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.5.1 - + @@ -377,21 +377,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:
                                                                                                                                                                                          @@ -407,20 +407,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:
                                                                                                                                                                                          @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.5.1/output/pydis_core.utils.function.html b/v9.5.1/output/pydis_core.utils.function.html index 53f5ee76..71b42027 100644 --- a/v9.5.1/output/pydis_core.utils.function.html +++ b/v9.5.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.5.1 - + @@ -377,18 +377,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.

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

                                                                                                                                                                                          - + diff --git a/v9.5.1/output/pydis_core.utils.html b/v9.5.1/output/pydis_core.utils.html index 042a85e5..25dcfaf5 100644 --- a/v9.5.1/output/pydis_core.utils.html +++ b/v9.5.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.5.1 - + @@ -377,11 +377,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:
                                                                                                                                                                                          @@ -400,7 +400,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:
                                                                                                                                                                                          @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                          -

                                                                                                                                                                                          Submodules#

                                                                                                                                                                                          +

                                                                                                                                                                                          Submodules

                                                                                                                                                                                          • caching
                                                                                                                                                                                              @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                          - + diff --git a/v9.5.1/output/pydis_core.utils.interactions.html b/v9.5.1/output/pydis_core.utils.interactions.html index 2c0eefcf..f2cfe749 100644 --- a/v9.5.1/output/pydis_core.utils.interactions.html +++ b/v9.5.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.5.1 - + @@ -377,10 +377,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.

                                                                                                                                                                                          @@ -395,12 +395,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:
                                                                                                                                                                                          @@ -413,7 +413,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.

                                                                                                                                                                                          @@ -430,12 +430,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:
                                                                                                                                                                                          @@ -449,7 +449,7 @@ If None
                                                                                                                                                                                          -async on_timeout()[source]#
                                                                                                                                                                                          +async on_timeout()[source]

                                                                                                                                                                                          Remove the view from self.message if set.

                                                                                                                                                                                          Return type:
                                                                                                                                                                                          @@ -541,7 +541,7 @@ If None - + diff --git a/v9.5.1/output/pydis_core.utils.logging.html b/v9.5.1/output/pydis_core.utils.logging.html index 9f429806..315dfb08 100644 --- a/v9.5.1/output/pydis_core.utils.logging.html +++ b/v9.5.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.5.1 - + @@ -377,16 +377,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)
                                                                                                                                                                                          @@ -410,7 +410,7 @@
                                                                                                                                                                                           
                                                                                                                                                                                           
                                                                                                                                                                                          -get_logger(name=None)[source]#
                                                                                                                                                                                          +get_logger(name=None)[source]

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

                                                                                                                                                                                          Parameters:
                                                                                                                                                                                          @@ -500,7 +500,7 @@
                                                                                                                                                                                          - + diff --git a/v9.5.1/output/pydis_core.utils.members.html b/v9.5.1/output/pydis_core.utils.members.html index 25569ab2..65084412 100644 --- a/v9.5.1/output/pydis_core.utils.members.html +++ b/v9.5.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.5.1 - + @@ -377,11 +377,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:
                                                                                                                                                                                          @@ -395,7 +395,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.

                                                                                                                                                                                          @@ -485,7 +485,7 @@ - + diff --git a/v9.5.1/output/pydis_core.utils.regex.html b/v9.5.1/output/pydis_core.utils.regex.html index c4a81497..f3212380 100644 --- a/v9.5.1/output/pydis_core.utils.regex.html +++ b/v9.5.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.5.1 - + @@ -377,11 +377,11 @@
                                                                                                                                                                                          -

                                                                                                                                                                                          regex#

                                                                                                                                                                                          +

                                                                                                                                                                                          regex

                                                                                                                                                                                          Common regular expressions.

                                                                                                                                                                                          -DISCORD_INVITE[source]#
                                                                                                                                                                                          +DISCORD_INVITE[source]

                                                                                                                                                                                          Regex for Discord server invites.

                                                                                                                                                                                          Warning

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

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

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

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

                                                                                                                                                                                          @@ -482,7 +482,7 @@ such as - + diff --git a/v9.5.1/output/pydis_core.utils.scheduling.html b/v9.5.1/output/pydis_core.utils.scheduling.html index e24666f4..7aba1ec1 100644 --- a/v9.5.1/output/pydis_core.utils.scheduling.html +++ b/v9.5.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.5.1 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                                                          @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                                                          Initialize a new Scheduler instance.

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

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

                                                                                                                                                                                          Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                                                          Changelog#

                                                                                                                                                                                          +

                                                                                                                                                                                          Changelog

                                                                                                                                                                                          9.6.0 6th May 2023

                                                                                                                                                                                          • [Feature] #175: Log when waiting for the guild to be available before loading cogs

                                                                                                                                                                                          • @@ -693,7 +693,7 @@ - + diff --git a/v9.6.0/development.html b/v9.6.0/development.html index 09759871..84bc813c 100644 --- a/v9.6.0/development.html +++ b/v9.6.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.6.0 - + @@ -377,7 +377,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. @@ -389,7 +389,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

                                                                                                                                                                                                @@ -405,7 +405,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. @@ -505,7 +505,7 @@ to help you test out certain features. Use them as needed.

                                                                                                                                                                                                - + diff --git a/v9.6.0/genindex.html b/v9.6.0/genindex.html index 4c03907b..f69dd09f 100644 --- a/v9.6.0/genindex.html +++ b/v9.6.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.6.0 + Index - Pydis Core v9.6.0 - + @@ -883,7 +883,7 @@ - + diff --git a/v9.6.0/index.html b/v9.6.0/index.html index 86806928..4cb54d24 100644 --- a/v9.6.0/index.html +++ b/v9.6.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.6.0 - + @@ -377,10 +377,10 @@
                                                                                                                                                                                                -

                                                                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                                                                +

                                                                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                                                                -

                                                                                                                                                                                                Reference#

                                                                                                                                                                                                +

                                                                                                                                                                                                Reference

                                                                                                                                                                                                Modules:

                                                                                                                                                                                                  @@ -435,7 +435,7 @@
                                                                                                                                                                                                -

                                                                                                                                                                                                Extras#

                                                                                                                                                                                                +

                                                                                                                                                                                                Extras

                                                                                                                                                                                                • Index

                                                                                                                                                                                                • Search Page

                                                                                                                                                                                                • @@ -485,7 +485,7 @@ - + diff --git a/v9.6.0/index_redirect.html b/v9.6.0/index_redirect.html index 4416f21a..afcbf427 100644 --- a/v9.6.0/index_redirect.html +++ b/v9.6.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.6.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.6.0/output/pydis_core.async_stats.html b/v9.6.0/output/pydis_core.async_stats.html index 50b954d7..09de625e 100644 --- a/v9.6.0/output/pydis_core.async_stats.html +++ b/v9.6.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.6.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                                  @@ -403,7 +403,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:
                                                                                                                                                                                                  @@ -489,7 +489,7 @@ - + diff --git a/v9.6.0/output/pydis_core.exts.html b/v9.6.0/output/pydis_core.exts.html index 942d8f44..2be1cb9d 100644 --- a/v9.6.0/output/pydis_core.exts.html +++ b/v9.6.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.6.0 - + @@ -377,7 +377,7 @@
                                                                                                                                                                                                  -

                                                                                                                                                                                                  Exts#

                                                                                                                                                                                                  +

                                                                                                                                                                                                  Exts

                                                                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                                                                  @@ -431,7 +431,7 @@ - + diff --git a/v9.6.0/output/pydis_core.html b/v9.6.0/output/pydis_core.html index c8fa33e4..962b16f9 100644 --- a/v9.6.0/output/pydis_core.html +++ b/v9.6.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.6.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                                  @@ -405,7 +405,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:
                                                                                                                                                                                                  @@ -416,7 +416,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:
                                                                                                                                                                                                  @@ -427,7 +427,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:
                                                                                                                                                                                                  @@ -438,7 +438,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:
                                                                                                                                                                                                  @@ -449,7 +449,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:
                                                                                                                                                                                                  @@ -463,7 +463,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:
                                                                                                                                                                                                  @@ -474,7 +474,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.

                                                                                                                                                                                                  @@ -487,7 +487,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:
                                                                                                                                                                                                  @@ -498,7 +498,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:
                                                                                                                                                                                                  @@ -509,7 +509,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.

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

                                                                                                                                                                                                  @@ -551,18 +551,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
                                                                                                                                                                                                  • @@ -630,7 +630,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                  -

                                                                                                                                                                                                  Submodules#

                                                                                                                                                                                                  +

                                                                                                                                                                                                  Submodules

                                                                                                                                                                                                  • async_stats
                                                                                                                                                                                                      @@ -756,7 +756,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                  - + diff --git a/v9.6.0/output/pydis_core.site_api.html b/v9.6.0/output/pydis_core.site_api.html index 05b703d5..e5263eef 100644 --- a/v9.6.0/output/pydis_core.site_api.html +++ b/v9.6.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.6.0 - + @@ -377,16 +377,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:
                                                                                                                                                                                                  @@ -401,7 +401,7 @@
                                                                                                                                                                                                  -async close()[source]#
                                                                                                                                                                                                  +async close()[source]

                                                                                                                                                                                                  Close the aiohttp session.

                                                                                                                                                                                                  Return type:
                                                                                                                                                                                                  @@ -412,7 +412,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:
                                                                                                                                                                                                  @@ -433,7 +433,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:
                                                                                                                                                                                                  @@ -444,7 +444,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:
                                                                                                                                                                                                  @@ -464,7 +464,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:
                                                                                                                                                                                                  @@ -475,7 +475,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:
                                                                                                                                                                                                  @@ -486,7 +486,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:
                                                                                                                                                                                                  @@ -497,7 +497,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:
                                                                                                                                                                                                  @@ -524,12 +524,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:
                                                                                                                                                                                                  @@ -544,7 +544,7 @@
                                                                                                                                                                                                  -__str__()[source]#
                                                                                                                                                                                                  +__str__()[source]

                                                                                                                                                                                                  Return a string representation of the error.

                                                                                                                                                                                                  @@ -637,7 +637,7 @@ - + diff --git a/v9.6.0/output/pydis_core.utils.caching.html b/v9.6.0/output/pydis_core.utils.caching.html index 1538ac7e..02384338 100644 --- a/v9.6.0/output/pydis_core.utils.caching.html +++ b/v9.6.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.6.0 - + @@ -377,18 +377,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:
                                                                                                                                                                                                  @@ -405,7 +405,7 @@
                                                                                                                                                                                                  -__init__(max_size=128)[source]#
                                                                                                                                                                                                  +__init__(max_size=128)[source]

                                                                                                                                                                                                  Initialise a new AsyncCache instance.

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

                                                                                                                                                                                                  Clear cache instance.

                                                                                                                                                                                                  Return type:
                                                                                                                                                                                                  @@ -503,7 +503,7 @@ - + diff --git a/v9.6.0/output/pydis_core.utils.channel.html b/v9.6.0/output/pydis_core.utils.channel.html index 7ee9749b..c7d72df8 100644 --- a/v9.6.0/output/pydis_core.utils.channel.html +++ b/v9.6.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.6.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                                  @@ -409,7 +409,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:
                                                                                                                                                                                                  @@ -499,7 +499,7 @@ - + diff --git a/v9.6.0/output/pydis_core.utils.commands.html b/v9.6.0/output/pydis_core.utils.commands.html index a5be8aeb..f1868dfe 100644 --- a/v9.6.0/output/pydis_core.utils.commands.html +++ b/v9.6.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.6.0 - + @@ -377,10 +377,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:
                                                                                                                                                                                                  @@ -472,7 +472,7 @@ - + diff --git a/v9.6.0/output/pydis_core.utils.cooldown.html b/v9.6.0/output/pydis_core.utils.cooldown.html index aa39c3f8..8a42983c 100644 --- a/v9.6.0/output/pydis_core.utils.cooldown.html +++ b/v9.6.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.6.0 - + @@ -377,21 +377,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:
                                                                                                                                                                                                  @@ -407,20 +407,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:
                                                                                                                                                                                                  @@ -522,7 +522,7 @@ its return value is then used to check for the cooldown instead of the raw argum - + diff --git a/v9.6.0/output/pydis_core.utils.function.html b/v9.6.0/output/pydis_core.utils.function.html index f648f119..69bc3762 100644 --- a/v9.6.0/output/pydis_core.utils.function.html +++ b/v9.6.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.6.0 - + @@ -377,18 +377,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.

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

                                                                                                                                                                                                  - + diff --git a/v9.6.0/output/pydis_core.utils.html b/v9.6.0/output/pydis_core.utils.html index 515a8f4e..c5405311 100644 --- a/v9.6.0/output/pydis_core.utils.html +++ b/v9.6.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.6.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                                  @@ -400,7 +400,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:
                                                                                                                                                                                                  @@ -416,7 +416,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                  -

                                                                                                                                                                                                  Submodules#

                                                                                                                                                                                                  +

                                                                                                                                                                                                  Submodules

                                                                                                                                                                                                  • caching
                                                                                                                                                                                                      @@ -577,7 +577,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                  - + diff --git a/v9.6.0/output/pydis_core.utils.interactions.html b/v9.6.0/output/pydis_core.utils.interactions.html index 0713c91b..3241383a 100644 --- a/v9.6.0/output/pydis_core.utils.interactions.html +++ b/v9.6.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.6.0 - + @@ -377,10 +377,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.

                                                                                                                                                                                                  @@ -395,12 +395,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:
                                                                                                                                                                                                  @@ -413,7 +413,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.

                                                                                                                                                                                                  @@ -430,12 +430,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:
                                                                                                                                                                                                  @@ -449,7 +449,7 @@ If None
                                                                                                                                                                                                  -async on_timeout()[source]#
                                                                                                                                                                                                  +async on_timeout()[source]

                                                                                                                                                                                                  Remove the view from self.message if set.

                                                                                                                                                                                                  Return type:
                                                                                                                                                                                                  @@ -541,7 +541,7 @@ If None - + diff --git a/v9.6.0/output/pydis_core.utils.logging.html b/v9.6.0/output/pydis_core.utils.logging.html index 4dff23a8..71426ed0 100644 --- a/v9.6.0/output/pydis_core.utils.logging.html +++ b/v9.6.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.6.0 - + @@ -377,16 +377,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)
                                                                                                                                                                                                  @@ -410,7 +410,7 @@
                                                                                                                                                                                                   
                                                                                                                                                                                                   
                                                                                                                                                                                                  -get_logger(name=None)[source]#
                                                                                                                                                                                                  +get_logger(name=None)[source]

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

                                                                                                                                                                                                  Parameters:
                                                                                                                                                                                                  @@ -500,7 +500,7 @@
                                                                                                                                                                                                  - + diff --git a/v9.6.0/output/pydis_core.utils.members.html b/v9.6.0/output/pydis_core.utils.members.html index 348a6a8c..8bad2b46 100644 --- a/v9.6.0/output/pydis_core.utils.members.html +++ b/v9.6.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.6.0 - + @@ -377,11 +377,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:
                                                                                                                                                                                                  @@ -395,7 +395,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.

                                                                                                                                                                                                  @@ -485,7 +485,7 @@ - + diff --git a/v9.6.0/output/pydis_core.utils.regex.html b/v9.6.0/output/pydis_core.utils.regex.html index 87854f6e..17632fa4 100644 --- a/v9.6.0/output/pydis_core.utils.regex.html +++ b/v9.6.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.6.0 - + @@ -377,11 +377,11 @@
                                                                                                                                                                                                  -

                                                                                                                                                                                                  regex#

                                                                                                                                                                                                  +

                                                                                                                                                                                                  regex

                                                                                                                                                                                                  Common regular expressions.

                                                                                                                                                                                                  -DISCORD_INVITE[source]#
                                                                                                                                                                                                  +DISCORD_INVITE[source]

                                                                                                                                                                                                  Regex for Discord server invites.

                                                                                                                                                                                                  Warning

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

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

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

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

                                                                                                                                                                                                  @@ -482,7 +482,7 @@ such as - + diff --git a/v9.6.0/output/pydis_core.utils.scheduling.html b/v9.6.0/output/pydis_core.utils.scheduling.html index 458798c0..c8c99ea8 100644 --- a/v9.6.0/output/pydis_core.utils.scheduling.html +++ b/v9.6.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.6.0 - + @@ -377,11 +377,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 @@ -395,7 +395,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:
                                                                                                                                                                                                  @@ -412,7 +412,7 @@ the same ID used to schedule it.

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

                                                                                                                                                                                                  Initialize a new Scheduler instance.

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

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

                                                                                                                                                                                                  Unschedule all known tasks.

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

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

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

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

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

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

                                                                                                                                                                                                  Changelog#

                                                                                                                                                                                                  +

                                                                                                                                                                                                  Changelog

                                                                                                                                                                                                  9.7.0 10th June 2023

                                                                                                                                                                                                  • [Feature] #176: Migrate repo to use ruff for linting

                                                                                                                                                                                                  • @@ -702,7 +702,7 @@ - + diff --git a/v9.7.0/development.html b/v9.7.0/development.html index 61f4742e..95c729c9 100644 --- a/v9.7.0/development.html +++ b/v9.7.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.7.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/v9.7.0/genindex.html b/v9.7.0/genindex.html index f34fb2dd..5989dd55 100644 --- a/v9.7.0/genindex.html +++ b/v9.7.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.7.0 + Index - Pydis Core v9.7.0 - + @@ -917,7 +917,7 @@ - + diff --git a/v9.7.0/index.html b/v9.7.0/index.html index 4c02bf12..f7d60467 100644 --- a/v9.7.0/index.html +++ b/v9.7.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.7.0 - + @@ -379,10 +379,10 @@
                                                                                                                                                                                                        -

                                                                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                                                                        -

                                                                                                                                                                                                        Reference#

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Reference

                                                                                                                                                                                                        Modules:

                                                                                                                                                                                                          @@ -437,7 +437,7 @@
                                                                                                                                                                                                        -

                                                                                                                                                                                                        Extras#

                                                                                                                                                                                                        +

                                                                                                                                                                                                        Extras

                                                                                                                                                                                                        • Index

                                                                                                                                                                                                        • Search Page

                                                                                                                                                                                                        • @@ -487,7 +487,7 @@ - + diff --git a/v9.7.0/index_redirect.html b/v9.7.0/index_redirect.html index 9d50be53..3e36deb9 100644 --- a/v9.7.0/index_redirect.html +++ b/v9.7.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.7.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.7.0/output/pydis_core.async_stats.html b/v9.7.0/output/pydis_core.async_stats.html index 4d0e68b0..61dd03d7 100644 --- a/v9.7.0/output/pydis_core.async_stats.html +++ b/v9.7.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.7.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/v9.7.0/output/pydis_core.exts.html b/v9.7.0/output/pydis_core.exts.html index 5d8dcc5b..490eb360 100644 --- a/v9.7.0/output/pydis_core.exts.html +++ b/v9.7.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.7.0 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                          -

                                                                                                                                                                                                          Exts#

                                                                                                                                                                                                          +

                                                                                                                                                                                                          Exts

                                                                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                                                                          @@ -433,7 +433,7 @@ - + diff --git a/v9.7.0/output/pydis_core.html b/v9.7.0/output/pydis_core.html index ff96dac5..093ea639 100644 --- a/v9.7.0/output/pydis_core.html +++ b/v9.7.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.7.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
                                                                                                                                                                                                          -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.

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

                                                                                                                                                                                                          @@ -553,18 +553,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
                                                                                                                                                                                                          • @@ -644,7 +644,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                          -

                                                                                                                                                                                                          Submodules#

                                                                                                                                                                                                          +

                                                                                                                                                                                                          Submodules

                                                                                                                                                                                                          • async_stats
                                                                                                                                                                                                              @@ -770,7 +770,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                          - + diff --git a/v9.7.0/output/pydis_core.site_api.html b/v9.7.0/output/pydis_core.site_api.html index 6485b519..c5b862f5 100644 --- a/v9.7.0/output/pydis_core.site_api.html +++ b/v9.7.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.caching.html b/v9.7.0/output/pydis_core.utils.caching.html index 1b9a11eb..99475d14 100644 --- a/v9.7.0/output/pydis_core.utils.caching.html +++ b/v9.7.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.channel.html b/v9.7.0/output/pydis_core.utils.channel.html index 39382853..e394793e 100644 --- a/v9.7.0/output/pydis_core.utils.channel.html +++ b/v9.7.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.commands.html b/v9.7.0/output/pydis_core.utils.commands.html index b27ac992..52a2424e 100644 --- a/v9.7.0/output/pydis_core.utils.commands.html +++ b/v9.7.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.cooldown.html b/v9.7.0/output/pydis_core.utils.cooldown.html index 2735ad8a..813b0efd 100644 --- a/v9.7.0/output/pydis_core.utils.cooldown.html +++ b/v9.7.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.error_handling.html b/v9.7.0/output/pydis_core.utils.error_handling.html index 09fb1d99..d69a7e01 100644 --- a/v9.7.0/output/pydis_core.utils.error_handling.html +++ b/v9.7.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.function.html b/v9.7.0/output/pydis_core.utils.function.html index 11c0ba56..75b332d2 100644 --- a/v9.7.0/output/pydis_core.utils.function.html +++ b/v9.7.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.html b/v9.7.0/output/pydis_core.utils.html index 09ea1288..a4412bfa 100644 --- a/v9.7.0/output/pydis_core.utils.html +++ b/v9.7.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.7.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
                                                                                                                                                                                                              @@ -591,7 +591,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                          - + diff --git a/v9.7.0/output/pydis_core.utils.interactions.html b/v9.7.0/output/pydis_core.utils.interactions.html index cbbd703a..29ff2cf4 100644 --- a/v9.7.0/output/pydis_core.utils.interactions.html +++ b/v9.7.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.7.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:
                                                                                                                                                                                                          @@ -543,7 +543,7 @@ If None - + diff --git a/v9.7.0/output/pydis_core.utils.logging.html b/v9.7.0/output/pydis_core.utils.logging.html index 787f2fd7..acf1e9a7 100644 --- a/v9.7.0/output/pydis_core.utils.logging.html +++ b/v9.7.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.members.html b/v9.7.0/output/pydis_core.utils.members.html index 99bfeb00..37a57a3e 100644 --- a/v9.7.0/output/pydis_core.utils.members.html +++ b/v9.7.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.paste_service.html b/v9.7.0/output/pydis_core.utils.paste_service.html index 6a7052d8..3a35fb91 100644 --- a/v9.7.0/output/pydis_core.utils.paste_service.html +++ b/v9.7.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.7.0 - + @@ -379,16 +379,16 @@
                                                                                                                                                                                                          -

                                                                                                                                                                                                          paste_service#

                                                                                                                                                                                                          +

                                                                                                                                                                                                          paste_service

                                                                                                                                                                                                          -MAX_PASTE_SIZE = 131072[source]#
                                                                                                                                                                                                          +MAX_PASTE_SIZE = 131072[source]

                                                                                                                                                                                                          The maximum allows size of a paste, in bytes.

                                                                                                                                                                                                          -class PasteResponse[source]#
                                                                                                                                                                                                          +class PasteResponse[source]

                                                                                                                                                                                                          Bases: TypedDict

                                                                                                                                                                                                          A successful response from the paste service.

                                                                                                                                                                                                          @@ -403,21 +403,21 @@
                                                                                                                                                                                                          -exception PasteTooLongError[source]#
                                                                                                                                                                                                          +exception PasteTooLongError[source]

                                                                                                                                                                                                          Bases: Exception

                                                                                                                                                                                                          Raised when content is too large to upload to the paste service.

                                                                                                                                                                                                          -exception PasteUploadError[source]#
                                                                                                                                                                                                          +exception PasteUploadError[source]

                                                                                                                                                                                                          Bases: Exception

                                                                                                                                                                                                          Raised when an error is encountered uploading to the paste service.

                                                                                                                                                                                                          -async send_to_paste_service(*, contents, paste_url, http_session, file_name='', lexer='python', max_size=131072)[source]#
                                                                                                                                                                                                          +async send_to_paste_service(*, contents, paste_url, http_session, file_name='', lexer='python', max_size=131072)[source]

                                                                                                                                                                                                          Upload some contents to the paste service.

                                                                                                                                                                                                          Parameters:
                                                                                                                                                                                                          @@ -521,7 +521,7 @@ - + diff --git a/v9.7.0/output/pydis_core.utils.regex.html b/v9.7.0/output/pydis_core.utils.regex.html index a3c0b06d..645bf611 100644 --- a/v9.7.0/output/pydis_core.utils.regex.html +++ b/v9.7.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.7.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/v9.7.0/output/pydis_core.utils.scheduling.html b/v9.7.0/output/pydis_core.utils.scheduling.html index 5c724a68..b5fa9cf8 100644 --- a/v9.7.0/output/pydis_core.utils.scheduling.html +++ b/v9.7.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.7.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/v9.7.0/py-modindex.html b/v9.7.0/py-modindex.html index c3ee56b8..ab88702c 100644 --- a/v9.7.0/py-modindex.html +++ b/v9.7.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.7.0 + Python Module Index - Pydis Core v9.7.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.7.0/search.html b/v9.7.0/search.html index 9bcc9aa9..f576d618 100644 --- a/v9.7.0/search.html +++ b/v9.7.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.7.0 + Search - Pydis Core v9.7.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.7.0/searchindex.js b/v9.7.0/searchindex.js index a4e86225..d49a4e63 100644 --- a/v9.7.0/searchindex.js +++ b/v9.7.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": {"9": 0, "7": 0, "0": [0, 8, 14, 15], "10th": 0, "june": 0, "2023": 0, "featur": [0, 1, 3], "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "ruff": 0, "lint": 0, "177": 0, "automat": 0, "handl": [0, 12, 16, 19], "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "forbidden": [0, 9, 12], "90001": [0, 12], "error": [0, 3, 6, 7, 12, 16, 17], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "add": [0, 3, 11], "past": [0, 17, 19], "servic": [0, 1, 3, 17], "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "support": [0, 4, 7, 19], "bump": 0, "py": [0, 13], "2": [0, 3, 14], "3": 0, "5": [0, 11], "1": [0, 15], "2nd": 0, "march": 0, "bug": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "task": [0, 19], "23rd": 0, "170": 0, "save": [0, 3, 17], "refer": 0, "newli": 0, "creat": [0, 3, 4, 8, 11, 13, 19], "13th": 0, "169": 0, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "pypi": 0, "8": 0, "18th": 0, "septemb": 0, "138": 0, "august": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "updat": [0, 13], "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 18], "option": [0, 8], "match": [0, 3], "lead": 0, "http": [0, 6, 18], "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "juli": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "url": [0, 3, 6, 17], "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], "actual": 0, "now": [0, 1, 19], "25th": 0, "69": 0, "get": [0, 3, 6, 9, 16], "21st": 0, "68": 0, "correct": [0, 1], "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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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], "22nd": 0, "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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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], "default": 1, "mention": [1, 3], "allowed_rol": [1, 3, 14], "A": [1, 3, 6, 7, 8, 9, 11, 13, 14, 17, 19], "comma": 1, "seper": 1, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "For": 13, "__global__": 13, "state": 13, "won": 13, "reflect": 13, "typehint": 13, "style": 14, "secondari": 14, "label": 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, "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, "131072": 17, "byte": 17, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "encount": 17, "paste_url": 17, "file_nam": 17, "lexer": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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": {"site_api": [[6, "module-pydis_core.site_api"]], "caching": [[8, "module-pydis_core.utils.caching"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Exts": [[5, "module-pydis_core.exts"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "members": [[16, "module-pydis_core.utils.members"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "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"]], "commands": [[10, "module-pydis_core.utils.commands"]], "function": [[13, "module-pydis_core.utils.function"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "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"]], "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"]], "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"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[17, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteuploaderror": [[17, "pydis_core.utils.paste_service.PasteUploadError"]], "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]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "131072": 17, "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, "18th": 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, "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], "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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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, "channel": [0, 3, 7, 11], "channel_id": 9, "charact": 0, "check": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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], "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, "configur": 1, "conflict": 13, "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], "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], "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": 1, "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, "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": [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": [1, 19], "expect": 16, "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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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, 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": [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": 14, "lancebot": 1, "larg": 17, "larger": 17, "last": 14, "latest": 0, "lead": 0, "length": 11, "level": [7, 15], "lexer": 17, "librari": 1, "like": [1, 13], "link": 17, "lint": 0, "list": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "moder": 14, "modifi": [1, 16], "modul": [0, 3, 7, 13, 19], "monitor": 1, "monkei": [0, 7], "more": [1, 13], "most": 1, "move": 0, "msg": 15, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pasterespons": [3, 7, 17], "pastetoolongerror": [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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "put": [3, 6], "py": [0, 13], "pydi": 2, "pydis_cor": [0, 1, 3, 14], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 17, 19], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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, "until": [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, "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/v9.7.0/versions.html b/v9.7.0/versions.html index a6d212cc..e6486249 100644 --- a/v9.7.0/versions.html +++ b/v9.7.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.7.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.8.0/.buildinfo b/v9.8.0/.buildinfo index a371da5b..67b6dbfd 100644 --- a/v9.8.0/.buildinfo +++ b/v9.8.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: 982fcc5f795b46b296eff0ce8617ded7 +config: 4037d83ed9c7c8740139ee0e8386d26b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.8.0/_static/basic.css b/v9.8.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.8.0/_static/basic.css +++ b/v9.8.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/v9.8.0/_static/doctools.js b/v9.8.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.8.0/_static/doctools.js +++ b/v9.8.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/v9.8.0/_static/language_data.js b/v9.8.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.8.0/_static/language_data.js +++ b/v9.8.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/v9.8.0/_static/searchtools.js b/v9.8.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.8.0/_static/searchtools.js +++ b/v9.8.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/v9.8.0/changelog.html b/v9.8.0/changelog.html index 4a0628da..8ebdebd7 100644 --- a/v9.8.0/changelog.html +++ b/v9.8.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.8.0 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                          -

                                                                                                                                                                                                          Changelog#

                                                                                                                                                                                                          +

                                                                                                                                                                                                          Changelog

                                                                                                                                                                                                          9.8.0 13th June 2023

                                                                                                                                                                                                          • [Support] #181: Bump Discord.py to 2.3.0.

                                                                                                                                                                                                          • @@ -707,7 +707,7 @@ - + diff --git a/v9.8.0/development.html b/v9.8.0/development.html index 65f4b76f..57b465fc 100644 --- a/v9.8.0/development.html +++ b/v9.8.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.8.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/v9.8.0/genindex.html b/v9.8.0/genindex.html index f26cbf72..5190b233 100644 --- a/v9.8.0/genindex.html +++ b/v9.8.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.8.0 + Index - Pydis Core v9.8.0 - + @@ -917,7 +917,7 @@ - + diff --git a/v9.8.0/index.html b/v9.8.0/index.html index 466aaf04..709103f2 100644 --- a/v9.8.0/index.html +++ b/v9.8.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.8.0 - + @@ -379,10 +379,10 @@
                                                                                                                                                                                                                -

                                                                                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                                                                                +

                                                                                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                                                                                -

                                                                                                                                                                                                                Reference#

                                                                                                                                                                                                                +

                                                                                                                                                                                                                Reference

                                                                                                                                                                                                                Modules:

                                                                                                                                                                                                                  @@ -437,7 +437,7 @@
                                                                                                                                                                                                                -

                                                                                                                                                                                                                Extras#

                                                                                                                                                                                                                +

                                                                                                                                                                                                                Extras

                                                                                                                                                                                                                • Index

                                                                                                                                                                                                                • Search Page

                                                                                                                                                                                                                • @@ -487,7 +487,7 @@ - + diff --git a/v9.8.0/index_redirect.html b/v9.8.0/index_redirect.html index 737879cf..931be2fb 100644 --- a/v9.8.0/index_redirect.html +++ b/v9.8.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.8.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.8.0/output/pydis_core.async_stats.html b/v9.8.0/output/pydis_core.async_stats.html index 49ff3421..f900cb54 100644 --- a/v9.8.0/output/pydis_core.async_stats.html +++ b/v9.8.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.8.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/v9.8.0/output/pydis_core.exts.html b/v9.8.0/output/pydis_core.exts.html index c1cfd833..85790644 100644 --- a/v9.8.0/output/pydis_core.exts.html +++ b/v9.8.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.8.0 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                  -

                                                                                                                                                                                                                  Exts#

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Exts

                                                                                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                                                                                  @@ -433,7 +433,7 @@ - + diff --git a/v9.8.0/output/pydis_core.html b/v9.8.0/output/pydis_core.html index 020625c2..f02a1b40 100644 --- a/v9.8.0/output/pydis_core.html +++ b/v9.8.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.8.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
                                                                                                                                                                                                                  -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.

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

                                                                                                                                                                                                                  @@ -553,18 +553,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
                                                                                                                                                                                                                  • @@ -644,7 +644,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                  -

                                                                                                                                                                                                                  Submodules#

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Submodules

                                                                                                                                                                                                                  • async_stats
                                                                                                                                                                                                                      @@ -770,7 +770,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                  - + diff --git a/v9.8.0/output/pydis_core.site_api.html b/v9.8.0/output/pydis_core.site_api.html index 193cb2bc..b636ef34 100644 --- a/v9.8.0/output/pydis_core.site_api.html +++ b/v9.8.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.caching.html b/v9.8.0/output/pydis_core.utils.caching.html index f2a58e73..b1863b17 100644 --- a/v9.8.0/output/pydis_core.utils.caching.html +++ b/v9.8.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.channel.html b/v9.8.0/output/pydis_core.utils.channel.html index 8d36030d..c82ef0a8 100644 --- a/v9.8.0/output/pydis_core.utils.channel.html +++ b/v9.8.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.commands.html b/v9.8.0/output/pydis_core.utils.commands.html index 2aabc494..693d8d1d 100644 --- a/v9.8.0/output/pydis_core.utils.commands.html +++ b/v9.8.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.cooldown.html b/v9.8.0/output/pydis_core.utils.cooldown.html index 1c55dcba..c21e804d 100644 --- a/v9.8.0/output/pydis_core.utils.cooldown.html +++ b/v9.8.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.error_handling.html b/v9.8.0/output/pydis_core.utils.error_handling.html index 9ab591f0..95dc411e 100644 --- a/v9.8.0/output/pydis_core.utils.error_handling.html +++ b/v9.8.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.function.html b/v9.8.0/output/pydis_core.utils.function.html index 5204b2bb..89e569ba 100644 --- a/v9.8.0/output/pydis_core.utils.function.html +++ b/v9.8.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.html b/v9.8.0/output/pydis_core.utils.html index f3f0eeb8..ae041a62 100644 --- a/v9.8.0/output/pydis_core.utils.html +++ b/v9.8.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.8.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
                                                                                                                                                                                                                      @@ -591,7 +591,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                                  - + diff --git a/v9.8.0/output/pydis_core.utils.interactions.html b/v9.8.0/output/pydis_core.utils.interactions.html index d4ef61f9..c3eafe52 100644 --- a/v9.8.0/output/pydis_core.utils.interactions.html +++ b/v9.8.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.8.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:
                                                                                                                                                                                                                  @@ -543,7 +543,7 @@ If None - + diff --git a/v9.8.0/output/pydis_core.utils.logging.html b/v9.8.0/output/pydis_core.utils.logging.html index b25658c3..1c703e2c 100644 --- a/v9.8.0/output/pydis_core.utils.logging.html +++ b/v9.8.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.members.html b/v9.8.0/output/pydis_core.utils.members.html index b82508a0..51458f42 100644 --- a/v9.8.0/output/pydis_core.utils.members.html +++ b/v9.8.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.paste_service.html b/v9.8.0/output/pydis_core.utils.paste_service.html index 29d5ddc4..d118aef6 100644 --- a/v9.8.0/output/pydis_core.utils.paste_service.html +++ b/v9.8.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.8.0 - + @@ -379,16 +379,16 @@
                                                                                                                                                                                                                  -

                                                                                                                                                                                                                  paste_service#

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  paste_service

                                                                                                                                                                                                                  -MAX_PASTE_SIZE = 131072[source]#
                                                                                                                                                                                                                  +MAX_PASTE_SIZE = 131072[source]

                                                                                                                                                                                                                  The maximum allows size of a paste, in bytes.

                                                                                                                                                                                                                  -class PasteResponse[source]#
                                                                                                                                                                                                                  +class PasteResponse[source]

                                                                                                                                                                                                                  Bases: TypedDict

                                                                                                                                                                                                                  A successful response from the paste service.

                                                                                                                                                                                                                  @@ -403,21 +403,21 @@
                                                                                                                                                                                                                  -exception PasteTooLongError[source]#
                                                                                                                                                                                                                  +exception PasteTooLongError[source]

                                                                                                                                                                                                                  Bases: Exception

                                                                                                                                                                                                                  Raised when content is too large to upload to the paste service.

                                                                                                                                                                                                                  -exception PasteUploadError[source]#
                                                                                                                                                                                                                  +exception PasteUploadError[source]

                                                                                                                                                                                                                  Bases: Exception

                                                                                                                                                                                                                  Raised when an error is encountered uploading to the paste service.

                                                                                                                                                                                                                  -async send_to_paste_service(*, contents, paste_url, http_session, file_name='', lexer='python', max_size=131072)[source]#
                                                                                                                                                                                                                  +async send_to_paste_service(*, contents, paste_url, http_session, file_name='', lexer='python', max_size=131072)[source]

                                                                                                                                                                                                                  Upload some contents to the paste service.

                                                                                                                                                                                                                  Parameters:
                                                                                                                                                                                                                  @@ -521,7 +521,7 @@ - + diff --git a/v9.8.0/output/pydis_core.utils.regex.html b/v9.8.0/output/pydis_core.utils.regex.html index b3a1b8d2..a5d3cf4c 100644 --- a/v9.8.0/output/pydis_core.utils.regex.html +++ b/v9.8.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.8.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/v9.8.0/output/pydis_core.utils.scheduling.html b/v9.8.0/output/pydis_core.utils.scheduling.html index 5b46f95f..22bbedf6 100644 --- a/v9.8.0/output/pydis_core.utils.scheduling.html +++ b/v9.8.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.8.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/v9.8.0/py-modindex.html b/v9.8.0/py-modindex.html index 0e7f9843..a6c27b45 100644 --- a/v9.8.0/py-modindex.html +++ b/v9.8.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.8.0 + Python Module Index - Pydis Core v9.8.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.8.0/search.html b/v9.8.0/search.html index 255d7fbe..4f864054 100644 --- a/v9.8.0/search.html +++ b/v9.8.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.8.0 + Search - Pydis Core v9.8.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.8.0/searchindex.js b/v9.8.0/searchindex.js index 498a7f80..9f708b5b 100644 --- a/v9.8.0/searchindex.js +++ b/v9.8.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": {"9": 0, "8": 0, "0": [0, 8, 14, 15], "13th": 0, "june": 0, "2023": 0, "support": [0, 4, 7, 19], "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "2": [0, 3, 14], "3": 0, "7": 0, "10th": 0, "featur": [0, 1, 3], "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "add": [0, 3, 11], "past": [0, 17, 19], "servic": [0, 1, 3, 17], "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "1": [0, 15], "2nd": 0, "march": 0, "bug": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "pypi": 0, "18th": 0, "septemb": 0, "138": 0, "august": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "updat": [0, 13], "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 18], "option": [0, 8], "match": [0, 3], "lead": 0, "http": [0, 6, 18], "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "juli": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "url": [0, 3, 6, 17], "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], "actual": 0, "now": [0, 1, 19], "25th": 0, "69": 0, "get": [0, 3, 6, 9, 16], "21st": 0, "68": 0, "correct": [0, 1], "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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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], "22nd": 0, "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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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], "default": 1, "mention": [1, 3], "allowed_rol": [1, 3, 14], "A": [1, 3, 6, 7, 8, 9, 11, 13, 14, 17, 19], "comma": 1, "seper": 1, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "For": 13, "__global__": 13, "state": 13, "won": 13, "reflect": 13, "typehint": 13, "style": 14, "secondari": 14, "label": 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, "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, "131072": 17, "byte": 17, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "encount": 17, "paste_url": 17, "file_nam": 17, "lexer": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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": {"Exts": [[5, "module-pydis_core.exts"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "channel": [[9, "module-pydis_core.utils.channel"]], "site_api": [[6, "module-pydis_core.site_api"]], "caching": [[8, "module-pydis_core.utils.caching"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "logging": [[15, "module-pydis_core.utils.logging"]], "regex": [[18, "module-pydis_core.utils.regex"]], "members": [[16, "module-pydis_core.utils.members"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Changelog": [[0, "changelog"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "function": [[13, "module-pydis_core.utils.function"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "commands": [[10, "module-pydis_core.utils.commands"]]}, "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"]], "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"]], "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"]], "pasteresponse (class in pydis_core.utils.paste_service)": [[17, "pydis_core.utils.paste_service.PasteResponse"]], "pastetoolongerror": [[17, "pydis_core.utils.paste_service.PasteTooLongError"]], "pasteuploaderror": [[17, "pydis_core.utils.paste_service.PasteUploadError"]], "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]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "131072": 17, "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, "18th": 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, "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], "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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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, "channel": [0, 3, 7, 11], "channel_id": 9, "charact": 0, "check": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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], "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, "configur": 1, "conflict": 13, "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], "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], "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": 1, "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, "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": [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": [1, 19], "expect": 16, "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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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, 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": [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": 14, "lancebot": 1, "larg": 17, "larger": 17, "last": 14, "latest": 0, "lead": 0, "length": 11, "level": [7, 15], "lexer": 17, "librari": 1, "like": [1, 13], "link": 17, "lint": 0, "list": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "moder": 14, "modifi": [1, 16], "modul": [0, 3, 7, 13, 19], "monitor": 1, "monkei": [0, 7], "more": [1, 13], "most": 1, "move": 0, "msg": 15, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pasterespons": [3, 7, 17], "pastetoolongerror": [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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "put": [3, 6], "py": [0, 13], "pydi": 2, "pydis_cor": [0, 1, 3, 14], "pypi": 0, "pyproject": [0, 1], "python": [0, 1, 3, 17, 19], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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, "until": [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, "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/v9.8.0/versions.html b/v9.8.0/versions.html index 00445516..f4e0801f 100644 --- a/v9.8.0/versions.html +++ b/v9.8.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.8.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.9.0/.buildinfo b/v9.9.0/.buildinfo index c683c25a..4b5e519f 100644 --- a/v9.9.0/.buildinfo +++ b/v9.9.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: cff2cbecfc273fdb35086dea3aeb9f03 +config: 4bfa88d50605df44e85e39b22bc681a9 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.9.0/_static/basic.css b/v9.9.0/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.9.0/_static/basic.css +++ b/v9.9.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/v9.9.0/_static/doctools.js b/v9.9.0/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.9.0/_static/doctools.js +++ b/v9.9.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/v9.9.0/_static/language_data.js b/v9.9.0/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.9.0/_static/language_data.js +++ b/v9.9.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/v9.9.0/_static/searchtools.js b/v9.9.0/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.9.0/_static/searchtools.js +++ b/v9.9.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/v9.9.0/changelog.html b/v9.9.0/changelog.html index 174d242d..7d588322 100644 --- a/v9.9.0/changelog.html +++ b/v9.9.0/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.9.0 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                  -

                                                                                                                                                                                                                  Changelog#

                                                                                                                                                                                                                  +

                                                                                                                                                                                                                  Changelog

                                                                                                                                                                                                                  9.9.0 18th June 2023

                                                                                                                                                                                                                  • [Feature] #182: Add supported lexer validation to paste service.

                                                                                                                                                                                                                  • @@ -713,7 +713,7 @@ - + diff --git a/v9.9.0/development.html b/v9.9.0/development.html index 86ac43c9..fe90552d 100644 --- a/v9.9.0/development.html +++ b/v9.9.0/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.9.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/v9.9.0/genindex.html b/v9.9.0/genindex.html index 4a09a9a9..1638d63d 100644 --- a/v9.9.0/genindex.html +++ b/v9.9.0/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.9.0 + Index - Pydis Core v9.9.0 - + @@ -919,7 +919,7 @@ - + diff --git a/v9.9.0/index.html b/v9.9.0/index.html index 7026918b..fb02a4f7 100644 --- a/v9.9.0/index.html +++ b/v9.9.0/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.9.0 - + @@ -379,10 +379,10 @@
                                                                                                                                                                                                                        -

                                                                                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                                                                                        -

                                                                                                                                                                                                                        Reference#

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Reference

                                                                                                                                                                                                                        Modules:

                                                                                                                                                                                                                          @@ -437,7 +437,7 @@
                                                                                                                                                                                                                        -

                                                                                                                                                                                                                        Extras#

                                                                                                                                                                                                                        +

                                                                                                                                                                                                                        Extras

                                                                                                                                                                                                                        • Index

                                                                                                                                                                                                                        • Search Page

                                                                                                                                                                                                                        • @@ -487,7 +487,7 @@ - + diff --git a/v9.9.0/index_redirect.html b/v9.9.0/index_redirect.html index 0671f662..7df5d0fc 100644 --- a/v9.9.0/index_redirect.html +++ b/v9.9.0/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.9.0 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.9.0/output/pydis_core.async_stats.html b/v9.9.0/output/pydis_core.async_stats.html index 6dc04692..aa1c44cb 100644 --- a/v9.9.0/output/pydis_core.async_stats.html +++ b/v9.9.0/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.9.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/v9.9.0/output/pydis_core.exts.html b/v9.9.0/output/pydis_core.exts.html index 5d33c500..4af5f781 100644 --- a/v9.9.0/output/pydis_core.exts.html +++ b/v9.9.0/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.9.0 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                          -

                                                                                                                                                                                                                          Exts#

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Exts

                                                                                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                                                                                          @@ -433,7 +433,7 @@ - + diff --git a/v9.9.0/output/pydis_core.html b/v9.9.0/output/pydis_core.html index 076d85cc..a10d6d3d 100644 --- a/v9.9.0/output/pydis_core.html +++ b/v9.9.0/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.9.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
                                                                                                                                                                                                                          -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.

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

                                                                                                                                                                                                                          @@ -553,18 +553,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
                                                                                                                                                                                                                          • @@ -645,7 +645,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                          -

                                                                                                                                                                                                                          Submodules#

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Submodules

                                                                                                                                                                                                                          • async_stats
                                                                                                                                                                                                                              @@ -771,7 +771,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                          - + diff --git a/v9.9.0/output/pydis_core.site_api.html b/v9.9.0/output/pydis_core.site_api.html index 58d5d5e6..bed748ad 100644 --- a/v9.9.0/output/pydis_core.site_api.html +++ b/v9.9.0/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.caching.html b/v9.9.0/output/pydis_core.utils.caching.html index 67ef59c7..ece45de8 100644 --- a/v9.9.0/output/pydis_core.utils.caching.html +++ b/v9.9.0/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.channel.html b/v9.9.0/output/pydis_core.utils.channel.html index 534c2fb7..afecb9bf 100644 --- a/v9.9.0/output/pydis_core.utils.channel.html +++ b/v9.9.0/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.commands.html b/v9.9.0/output/pydis_core.utils.commands.html index 879ce57a..4d9529f2 100644 --- a/v9.9.0/output/pydis_core.utils.commands.html +++ b/v9.9.0/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.cooldown.html b/v9.9.0/output/pydis_core.utils.cooldown.html index 69847fa4..c50dac3d 100644 --- a/v9.9.0/output/pydis_core.utils.cooldown.html +++ b/v9.9.0/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.error_handling.html b/v9.9.0/output/pydis_core.utils.error_handling.html index 63f4a22c..d827df6f 100644 --- a/v9.9.0/output/pydis_core.utils.error_handling.html +++ b/v9.9.0/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.function.html b/v9.9.0/output/pydis_core.utils.function.html index 01161bfb..06c2a717 100644 --- a/v9.9.0/output/pydis_core.utils.function.html +++ b/v9.9.0/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.html b/v9.9.0/output/pydis_core.utils.html index 205e9f3a..562e4bf2 100644 --- a/v9.9.0/output/pydis_core.utils.html +++ b/v9.9.0/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.9.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
                                                                                                                                                                                                                              @@ -592,7 +592,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                                          - + diff --git a/v9.9.0/output/pydis_core.utils.interactions.html b/v9.9.0/output/pydis_core.utils.interactions.html index 3f6b2bf2..d0ec89e3 100644 --- a/v9.9.0/output/pydis_core.utils.interactions.html +++ b/v9.9.0/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.9.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:
                                                                                                                                                                                                                          @@ -543,7 +543,7 @@ If None - + diff --git a/v9.9.0/output/pydis_core.utils.logging.html b/v9.9.0/output/pydis_core.utils.logging.html index 7b7d84d2..51eaf13a 100644 --- a/v9.9.0/output/pydis_core.utils.logging.html +++ b/v9.9.0/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.members.html b/v9.9.0/output/pydis_core.utils.members.html index 392065a4..09890448 100644 --- a/v9.9.0/output/pydis_core.utils.members.html +++ b/v9.9.0/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.paste_service.html b/v9.9.0/output/pydis_core.utils.paste_service.html index 52abd031..7ca5e7a6 100644 --- a/v9.9.0/output/pydis_core.utils.paste_service.html +++ b/v9.9.0/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.9.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 PasteResponse[source]#
                                                                                                                                                                                                                          +class PasteResponse[source]

                                                                                                                                                                                                                          Bases: TypedDict

                                                                                                                                                                                                                          A successful response from the paste service.

                                                                                                                                                                                                                          @@ -403,28 +403,28 @@
                                                                                                                                                                                                                          -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(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
                                                                                                                                                                                                                          +async send_to_paste_service(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]

                                                                                                                                                                                                                          Upload some contents to the paste service.

                                                                                                                                                                                                                          Parameters:
                                                                                                                                                                                                                          @@ -529,7 +529,7 @@ - + diff --git a/v9.9.0/output/pydis_core.utils.regex.html b/v9.9.0/output/pydis_core.utils.regex.html index 562f7435..7dfaf435 100644 --- a/v9.9.0/output/pydis_core.utils.regex.html +++ b/v9.9.0/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.9.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/v9.9.0/output/pydis_core.utils.scheduling.html b/v9.9.0/output/pydis_core.utils.scheduling.html index e9a77433..8037d5c5 100644 --- a/v9.9.0/output/pydis_core.utils.scheduling.html +++ b/v9.9.0/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.9.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/v9.9.0/py-modindex.html b/v9.9.0/py-modindex.html index 8bccc44b..d36c803f 100644 --- a/v9.9.0/py-modindex.html +++ b/v9.9.0/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.9.0 + Python Module Index - Pydis Core v9.9.0 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.9.0/search.html b/v9.9.0/search.html index 69975365..7ce724ca 100644 --- a/v9.9.0/search.html +++ b/v9.9.0/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.9.0 + Search - Pydis Core v9.9.0 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.9.0/searchindex.js b/v9.9.0/searchindex.js index 641bd14d..c7fbd0d9 100644 --- a/v9.9.0/searchindex.js +++ b/v9.9.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": {"9": 0, "0": [0, 8, 14, 15], "18th": 0, "june": 0, "2023": 0, "featur": [0, 1, 3], "182": 0, "add": [0, 3, 11], "support": [0, 4, 7, 19], "lexer": [0, 17], "valid": 0, "past": [0, 17, 19], "servic": [0, 1, 3, 17], "default": [0, 1], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "2": [0, 3, 14], "3": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "1": [0, 15], "2nd": 0, "march": 0, "bug": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "pypi": 0, "septemb": 0, "138": 0, "august": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "updat": [0, 13], "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 18], "option": [0, 8], "match": [0, 3], "lead": 0, "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "juli": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "actual": 0, "now": [0, 1, 19], "25th": 0, "69": 0, "get": [0, 3, 6, 9, 16], "21st": 0, "68": 0, "correct": [0, 1], "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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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], "22nd": 0, "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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "For": 13, "__global__": 13, "state": 13, "won": 13, "reflect": 13, "typehint": 13, "style": 14, "secondari": 14, "label": 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, "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, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "file_nam": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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": {"channel": [[9, "module-pydis_core.utils.channel"]], "site_api": [[6, "module-pydis_core.site_api"]], "Exts": [[5, "module-pydis_core.exts"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Utils": [[7, "module-pydis_core.utils"]], "Submodules": [[7, "submodules"], [3, "submodules"]], "logging": [[15, "module-pydis_core.utils.logging"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "regex": [[18, "module-pydis_core.utils.regex"]], "members": [[16, "module-pydis_core.utils.members"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "commands": [[10, "module-pydis_core.utils.commands"]], "function": [[13, "module-pydis_core.utils.function"]]}, "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"]], "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"]], "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"]], "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"]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "18th": 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, "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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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, "channel": [0, 3, 7, 11], "channel_id": 9, "charact": 0, "check": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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, "configur": 1, "conflict": 13, "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], "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], "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1], "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, "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": [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": [1, 19], "expect": 16, "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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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": [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": 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": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "moder": 14, "modifi": [1, 16], "modul": [0, 3, 7, 13, 19], "monitor": 1, "monkei": [0, 7], "more": [1, 13], "most": 1, "move": 0, "msg": 15, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pastebin": 0, "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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "put": [3, 6], "py": [0, 13], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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": [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, "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/v9.9.0/versions.html b/v9.9.0/versions.html index ace38b43..9ac52d1b 100644 --- a/v9.9.0/versions.html +++ b/v9.9.0/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.9.0 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.9.1/.buildinfo b/v9.9.1/.buildinfo index 4711c27a..8ecf4efa 100644 --- a/v9.9.1/.buildinfo +++ b/v9.9.1/.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: c01643e07e54a05ff738aa94765d7906 +config: c04fd8743d82f33cb074f277d10f61ce tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.9.1/_static/basic.css b/v9.9.1/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.9.1/_static/basic.css +++ b/v9.9.1/_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/v9.9.1/_static/doctools.js b/v9.9.1/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.9.1/_static/doctools.js +++ b/v9.9.1/_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/v9.9.1/_static/language_data.js b/v9.9.1/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.9.1/_static/language_data.js +++ b/v9.9.1/_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/v9.9.1/_static/searchtools.js b/v9.9.1/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.9.1/_static/searchtools.js +++ b/v9.9.1/_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/v9.9.1/changelog.html b/v9.9.1/changelog.html index 38a4e643..e175effe 100644 --- a/v9.9.1/changelog.html +++ b/v9.9.1/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.9.1 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                          -

                                                                                                                                                                                                                          Changelog#

                                                                                                                                                                                                                          +

                                                                                                                                                                                                                          Changelog

                                                                                                                                                                                                                          9.9.0 22th June 2023

                                                                                                                                                                                                                          • [Bug] #183: Push the correct changeset to pypi.

                                                                                                                                                                                                                          • @@ -718,7 +718,7 @@ - + diff --git a/v9.9.1/development.html b/v9.9.1/development.html index 04e49436..a7682234 100644 --- a/v9.9.1/development.html +++ b/v9.9.1/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.9.1 - + @@ -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/v9.9.1/genindex.html b/v9.9.1/genindex.html index 6c1ed32c..3dc5f50d 100644 --- a/v9.9.1/genindex.html +++ b/v9.9.1/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.9.1 + Index - Pydis Core v9.9.1 - + @@ -919,7 +919,7 @@ - + diff --git a/v9.9.1/index.html b/v9.9.1/index.html index d05cc1fc..5906a1fe 100644 --- a/v9.9.1/index.html +++ b/v9.9.1/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.9.1 - + @@ -379,10 +379,10 @@
                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                Bot Core Project Documentation#

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Bot Core Project Documentation

                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                Reference#

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Reference

                                                                                                                                                                                                                                Modules:

                                                                                                                                                                                                                                  @@ -437,7 +437,7 @@
                                                                                                                                                                                                                                -

                                                                                                                                                                                                                                Extras#

                                                                                                                                                                                                                                +

                                                                                                                                                                                                                                Extras

                                                                                                                                                                                                                                • Index

                                                                                                                                                                                                                                • Search Page

                                                                                                                                                                                                                                • @@ -487,7 +487,7 @@ - + diff --git a/v9.9.1/index_redirect.html b/v9.9.1/index_redirect.html index 226f20bc..df6915f9 100644 --- a/v9.9.1/index_redirect.html +++ b/v9.9.1/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.9.1 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.9.1/output/pydis_core.async_stats.html b/v9.9.1/output/pydis_core.async_stats.html index 4e4d0b62..aa4689da 100644 --- a/v9.9.1/output/pydis_core.async_stats.html +++ b/v9.9.1/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.exts.html b/v9.9.1/output/pydis_core.exts.html index 2de59ab2..51ea8a4f 100644 --- a/v9.9.1/output/pydis_core.exts.html +++ b/v9.9.1/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.9.1 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                  Exts#

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Exts

                                                                                                                                                                                                                                  Reusable Discord cogs.

                                                                                                                                                                                                                                  @@ -433,7 +433,7 @@ - + diff --git a/v9.9.1/output/pydis_core.html b/v9.9.1/output/pydis_core.html index 29f1f19a..eb58b5a0 100644 --- a/v9.9.1/output/pydis_core.html +++ b/v9.9.1/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.9.1 - + @@ -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
                                                                                                                                                                                                                                  -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.

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

                                                                                                                                                                                                                                  @@ -553,18 +553,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
                                                                                                                                                                                                                                  • @@ -645,7 +645,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                  Submodules#

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Submodules

                                                                                                                                                                                                                                  • async_stats
                                                                                                                                                                                                                                      @@ -771,7 +771,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                                  - + diff --git a/v9.9.1/output/pydis_core.site_api.html b/v9.9.1/output/pydis_core.site_api.html index fb65854b..f72a487b 100644 --- a/v9.9.1/output/pydis_core.site_api.html +++ b/v9.9.1/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.caching.html b/v9.9.1/output/pydis_core.utils.caching.html index f96ee568..0d823030 100644 --- a/v9.9.1/output/pydis_core.utils.caching.html +++ b/v9.9.1/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.channel.html b/v9.9.1/output/pydis_core.utils.channel.html index 4f523ecc..5c212f57 100644 --- a/v9.9.1/output/pydis_core.utils.channel.html +++ b/v9.9.1/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.commands.html b/v9.9.1/output/pydis_core.utils.commands.html index c9745e1d..0740f39a 100644 --- a/v9.9.1/output/pydis_core.utils.commands.html +++ b/v9.9.1/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.cooldown.html b/v9.9.1/output/pydis_core.utils.cooldown.html index f1d4965c..293f2ab5 100644 --- a/v9.9.1/output/pydis_core.utils.cooldown.html +++ b/v9.9.1/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.error_handling.html b/v9.9.1/output/pydis_core.utils.error_handling.html index 3417d6aa..ff23a7b1 100644 --- a/v9.9.1/output/pydis_core.utils.error_handling.html +++ b/v9.9.1/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.function.html b/v9.9.1/output/pydis_core.utils.function.html index 407ffb88..75e98c80 100644 --- a/v9.9.1/output/pydis_core.utils.function.html +++ b/v9.9.1/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.html b/v9.9.1/output/pydis_core.utils.html index 387fcbaa..7f58d210 100644 --- a/v9.9.1/output/pydis_core.utils.html +++ b/v9.9.1/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.9.1 - + @@ -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
                                                                                                                                                                                                                                      @@ -592,7 +592,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                                                  - + diff --git a/v9.9.1/output/pydis_core.utils.interactions.html b/v9.9.1/output/pydis_core.utils.interactions.html index 704a73c7..9fd9786a 100644 --- a/v9.9.1/output/pydis_core.utils.interactions.html +++ b/v9.9.1/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.9.1 - + @@ -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:
                                                                                                                                                                                                                                  @@ -543,7 +543,7 @@ If None - + diff --git a/v9.9.1/output/pydis_core.utils.logging.html b/v9.9.1/output/pydis_core.utils.logging.html index 070d07e0..ffd58e41 100644 --- a/v9.9.1/output/pydis_core.utils.logging.html +++ b/v9.9.1/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.members.html b/v9.9.1/output/pydis_core.utils.members.html index 5029f980..52b878d6 100644 --- a/v9.9.1/output/pydis_core.utils.members.html +++ b/v9.9.1/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.paste_service.html b/v9.9.1/output/pydis_core.utils.paste_service.html index 959fd621..26ef04c6 100644 --- a/v9.9.1/output/pydis_core.utils.paste_service.html +++ b/v9.9.1/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.9.1 - + @@ -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 PasteResponse[source]#
                                                                                                                                                                                                                                  +class PasteResponse[source]

                                                                                                                                                                                                                                  Bases: TypedDict

                                                                                                                                                                                                                                  A successful response from the paste service.

                                                                                                                                                                                                                                  @@ -403,28 +403,28 @@
                                                                                                                                                                                                                                  -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(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
                                                                                                                                                                                                                                  +async send_to_paste_service(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]

                                                                                                                                                                                                                                  Upload some contents to the paste service.

                                                                                                                                                                                                                                  Parameters:
                                                                                                                                                                                                                                  @@ -529,7 +529,7 @@ - + diff --git a/v9.9.1/output/pydis_core.utils.regex.html b/v9.9.1/output/pydis_core.utils.regex.html index 40113b60..de2fed10 100644 --- a/v9.9.1/output/pydis_core.utils.regex.html +++ b/v9.9.1/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.9.1 - + @@ -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/v9.9.1/output/pydis_core.utils.scheduling.html b/v9.9.1/output/pydis_core.utils.scheduling.html index c1ce0078..8f3492a0 100644 --- a/v9.9.1/output/pydis_core.utils.scheduling.html +++ b/v9.9.1/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.9.1 - + @@ -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/v9.9.1/py-modindex.html b/v9.9.1/py-modindex.html index 7380cce4..de0bb0e7 100644 --- a/v9.9.1/py-modindex.html +++ b/v9.9.1/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.9.1 + Python Module Index - Pydis Core v9.9.1 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.9.1/search.html b/v9.9.1/search.html index 8f829183..604b15b9 100644 --- a/v9.9.1/search.html +++ b/v9.9.1/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.9.1 + Search - Pydis Core v9.9.1 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.9.1/searchindex.js b/v9.9.1/searchindex.js index 20a8c702..115e6bdd 100644 --- a/v9.9.1/searchindex.js +++ b/v9.9.1/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": {"9": 0, "0": [0, 8, 14, 15], "22th": 0, "june": 0, "2023": 0, "bug": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "18th": 0, "featur": [0, 1, 3], "182": 0, "add": [0, 3, 11], "support": [0, 4, 7, 19], "lexer": [0, 17], "valid": 0, "past": [0, 17, 19], "servic": [0, 1, 3, 17], "default": [0, 1], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "2": [0, 3, 14], "3": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "1": [0, 15], "2nd": 0, "march": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "septemb": 0, "138": 0, "august": 0, "125": 0, "stabl": 0, "16th": 0, "124": 0, "updat": [0, 13], "regex": [0, 3, 7], "discord_invit": [0, 3, 7, 18], "option": [0, 8], "match": [0, 3], "lead": 0, "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "juli": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "actual": 0, "now": [0, 1, 19], "25th": 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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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], "22nd": 0, "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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "For": 13, "__global__": 13, "state": 13, "won": 13, "reflect": 13, "typehint": 13, "style": 14, "secondari": 14, "label": 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, "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, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "file_nam": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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"]], "channel": [[9, "module-pydis_core.utils.channel"]], "Exts": [[5, "module-pydis_core.exts"]], "caching": [[8, "module-pydis_core.utils.caching"]], "site_api": [[6, "module-pydis_core.site_api"]], "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"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "Local Development & Testing": [[1, "local-development-testing"]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "async_stats": [[4, "module-pydis_core.async_stats"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "Changelog": [[0, "changelog"]], "Pydis Core": [[3, "module-pydis_core"]], "Subpackages": [[3, "subpackages"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "function": [[13, "module-pydis_core.utils.function"]], "commands": [[10, "module-pydis_core.utils.commands"]]}, "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"]], "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"]], "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"]], "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"]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "18th": 0, "19th": 0, "2": [0, 3, 14], "2021": 0, "2022": 0, "2023": 0, "204": 6, "20th": 0, "21st": 0, "22nd": 0, "22th": 0, "23rd": 0, "24th": 0, "25th": 0, "26th": 0, "27th": 0, "28th": 0, "29": 0, "2nd": 0, "3": 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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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, "configur": 1, "conflict": 13, "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], "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], "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1], "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, "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": [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": [1, 19], "expect": 16, "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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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": [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": 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": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "moder": 14, "modifi": [1, 16], "modul": [0, 3, 7, 13, 19], "monitor": 1, "monkei": [0, 7], "more": [1, 13], "most": 1, "move": 0, "msg": 15, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pastebin": 0, "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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "push": 0, "put": [3, 6], "py": [0, 13], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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": [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, "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/v9.9.1/versions.html b/v9.9.1/versions.html index 61cd5394..75fcab51 100644 --- a/v9.9.1/versions.html +++ b/v9.9.1/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.9.1 - + @@ -592,7 +592,7 @@ - + diff --git a/v9.9.2/.buildinfo b/v9.9.2/.buildinfo index c89317b6..66c6370a 100644 --- a/v9.9.2/.buildinfo +++ b/v9.9.2/.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: d6861fd28a3e622527a0efe462ce07dd +config: 397046dd6da47f44c7729853f7f72623 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/v9.9.2/_static/basic.css b/v9.9.2/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/v9.9.2/_static/basic.css +++ b/v9.9.2/_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/v9.9.2/_static/doctools.js b/v9.9.2/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/v9.9.2/_static/doctools.js +++ b/v9.9.2/_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/v9.9.2/_static/language_data.js b/v9.9.2/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/v9.9.2/_static/language_data.js +++ b/v9.9.2/_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/v9.9.2/_static/searchtools.js b/v9.9.2/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/v9.9.2/_static/searchtools.js +++ b/v9.9.2/_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/v9.9.2/changelog.html b/v9.9.2/changelog.html index ec98b350..77a9555c 100644 --- a/v9.9.2/changelog.html +++ b/v9.9.2/changelog.html @@ -5,14 +5,14 @@ - + Changelog - Pydis Core v9.9.2 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                                  -

                                                                                                                                                                                                                                  Changelog#

                                                                                                                                                                                                                                  +

                                                                                                                                                                                                                                  Changelog

                                                                                                                                                                                                                                  9.9.2 2nd July 2023

                                                                                                                                                                                                                                  • [Bug] #185: Update expiry label from 1 month to 30 days in paste service.

                                                                                                                                                                                                                                  • @@ -723,7 +723,7 @@ - + diff --git a/v9.9.2/development.html b/v9.9.2/development.html index b679e854..bab48fe8 100644 --- a/v9.9.2/development.html +++ b/v9.9.2/development.html @@ -5,14 +5,14 @@ - + Local Development & Testing - Pydis Core v9.9.2 - + @@ -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/v9.9.2/genindex.html b/v9.9.2/genindex.html index a0140910..646dd8b4 100644 --- a/v9.9.2/genindex.html +++ b/v9.9.2/genindex.html @@ -4,13 +4,13 @@ - Index - Pydis Core v9.9.2 + Index - Pydis Core v9.9.2 - + @@ -919,7 +919,7 @@ - + diff --git a/v9.9.2/index.html b/v9.9.2/index.html index 992cb398..91da37bf 100644 --- a/v9.9.2/index.html +++ b/v9.9.2/index.html @@ -5,14 +5,14 @@ - + Pydis Core v9.9.2 - + @@ -379,10 +379,10 @@
                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        Bot Core Project Documentation#

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Bot Core Project Documentation

                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        Reference#

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Reference

                                                                                                                                                                                                                                        Modules:

                                                                                                                                                                                                                                          @@ -437,7 +437,7 @@
                                                                                                                                                                                                                                        -

                                                                                                                                                                                                                                        Extras#

                                                                                                                                                                                                                                        +

                                                                                                                                                                                                                                        Extras

                                                                                                                                                                                                                                        • Index

                                                                                                                                                                                                                                        • Search Page

                                                                                                                                                                                                                                        • @@ -487,7 +487,7 @@ - + diff --git a/v9.9.2/index_redirect.html b/v9.9.2/index_redirect.html index 225384ca..076d8742 100644 --- a/v9.9.2/index_redirect.html +++ b/v9.9.2/index_redirect.html @@ -7,15 +7,15 @@ - + Pydis Core v9.9.2 - + @@ -55,7 +55,7 @@ - + diff --git a/v9.9.2/output/pydis_core.async_stats.html b/v9.9.2/output/pydis_core.async_stats.html index 128f60ec..60ef98a4 100644 --- a/v9.9.2/output/pydis_core.async_stats.html +++ b/v9.9.2/output/pydis_core.async_stats.html @@ -5,14 +5,14 @@ - + async_stats - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.exts.html b/v9.9.2/output/pydis_core.exts.html index 7e422368..92fa9d50 100644 --- a/v9.9.2/output/pydis_core.exts.html +++ b/v9.9.2/output/pydis_core.exts.html @@ -5,14 +5,14 @@ - + Exts - Pydis Core v9.9.2 - + @@ -379,7 +379,7 @@
                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                          Exts#

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Exts

                                                                                                                                                                                                                                          Reusable Discord cogs.

                                                                                                                                                                                                                                          @@ -433,7 +433,7 @@ - + diff --git a/v9.9.2/output/pydis_core.html b/v9.9.2/output/pydis_core.html index 80e13771..47363367 100644 --- a/v9.9.2/output/pydis_core.html +++ b/v9.9.2/output/pydis_core.html @@ -5,14 +5,14 @@ - + Pydis Core - Pydis Core v9.9.2 - + @@ -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
                                                                                                                                                                                                                                          -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.

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

                                                                                                                                                                                                                                          @@ -553,18 +553,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
                                                                                                                                                                                                                                          • @@ -645,7 +645,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                                          -

                                                                                                                                                                                                                                          Submodules#

                                                                                                                                                                                                                                          +

                                                                                                                                                                                                                                          Submodules

                                                                                                                                                                                                                                          • async_stats
                                                                                                                                                                                                                                              @@ -771,7 +771,7 @@ gateway event before giving up and thus not populating the cache for unavailable
                                                                                                                                                                                                                                          - + diff --git a/v9.9.2/output/pydis_core.site_api.html b/v9.9.2/output/pydis_core.site_api.html index 0c303e5e..0b3aa8ee 100644 --- a/v9.9.2/output/pydis_core.site_api.html +++ b/v9.9.2/output/pydis_core.site_api.html @@ -5,14 +5,14 @@ - + site_api - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.caching.html b/v9.9.2/output/pydis_core.utils.caching.html index 9d365a05..19d314ef 100644 --- a/v9.9.2/output/pydis_core.utils.caching.html +++ b/v9.9.2/output/pydis_core.utils.caching.html @@ -5,14 +5,14 @@ - + caching - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.channel.html b/v9.9.2/output/pydis_core.utils.channel.html index d9fe444e..40ae862d 100644 --- a/v9.9.2/output/pydis_core.utils.channel.html +++ b/v9.9.2/output/pydis_core.utils.channel.html @@ -5,14 +5,14 @@ - + channel - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.commands.html b/v9.9.2/output/pydis_core.utils.commands.html index 5af944f2..2be52ff9 100644 --- a/v9.9.2/output/pydis_core.utils.commands.html +++ b/v9.9.2/output/pydis_core.utils.commands.html @@ -5,14 +5,14 @@ - + commands - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.cooldown.html b/v9.9.2/output/pydis_core.utils.cooldown.html index 49205828..f7b0e9b6 100644 --- a/v9.9.2/output/pydis_core.utils.cooldown.html +++ b/v9.9.2/output/pydis_core.utils.cooldown.html @@ -5,14 +5,14 @@ - + cooldown - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.error_handling.html b/v9.9.2/output/pydis_core.utils.error_handling.html index a6751dbc..876c836c 100644 --- a/v9.9.2/output/pydis_core.utils.error_handling.html +++ b/v9.9.2/output/pydis_core.utils.error_handling.html @@ -5,14 +5,14 @@ - + error_handling - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.function.html b/v9.9.2/output/pydis_core.utils.function.html index a0c79fc5..110074bc 100644 --- a/v9.9.2/output/pydis_core.utils.function.html +++ b/v9.9.2/output/pydis_core.utils.function.html @@ -5,14 +5,14 @@ - + function - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.html b/v9.9.2/output/pydis_core.utils.html index d21bc4e1..e7b10364 100644 --- a/v9.9.2/output/pydis_core.utils.html +++ b/v9.9.2/output/pydis_core.utils.html @@ -5,14 +5,14 @@ - + Utils - Pydis Core v9.9.2 - + @@ -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
                                                                                                                                                                                                                                              @@ -592,7 +592,7 @@ that will act as top-level groups rather than being aliases of the command’s g
                                                                                                                                                                                                                                          - + diff --git a/v9.9.2/output/pydis_core.utils.interactions.html b/v9.9.2/output/pydis_core.utils.interactions.html index 96008c9a..1230829e 100644 --- a/v9.9.2/output/pydis_core.utils.interactions.html +++ b/v9.9.2/output/pydis_core.utils.interactions.html @@ -5,14 +5,14 @@ - + interactions - Pydis Core v9.9.2 - + @@ -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:
                                                                                                                                                                                                                                          @@ -543,7 +543,7 @@ If None - + diff --git a/v9.9.2/output/pydis_core.utils.logging.html b/v9.9.2/output/pydis_core.utils.logging.html index 4be15bb6..bafbb6b2 100644 --- a/v9.9.2/output/pydis_core.utils.logging.html +++ b/v9.9.2/output/pydis_core.utils.logging.html @@ -5,14 +5,14 @@ - + logging - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.members.html b/v9.9.2/output/pydis_core.utils.members.html index 2529a5cb..1bc765b9 100644 --- a/v9.9.2/output/pydis_core.utils.members.html +++ b/v9.9.2/output/pydis_core.utils.members.html @@ -5,14 +5,14 @@ - + members - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.paste_service.html b/v9.9.2/output/pydis_core.utils.paste_service.html index b493ad24..d3c79ffe 100644 --- a/v9.9.2/output/pydis_core.utils.paste_service.html +++ b/v9.9.2/output/pydis_core.utils.paste_service.html @@ -5,14 +5,14 @@ - + paste_service - Pydis Core v9.9.2 - + @@ -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 PasteResponse[source]#
                                                                                                                                                                                                                                          +class PasteResponse[source]

                                                                                                                                                                                                                                          Bases: TypedDict

                                                                                                                                                                                                                                          A successful response from the paste service.

                                                                                                                                                                                                                                          @@ -403,28 +403,28 @@
                                                                                                                                                                                                                                          -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(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]#
                                                                                                                                                                                                                                          +async send_to_paste_service(*, contents, http_session, file_name='', lexer='python', paste_url='https://paste.pythondiscord.com', max_size=524288)[source]

                                                                                                                                                                                                                                          Upload some contents to the paste service.

                                                                                                                                                                                                                                          Parameters:
                                                                                                                                                                                                                                          @@ -529,7 +529,7 @@ - + diff --git a/v9.9.2/output/pydis_core.utils.regex.html b/v9.9.2/output/pydis_core.utils.regex.html index bde328f3..86a97284 100644 --- a/v9.9.2/output/pydis_core.utils.regex.html +++ b/v9.9.2/output/pydis_core.utils.regex.html @@ -5,14 +5,14 @@ - + regex - Pydis Core v9.9.2 - + @@ -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/v9.9.2/output/pydis_core.utils.scheduling.html b/v9.9.2/output/pydis_core.utils.scheduling.html index 12ec998a..6d658c48 100644 --- a/v9.9.2/output/pydis_core.utils.scheduling.html +++ b/v9.9.2/output/pydis_core.utils.scheduling.html @@ -5,14 +5,14 @@ - + scheduling - Pydis Core v9.9.2 - + @@ -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/v9.9.2/py-modindex.html b/v9.9.2/py-modindex.html index d91d3d10..352d1c71 100644 --- a/v9.9.2/py-modindex.html +++ b/v9.9.2/py-modindex.html @@ -4,13 +4,13 @@ - Python Module Index - Pydis Core v9.9.2 + Python Module Index - Pydis Core v9.9.2 - + @@ -524,7 +524,7 @@ - + diff --git a/v9.9.2/search.html b/v9.9.2/search.html index 21d5f37d..fc789916 100644 --- a/v9.9.2/search.html +++ b/v9.9.2/search.html @@ -4,12 +4,12 @@ - Search - Pydis Core v9.9.2 + Search - Pydis Core v9.9.2 - + @@ -418,7 +418,7 @@ - + diff --git a/v9.9.2/searchindex.js b/v9.9.2/searchindex.js index 7e81da1c..33c0f85a 100644 --- a/v9.9.2/searchindex.js +++ b/v9.9.2/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": {"9": 0, "2": [0, 3, 14], "2nd": 0, "juli": 0, "2023": 0, "bug": 0, "185": 0, "updat": [0, 13], "expiri": 0, "label": [0, 14], "from": [0, 1, 3, 4, 6, 7, 9, 13, 14, 16, 17, 19], "1": [0, 15], "month": 0, "30": 0, "dai": 0, "past": [0, 17, 19], "servic": [0, 1, 3, 17], "22nd": 0, "june": 0, "183": 0, "push": 0, "correct": [0, 1], "changeset": 0, "pypi": 0, "0": [0, 8, 14, 15], "18th": 0, "featur": [0, 1, 3], "182": 0, "add": [0, 3, 11], "support": [0, 4, 7, 19], "lexer": [0, 17], "valid": 0, "default": [0, 1], "pastebin": 0, "url": [0, 3, 6, 17], "http": [0, 6, 17, 18], "pythondiscord": [0, 17], "com": [0, 17], "8": 0, "13th": 0, "181": 0, "bump": 0, "discord": [0, 1, 3, 5, 7, 9, 10, 12, 13, 16, 18], "py": [0, 13], "3": 0, "7": 0, "10th": 0, "176": 0, "migrat": 0, "repo": 0, "us": [0, 1, 3, 4, 6, 7, 9, 11, 13, 15, 16, 17, 18, 19], "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], "all": [0, 1, 3, 4, 7, 19], "schedul": [0, 3, 7], "179": 0, "util": [0, 1, 2, 3, 8, 13, 14, 15], "upload": [0, 17], "text": [0, 6, 10], "our": [0, 1, 7], "6": 0, "6th": 0, "mai": [0, 8], "175": 0, "log": [0, 3, 7, 12, 16, 19], "when": [0, 3, 4, 6, 7, 8, 11, 13, 17, 19], "wait": [0, 3, 19], "guild": [0, 1, 3, 16], "avail": [0, 3], "befor": [0, 3, 14, 19], "load": [0, 1, 3, 7], "cog": [0, 3, 5], "5": [0, 11], "march": 0, "174": 0, "28th": 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], "command": [0, 1, 3, 7, 9, 11, 13], "after": [0, 3, 14, 19], "extens": [0, 3], "have": [0, 9, 13, 15], "been": 0, "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "releas": 0, "also": [0, 7, 13, 14], "remov": [0, 3, 14, 17], "need": [0, 1], "run": [0, 1, 11, 19], "pydis_cor": [0, 1, 3, 14], "botbas": [0, 2, 3], "load_extens": [0, 2, 3], "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, "return": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "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, "14th": 0, "162": 0, "being": [0, 7, 16], "abl": 0, "delet": [0, 3, 6, 8, 14, 17], "interact": [0, 3, 7, 9], "messag": [0, 3, 10, 11, 12, 14, 15, 19], "button": [0, 14], "press": 0, "timeout": [0, 14], "88": 0, "decor": [0, 8, 11, 13], "stop": 0, "success": [0, 17], "duplic": [0, 11], "invoc": [0, 11], "158": 0, "5th": 0, "break": [0, 13], "157": 0, "renam": 0, "project": [0, 1], "allow": [0, 1, 3, 14, 17], "publish": 0, "septemb": 0, "138": 0, "august": 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, "": [0, 1, 7, 8, 10, 11, 13, 14, 15, 18, 19], "www": 0, "27th": 0, "110": 0, "async": [0, 3, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17], "rediscach": 0, "v1": 0, "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], "bot": [0, 1, 3, 7, 9], "core": [0, 1], "108": 0, "version": [0, 10], "10": 0, "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], "attr": 0, "viewwithuserandrolecheck": [0, 3, 7, 14], "On": 0, "view": [0, 14], "ha": [0, 7], "its": [0, 3, 11, 13], "set": [0, 1, 3, 11, 13, 14], "104": 0, "fix": 0, "deletemessagebutton": [0, 3, 7, 14], "work": [0, 1], "due": 0, "wrong": 0, "method": [0, 4, 6, 7, 15], "103": 0, "attach": 0, "parent": [0, 14], "gener": [0, 3, 11, 19], "onli": [0, 3], "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], "i": [0, 1, 3, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19], "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, 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], "actual": 0, "now": [0, 1, 19], "25th": 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], "process": 0, "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, "broke": 0, "custom": [0, 8, 15], "pagin": 0, "basic": [0, 14], "forum": 0, "channel": [0, 3, 7, 11], "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], "client": [0, 3, 4], "ext": [0, 2, 3, 7, 9, 10], "sub": [0, 3], "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "abstract": 0, "lot": 0, "logic": 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, "ar": [1, 3, 8, 13, 14, 18], "few": 1, "possibl": 1, "approach": 1, "instal": 1, "copi": [1, 13], "pre": 1, "exist": [1, 19], "provid": [1, 8, 10, 12, 19], "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, 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], "file": [1, 17], "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, "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, "list": [1, 3], "id": [1, 3, 9, 14, 19], "do": [1, 9], "anyth": [1, 17], "reinstal": 1, "librari": 1, "includ": [1, 12], "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], "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 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, 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, "ensur": [3, 14, 18], "thei": [3, 13], "name": [3, 7, 13, 15, 17, 19], "alia": [3, 7, 11], "individu": 3, "either": 3, "manual": 3, "edit": 3, "all_command": 3, "startup": 3, "call": [3, 11, 13, 19], "create_socket": [3, 4], "until": [3, 18], "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], "get_or_fetch_channel": [3, 7, 9], "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], "paste_servic": [3, 7], "max_paste_s": [3, 7, 17], "pasterespons": [3, 7, 17], "pastetoolongerror": [3, 7, 17], "pasteunsupportedlexererror": [3, 7, 17], "pasteuploaderror": [3, 7, 17], "send_to_paste_servic": [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, 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, "send": [6, 14], "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, "204": 6, "No": 6, "equival": 6, "static": 6, "should_rais": 6, "non": 6, "clientrespons": 6, "check": [6, 9, 11, 12, 14, 19], "response_json": 6, "response_text": 6, "valueerror": [6, 17], "represent": 6, "appli": [7, 8, 11], "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, "store": [7, 8], "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], "__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], "onc": 8, "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, "args_preprocessor": 11, "prevent": [11, 19], "same": [11, 19], "float": [11, 14, 19], "length": 11, "notifi": 11, "about": 11, "paramspec": [11, 13], "iter": 11, "raw": [11, 18], "isn": 12, "conflict": 13, "global": 13, "annot": 13, "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, "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, "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, "typeddict": 17, "link": 17, "too": 17, "larg": 17, "unsupport": 17, "encount": 17, "file_nam": 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, "format": 18, "execut": 19, "keep": 19, "track": 19, "must": 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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"}, "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"]}, "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"]], "site_api": [[6, "module-pydis_core.site_api"]], "caching": [[8, "module-pydis_core.utils.caching"]], "Exts": [[5, "module-pydis_core.exts"]], "channel": [[9, "module-pydis_core.utils.channel"]], "logging": [[15, "module-pydis_core.utils.logging"]], "paste_service": [[17, "module-pydis_core.utils.paste_service"]], "scheduling": [[19, "module-pydis_core.utils.scheduling"]], "regex": [[18, "module-pydis_core.utils.regex"]], "members": [[16, "module-pydis_core.utils.members"]], "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"]], "Changelog": [[0, "changelog"]], "Bot Core Project Documentation": [[2, "bot-core-project-documentation"]], "Reference": [[2, "reference"]], "Modules:": [[2, null]], "Extras": [[2, "extras"]], "commands": [[10, "module-pydis_core.utils.commands"]], "error_handling": [[12, "module-pydis_core.utils.error_handling"]], "interactions": [[14, "module-pydis_core.utils.interactions"]], "function": [[13, "module-pydis_core.utils.function"]], "cooldown": [[11, "module-pydis_core.utils.cooldown"]]}, "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"]], "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"]], "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"]], "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"]], "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]], "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]], "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]], "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]], "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, "", "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"]], "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, "", "PasteResponse"], [17, 3, 1, "", "PasteTooLongError"], [17, 3, 1, "", "PasteUnsupportedLexerError"], [17, 3, 1, "", "PasteUploadError"], [17, 4, 1, "", "send_to_paste_service"]], "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"]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:function", "5": "py:data"}, "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, "185": 0, "18th": 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, "__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, "abl": 0, "about": 11, "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, "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, "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], "applic": 1, "apply_monkey_patch": [0, 2, 3, 7], "approach": 1, "april": 0, "ar": [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], "basic": [0, 14], "becaus": [3, 13], "becom": 3, "been": 0, "befor": [0, 3, 14, 19], "behav": 13, "behaviour": 0, "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": [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": [6, 9, 11, 12, 14, 19], "chunk": 0, "ci": 0, "class": [0, 3, 4, 6, 8, 11, 14, 15, 17, 19], "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, "configur": 1, "conflict": 13, "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], "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, "datetim": 19, "deal": 0, "decemb": 0, "declar": 0, "decor": [0, 8, 11, 13], "default": [0, 1], "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, "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": [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": [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, "featur": [0, 1, 3], "februari": 0, "fetch": [9, 16], "few": 1, "fifo": 8, "file": [1, 17], "file_nam": 17, "filter": 0, "fix": 0, "float": [11, 14, 19], "folder": 1, "forbidden": [0, 9, 12], "format": 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": [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": [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": [1, 3], "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, 15], "mani": [0, 3, 8], "manipul": [0, 13], "manual": 3, "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, "method": [0, 4, 6, 7, 15], "might": 1, "migrat": 0, "miss": 0, "mod": 0, "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, "multivers": 0, "must": 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, 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": 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, "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": [3, 7], "paste_url": 17, "pastebin": 0, "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], "problem": 15, "process": 0, "program": 1, "project": [0, 1], "provid": [1, 8, 10, 12, 19], "public": 0, "publish": 0, "purpos": 16, "push": 0, "put": [3, 6], "py": [0, 13], "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, "remov": [0, 3, 14, 17], "remove_command": [2, 3], "remove_rol": 16, "renam": 0, "replac": 13, "repli": [10, 11, 12], "repo": 0, "represent": 6, "request": [0, 3, 6, 18], "requir": [1, 3, 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": [6, 14], "send_notic": 11, "send_to_paste_servic": [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], "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, "store": [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], "textchannel": 9, "than": [7, 17], "thei": [3, 13], "them": [1, 3, 13, 19], "thi": [0, 1, 3, 7, 9, 11, 13, 14, 16, 18, 19], "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, 19], "tupl": 19, "two": 7, "type": [3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "typeddict": 17, "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": [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, "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/v9.9.2/versions.html b/v9.9.2/versions.html index 6eb07724..2385295a 100644 --- a/v9.9.2/versions.html +++ b/v9.9.2/versions.html @@ -4,14 +4,14 @@ - + Versions - Pydis Core v9.9.2 - + @@ -592,7 +592,7 @@ - + -- cgit v1.2.3