summaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/.buildinfo2
-rw-r--r--main/_static/documentation_options.js2
-rw-r--r--main/_static/scripts/furo.js2
-rw-r--r--main/_static/scripts/furo.js.map2
-rw-r--r--main/_static/searchtools.js7
-rw-r--r--main/_static/styles/furo-extensions.css2
-rw-r--r--main/_static/styles/furo-extensions.css.map2
-rw-r--r--main/_static/styles/furo.css2
-rw-r--r--main/_static/styles/furo.css.map2
-rw-r--r--main/changelog.html42
-rw-r--r--main/development.html41
-rw-r--r--main/genindex.html35
-rw-r--r--main/index.html39
-rw-r--r--main/index_redirect.html14
-rw-r--r--main/objects.invbin2376 -> 2376 bytes
-rw-r--r--main/output/pydis_core.async_stats.html43
-rw-r--r--main/output/pydis_core.exts.html37
-rw-r--r--main/output/pydis_core.html99
-rw-r--r--main/output/pydis_core.site_api.html63
-rw-r--r--main/output/pydis_core.utils.caching.html45
-rw-r--r--main/output/pydis_core.utils.channel.html41
-rw-r--r--main/output/pydis_core.utils.checks.html51
-rw-r--r--main/output/pydis_core.utils.commands.html39
-rw-r--r--main/output/pydis_core.utils.cooldown.html49
-rw-r--r--main/output/pydis_core.utils.error_handling.commands.abc.html45
-rw-r--r--main/output/pydis_core.utils.error_handling.commands.html53
-rw-r--r--main/output/pydis_core.utils.error_handling.commands.manager.html45
-rw-r--r--main/output/pydis_core.utils.error_handling.html39
-rw-r--r--main/output/pydis_core.utils.function.html49
-rw-r--r--main/output/pydis_core.utils.html41
-rw-r--r--main/output/pydis_core.utils.interactions.html57
-rw-r--r--main/output/pydis_core.utils.lock.html59
-rw-r--r--main/output/pydis_core.utils.logging.html45
-rw-r--r--main/output/pydis_core.utils.members.html41
-rw-r--r--main/output/pydis_core.utils.messages.html39
-rw-r--r--main/output/pydis_core.utils.pagination.html49
-rw-r--r--main/output/pydis_core.utils.paste_service.html51
-rw-r--r--main/output/pydis_core.utils.regex.html43
-rw-r--r--main/output/pydis_core.utils.scheduling.html55
-rw-r--r--main/py-modindex.html35
-rw-r--r--main/search.html37
-rw-r--r--main/searchindex.js2
-rw-r--r--main/versions.html43
43 files changed, 611 insertions, 878 deletions
diff --git a/main/.buildinfo b/main/.buildinfo
index 2ed0cf7f..da3e5927 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: 4632f001f6275f754b9bbc2d3f14792d
+config: 25e72150d1695a41c73fa6745f54e4ec
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/main/_static/documentation_options.js b/main/_static/documentation_options.js
index 26500774..9f7eea4e 100644
--- a/main/_static/documentation_options.js
+++ b/main/_static/documentation_options.js
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
- VERSION: '11.3.0',
+ VERSION: '11.3.1',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/main/_static/scripts/furo.js b/main/_static/scripts/furo.js
index 0267c7e1..0abb2afa 100644
--- a/main/_static/scripts/furo.js
+++ b/main/_static/scripts/furo.js
@@ -1,3 +1,3 @@
/*! For license information please see furo.js.LICENSE.txt */
-(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)<o(e.content)?-1:1}))},c=function(e,n,o){var r=e.getBoundingClientRect(),c=function(t){return"function"==typeof t.offset?parseFloat(t.offset()):parseFloat(t.offset)}(n);return o?parseInt(r.bottom,10)<(t.innerHeight||document.documentElement.clientHeight):parseInt(r.top,10)<=c},s=function(){return Math.ceil(t.innerHeight+t.pageYOffset)>=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){t<s?document.documentElement.classList.remove("show-back-to-top"):t<c?document.documentElement.classList.add("show-back-to-top"):t>c&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})();
+(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)<o(e.content)?-1:1}))},c=function(e,n,o){var r=e.getBoundingClientRect(),c=function(t){return"function"==typeof t.offset?parseFloat(t.offset()):parseFloat(t.offset)}(n);return o?parseInt(r.bottom,10)<(t.innerHeight||document.documentElement.clientHeight):parseInt(r.top,10)<=c},s=function(){return Math.ceil(t.innerHeight+t.pageYOffset)>=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;(function(t){const e=Math.floor(r.getBoundingClientRect().top);console.log(`headerTop: ${e}`),0==e&&t!=e?r.classList.add("scrolled"):r.classList.remove("scrolled")})(n=t),function(t){t<s?document.documentElement.classList.remove("show-back-to-top"):t<c?document.documentElement.classList.add("show-back-to-top"):t>c&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})();
//# sourceMappingURL=furo.js.map \ No newline at end of file
diff --git a/main/_static/scripts/furo.js.map b/main/_static/scripts/furo.js.map
index c3b37aaa..80ea12b8 100644
--- a/main/_static/scripts/furo.js.map
+++ b/main/_static/scripts/furo.js.map
@@ -1 +1 @@
-{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgB/H,OAAO6C,aAAeP,SAASC,gBAAgByF,UACnE,MAAMC,EAAmB,GA2EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,IA0DDH,EA9GkC,GAAlDzG,KAAK6G,MAAM1B,EAAO7F,wBAAwBQ,KAC5CqF,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,YAI5B,SAAmCyF,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEE,CAA0BF,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU6B,SAAS,EAAG,GAGtB/G,KAAKC,KAAK2G,IACV5G,KAAK6G,MAAMlH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU6B,SAAS,EAAG7B,EAAU7E,cAGhBV,SAASqH,cAAc,mBAc3C,CAKEC,CAAoBL,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO6J,QACT,CA6BEC,GA1BkB,OAAdjC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRuJ,WAAW,EACX5J,SAAU,iBACVI,OAAQ,KACN,IAAIyJ,EAAM9H,WAAW+H,iBAAiB3H,SAASC,iBAAiB2H,UAChE,OAAOpC,EAAO7F,wBAAwBkI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA1H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASqH,cAAc,UAChC9B,EAAYvF,SAASqH,cAAc,eAEnCxD,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgBzF,SAASC,gBAAgByF,UAC7C,MAAMC,EAAmB,GA8EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,GAxDvB,SAAgCA,GAC9B,MAAMC,EAAY7G,KAAK8G,MAAM3B,EAAO7F,wBAAwBQ,KAE5DgG,QAAQK,IAAI,cAAcU,KACT,GAAbA,GAAkBD,GAAaC,EACjC1B,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,WAE5B,EAgDE4F,CADqBH,EA0DDH,GAvGtB,SAAmCG,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEI,CAA0BJ,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU+B,SAAS,EAAG,GAGtBjH,KAAKC,KAAK2G,IACV5G,KAAK8G,MAAMnH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU+B,SAAS,EAAG/B,EAAU7E,cAGhBV,SAASuH,cAAc,mBAc3C,CAKEC,CAAoBP,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO+J,QACT,CA6BEC,GA1BkB,OAAdnC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRyJ,WAAW,EACX9J,SAAU,iBACVI,OAAQ,KACN,IAAI2J,EAAMhI,WAAWiI,iBAAiB7H,SAASC,iBAAiB6H,UAChE,OAAOtC,EAAO7F,wBAAwBoI,OAAS,IAAMH,EAAM,CAAC,GAiBlE,CAcA5H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASuH,cAAc,UAChChC,EAAYvF,SAASuH,cAAc,eAEnC1D,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader(positionY) {\n const headerTop = Math.floor(header.getBoundingClientRect().top);\n\n console.log(`headerTop: ${headerTop}`);\n if (headerTop == 0 && positionY != headerTop) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader(positionY);\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","headerTop","floor","scrollHandlerForHeader","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file
diff --git a/main/_static/searchtools.js b/main/_static/searchtools.js
index 92da3f8b..b08d58c9 100644
--- a/main/_static/searchtools.js
+++ b/main/_static/searchtools.js
@@ -178,7 +178,7 @@ const Search = {
htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
- for (const removalQuery of [".headerlinks", "script", "style"]) {
+ for (const removalQuery of [".headerlink", "script", "style"]) {
htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
}
if (anchor) {
@@ -328,13 +328,14 @@ const Search = {
for (const [title, foundTitles] of Object.entries(allTitles)) {
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)
+ const score = Math.round(Scorer.title * queryLower.length / title.length);
+ const boost = titles[file] === title ? 1 : 0; // add a boost for document titles
normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
null,
- score,
+ score + boost,
filenames[file],
]);
}
diff --git a/main/_static/styles/furo-extensions.css b/main/_static/styles/furo-extensions.css
index bc447f22..82295876 100644
--- a/main/_static/styles/furo-extensions.css
+++ b/main/_static/styles/furo-extensions.css
@@ -1,2 +1,2 @@
-#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)}
+#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)}
/*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file
diff --git a/main/_static/styles/furo-extensions.css.map b/main/_static/styles/furo-extensions.css.map
index 9ba5637f..c26eac7f 100644
--- a/main/_static/styles/furo-extensions.css.map
+++ b/main/_static/styles/furo-extensions.css.map
@@ -1 +1 @@
-{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAEE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cAIA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UCzCN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/main/_static/styles/furo.css b/main/_static/styles/furo.css
index e3d4e57b..21836d6a 100644
--- a/main/_static/styles/furo.css
+++ b/main/_static/styles/furo.css
@@ -1,2 +1,2 @@
-/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="10" cy="10" r="7"/><path d="m21 21-6-6"/></svg>');--icon-pencil:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75z"/></svg>');--icon-abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5h16v2H4zm0 4h16v2H4zm0 4h16v2H4zm0 4h10v2H4z"/></svg>');--icon-info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--icon-flame:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.8.8 0 0 1-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25zm-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27z"/></svg>');--icon-question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');--icon-warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2z"/></svg>');--icon-failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"/></svg>');--icon-spark:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;vertical-align:middle;width:1.25rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.25rem;width:1.25rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right}
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="10" cy="10" r="7"/><path d="m21 21-6-6"/></svg>');--icon-pencil:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75z"/></svg>');--icon-abstract:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5h16v2H4zm0 4h16v2H4zm0 4h16v2H4zm0 4h10v2H4z"/></svg>');--icon-info:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');--icon-flame:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.8.8 0 0 1-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25zm-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27z"/></svg>');--icon-question:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');--icon-warning:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2z"/></svg>');--icon-failure:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"/></svg>');--icon-spark:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{display:flex}.theme-toggle{background:transparent;border:none;cursor:pointer;display:flex;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;width:1.25rem}.theme-toggle-header{align-items:center;display:flex;justify-content:center}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.5rem;width:1.5rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.theme-toggle-header,.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.5rem;width:1.5rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right}
/*# sourceMappingURL=furo.css.map*/ \ No newline at end of file
diff --git a/main/_static/styles/furo.css.map b/main/_static/styles/furo.css.map
index 6e02d0b1..0ee3acbe 100644
--- a/main/_static/styles/furo.css.map
+++ b/main/_static/styles/furo.css.map
@@ -1 +1 @@
-{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KACE,gBAAiB,CACjB,6BACF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,CCpBJ,iBAGE,qBAEA,sBACA,0BAFA,oBAHA,4BACA,oBAKA,6BAIA,2CAFA,mBACA,sCAFA,4BAGA,CAEF,gBACE,aCTF,KCGE,mHAEA,wGAEA,wCAAyC,CAEzC,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CCjCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,+jBCYA,iqCAZF,iaCVA,8KAOA,4SAWA,4SAUA,0CACA,gEAGA,0CAGA,gEAGA,yCACA,+DAIA,4CACA,kEAGA,wCAUA,8DACA,uCAGA,4DACA,sCACA,2DAGA,4CACA,kEACA,uCAGA,6DACA,2GAGA,sHAEA,yFAEA,+CACA,+EAGA,4MAOA,gCACA,sHAIA,kCACA,uEACA,gEACA,4DACA,kEAGA,2DACA,sDACA,0CACA,8CACA,wGAGA,0BACA,iCAGA,+DACA,+BACA,sCACA,+DAEA,kGACA,oCACA,yDACA,sCL7HF,kCAEA,sDAIA,0CK2HE,kEAIA,oDACA,sDAGA,oCACA,oEAEA,0DACA,qDAIA,oDACA,6DAIA,iEAIA,2DAIA,2DAGA,4DACA,gEAIA,gEAEA,gFAEA,oNASA,qDLxKE,gFAGE,4DAIF,oEKkHF,yEAEA,6DAGA,0DAEA,uDACA,qDACA,wDAIA,6DAIA,yDACA,2DAIA,uCAGA,wCACA,sDAGA,+CAGA,6DAEA,iDACA,+DAEA,wDAEA,sEAMA,0DACA,sBACA,mEL9JI,wEAEA,iCACE,+BAMN,wEAGA,iCACE,kFAEA,uEAIF,gEACE,8BAGF,qEMvDA,sCAKA,wFAKA,iCAIA,0BAWA,iCACA,4BACA,mCAGA,+BAEA,sCACA,4BAEA,mCAEA,sCAKA,sDAIA,gCAEA,gEAQF,wCAME,sBACA,kCAKA,uBAEA,gEAIA,2BAIA,mCAEA,qCACA,iCAGE,+BACA,wEAEE,iCACA,kFAGF,6BACA,0CACF,kCAEE,8BACE,8BACA,qEAEE,sCACA,wFCjFN,iCAGF,2DAEE,4BACA,oCAGA,mIAGA,4HACE,gEAMJ,+CAGE,sBACA,yCAEF,uBAEE,sEAKA,gDACA,kEAGA,iFAGE,YAGF,EACA,4HAQF,mBACE,6BACA,mBACA,wCACA,wCACA,2CAIA,eAGA,mBAKE,mBAGA,CAJA,uCACA,iBAFF,gBACE,CAKE,mBACA,mBAGJ,oBAIF,+BAGE,kDACA,OADA,kBAGA,CAFA,gBAEA,mBACA,oBAEA,sCACA,OAGF,cAHE,WAGF,GAEE,oBACA,CAHF,gBAGE,CChHc,YDmHd,+CAIF,SAEE,CAPF,UACE,wBAMA,4BAEA,GAGA,uBACA,CAJA,yBAGA,CACA,iDAKA,2CAGA,2DAQA,iBACA,uCAGA,kEAKE,SAKJ,8BACE,yDACA,2BAEA,oBACA,8BAEA,yDAEE,4BAEJ,uCACE,CACA,iEAGA,CAEA,wCACE,uBACA,kDAEA,0DAEE,CAJF,oBAIE,0GASJ,aAEF,CAFE,YAEF,4HASE,+CACA,sBAGF,sBASE,4BAFF,0CAEE,CARA,qCAwBF,CAhBE,iBAEA,kBACE,aADF,4BACE,WAOF,2BAEF,qCAIA,CAbI,UAaJ,+BACE,uBAEA,SAGA,0CAGE,CANF,qCAGA,CAGE,2DACE,gBAKJ,+CAGF,CAEA,kDAME,CARF,8BAEA,CAQE,YAEA,CAlBI,2BAGJ,CAJI,UACA,CAcJ,UAIA,4GAIF,iCAGE,8BAIA,qBACA,mBACF,QACE,gBAOE,0CAGA,CATF,6DAME,CANF,sBASE,qCAKF,CAEE,cACA,CAHF,sBAGE,gCAEA,qBAOJ,wBACE,sCAIA,mBAEA,6BAKA,kCACA,CAHA,sBAEA,cAJA,eACA,MAIA,2FAIA,UACA,YACA,sBACE,8BAEA,CALF,aACA,WAIE,CACA,0BAEF,aACE,qBAEF,qCAgBA,kBACE,CAhBA,qDASA,qCAEJ,CAGI,YACF,CAJF,2BAGI,CAGA,eACE,CAAF,oBAEA,mEAEA,qBACA,eAGF,CAHE,cAIA,kBADF,kBACE,yBAEJ,oCAGI,qDAIA,+BAMF,oCAEA,+CAEA,gCAIA,YACE,yBAEA,qBACA,eAGA,uBAFA,WAEA,CAHA,cACA,CAEA,4BAIE,qCACA,cAFA,eADA,qBACA,cAEA,mDACE,CACA,oCACA,4EAEN,uCAMA,eACE,kDAIA,mBADF,sBACE,mBAIA,aACA,sCAGA,aADA,WACA,CAMA,UAFF,kBAEE,CAJJ,gBAEE,CAJE,iBAMA,yFAQA,aACA,eEpbJ,cACE,iBACA,YAEA,CAFA,iBAEA,+DAGA,mBAKA,gCAGA,CARA,SAIA,SACA,CALA,0EAIA,CAJA,OAQA,0CACE,UAGF,iDAGF,CAHE,UAGF,8CAEE,CAFF,UAEE,CACA,uCAEA,WACA,WAFA,UAEA,6CAIA,yCACA,WAGA,WAJA,UAIA,gDACE,aASF,0CACE,CAFF,mBAEE,wEACA,CATA,YACA,CAKF,kBACA,CALE,MAGJ,CAII,eACA,CAJF,iCALE,cACA,CAHA,oBACA,CAKJ,SAKI,2BADA,UACA,6BAEJ,WACE,0DACA,kBACE,gCACA,mBADA,YACA,oEACA,2CAMF,mDAII,CAJJ,aADF,cACE,kBAII,kEACA,iBACE,mEACA,6BACE,wBADF,cACE,mCACA,qDANN,kCACE,6BAEE,mBADF,0CACE,CAFF,eACA,MACE,0DACA,wCACE,sGACA,WANN,yBACE,uCACA,CAFF,UAEE,2CACE,0FACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAIF,gEAIE,6BACA,gEAIA,+CACE,0EAIF,sDAEE,+DAGF,sCACA,8BACE,oCAEJ,wBACE,4FAEE,gBAEJ,yGAGI,kBAGJ,CCnHE,2MCFF,oBAGE,wGAKA,iCACE,CADF,wBACE,8GAQA,mBCjBJ,2GAIE,mBACA,6HAMA,YACE,mIAYF,eACA,CAHF,YAGE,4FAGE,8BAKF,uBAkBE,sCACA,CADA,qBAbA,wCAIA,CALF,8BACE,CADF,gBAKE,wCACA,CAOA,kDACA,CACA,kCAKF,6BAGA,4CACE,kDACA,eAGF,cACE,aACA,iBACA,yBACA,8BACA,WAGJ,2BACE,cAGA,+BACA,CAHA,eAGA,wCACA,YACA,iBACA,uEAGA,0BACA,2CAEA,8EAGI,qBACA,CAFF,kBAEE,kBAGN,0CAGE,mCAGA,4BAIA,gEACE,qCACA,8BAEA,gBACA,+CACA,iCAEF,iCAEE,gEACA,qCAGF,8BAEE,+BAIA,yCAEE,qBADA,gBACA,yBAKF,eACA,CAFF,YACE,CACA,iBACA,qDAEA,mDCvIJ,2FAOE,iCACA,CAEA,eACA,CAHA,kBAEA,CAFA,wBAGA,8BACA,eACE,CAFF,YAEE,0BACA,8CAGA,oBACE,oCAGA,kBACE,8DAEA,iBAEN,UACE,8BAIJ,+CAEE,qDAEF,kDAIE,YAEF,CAFE,YAEF,CCpCE,mFADA,kBAKE,CAJF,IAGA,aACE,mCAGA,iDACE,+BAEJ,wBAEE,mBAMA,6CAEF,CAJE,mBAEA,CAEF,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CADA,UACA,wCC9BF,oBDkCE,wBCnCJ,uCACE,+BACA,+DACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCAEA,wCAEA,6CAMA,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DADA,+BACA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,iHACE,2DAKF,CANA,8EAMA,uSAEE,kBAEF,+FACE,yCCjEJ,WACA,yBAGA,uBACA,gBAEA,uCAIA,CAJA,iCAIA,uCAGA,UACE,gBACA,qBAEA,0CClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAiBI,kDACF,CAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAdA,cACA,iBAaA,0BAGA,mQAIA,oNAEE,iBAGJ,CAHI,gBAFF,gBAKF,8CAYI,CAZJ,wCAYI,sVACE,iCAGA,uEAHA,QAGA,qXAKJ,iDAGF,CARM,+CACE,iDAIN,CALI,gBAQN,mHACE,gBAGF,2DACE,0EAOA,0EAGF,gBAEE,6DC/EA,kDACA,gCACA,qDAGA,qBACA,qDCFA,cACA,eAEA,yBAGF,sBAEE,iBACA,sNAWA,iBACE,kBACA,wRAgBA,kBAEA,iOAgBA,uCACE,uEAEA,kBAEF,qUAuBE,iDAIJ,CACA,geCxFF,4BAEE,CAQA,6JACA,iDAIA,sEAGA,mDAOF,iDAGE,4DAIA,8CACA,qDAEE,eAFF,cAEE,oBAEF,uBAFE,kCAGA,eACA,iBACA,mBAIA,mDACA,CAHA,uCAEA,CAJA,0CACA,CAIA,gBAJA,gBACA,oBADA,gBAIA,wBAEJ,gBAGE,6BACA,YAHA,iBAGA,gCACA,iEAEA,6CACA,sDACA,0BADA,wBACA,0BACA,oIAIA,mBAFA,YAEA,qBACA,0CAIE,uBAEF,CAHA,yBACE,CAEF,iDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIF,iBAJE,wBAIF,6CAHE,6CAKA,eACA,aACA,CADA,cACA,yCAGJ,kBACE,CAKA,iDAEA,CARF,aACE,4CAGA,kBAIA,wEAGA,wDAGA,kCAOA,iDAGA,CAPF,WAEE,sCAEA,CAJF,2CACE,CAMA,qCACA,+BARF,kBACE,qCAOA,iBAsBA,sBACE,CAvBF,WAKA,CACE,0DAIF,CALA,uDACE,CANF,sBAqBA,4CACA,CALA,gRAIA,YAEE,6CAEN,mCAEE,+CASA,6EAIA,4BChNA,SDmNA,qFCnNA,gDACA,sCAGA,qCACA,sDACA,CAKA,kDAGA,CARA,0CAQA,kBAGA,YACA,sBACA,iBAFA,gBADF,YACE,CAHA,SAKA,kBAEA,SAFA,iBAEA,uEAGA,CAEE,6CAFF,oCAgBI,CAdF,yBACE,qBACF,CAGF,oBACE,CAIF,WACE,CALA,2CAGA,uBACF,CACE,mFAGE,CALF,qBAEA,UAGE,gCAIF,sDAEA,CALE,oCAKF,yCC7CJ,oCACE,CD+CA,yXAQE,sCCrDJ,wCAGA,oCACE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto-light\n display: block\n\n @media (prefers-color-scheme: dark)\n .theme-toggle svg.theme-icon-when-auto-dark\n display: block\n .theme-toggle svg.theme-icon-when-auto-light\n display: none\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n --font-stack--headings: var(--font-stack);\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\"/><circle cx=\"10\" cy=\"10\" r=\"7\" /><line x1=\"21\" y1=\"21\" x2=\"15\" y2=\"15\" /></svg>'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z\"/></svg>'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 5h16v2H4V5m0 4h16v2H4V9m0 4h16v2H4v-2m0 4h10v2H4v-2z\"/></svg>'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10A10 10 0 0012 2z\"/></svg>'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.83.83 0 01-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25l.05-.01m-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27h.01z\"/></svg>'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.07 11.25l-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 00-2-2 2 2 0 00-2 2H8a4 4 0 014-4 4 4 0 014 4 3.2 3.2 0 01-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10c0-5.53-4.5-10-10-10z\"/></svg>'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2 1 21z\"/></svg>'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41 15.59 7z\"/></svg>'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M11.5 20l4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2z\"/></svg>')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #6b6f76; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #0a4bff;\n --color-brand-content: #2757dd;\n --color-brand-visited: #872ee0;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n\n --color-api-added: #21632c;\n --color-api-added-border: #38a84d;\n --color-api-changed: #046172;\n --color-api-changed-border: #06a1bc;\n --color-api-deprecated: #605706;\n --color-api-deprecated-border: #f0d90f;\n --color-api-removed: #b30000;\n --color-api-removed-border: #ff5c5c;\n\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline--hover: var(--color-foreground-border);\n\n --color-link--visited: var(--color-brand-visited);\n --color-link-underline--visited: var(--color-background-border);\n --color-link--visited--hover: var(--color-brand-visited);\n --color-link-underline--visited--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #cfd0d0; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #3d94ff;\n --color-brand-content: #5ca5ff;\n --color-brand-visited: #b27aeb;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n --color-api-added: #3db854;\n --color-api-added-border: #267334;\n --color-api-changed: #09b0ce;\n --color-api-changed-border: #056d80;\n --color-api-deprecated: #b1a10b;\n --color-api-deprecated-border: #6e6407;\n --color-api-removed: #ff7575;\n --color-api-removed-border: #b03b3b;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-family: var(--font-stack--headings)\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:visited\n color: var(--color-link--visited)\n text-decoration-color: var(--color-link-underline--visited)\n &:hover\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &:visited\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\n$icon-size: 1.25rem\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n.skip-to-content\n position: fixed\n padding: 1rem\n border-radius: 1rem\n left: 0.25rem\n top: 0.25rem\n z-index: 40\n background: var(--color-background-primary)\n color: var(--color-foreground-primary)\n\n transform: translateY(-200%)\n transition: transform 300ms ease-in-out\n\n &:focus-within\n transform: translateY(0%)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: $icon-size\n width: $icon-size\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: $icon-size\n width: $icon-size\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page, .view-this-page\n svg\n color: inherit\n height: $icon-size\n width: $icon-size\n\n.sidebar-toggle\n position: absolute\n display: none\n// <debugging things>\n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// </debugging things>\n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: $icon-size\n width: $icon-size\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: calc(var(--header-height) + 2.5rem)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 4.25rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved\n border-left: 0.1875rem solid\n border-radius: 0.125rem\n\n padding-left: 0.75rem\n\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\ndiv.versionadded\n border-color: var(--color-api-added-border)\n .versionmodified\n color: var(--color-api-added)\n\ndiv.versionchanged\n border-color: var(--color-api-changed-border)\n .versionmodified\n color: var(--color-api-changed)\n\ndiv.deprecated\n border-color: var(--color-api-deprecated-border)\n .versionmodified\n color: var(--color-api-deprecated)\n\ndiv.versionremoved\n border-color: var(--color-api-removed-border)\n .versionmodified\n color: var(--color-api-removed)\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > *:not(span),\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 2.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(2.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(2.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n color: var(--color-sidebar-link-text)\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,<svg width=\"12\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"%23607D8B\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5\" /><line x1=\"10\" y1=\"14\" x2=\"20\" y2=\"4\" /><polyline points=\"15 4 20 4 20 9\" /></svg>')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the <label>\n li.has-children\n > .reference\n padding-right: var(--sidebar-expander-width)\n\n // Colorize the top-level list items and icon.\n .toctree-l1\n & > .reference,\n & > label .icon\n color: var(--color-sidebar-link-text--top-level)\n\n // Color changes on hover\n label\n background: var(--color-sidebar-item-expander-background)\n &:hover\n background: var(--color-sidebar-item-expander-background--hover)\n\n .current > .reference\n background: var(--color-sidebar-item-background--current)\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n.toctree-checkbox\n position: absolute\n display: none\n\n////////////////////////////////////////////////////////////////////////////////\n// Togglable expand/collapse\n////////////////////////////////////////////////////////////////////////////////\n.toctree-checkbox\n ~ ul\n display: none\n\n ~ label .icon svg\n transform: rotate(90deg)\n\n.toctree-checkbox:checked\n ~ ul\n display: block\n\n ~ label .icon svg\n transform: rotate(-90deg)\n","// This file contains the styles for the contents of the right sidebar, which\n// contains the table of contents for the current page.\n.toc-title-container\n padding: var(--toc-title-padding)\n padding-top: var(--toc-spacing-vertical)\n\n.toc-title\n color: var(--color-toc-title-text)\n font-size: var(--toc-title-font-size)\n padding-left: var(--toc-spacing-horizontal)\n text-transform: uppercase\n\n// If the ToC is not present, hide these elements coz they're not relevant.\n.no-toc\n display: none\n\n.toc-tree-container\n padding-bottom: var(--toc-spacing-vertical)\n\n.toc-tree\n font-size: var(--toc-font-size)\n line-height: 1.3\n border-left: 1px solid var(--color-background-border)\n\n padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))\n\n // Hide the first \"top level\" bullet.\n > ul > li:first-child\n padding-top: 0\n & > ul\n padding-left: 0\n & > a\n display: none\n\n ul\n list-style-type: none\n margin-top: 0\n margin-bottom: 0\n padding-left: var(--toc-item-spacing-horizontal)\n li\n padding-top: var(--toc-item-spacing-vertical)\n\n &.scroll-current > .reference\n color: var(--color-toc-item-text--active)\n font-weight: bold\n\n a.reference\n color: var(--color-toc-item-text)\n text-decoration: none\n overflow-wrap: anywhere\n\n.toc-scroll\n max-height: 100vh\n overflow-y: scroll\n\n// Be very annoying when someone includes the table of contents\n.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here)\n color: var(--color-problematic)\n background: rgba(255, 0, 0, 0.25)\n &::before\n content: \"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch.\"\n","// Shameful hacks, to work around bugs.\n\n// MyST parser doesn't correctly generate classes, to align table contents.\n// https://github.com/executablebooks/MyST-Parser/issues/412\n.text-align\\:left > p\n text-align: left\n\n.text-align\\:center > p\n text-align: center\n\n.text-align\\:right > p\n text-align: right\n"],"names":[],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KACE,gBAAiB,CACjB,6BACF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,CCpBJ,iBAGE,qBAEA,sBACA,0BAFA,oBAHA,4BACA,oBAKA,6BAIA,2CAFA,mBACA,sCAFA,4BAGA,CAEF,gBACE,aCTF,KCGE,mHAEA,wGAEA,wCAAyC,CAEzC,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CCjCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,+jBCYA,iqCAZF,iaCVA,8KAOA,4SAWA,4SAUA,0CACA,gEAGA,0CAGA,gEAGA,yCACA,+DAIA,4CACA,kEAGA,wCAUA,8DACA,uCAGA,4DACA,sCACA,2DAGA,4CACA,kEACA,uCAGA,6DACA,2GAGA,sHAEA,yFAEA,+CACA,+EAGA,4MAOA,gCACA,sHAIA,kCACA,uEACA,gEACA,4DACA,kEAGA,2DACA,sDACA,0CACA,8CACA,wGAGA,0BACA,iCAGA,+DACA,+BACA,sCACA,+DAEA,kGACA,oCACA,yDACA,sCL7HF,kCAEA,sDAIA,0CK2HE,kEAIA,oDACA,sDAGA,oCACA,oEAEA,0DACA,qDAIA,oDACA,6DAIA,iEAIA,2DAIA,2DAGA,4DACA,gEAIA,gEAEA,gFAEA,oNASA,qDLxKE,gFAGE,4DAIF,oEKkHF,yEAEA,6DAGA,0DAEA,uDACA,qDACA,wDAIA,6DAIA,yDACA,2DAIA,uCAGA,wCACA,sDAGA,+CAGA,6DAEA,iDACA,+DAEA,wDAEA,sEAMA,0DACA,sBACA,mEL9JI,wEAEA,iCACE,+BAMN,wEAGA,iCACE,kFAEA,uEAIF,gEACE,8BAGF,qEMvDA,sCAKA,wFAKA,iCAIA,0BAWA,iCACA,4BACA,mCAGA,+BAEA,sCACA,4BAEA,mCAEA,sCAKA,sDAIA,gCAEA,gEAQF,wCAME,sBACA,kCAKA,uBAEA,gEAIA,2BAIA,mCAEA,qCACA,iCAGE,+BACA,wEAEE,iCACA,kFAGF,6BACA,0CACF,kCAEE,8BACE,8BACA,qEAEE,sCACA,wFCnFN,iCAGF,2DAEE,4BACA,oCAGA,mIAGA,4HACE,gEAMJ,+CAGE,sBACA,yCAEF,uBAEE,sEAKA,gDACA,kEAGA,iFAGE,YAGF,EACA,4HAQF,mBACE,6BACA,mBACA,wCACA,wCACA,2CAIA,eAGA,mBAKE,mBAGA,CAJA,uCACA,iBAFF,gBACE,CAKE,mBACA,mBAGJ,oBAIF,+BAGE,kDACA,OADA,kBAGA,CAFA,gBAEA,mBACA,oBAEA,sCACA,OAGF,cAHE,WAGF,GAEE,oBACA,CAHF,gBAGE,CC9Gc,YDiHd,+CAIF,SAEE,CAPF,UACE,wBAMA,4BAEA,GAGA,uBACA,CAJA,yBAGA,CACA,iDAKA,2CAGA,2DAQA,iBACA,uCAGA,kEAKE,SAKJ,8BACE,yDACA,2BAEA,oBACA,8BAEA,yDAEE,4BAEJ,uCACE,CACA,iEAGA,CAEA,wCACE,uBACA,kDAEA,0DAEE,CAJF,oBAIE,0GAWN,aACE,CAHA,YAGA,4HASA,+CAGF,sBACE,WACA,WAQA,4BAFF,0CAEE,CARA,qCAsBA,CAdA,iBAEA,kBACE,aADF,4BACE,WAMF,2BAGF,qCAEE,CAXE,UAWF,+BAGA,uBAEA,SAEA,0CAIE,CANF,qCAEA,CAIE,2DACE,gBAIN,+CAIA,CAEA,kDAKE,CAPF,8BAEA,CAOE,YACA,CAjBI,2BAGN,CAHM,WAcJ,UAGA,CAEA,2GAIF,iCAGE,8BAIA,qBACA,oBACF,uBAOI,0CAIA,CATF,6DAKE,CALF,sBASE,qCAKF,CACE,cACA,CAFF,sBAEE,CACA,+BAEA,qBAEE,WAKN,aACE,sCAGA,mBAEA,6BAMA,kCACA,CAJA,sBACA,aAEA,CAJA,eACA,MAIA,2FAEA,UAGA,YACA,sBACE,8BAEA,CALF,aACA,WAIE,OACA,oBAEF,uBACE,WAEF,YAFE,UAEF,eAgBA,kBACE,CAhBA,qDAQF,qCAGF,CAGI,YACF,CAJF,2BAGI,CAEA,eACA,qBAGA,mEAEA,qBACA,8BAIA,kBADF,kBACE,yBAEJ,oCAGI,qDAGA,CACA,8BAMF,oCACE,+CACF,gCAIA,YACE,yBAGA,2BAGA,mCAFA,cAEA,CAHA,YACA,CAEA,4BAIE,qCACA,cAFA,4BAEA,wCACE,CADF,aACE,sBAEA,mDAEN,CAFM,YAEN,iDAEE,uCAKA,+DAIA,kBAIA,CAJA,sBAIA,mBACA,0BACF,yBAEE,YAEJ,CAFI,YAQJ,UAFI,kBAEJ,CAJE,gBAEE,CAJJ,iBAMA,yFAOI,aEjbJ,eACE,cACA,iBAEA,aAFA,iBAEA,6BAEA,kCACA,mBAKA,gCAGA,CARA,QAEA,CAGA,UALA,qBAEA,qDAGA,CALA,OAQA,4BACE,cAGF,2BACE,gCAEJ,CAHE,UAGF,8CAGE,CAHF,UAGE,wCAGA,qBACA,CAFA,UAEA,6CAGA,yCAIA,sBAHA,UAGA,kCACE,OACA,CADA,KACA,cASA,2CAFF,kBACA,CACE,wEACA,CARA,YACA,CAKF,mBAFF,MACE,CAIE,gBAJF,iCADF,eALI,oBACA,CAKF,SAIE,2BADA,UACA,kBAEJ,WACE,kDACA,mBACE,kDACA,0EACA,uDAKJ,aACE,mDAII,CAJJ,6CAII,2BACA,uCACE,kEACA,+CACE,aACA,WADA,oBACA,CADA,UACA,4FALJ,4BAEE,mBADF,0CACE,CAFF,eACA,MACE,0DACA,wCACE,sGACA,WANN,yBACE,uCACA,CAFF,UAEE,2CACE,wFACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAIF,gEAIE,6BACA,gEAIA,+CACE,0EAIF,sDAEE,+DAGF,sCACA,8BACE,oCAEJ,wBACE,4FAEE,gBAEJ,yGAGI,kBAGJ,CCnHE,2MCFF,oBAGE,wGAKA,iCACE,CADF,wBACE,8GAQA,mBCjBJ,2GAIE,mBACA,6HAMA,YACE,mIAYF,eACA,CAHF,YAGE,4FAGE,8BAKF,uBAkBE,sCACA,CADA,qBAbA,wCAIA,CALF,8BACE,CADF,gBAKE,wCACA,CAOA,kDACA,CACA,kCAKF,6BAGA,4CACE,kDACA,eAGF,cACE,aACA,iBACA,yBACA,8BACA,WAGJ,2BACE,cAGA,+BACA,CAHA,eAGA,wCACA,YACA,iBACA,uEAGA,0BACA,2CAEA,8EAGI,qBACA,CAFF,kBAEE,kBAGN,0CAGE,mCAGA,4BAIA,gEACE,qCACA,8BAEA,gBACA,+CACA,iCAEF,iCAEE,gEACA,qCAGF,8BAEE,+BAIA,yCAEE,qBADA,gBACA,yBAKF,eACA,CAFF,YACE,CACA,iBACA,qDAEA,mDCvIJ,2FAOE,iCACA,CAEA,eACA,CAHA,kBAEA,CAFA,wBAGA,8BACA,eACE,CAFF,YAEE,0BACA,8CAGA,oBACE,oCAGA,kBACE,8DAEA,iBAEN,UACE,8BAIJ,+CAEE,qDAEF,kDAIE,YAEF,CAFE,YAEF,CCpCE,mFADA,kBAKE,CAJF,IAGA,aACE,mCAGA,iDACE,+BAEJ,wBAEE,mBAMA,6CAEF,CAJE,mBAEA,CAEF,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CADA,UACA,wCC9BF,oBDkCE,wBCnCJ,uCACE,+BACA,+DACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCAEA,wCAEA,6CAMA,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DADA,+BACA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,iHACE,2DAKF,CANA,8EAMA,uSAEE,kBAEF,+FACE,yCCjEJ,WACA,yBAGA,uBACA,gBAEA,uCAIA,CAJA,iCAIA,uCAGA,UACE,gBACA,qBAEA,0CClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAiBI,kDACF,CAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAdA,cACA,iBAaA,0BAGA,mQAIA,oNAEE,iBAGJ,CAHI,gBAFF,gBAKF,8CAYI,CAZJ,wCAYI,sVACE,iCAGA,uEAHA,QAGA,qXAKJ,iDAGF,CARM,+CACE,iDAIN,CALI,gBAQN,mHACE,gBAGF,2DACE,0EAOA,0EAGF,gBAEE,6DC/EA,kDACA,gCACA,qDAGA,qBACA,qDCFA,cACA,eAEA,yBAGF,sBAEE,iBACA,sNAWA,iBACE,kBACA,wRAgBA,kBAEA,iOAgBA,uCACE,uEAEA,kBAEF,qUAuBE,iDAIJ,CACA,geCxFF,4BAEE,CAQA,6JACA,iDAIA,sEAGA,mDAOF,iDAGE,4DAIA,8CACA,qDAEE,eAFF,cAEE,oBAEF,uBAFE,kCAGA,eACA,iBACA,mBAIA,mDACA,CAHA,uCAEA,CAJA,0CACA,CAIA,gBAJA,gBACA,oBADA,gBAIA,wBAEJ,gBAGE,6BACA,YAHA,iBAGA,gCACA,iEAEA,6CACA,sDACA,0BADA,wBACA,0BACA,oIAIA,mBAFA,YAEA,qBACA,0CAIE,uBAEF,CAHA,yBACE,CAEF,iDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIF,iBAJE,wBAIF,6CAHE,6CAKA,eACA,aACA,CADA,cACA,yCAGJ,kBACE,CAKA,iDAEA,CARF,aACE,4CAGA,kBAIA,wEAGA,wDAGA,kCAOA,iDAGA,CAPF,WAEE,sCAEA,CAJF,2CACE,CAMA,qCACA,+BARF,kBACE,qCAOA,iBAsBA,sBACE,CAvBF,WAKA,CACE,0DAIF,CALA,uDACE,CANF,sBAqBA,4CACA,CALA,gRAIA,YAEE,6CAEN,mCAEE,+CASA,6EAIA,4BChNA,SDmNA,qFCnNA,gDACA,sCAGA,qCACA,sDACA,CAKA,kDAGA,CARA,0CAQA,kBAGA,YACA,sBACA,iBAFA,gBADF,YACE,CAHA,SAKA,kBAEA,SAFA,iBAEA,uEAGA,CAEE,6CAFF,oCAgBI,CAdF,yBACE,qBACF,CAGF,oBACE,CAIF,WACE,CALA,2CAGA,uBACF,CACE,mFAGE,CALF,qBAEA,UAGE,gCAIF,sDAEA,CALE,oCAKF,yCC7CJ,oCACE,CD+CA,yXAQE,sCCrDJ,wCAGA,oCACE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto-light\n display: block\n\n @media (prefers-color-scheme: dark)\n .theme-toggle svg.theme-icon-when-auto-dark\n display: block\n .theme-toggle svg.theme-icon-when-auto-light\n display: none\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n --font-stack--headings: var(--font-stack);\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\"/><circle cx=\"10\" cy=\"10\" r=\"7\" /><line x1=\"21\" y1=\"21\" x2=\"15\" y2=\"15\" /></svg>'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z\"/></svg>'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 5h16v2H4V5m0 4h16v2H4V9m0 4h16v2H4v-2m0 4h10v2H4v-2z\"/></svg>'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10A10 10 0 0012 2z\"/></svg>'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.83.83 0 01-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25l.05-.01m-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27h.01z\"/></svg>'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.07 11.25l-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 00-2-2 2 2 0 00-2 2H8a4 4 0 014-4 4 4 0 014 4 3.2 3.2 0 01-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10c0-5.53-4.5-10-10-10z\"/></svg>'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2 1 21z\"/></svg>'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41 15.59 7z\"/></svg>'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M11.5 20l4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2z\"/></svg>')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #6b6f76; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #0a4bff;\n --color-brand-content: #2757dd;\n --color-brand-visited: #872ee0;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n\n --color-api-added: #21632c;\n --color-api-added-border: #38a84d;\n --color-api-changed: #046172;\n --color-api-changed-border: #06a1bc;\n --color-api-deprecated: #605706;\n --color-api-deprecated-border: #f0d90f;\n --color-api-removed: #b30000;\n --color-api-removed-border: #ff5c5c;\n\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline--hover: var(--color-foreground-border);\n\n --color-link--visited: var(--color-brand-visited);\n --color-link-underline--visited: var(--color-background-border);\n --color-link--visited--hover: var(--color-brand-visited);\n --color-link-underline--visited--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #cfd0d0; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #3d94ff;\n --color-brand-content: #5ca5ff;\n --color-brand-visited: #b27aeb;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n --color-api-added: #3db854;\n --color-api-added-border: #267334;\n --color-api-changed: #09b0ce;\n --color-api-changed-border: #056d80;\n --color-api-deprecated: #b1a10b;\n --color-api-deprecated-border: #6e6407;\n --color-api-removed: #ff7575;\n --color-api-removed-border: #b03b3b;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-family: var(--font-stack--headings)\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:visited\n color: var(--color-link--visited)\n text-decoration-color: var(--color-link-underline--visited)\n &:hover\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &:visited\n color: var(--color-link--visited--hover)\n text-decoration-color: var(--color-link-underline--visited--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\n.skip-to-content\n position: fixed\n padding: 1rem\n border-radius: 1rem\n left: 0.25rem\n top: 0.25rem\n z-index: 40\n background: var(--color-background-primary)\n color: var(--color-foreground-primary)\n\n transform: translateY(-200%)\n transition: transform 300ms ease-in-out\n\n &:focus-within\n transform: translateY(0%)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n display: flex\n\n.theme-toggle\n display: flex\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n height: 1.25rem\n width: 1.25rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n display: flex\n align-items: center\n justify-content: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1.5rem\n width: 1.5rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page, .view-this-page\n svg\n color: inherit\n height: 1.25rem\n width: 1.25rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// <debugging things>\n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// </debugging things>\n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon, .theme-toggle-header\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: 1.5rem\n width: 1.5rem\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: calc(var(--header-height) + 2.5rem)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 4.25rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\ndiv.versionadded,\ndiv.versionchanged,\ndiv.deprecated,\ndiv.versionremoved\n border-left: 0.1875rem solid\n border-radius: 0.125rem\n\n padding-left: 0.75rem\n\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\ndiv.versionadded\n border-color: var(--color-api-added-border)\n .versionmodified\n color: var(--color-api-added)\n\ndiv.versionchanged\n border-color: var(--color-api-changed-border)\n .versionmodified\n color: var(--color-api-changed)\n\ndiv.deprecated\n border-color: var(--color-api-deprecated-border)\n .versionmodified\n color: var(--color-api-deprecated)\n\ndiv.versionremoved\n border-color: var(--color-api-removed-border)\n .versionmodified\n color: var(--color-api-removed)\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > *:not(span),\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 2.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(2.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(2.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n color: var(--color-sidebar-link-text)\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,<svg width=\"12\" height=\"12\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"%23607D8B\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5\" /><line x1=\"10\" y1=\"14\" x2=\"20\" y2=\"4\" /><polyline points=\"15 4 20 4 20 9\" /></svg>')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the <label>\n li.has-children\n > .reference\n padding-right: var(--sidebar-expander-width)\n\n // Colorize the top-level list items and icon.\n .toctree-l1\n & > .reference,\n & > label .icon\n color: var(--color-sidebar-link-text--top-level)\n\n // Color changes on hover\n label\n background: var(--color-sidebar-item-expander-background)\n &:hover\n background: var(--color-sidebar-item-expander-background--hover)\n\n .current > .reference\n background: var(--color-sidebar-item-background--current)\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n.toctree-checkbox\n position: absolute\n display: none\n\n////////////////////////////////////////////////////////////////////////////////\n// Togglable expand/collapse\n////////////////////////////////////////////////////////////////////////////////\n.toctree-checkbox\n ~ ul\n display: none\n\n ~ label .icon svg\n transform: rotate(90deg)\n\n.toctree-checkbox:checked\n ~ ul\n display: block\n\n ~ label .icon svg\n transform: rotate(-90deg)\n","// This file contains the styles for the contents of the right sidebar, which\n// contains the table of contents for the current page.\n.toc-title-container\n padding: var(--toc-title-padding)\n padding-top: var(--toc-spacing-vertical)\n\n.toc-title\n color: var(--color-toc-title-text)\n font-size: var(--toc-title-font-size)\n padding-left: var(--toc-spacing-horizontal)\n text-transform: uppercase\n\n// If the ToC is not present, hide these elements coz they're not relevant.\n.no-toc\n display: none\n\n.toc-tree-container\n padding-bottom: var(--toc-spacing-vertical)\n\n.toc-tree\n font-size: var(--toc-font-size)\n line-height: 1.3\n border-left: 1px solid var(--color-background-border)\n\n padding-left: calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))\n\n // Hide the first \"top level\" bullet.\n > ul > li:first-child\n padding-top: 0\n & > ul\n padding-left: 0\n & > a\n display: none\n\n ul\n list-style-type: none\n margin-top: 0\n margin-bottom: 0\n padding-left: var(--toc-item-spacing-horizontal)\n li\n padding-top: var(--toc-item-spacing-vertical)\n\n &.scroll-current > .reference\n color: var(--color-toc-item-text--active)\n font-weight: bold\n\n a.reference\n color: var(--color-toc-item-text)\n text-decoration: none\n overflow-wrap: anywhere\n\n.toc-scroll\n max-height: 100vh\n overflow-y: scroll\n\n// Be very annoying when someone includes the table of contents\n.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here)\n color: var(--color-problematic)\n background: rgba(255, 0, 0, 0.25)\n &::before\n content: \"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch.\"\n","// Shameful hacks, to work around bugs.\n\n// MyST parser doesn't correctly generate classes, to align table contents.\n// https://github.com/executablebooks/MyST-Parser/issues/412\n.text-align\\:left > p\n text-align: left\n\n.text-align\\:center > p\n text-align: center\n\n.text-align\\:right > p\n text-align: right\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/main/changelog.html b/main/changelog.html
index 186b745e..32618a8a 100644
--- a/main/changelog.html
+++ b/main/changelog.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Local Development &amp; Testing" href="development.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Changelog - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Changelog - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/changelog.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/changelog.html">v11.3.0</a>
</li>
@@ -462,6 +453,11 @@
<article role="main" id="furo-main-content">
<section id="changelog">
<h1>Changelog<a class="headerlink" href="#changelog" title="Link to this heading">¶</a></h1>
+<section id="Next 11.x feature release">
+<h2 style="margin-bottom: 0.3em;"><a class="reference external" href="https://github.com/python-discord/bot-core/releases/tag/vmaster">Next 11.x feature release</a></h2><ul class="simple">
+<li><p>[<span style="color: #40A056;">Feature</span>]<span>:</span><span> </span> Correct the docstring of <a class="reference internal" href="output/pydis_core.utils.interactions.html#pydis_core.utils.interactions.ViewWithUserAndRoleCheck" title="pydis_core.utils.interactions.ViewWithUserAndRoleCheck"><code class="xref py py-obj docutils literal notranslate"><span class="pre">pydis_core.utils.interactions.ViewWithUserAndRoleCheck</span></code></a>.</p></li>
+</ul>
+</section>
<section id="11.3.0">
<h2 style="margin-bottom: 0.3em;"><a class="reference external" href="https://github.com/python-discord/bot-core/releases/tag/v11.3.0">11.3.0</a> <span style="font-size: 75%;">17th July 2024</span></h2><ul class="simple">
<li><p>[<span style="color: #40A056;">Feature</span>]<span> </span><a class="reference external" href="https://github.com/python-discord/bot-core/issues/254">#254</a><span>:</span> Add a <code class="docutils literal notranslate"><span class="pre">py.typed</span></code> file for <a class="reference external" href="https://peps.python.org/pep-0561/"><code class="docutils literal notranslate"><span class="pre">PEP</span> <span class="pre">561</span></code></a> compliance.</p></li>
@@ -891,10 +887,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/development.html b/main/development.html
index ea163b7f..0a0ce55a 100644
--- a/main/development.html
+++ b/main/development.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Changelog" href="changelog.html" /><link rel="prev" title="site_api" href="output/pydis_core.site_api.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Local Development &amp; Testing - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Local Development &amp; Testing - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/development.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/development.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>To test your features locally, there are a few possible approaches:</p>
<ol class="arabic simple">
<li><p>Install your local copy of pydis_core into a pre-existing project such as bot</p></li>
-<li><p>Use the provided template from the <a class="reference external" href="https://github.com/python-discord/bot-core/blob/main/dev/bot">dev/bot</a> folder</p></li>
+<li><p>Use the provided template from the <a class="extlink-repo-file reference external" href="https://github.com/python-discord/bot-core/blob/main/dev/bot">dev/bot</a> folder</p></li>
</ol>
<p>See below for more info on both approaches.</p>
<p>What’s going to be common between them is you’ll need to write code to test your feature.
@@ -491,7 +482,7 @@ To load new changes, run the install command again.</p></li>
<section id="option-2">
<h2>Option 2<a class="headerlink" href="#option-2" title="Link to this heading">¶</a></h2>
<ol class="arabic simple">
-<li><p>Copy the <a class="reference external" href="https://github.com/python-discord/bot-core/blob/main/dev/bot">bot template folder</a> to the root of the bot-core project.
+<li><p>Copy the <a class="extlink-repo-file reference external" href="https://github.com/python-discord/bot-core/blob/main/dev/bot">bot template folder</a> 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.</p></li>
<li><p>Run the project</p>
<ul class="simple">
@@ -588,10 +579,10 @@ to help you test out certain features. Use them as needed.</p>
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/genindex.html b/main/genindex.html
index 367b8ed5..58ab86a0 100644
--- a/main/genindex.html
+++ b/main/genindex.html
@@ -4,13 +4,13 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 --><title>Index - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 --><title>Index - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -90,19 +90,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -143,7 +130,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -181,7 +168,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -208,7 +195,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -342,6 +329,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/index.html">v11.3.0</a>
</li>
@@ -1208,10 +1199,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/index.html b/main/index.html
index b47ec894..9e5e38e8 100644
--- a/main/index.html
+++ b/main/index.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Pydis Core" href="output/pydis_core.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="#"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="#"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/index.html">v11.3.0</a>
</li>
@@ -546,7 +537,7 @@
<ul class="simple">
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
-<li><p><a class="reference external" href="https://github.com/python-discord/bot-core/blob/main/docs/README.md">Information</a></p></li>
+<li><p><a class="extlink-repo-file reference external" href="https://github.com/python-discord/bot-core/blob/main/docs/README.md">Information</a></p></li>
<li><p><a class="reference internal" href="development.html"><span class="doc">Local Development &amp; Testing</span></a></p></li>
<li><p><a class="reference internal" href="changelog.html"><span class="doc">Changelog</span></a></p></li>
</ul>
@@ -591,10 +582,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/index_redirect.html b/main/index_redirect.html
index 6c8d2169..74f59af1 100644
--- a/main/index_redirect.html
+++ b/main/index_redirect.html
@@ -7,15 +7,15 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
- <title>Pydis Core Latest (11.3.0)</title>
+ <title>Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -54,10 +54,10 @@
Please click here if you were not redirected to the latest build.
</a></h2>
</div>
-<script src="_static/documentation_options.js?v=5c566949"></script>
+<script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/objects.inv b/main/objects.inv
index 5b76054b..aa290d5e 100644
--- a/main/objects.inv
+++ b/main/objects.inv
Binary files differ
diff --git a/main/output/pydis_core.async_stats.html b/main/output/pydis_core.async_stats.html
index 229f8577..3ec29ef9 100644
--- a/main/output/pydis_core.async_stats.html
+++ b/main/output/pydis_core.async_stats.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="site_api" href="pydis_core.site_api.html" /><link rel="prev" title="scheduling" href="pydis_core.utils.scheduling.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>async_stats - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>async_stats - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.async_stats.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.async_stats.html">v11.3.0</a>
</li>
@@ -465,12 +456,12 @@
<p>An async transport method for statsd communication.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.async_stats.AsyncStatsClient">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AsyncStatsClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loop</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">host</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'localhost'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8125</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/async_stats.py#L11-L54"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AsyncStatsClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loop</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">host</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'localhost'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8125</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/async_stats.py#L11-L54"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://statsd.readthedocs.io/en/v3.3/reference.html#statsd.client.base.StatsClientBase" title="(in Python StatsD - Edited by Python Discord to extend statsd base objects to also allow referencing statsd.client.base.StatsClientBase v3.3)"><code class="xref py py-class docutils literal notranslate"><span class="pre">StatsClientBase</span></code></a></p>
<p>An async implementation of <a class="reference external" href="https://statsd.readthedocs.io/en/v3.3/reference.html#statsd.client.base.StatsClientBase" title="(in Python StatsD - Edited by Python Discord to extend statsd base objects to also allow referencing statsd.client.base.StatsClientBase v3.3)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">statsd.client.base.StatsClientBase</span></code></a> that supports async stat communication.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.async_stats.AsyncStatsClient.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loop</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">host</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'localhost'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8125</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/async_stats.py#L14-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">loop</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">host</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'localhost'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8125</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/async_stats.py#L14-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Create a new <a class="reference internal" href="#pydis_core.async_stats.AsyncStatsClient" title="pydis_core.async_stats.AsyncStatsClient"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AsyncStatsClient</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -487,7 +478,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.async_stats.AsyncStatsClient.create_socket">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">create_socket</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/async_stats.py#L39-L46"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient.create_socket" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">create_socket</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/async_stats.py#L39-L46"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.async_stats.AsyncStatsClient.create_socket" title="Link to this definition">¶</a></dt>
<dd><p>Use <a class="reference external" href="https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="(in Python v3.12)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">asyncio.loop.create_datagram_endpoint</span></code></a> from the loop given on init to create a socket.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -572,10 +563,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.exts.html b/main/output/pydis_core.exts.html
index 22a3702d..733f1ea4 100644
--- a/main/output/pydis_core.exts.html
+++ b/main/output/pydis_core.exts.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Utils" href="pydis_core.utils.html" /><link rel="prev" title="Pydis Core" href="pydis_core.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Exts - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Exts - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.exts.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.exts.html">v11.3.0</a>
</li>
@@ -514,10 +505,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.html b/main/output/pydis_core.html
index d52c3982..6cfe7cf0 100644
--- a/main/output/pydis_core.html
+++ b/main/output/pydis_core.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Exts" href="pydis_core.exts.html" /><link rel="prev" title="Bot Core Project Documentation" href="../index.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Pydis Core - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Pydis Core - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.html">v11.3.0</a>
</li>
@@ -465,12 +456,12 @@
<p>Useful utilities and tools for Discord bot development.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.BotBase">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">BotBase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redis_session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">api_client</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">statsd_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">BotBase</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redis_session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">api_client</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">statsd_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Bot</span></code></a></p>
<p>A sub-class that implements many common features that Python Discord bots use.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.guild_id">
-<span class="sig-name descname"><span class="pre">guild_id</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.guild_id" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">guild_id</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.guild_id" title="Link to this definition">¶</a></dt>
<dd><p>ID of the guild that the bot belongs to.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -481,7 +472,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.http_session">
-<span class="sig-name descname"><span class="pre">http_session</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.http_session" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">http_session</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.http_session" title="Link to this definition">¶</a></dt>
<dd><p>The http session used for sending out HTTP requests.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -492,7 +483,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.api_client">
-<span class="sig-name descname"><span class="pre">api_client</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.api_client" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">api_client</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.api_client" title="Link to this definition">¶</a></dt>
<dd><p>The API client used for communications with the site service.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -503,7 +494,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.statsd_url">
-<span class="sig-name descname"><span class="pre">statsd_url</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.statsd_url" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">statsd_url</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.statsd_url" title="Link to this definition">¶</a></dt>
<dd><p>The url that statsd sends metrics to.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -514,7 +505,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.redis_session">
-<span class="sig-name descname"><span class="pre">redis_session</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.redis_session" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">redis_session</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.redis_session" title="Link to this definition">¶</a></dt>
<dd><p>The redis session used to communicate with the Redis instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -525,7 +516,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.stats">
-<span class="sig-name descname"><span class="pre">stats</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.stats" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">stats</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.stats" title="Link to this definition">¶</a></dt>
<dd><p>The statsd client that sends metrics.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -536,7 +527,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.BotBase.all_extensions">
-<span class="sig-name descname"><span class="pre">all_extensions</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.all_extensions" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">all_extensions</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L54-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.all_extensions" title="Link to this definition">¶</a></dt>
<dd><p>All extensions that were found within the <code class="docutils literal notranslate"><span class="pre">module</span></code> passed to
<code class="docutils literal notranslate"><span class="pre">self.load_extensions</span></code>. Use <code class="docutils literal notranslate"><span class="pre">self.extensions</span></code> to get the loaded extensions.</p>
<dl class="field-list simple">
@@ -548,7 +539,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redis_session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">api_client</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">statsd_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L70-L123"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">guild_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redis_session</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">api_client</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">statsd_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L70-L123"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Initialise the base bot instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -567,7 +558,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.add_cog">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_cog</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cog</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L212-L216"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.add_cog" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">add_cog</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cog</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L212-L216"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.add_cog" title="Link to this definition">¶</a></dt>
<dd><p>Add the given <code class="docutils literal notranslate"><span class="pre">cog</span></code> to the bot and log the operation.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -578,7 +569,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.add_command">
-<span class="sig-name descname"><span class="pre">add_command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">command</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L217-L221"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.add_command" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">add_command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">command</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L217-L221"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.add_command" title="Link to this definition">¶</a></dt>
<dd><p>Add <code class="docutils literal notranslate"><span class="pre">command</span></code> as normal and then add its root aliases to the bot.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -589,7 +580,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.clear">
-<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L237-L240"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.clear" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L237-L240"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.clear" title="Link to this definition">¶</a></dt>
<dd><p>Not implemented! Re-instantiate the bot instead of attempting to re-use a closed one.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -600,7 +591,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.close">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L326-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.close" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L326-L357"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.close" title="Link to this definition">¶</a></dt>
<dd><p>Close the Discord connection, and the aiohttp session, connector, statsd client, and resolver.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -611,7 +602,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.load_extensions">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">load_extensions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sync_app_commands</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L180-L190"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.load_extensions" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">load_extensions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sync_app_commands</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L180-L190"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.load_extensions" title="Link to this definition">¶</a></dt>
<dd><p>Load all the extensions within the given <code class="docutils literal notranslate"><span class="pre">module</span></code> and save them to <code class="docutils literal notranslate"><span class="pre">self.all_extensions</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -625,7 +616,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.log_to_dev_log">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_to_dev_log</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L265-L267"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.log_to_dev_log" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">log_to_dev_log</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L265-L267"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.log_to_dev_log" title="Link to this definition">¶</a></dt>
<dd><p>Log the given message to #dev-log.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -636,7 +627,7 @@ a dummy statsd client will be created.</p></li>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.on_guild_available">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_guild_available</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L248-L264"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.on_guild_available" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_guild_available</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L248-L264"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.on_guild_available" title="Link to this definition">¶</a></dt>
<dd><p>Set the internal guild available event when self.guild_id becomes available.</p>
<p>If the cache appears to still be empty (no members, no channels, or no roles), the event
will not be set and <cite>guild_available_but_cache_empty</cite> event will be emitted.</p>
@@ -649,7 +640,7 @@ will not be set and <cite>guild_available_but_cache_empty</cite> event will be e
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.on_guild_unavailable">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_guild_unavailable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L241-L247"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.on_guild_unavailable" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_guild_unavailable</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L241-L247"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.on_guild_unavailable" title="Link to this definition">¶</a></dt>
<dd><p>Clear the internal guild available event when self.guild_id becomes unavailable.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -660,7 +651,7 @@ will not be set and <cite>guild_available_but_cache_empty</cite> event will be e
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.ping_services">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ping_services</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L323-L325"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.ping_services" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ping_services</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L323-L325"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.ping_services" title="Link to this definition">¶</a></dt>
<dd><p>Ping all required services on setup to ensure they are up before starting.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -671,7 +662,7 @@ will not be set and <cite>guild_available_but_cache_empty</cite> event will be e
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.process_commands">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">process_commands</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L277-L286"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.process_commands" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">process_commands</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L277-L286"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.process_commands" title="Link to this definition">¶</a></dt>
<dd><p>Overwrite default Discord.py behaviour to process commands only after ensuring extensions are loaded.</p>
<p>This extension check is only relevant for clients that make use of <a class="reference internal" href="#pydis_core.BotBase.load_extensions" title="pydis_core.BotBase.load_extensions"><code class="xref py py-obj docutils literal notranslate"><span class="pre">pydis_core.BotBase.load_extensions</span></code></a>.</p>
<dl class="field-list simple">
@@ -683,7 +674,7 @@ will not be set and <cite>guild_available_but_cache_empty</cite> event will be e
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.register_command_error_manager">
-<span class="sig-name descname"><span class="pre">register_command_error_manager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">manager</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L124-L133"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.register_command_error_manager" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">register_command_error_manager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">manager</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L124-L133"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.register_command_error_manager" title="Link to this definition">¶</a></dt>
<dd><p>Bind an instance of the command error manager to both the bot and the command tree.</p>
<p>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.</p>
@@ -696,7 +687,7 @@ So registration needs to happen once the bot instance has been created.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.remove_command">
-<span class="sig-name descname"><span class="pre">remove_command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L222-L236"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.remove_command" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">remove_command</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L222-L236"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.remove_command" title="Link to this definition">¶</a></dt>
<dd><p>Remove a command/alias as normal and then remove its root aliases from the bot.</p>
<p>Individual root aliases cannot be removed by this function.
To remove them, either remove the entire command or manually edit <cite>bot.all_commands</cite>.</p>
@@ -709,7 +700,7 @@ To remove them, either remove the entire command or manually edit <cite>bot.all_
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.setup_hook">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">setup_hook</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L287-L322"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.setup_hook" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">setup_hook</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L287-L322"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.setup_hook" title="Link to this definition">¶</a></dt>
<dd><p>An async init to startup generic services.</p>
<p>Connects to statsd, and calls
<a class="reference internal" href="pydis_core.async_stats.html#pydis_core.async_stats.AsyncStatsClient.create_socket" title="pydis_core.async_stats.AsyncStatsClient.create_socket"><code class="xref py py-func docutils literal notranslate"><span class="pre">AsyncStatsClient.create_socket</span></code></a>
@@ -723,7 +714,7 @@ and <a class="reference internal" href="#pydis_core.BotBase.ping_services" title
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.BotBase.wait_until_guild_available">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait_until_guild_available</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L268-L276"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.wait_until_guild_available" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait_until_guild_available</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L268-L276"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.BotBase.wait_until_guild_available" title="Link to this definition">¶</a></dt>
<dd><p>Wait until the guild that matches the <code class="docutils literal notranslate"><span class="pre">guild_id</span></code> given at init is available (and the cache is ready).</p>
<p>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.</p>
@@ -738,14 +729,14 @@ gateway event before giving up and thus not populating the cache for unavailable
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.EmptyPaginatorEmbedError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">EmptyPaginatorEmbedError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L26-L28"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.EmptyPaginatorEmbedError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">EmptyPaginatorEmbedError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L26-L28"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.EmptyPaginatorEmbedError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised when attempting to paginate with empty contents.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.LinePaginator">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LinePaginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L30-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LinePaginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L30-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Paginator" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Paginator</span></code></a></p>
<p>A class that aids in paginating code blocks for Discord messages.</p>
<dl class="field-list simple">
@@ -762,14 +753,14 @@ gateway event before giving up and thus not populating the cache for unavailable
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.LinePaginator.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L43-L81"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L43-L81"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.__init__" title="Link to this definition">¶</a></dt>
<dd><p>This function overrides the Paginator.__init__ from inside discord.ext.commands.</p>
<p>It overrides in order to allow us to configure the maximum number of lines per page.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.LinePaginator.add_line">
-<span class="sig-name descname"><span class="pre">add_line</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">line</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L82-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.add_line" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">add_line</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">line</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L82-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.add_line" title="Link to this definition">¶</a></dt>
<dd><p>Adds a line to the current page.</p>
<p>If a line on a page exceeds <cite>max_size</cite> characters, then <cite>max_size</cite> will go up to
<cite>scale_to_size</cite> for a single line before creating a new page for the overflow words. If it
@@ -797,7 +788,7 @@ page at a reasonable size.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.LinePaginator.paginate">
-<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">paginate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pagination_emojis</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lines</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restrict_to_user</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">footer_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exception_on_empty_embed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reply</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L189-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.paginate" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">paginate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pagination_emojis</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lines</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restrict_to_user</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">footer_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exception_on_empty_embed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reply</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L189-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.LinePaginator.paginate" title="Link to this definition">¶</a></dt>
<dd><p>Use a paginator and set of reactions to provide pagination over a set of lines.</p>
<p>The reactions are used to switch page, or to finish with pagination.</p>
<p>When used, this will send a message using <cite>ctx.send()</cite> and apply a set of reactions to it. These reactions may
@@ -841,7 +832,7 @@ to any user with a moderation role.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.PaginationEmojis">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PaginationEmojis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L16-L24"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.PaginationEmojis" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PaginationEmojis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L16-L24"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.PaginationEmojis" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel" title="(in Pydantic v0.0.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseModel</span></code></a></p>
<p>The emojis that will be used for pagination.</p>
<dl class="py attribute">
@@ -868,12 +859,12 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.StartupError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">StartupError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L29-L35"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.StartupError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">StartupError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L29-L35"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.StartupError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Exception class for startup errors.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.StartupError.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/_bot.py#L32-L35"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.StartupError.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/_bot.py#L32-L35"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.StartupError.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
@@ -1143,10 +1134,10 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.site_api.html b/main/output/pydis_core.site_api.html
index d75f7eb4..99736c4d 100644
--- a/main/output/pydis_core.site_api.html
+++ b/main/output/pydis_core.site_api.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="Local Development &amp; Testing" href="../development.html" /><link rel="prev" title="async_stats" href="pydis_core.async_stats.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>site_api - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>site_api - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.site_api.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.site_api.html">v11.3.0</a>
</li>
@@ -465,12 +456,12 @@
<p>An API wrapper around the Site API.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">APIClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_api_url</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">site_api_token</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">session_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L41-L142"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">APIClient</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_api_url</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">site_api_token</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">session_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L41-L142"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>A wrapper for the Django Site API.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_api_url</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">site_api_token</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">session_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L47-L70"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_api_url</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">site_api_token</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">session_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L47-L70"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Initialize a new <a class="reference internal" href="#pydis_core.site_api.APIClient" title="pydis_core.site_api.APIClient"><code class="xref py py-obj docutils literal notranslate"><span class="pre">APIClient</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -485,7 +476,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.close">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L74-L77"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.close" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">close</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L74-L77"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.close" title="Link to this definition">¶</a></dt>
<dd><p>Close the aiohttp session.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -496,7 +487,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.delete">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L139-L142"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.delete" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">delete</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L139-L142"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.delete" title="Link to this definition">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> with DELETE passed as the method.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -507,7 +498,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.get">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L123-L126"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.get" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L123-L126"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.get" title="Link to this definition">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> with GET passed as the method.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -518,7 +509,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.maybe_raise_for_status">
-<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">maybe_raise_for_status</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">should_raise</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L78-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.maybe_raise_for_status" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">maybe_raise_for_status</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">should_raise</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L78-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.maybe_raise_for_status" title="Link to this definition">¶</a></dt>
<dd><p>Raise <a class="reference internal" href="#pydis_core.site_api.ResponseCodeError" title="pydis_core.site_api.ResponseCodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResponseCodeError</span></code></a> for non-OK response if an exception should be raised.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -538,7 +529,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.patch">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">patch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L127-L130"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.patch" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">patch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L127-L130"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.patch" title="Link to this definition">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> with PATCH passed as the method.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -549,7 +540,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.post">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">post</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L131-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.post" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">post</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L131-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.post" title="Link to this definition">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> with POST passed as the method.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -560,7 +551,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.put">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">put</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L135-L138"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.put" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">put</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L135-L138"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.put" title="Link to this definition">¶</a></dt>
<dd><p>Equivalent to <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> with PUT passed as the method.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -571,7 +562,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.APIClient.request">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L99-L122"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.request" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">request</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">method</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">endpoint</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_for_status</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L99-L122"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.APIClient.request" title="Link to this definition">¶</a></dt>
<dd><p>Send an HTTP request to the site API and return the JSON response.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -598,12 +589,12 @@
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.site_api.ResponseCodeError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ResponseCodeError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_json</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L13-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ResponseCodeError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_json</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L13-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a></p>
<p>Raised in <a class="reference internal" href="#pydis_core.site_api.APIClient.request" title="pydis_core.site_api.APIClient.request"><code class="xref py py-meth docutils literal notranslate"><span class="pre">APIClient.request()</span></code></a> when a non-OK HTTP response is received.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.ResponseCodeError.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_json</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L16-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">response</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_json</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">response_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L16-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Initialize a new <a class="reference internal" href="#pydis_core.site_api.ResponseCodeError" title="pydis_core.site_api.ResponseCodeError"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ResponseCodeError</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -618,7 +609,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.site_api.ResponseCodeError.__str__">
-<span class="sig-name descname"><span class="pre">__str__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/site_api.py#L35-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError.__str__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__str__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/site_api.py#L35-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.site_api.ResponseCodeError.__str__" title="Link to this definition">¶</a></dt>
<dd><p>Return a string representation of the error.</p>
</dd></dl>
@@ -710,10 +701,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.caching.html b/main/output/pydis_core.utils.caching.html
index 596914a0..71972098 100644
--- a/main/output/pydis_core.utils.caching.html
+++ b/main/output/pydis_core.utils.caching.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="channel" href="pydis_core.utils.channel.html" /><link rel="prev" title="manager" href="pydis_core.utils.error_handling.commands.manager.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>caching - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>caching - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.caching.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.caching.html">v11.3.0</a>
</li>
@@ -465,14 +456,14 @@
<p>Utilities related to custom caches.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.caching.AsyncCache">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AsyncCache</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">128</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/caching.py#L8-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AsyncCache</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">128</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/caching.py#L8-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>LRU cache implementation for coroutines.</p>
<p>Once the cache exceeds the maximum size, keys are deleted in FIFO order.</p>
<p>An offset may be optionally provided to be applied to the coroutine’s arguments when creating the cache key.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.caching.AsyncCache.__call__">
-<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">arg_offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/caching.py#L27-L62"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.__call__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">arg_offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/caching.py#L27-L62"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.__call__" title="Link to this definition">¶</a></dt>
<dd><p>Decorator for async cache.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -489,7 +480,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.caching.AsyncCache.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">128</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/caching.py#L17-L26"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">128</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/caching.py#L17-L26"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Initialise a new <a class="reference internal" href="#pydis_core.utils.caching.AsyncCache" title="pydis_core.utils.caching.AsyncCache"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AsyncCache</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -500,7 +491,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.caching.AsyncCache.clear">
-<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/caching.py#L63-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.clear" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">clear</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/caching.py#L63-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.caching.AsyncCache.clear" title="Link to this definition">¶</a></dt>
<dd><p>Clear cache instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -586,10 +577,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.channel.html b/main/output/pydis_core.utils.channel.html
index cecb04ba..8c8c59e0 100644
--- a/main/output/pydis_core.utils.channel.html
+++ b/main/output/pydis_core.utils.channel.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="checks" href="pydis_core.utils.checks.html" /><link rel="prev" title="caching" href="pydis_core.utils.caching.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>channel - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>channel - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.channel.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.channel.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>Useful helper functions for interacting with various discord channel objects.</p>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.channel.get_or_fetch_channel">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_or_fetch_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bot</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/channel.py#L25-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.channel.get_or_fetch_channel" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_or_fetch_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bot</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/channel.py#L25-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.channel.get_or_fetch_channel" title="Link to this definition">¶</a></dt>
<dd><p>Attempt to get or fetch the given <code class="docutils literal notranslate"><span class="pre">channel_id</span></code> from the bots cache, and return it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -493,7 +484,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.channel.is_in_category">
-<span class="sig-name descname"><span class="pre">is_in_category</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/channel.py#L11-L23"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.channel.is_in_category" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">is_in_category</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">category_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/channel.py#L11-L23"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.channel.is_in_category" title="Link to this definition">¶</a></dt>
<dd><p>Return whether the given <code class="docutils literal notranslate"><span class="pre">channel</span></code> in the the category with the id <code class="docutils literal notranslate"><span class="pre">category_id</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -582,10 +573,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.checks.html b/main/output/pydis_core.utils.checks.html
index c28a55bf..7bf5dd79 100644
--- a/main/output/pydis_core.utils.checks.html
+++ b/main/output/pydis_core.utils.checks.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="commands" href="pydis_core.utils.commands.html" /><link rel="prev" title="channel" href="pydis_core.utils.channel.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>checks - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>checks - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.checks.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.checks.html">v11.3.0</a>
</li>
@@ -464,26 +455,26 @@
<span id="checks"></span><h1>checks<a class="headerlink" href="#module-pydis_core.utils.checks" title="Link to this heading">¶</a></h1>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.checks.ContextCheckFailure">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ContextCheckFailure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L20-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.ContextCheckFailure" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ContextCheckFailure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L20-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.ContextCheckFailure" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.CheckFailure" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">CheckFailure</span></code></a></p>
<p>Raised when a context-specific check fails.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.checks.ContextCheckFailure.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L23-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.ContextCheckFailure.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L23-L34"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.ContextCheckFailure.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.checks.InWhitelistCheckFailure">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InWhitelistCheckFailure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L36-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.InWhitelistCheckFailure" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">InWhitelistCheckFailure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">redirect_channel</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L36-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.InWhitelistCheckFailure" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference internal" href="#pydis_core.utils.checks.ContextCheckFailure" title="pydis_core.utils.checks.ContextCheckFailure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ContextCheckFailure</span></code></a></p>
<p>Raised when the <cite>in_whitelist</cite> check fails.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.checks.cooldown_with_role_bypass">
-<span class="sig-name descname"><span class="pre">cooldown_with_role_bypass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">per</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type_</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('default',</span> <span class="pre">0)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bypass_roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L100-L161"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.cooldown_with_role_bypass" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">cooldown_with_role_bypass</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">per</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type_</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('default',</span> <span class="pre">0)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bypass_roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L100-L161"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.cooldown_with_role_bypass" title="Link to this definition">¶</a></dt>
<dd><p>Decorate a command to have a cooldown, which can be bypassed by users with specified roles.</p>
<p>Note: This replaces the <cite>Command.before_invoke</cite> callback, which <em>might</em> introduce problems in the future.</p>
<dl class="field-list simple">
@@ -509,7 +500,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.checks.has_any_role_check">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_any_role_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L163-L193"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.has_any_role_check" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_any_role_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L163-L193"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.has_any_role_check" title="Link to this definition">¶</a></dt>
<dd><p>Verify if the context’s author has any of the specified roles.</p>
<p>This check will always fail if the context is a DM, since DMs don’t have roles.</p>
<dl class="field-list simple">
@@ -530,7 +521,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.checks.has_no_roles_check">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_no_roles_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L195-L222"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.has_no_roles_check" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_no_roles_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">roles</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L195-L222"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.has_no_roles_check" title="Link to this definition">¶</a></dt>
<dd><p>Verify if the context’s author doesn’t have any of the specified roles.</p>
<p>This check will always fail if the context is a DM, since DMs don’t have roles.</p>
<dl class="field-list simple">
@@ -551,7 +542,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.checks.in_whitelist_check">
-<span class="sig-name descname"><span class="pre">in_whitelist_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redirect</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channels</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">categories</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fail_silently</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/checks.py#L40-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.in_whitelist_check" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">in_whitelist_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">redirect</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channels</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">categories</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fail_silently</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/checks.py#L40-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.checks.in_whitelist_check" title="Link to this definition">¶</a></dt>
<dd><p>Check if a command was issued in a context that is whitelisted by channel, category, or roles.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -654,10 +645,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.commands.html b/main/output/pydis_core.utils.commands.html
index 7dcc847e..f68dadf1 100644
--- a/main/output/pydis_core.utils.commands.html
+++ b/main/output/pydis_core.utils.commands.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="cooldown" href="pydis_core.utils.cooldown.html" /><link rel="prev" title="checks" href="pydis_core.utils.checks.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>commands - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>commands - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.commands.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.commands.html">v11.3.0</a>
</li>
@@ -464,7 +455,7 @@
<span id="commands"></span><h1>commands<a class="headerlink" href="#module-pydis_core.utils.commands" title="Link to this heading">¶</a></h1>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.commands.clean_text_or_reply">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">clean_text_or_reply</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/commands.py#L6-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.commands.clean_text_or_reply" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">clean_text_or_reply</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/commands.py#L6-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.commands.clean_text_or_reply" title="Link to this definition">¶</a></dt>
<dd><p>Cleans a text argument or replied message’s content.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -555,10 +546,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.cooldown.html b/main/output/pydis_core.utils.cooldown.html
index a4b69f51..12bce644 100644
--- a/main/output/pydis_core.utils.cooldown.html
+++ b/main/output/pydis_core.utils.cooldown.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="function" href="pydis_core.utils.function.html" /><link rel="prev" title="commands" href="pydis_core.utils.commands.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>cooldown - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>cooldown - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.cooldown.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.cooldown.html">v11.3.0</a>
</li>
@@ -465,17 +456,17 @@
<p>Helpers for setting a cooldown on commands.</p>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.CommandOnCooldown">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandOnCooldown</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">/</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L36-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandOnCooldown</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">/</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L36-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.CommandError" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">CommandError</span></code></a>, <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Generic" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Generic</span></code></a>[<a class="reference internal" href="#pydis_core.utils.cooldown.P" title="pydis_core.utils.cooldown.P"><code class="xref py py-obj docutils literal notranslate"><span class="pre">P</span></code></a>, <a class="reference internal" href="#pydis_core.utils.cooldown.R" title="pydis_core.utils.cooldown.R"><code class="xref py py-obj docutils literal notranslate"><span class="pre">R</span></code></a>]</p>
<p>Raised when a command is invoked while on cooldown.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.CommandOnCooldown.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">/</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L39-L51"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">/</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L39-L51"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">call_without_cooldown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L52-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">call_without_cooldown</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L52-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.CommandOnCooldown.call_without_cooldown" title="Link to this definition">¶</a></dt>
<dd><p>Run the command this cooldown blocked.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -491,20 +482,20 @@
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.P">
-<span class="sig-name descname"><span class="pre">P</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">~P</span></em><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L30"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.P" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">P</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">~P</span></em><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L30"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.P" title="Link to this definition">¶</a></dt>
<dd><p>The command’s signature.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.R">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">R</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L32"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.R" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">R</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L32"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.R" title="Link to this definition">¶</a></dt>
<dd><p>The command’s return value.</p>
<p>alias of TypeVar(‘R’)</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.cooldown.block_duplicate_invocations">
-<span class="sig-name descname"><span class="pre">block_duplicate_invocations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cooldown_duration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">send_notice</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args_preprocessor</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/cooldown.py#L174-L220"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.block_duplicate_invocations" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">block_duplicate_invocations</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cooldown_duration</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">send_notice</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args_preprocessor</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/cooldown.py#L174-L220"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.cooldown.block_duplicate_invocations" title="Link to this definition">¶</a></dt>
<dd><p>Prevent duplicate invocations of a command with the same arguments in a channel for <code class="docutils literal notranslate"><span class="pre">cooldown_duration</span></code> seconds.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -605,10 +596,10 @@ its return value is then used to check for the cooldown instead of the raw argum
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
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 8e1b5059..8a7d6389 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 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="manager" href="pydis_core.utils.error_handling.commands.manager.html" /><link rel="prev" title="commands package" href="pydis_core.utils.error_handling.commands.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>abc - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>abc - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.error_handling.commands.abc.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.error_handling.commands.abc.html">v11.3.0</a>
</li>
@@ -464,12 +455,12 @@
<span id="abc"></span><h1>abc<a class="headerlink" href="#module-pydis_core.utils.error_handling.commands.abc" title="Link to this heading">¶</a></h1>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AbstractCommandErrorHandler</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L8-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AbstractCommandErrorHandler</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L8-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/abc.html#abc.ABC" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ABC</span></code></a></p>
<p>An abstract command error handler.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_app_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_app_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_app_command_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle error raised in the context of app commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -480,7 +471,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_text_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L21-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_text_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L21-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.handle_text_command_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle error raised in the context of text commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -491,7 +482,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">should_handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L11-L15"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">should_handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L11-L15"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler.should_handle_error" title="Link to this definition">¶</a></dt>
<dd><p>A predicate that determines whether the error should be handled.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -577,10 +568,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.error_handling.commands.html b/main/output/pydis_core.utils.error_handling.commands.html
index 82437c73..4f7f7b79 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 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="abc" href="pydis_core.utils.error_handling.commands.abc.html" /><link rel="prev" title="error_handling package" href="pydis_core.utils.error_handling.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>commands package - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>commands package - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.error_handling.commands.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.error_handling.commands.html">v11.3.0</a>
</li>
@@ -464,12 +455,12 @@
<span id="commands-package"></span><h1>commands package<a class="headerlink" href="#module-pydis_core.utils.error_handling.commands" title="Link to this heading">¶</a></h1>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AbstractCommandErrorHandler</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L8-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">AbstractCommandErrorHandler</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L8-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/abc.html#abc.ABC" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">ABC</span></code></a></p>
<p>An abstract command error handler.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_app_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_app_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_app_command_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle error raised in the context of app commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -480,7 +471,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_text_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L21-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_text_command_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L21-L25"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.handle_text_command_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle error raised in the context of text commands.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -491,7 +482,7 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error">
-<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">should_handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/abc.py#L11-L15"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">abstract</span><span class="w"> </span><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">should_handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/abc.py#L11-L15"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.AbstractCommandErrorHandler.should_handle_error" title="Link to this definition">¶</a></dt>
<dd><p>A predicate that determines whether the error should be handled.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -504,17 +495,17 @@
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.CommandErrorManager">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandErrorManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L13-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandErrorManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L13-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>A class that registers error handlers and handles all command related errors.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.CommandErrorManager.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context_or_interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L21-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context_or_interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L21-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.handle_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle a Discord exception.</p>
<p>Iterate through available handlers by registration order, and choose the first one capable of handling
the error as determined by <cite>should_handle_error</cite>; there is no priority system.</p>
@@ -527,7 +518,7 @@ the error as determined by <cite>should_handle_error</cite>; there is no priorit
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler">
-<span class="sig-name descname"><span class="pre">register_handler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L39-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">register_handler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L39-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.CommandErrorManager.register_handler" title="Link to this definition">¶</a></dt>
<dd><p>Register a command error handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -645,10 +636,10 @@ the error as determined by <cite>should_handle_error</cite>; there is no priorit
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
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 0188f1e5..922930c4 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 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="caching" href="pydis_core.utils.caching.html" /><link rel="prev" title="abc" href="pydis_core.utils.error_handling.commands.abc.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>manager - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>manager - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.error_handling.commands.manager.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.error_handling.commands.manager.html">v11.3.0</a>
</li>
@@ -464,17 +455,17 @@
<span id="manager"></span><h1>manager<a class="headerlink" href="#module-pydis_core.utils.error_handling.commands.manager" title="Link to this heading">¶</a></h1>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.manager.CommandErrorManager">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandErrorManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L13-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CommandErrorManager</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L13-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>A class that registers error handlers and handles all command related errors.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">default</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L16-L20"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context_or_interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L21-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_error</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context_or_interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L21-L38"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.handle_error" title="Link to this definition">¶</a></dt>
<dd><p>Handle a Discord exception.</p>
<p>Iterate through available handlers by registration order, and choose the first one capable of handling
the error as determined by <cite>should_handle_error</cite>; there is no priority system.</p>
@@ -487,7 +478,7 @@ the error as determined by <cite>should_handle_error</cite>; there is no priorit
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler">
-<span class="sig-name descname"><span class="pre">register_handler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/commands/manager.py#L39-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">register_handler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">handler</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/commands/manager.py#L39-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.commands.manager.CommandErrorManager.register_handler" title="Link to this definition">¶</a></dt>
<dd><p>Register a command error handler.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -573,10 +564,10 @@ the error as determined by <cite>should_handle_error</cite>; there is no priorit
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.error_handling.html b/main/output/pydis_core.utils.error_handling.html
index 7bf4640a..131d8542 100644
--- a/main/output/pydis_core.utils.error_handling.html
+++ b/main/output/pydis_core.utils.error_handling.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="commands package" href="pydis_core.utils.error_handling.commands.html" /><link rel="prev" title="Utils" href="pydis_core.utils.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>error_handling package - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>error_handling package - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.error_handling.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.error_handling.html">v11.3.0</a>
</li>
@@ -464,7 +455,7 @@
<span id="error-handling-package"></span><h1>error_handling package<a class="headerlink" href="#module-pydis_core.utils.error_handling" title="Link to this heading">¶</a></h1>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.error_handling.handle_forbidden_from_block">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_forbidden_from_block</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/error_handling/__init__.py#L8-L36"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.handle_forbidden_from_block" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_forbidden_from_block</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">error</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/error_handling/__init__.py#L8-L36"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.error_handling.handle_forbidden_from_block" title="Link to this definition">¶</a></dt>
<dd><p>Handles <code class="docutils literal notranslate"><span class="pre">discord.Forbidden</span></code> 90001 errors, or re-raises if <code class="docutils literal notranslate"><span class="pre">error</span></code> isn’t a 90001 error.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -583,10 +574,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.function.html b/main/output/pydis_core.utils.function.html
index 40cfcb24..5ca82903 100644
--- a/main/output/pydis_core.utils.function.html
+++ b/main/output/pydis_core.utils.function.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="interactions" href="pydis_core.utils.interactions.html" /><link rel="prev" title="cooldown" href="pydis_core.utils.cooldown.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>function - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>function - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.function.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.function.html">v11.3.0</a>
</li>
@@ -465,14 +456,14 @@
<p>Utils for manipulating functions.</p>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.function.GlobalNameConflictError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GlobalNameConflictError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L31-L33"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.GlobalNameConflictError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GlobalNameConflictError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L31-L33"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.GlobalNameConflictError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised on a conflict between the globals used to resolve annotations of a wrapped function and its wrapper.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.command_wraps">
-<span class="sig-name descname"><span class="pre">command_wraps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assigned</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__module__',</span> <span class="pre">'__name__',</span> <span class="pre">'__qualname__',</span> <span class="pre">'__doc__',</span> <span class="pre">'__annotations__')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">updated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__dict__',)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L173-L204"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.command_wraps" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">command_wraps</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assigned</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__module__',</span> <span class="pre">'__name__',</span> <span class="pre">'__qualname__',</span> <span class="pre">'__doc__',</span> <span class="pre">'__annotations__')</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">updated</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('__dict__',)</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L173-L204"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.command_wraps" title="Link to this definition">¶</a></dt>
<dd><p>Update the decorated function to look like <code class="docutils literal notranslate"><span class="pre">wrapped</span></code>, and update globals for discord.py forwardref evaluation.</p>
<p>See <a class="reference internal" href="#pydis_core.utils.function.update_wrapper_globals" title="pydis_core.utils.function.update_wrapper_globals"><code class="xref py py-func docutils literal notranslate"><span class="pre">update_wrapper_globals()</span></code></a> for more details on how the globals are updated.</p>
<dl class="field-list simple">
@@ -496,7 +487,7 @@ with the wrapper replaced with the function <a class="reference internal" href="
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.get_arg_value">
-<span class="sig-name descname"><span class="pre">get_arg_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">arguments</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L35-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">get_arg_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">arguments</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L35-L66"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value" title="Link to this definition">¶</a></dt>
<dd><p>Return a value from <cite>arguments</cite> based on a name or position.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -519,7 +510,7 @@ with the wrapper replaced with the function <a class="reference internal" href="
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.get_arg_value_wrapper">
-<span class="sig-name descname"><span class="pre">get_arg_value_wrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">decorator_func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L68-L92"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value_wrapper" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">get_arg_value_wrapper</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">decorator_func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L68-L92"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_arg_value_wrapper" title="Link to this definition">¶</a></dt>
<dd><p>Call <cite>decorator_func</cite> with the value of the arg at the given name/position.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -541,7 +532,7 @@ parameter names to argument values of the function it’s decorating.</p></li>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.get_bound_args">
-<span class="sig-name descname"><span class="pre">get_bound_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L94-L112"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_bound_args" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">get_bound_args</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L94-L112"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.get_bound_args" title="Link to this definition">¶</a></dt>
<dd><p>Bind <cite>args</cite> and <cite>kwargs</cite> to <cite>func</cite> and return a mapping of parameter names to argument values.</p>
<p>Default parameter values are also set.</p>
<dl class="field-list simple">
@@ -563,7 +554,7 @@ parameter names to argument values of the function it’s decorating.</p></li>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.function.update_wrapper_globals">
-<span class="sig-name descname"><span class="pre">update_wrapper_globals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapper</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/function.py#L114-L171"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.update_wrapper_globals" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">update_wrapper_globals</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wrapper</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wrapped</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ignored_conflict_names</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">frozenset({})</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/function.py#L114-L171"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.function.update_wrapper_globals" title="Link to this definition">¶</a></dt>
<dd><p>Create a copy of <code class="docutils literal notranslate"><span class="pre">wrapper</span></code>, the copy’s globals are updated with <code class="docutils literal notranslate"><span class="pre">wrapped</span></code>'s globals.</p>
<p>For forwardrefs in command annotations, discord.py uses the <code class="docutils literal notranslate"><span class="pre">__global__</span></code> attribute of the function
to resolve their values. This breaks for decorators that replace the function because they have
@@ -666,10 +657,10 @@ changes won’t be reflected in the new function’s globals.</p>
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.html b/main/output/pydis_core.utils.html
index 74eb53f6..46ced6dd 100644
--- a/main/output/pydis_core.utils.html
+++ b/main/output/pydis_core.utils.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="error_handling package" href="pydis_core.utils.error_handling.html" /><link rel="prev" title="Exts" href="pydis_core.exts.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Utils - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Utils - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>Useful utilities and tools for Discord bot development.</p>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.apply_monkey_patches">
-<span class="sig-name descname"><span class="pre">apply_monkey_patches</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/__init__.py#L28-L42"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.apply_monkey_patches" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">apply_monkey_patches</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/__init__.py#L28-L42"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.apply_monkey_patches" title="Link to this definition">¶</a></dt>
<dd><p>Applies all common monkey patches for our bots.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -484,7 +475,7 @@ that will act as top-level groups rather than being aliases of the command’s g
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.unqualify">
-<span class="sig-name descname"><span class="pre">unqualify</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/_extensions.py#L10-L21"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.unqualify" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">unqualify</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/_extensions.py#L10-L21"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.unqualify" title="Link to this definition">¶</a></dt>
<dd><p>Return an unqualified name given a qualified module/package <code class="docutils literal notranslate"><span class="pre">name</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -757,10 +748,10 @@ that will act as top-level groups rather than being aliases of the command’s g
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.interactions.html b/main/output/pydis_core.utils.interactions.html
index 2c553367..57a03524 100644
--- a/main/output/pydis_core.utils.interactions.html
+++ b/main/output/pydis_core.utils.interactions.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="lock" href="pydis_core.utils.lock.html" /><link rel="prev" title="function" href="pydis_core.utils.function.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>interactions - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>interactions - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.interactions.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.interactions.html">v11.3.0</a>
</li>
@@ -464,7 +455,7 @@
<span id="interactions"></span><h1>interactions<a class="headerlink" href="#module-pydis_core.utils.interactions" title="Link to this heading">¶</a></h1>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.DeleteMessageButton">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DeleteMessageButton</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('secondary',</span> <span class="pre">2)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Delete'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L111-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DeleteMessageButton</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('secondary',</span> <span class="pre">2)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Delete'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L111-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/interactions/api.html#discord.ui.Button" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Button</span></code></a></p>
<p>A button that can be added to a view to delete the message containing the view on click.</p>
<p>This button itself carries out no interaction checks, these should be done by the parent view.</p>
@@ -479,12 +470,12 @@
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.DeleteMessageButton.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('secondary',</span> <span class="pre">2)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Delete'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L125-L133"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">style</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">('secondary',</span> <span class="pre">2)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Delete'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L125-L133"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.DeleteMessageButton.callback">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L134-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton.callback" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">callback</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L134-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.DeleteMessageButton.callback" title="Link to this definition">¶</a></dt>
<dd><p>Delete the original message on button click.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -497,9 +488,9 @@
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.ViewWithUserAndRoleCheck">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ViewWithUserAndRoleCheck</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L50-L109"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ViewWithUserAndRoleCheck</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L50-L109"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/interactions/api.html#discord.ui.View" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">View</span></code></a></p>
-<p>A view that allows the original invoker and moderators to interact with it.</p>
+<p>A view that allows only allows the specified users, or users with the specified roles, to interact with it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
@@ -514,12 +505,12 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L63-L75"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L63-L75"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interaction_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L76-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">interaction_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interaction</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L76-L98"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.interaction_check" title="Link to this definition">¶</a></dt>
<dd><p>Ensure the user clicking the button is the view invoker, or a moderator.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -533,7 +524,7 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_timeout</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L105-L109"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">on_timeout</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L105-L109"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.on_timeout" title="Link to this definition">¶</a></dt>
<dd><p>Remove the view from <code class="docutils literal notranslate"><span class="pre">self.message</span></code> if set.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -544,7 +535,7 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop">
-<span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L99-L104"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">stop</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L99-L104"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.ViewWithUserAndRoleCheck.stop" title="Link to this definition">¶</a></dt>
<dd><p>Stop listening for interactions, and remove the view from <code class="docutils literal notranslate"><span class="pre">self.message</span></code> if set.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -557,7 +548,7 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.interactions.user_has_access">
-<span class="sig-name descname"><span class="pre">user_has_access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/interactions.py#L12-L30"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.user_has_access" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">user_has_access</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/interactions.py#L12-L30"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.interactions.user_has_access" title="Link to this definition">¶</a></dt>
<dd><p>Return whether the user is in the allowed_users list, or has a role from allowed_roles.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -655,10 +646,10 @@ If <code class="docutils literal notranslate"><span class="pre">None</span></cod
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.lock.html b/main/output/pydis_core.utils.lock.html
index 87a3676e..c1dd6401 100644
--- a/main/output/pydis_core.utils.lock.html
+++ b/main/output/pydis_core.utils.lock.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="logging" href="pydis_core.utils.logging.html" /><link rel="prev" title="interactions" href="pydis_core.utils.interactions.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>lock - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>lock - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.lock.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.lock.html">v11.3.0</a>
</li>
@@ -464,12 +455,12 @@
<span id="lock"></span><h1>lock<a class="headerlink" href="#module-pydis_core.utils.lock" title="Link to this heading">¶</a></h1>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.lock.LockedResourceError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LockedResourceError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LockedResourceError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#RuntimeError" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">RuntimeError</span></code></a></p>
<p>Exception raised when an operation is attempted on a locked resource.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.utils.lock.LockedResourceError.type">
-<span class="sig-name descname"><span class="pre">type</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.type" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">type</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.type" title="Link to this definition">¶</a></dt>
<dd><p>Name of the locked resource’s type</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -480,7 +471,7 @@
<dl class="py attribute">
<dt class="sig sig-object py" id="pydis_core.utils.lock.LockedResourceError.id">
-<span class="sig-name descname"><span class="pre">id</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.id" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">id</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L22-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.id" title="Link to this definition">¶</a></dt>
<dd><p>ID of the locked resource</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
@@ -491,38 +482,38 @@
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.lock.LockedResourceError.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L31-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">resource_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L31-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.LockedResourceError.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.lock.SharedEvent">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SharedEvent</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L41-L68"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">SharedEvent</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L41-L68"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Context manager managing an internal event exposed through the wait coro.</p>
<p>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.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.lock.SharedEvent.__enter__">
-<span class="sig-name descname"><span class="pre">__enter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L54-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__enter__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__enter__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L54-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__enter__" title="Link to this definition">¶</a></dt>
<dd><p>Increment the count of the active holders and clear the internal event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.lock.SharedEvent.__exit__">
-<span class="sig-name descname"><span class="pre">__exit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L59-L64"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__exit__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__exit__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">_exc_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_exc_val</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">_exc_tb</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L59-L64"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__exit__" title="Link to this definition">¶</a></dt>
<dd><p>Decrement the count of the active holders; if 0 is reached set the internal event.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.lock.SharedEvent.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L49-L53"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L49-L53"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.__init__" title="Link to this definition">¶</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.lock.SharedEvent.wait">
-<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L65-L68"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.wait" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">wait</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L65-L68"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.SharedEvent.wait" title="Link to this definition">¶</a></dt>
<dd><p>Wait for all active holders to exit.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -535,7 +526,7 @@ when all of the holders finish the event will be set.</p>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.lock.lock">
-<span class="sig-name descname"><span class="pre">lock</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_error</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L70-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.lock" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">lock</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">resource_id</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_error</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L70-L137"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.lock" title="Link to this definition">¶</a></dt>
<dd><p>Turn the decorated coroutine function into a mutually exclusive operation on a <cite>resource_id</cite>.</p>
<p>If decorating a command, this decorator must go before (below) the <cite>command</cite> decorator.</p>
<dl class="field-list simple">
@@ -562,7 +553,7 @@ and return None.</p></li>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.lock.lock_arg">
-<span class="sig-name descname"><span class="pre">lock_arg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_error</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/lock.py#L139-L157"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.lock_arg" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">lock_arg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">namespace</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name_or_pos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">raise_error</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wait</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/lock.py#L139-L157"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.lock.lock_arg" title="Link to this definition">¶</a></dt>
<dd><p>Apply the <cite>lock</cite> decorator using the value of the arg at the given name/position as the ID.</p>
<p>See <cite>lock</cite> docs for more information.</p>
<dl class="field-list simple">
@@ -659,10 +650,10 @@ and return None.</p></li>
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.logging.html b/main/output/pydis_core.utils.logging.html
index 6a118682..4a43df28 100644
--- a/main/output/pydis_core.utils.logging.html
+++ b/main/output/pydis_core.utils.logging.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="members" href="pydis_core.utils.members.html" /><link rel="prev" title="lock" href="pydis_core.utils.lock.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>logging - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>logging - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.logging.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.logging.html">v11.3.0</a>
</li>
@@ -465,12 +456,12 @@
<p>Common logging related functions.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.logging.CustomLogger">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CustomLogger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/logging.py#L20-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.CustomLogger" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CustomLogger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/logging.py#L20-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.CustomLogger" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/logging.html#logging.Logger" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Logger</span></code></a></p>
<p>Custom implementation of the <a class="reference external" href="https://docs.python.org/3/library/logging.html#logging.Logger" title="(in Python v3.12)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logging.Logger</span></code></a> class with an added <a class="reference internal" href="#pydis_core.utils.logging.CustomLogger.trace" title="pydis_core.utils.logging.CustomLogger.trace"><code class="xref py py-obj docutils literal notranslate"><span class="pre">trace</span></code></a> method.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.logging.CustomLogger.trace">
-<span class="sig-name descname"><span class="pre">trace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/logging.py#L23-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.CustomLogger.trace" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">trace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">msg</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/logging.py#L23-L39"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.CustomLogger.trace" title="Link to this definition">¶</a></dt>
<dd><p>Log the given message with the severity <code class="docutils literal notranslate"><span class="pre">&quot;TRACE&quot;</span></code>.</p>
<p>To pass exception information, use the keyword argument exc_info with a true value:</p>
<div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="n">logger</span><span class="o">.</span><span class="n">trace</span><span class="p">(</span><span class="s2">&quot;Houston, we have an </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;interesting problem&quot;</span><span class="p">,</span> <span class="n">exc_info</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
@@ -494,7 +485,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.logging.get_logger">
-<span class="sig-name descname"><span class="pre">get_logger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/logging.py#L41-L52"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.get_logger" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">get_logger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/logging.py#L41-L52"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.get_logger" title="Link to this definition">¶</a></dt>
<dd><p>Utility to make mypy recognise that logger is of type <a class="reference internal" href="#pydis_core.utils.logging.CustomLogger" title="pydis_core.utils.logging.CustomLogger"><code class="xref py py-obj docutils literal notranslate"><span class="pre">CustomLogger</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -511,7 +502,7 @@
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.logging.log_format">
-<span class="sig-name descname"><span class="pre">log_format</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/logging.py#L12"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.log_format" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">log_format</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/logging.py#L12"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.logging.log_format" title="Link to this definition">¶</a></dt>
<dd><p>A <a class="reference external" href="https://docs.python.org/3/library/logging.html#logging.Formatter" title="(in Python v3.12)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">logging.Formatter</span></code></a> that can be used to standardise logging across all projects using pydis_core.</p>
<dl class="field-list simple">
</dl>
@@ -592,10 +583,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.members.html b/main/output/pydis_core.utils.members.html
index 5efdee72..af272330 100644
--- a/main/output/pydis_core.utils.members.html
+++ b/main/output/pydis_core.utils.members.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="messages" href="pydis_core.utils.messages.html" /><link rel="prev" title="logging" href="pydis_core.utils.logging.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>members - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>members - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.members.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.members.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>Useful helper functions for interactin with <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/api.html#discord.Member" title="(in discord.py v2.5.0a)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">discord.Member</span></code></a> objects.</p>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.members.get_or_fetch_member">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_or_fetch_member</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">member_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/members.py#L12-L31"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.members.get_or_fetch_member" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_or_fetch_member</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">guild</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">member_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/members.py#L12-L31"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.members.get_or_fetch_member" title="Link to this definition">¶</a></dt>
<dd><p>Attempt to get a member from cache; on failure fetch from the API.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -479,7 +470,7 @@
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.members.handle_role_change">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_role_change</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">member</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coro</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">role</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/members.py#L33-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.members.handle_role_change" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_role_change</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">member</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coro</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">role</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/members.py#L33-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.members.handle_role_change" title="Link to this definition">¶</a></dt>
<dd><p>Await the given <code class="docutils literal notranslate"><span class="pre">coro</span></code> with <code class="docutils literal notranslate"><span class="pre">role</span></code> as the sole argument.</p>
<p>Handle errors that we expect to be raised from
<a class="reference external" href="https://discordpy.readthedocs.io/en/latest/api.html#discord.Member.add_roles" title="(in discord.py v2.5.0a)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">discord.Member.add_roles</span></code></a> and <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/api.html#discord.Member.remove_roles" title="(in discord.py v2.5.0a)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">discord.Member.remove_roles</span></code></a>.</p>
@@ -568,10 +559,10 @@
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.messages.html b/main/output/pydis_core.utils.messages.html
index ce36d969..0599cf63 100644
--- a/main/output/pydis_core.utils.messages.html
+++ b/main/output/pydis_core.utils.messages.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="pagination" href="pydis_core.utils.pagination.html" /><link rel="prev" title="members" href="pydis_core.utils.members.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>messages - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>messages - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.messages.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.messages.html">v11.3.0</a>
</li>
@@ -464,7 +455,7 @@
<span id="messages"></span><h1>messages<a class="headerlink" href="#module-pydis_core.utils.messages" title="Link to this heading">¶</a></h1>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.messages.reaction_check">
-<span class="sig-name descname"><span class="pre">reaction_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_emoji</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/messages.py#L11-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.messages.reaction_check" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">reaction_check</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reaction</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_emoji</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_users</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/messages.py#L11-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.messages.reaction_check" title="Link to this definition">¶</a></dt>
<dd><p>Check if a reaction’s emoji and author are allowed and the message is <cite>message_id</cite>.</p>
<p>If the user is not allowed, remove the reaction. Ignore reactions made by the bot.
If <cite>allow_mods</cite> is True, allow users with moderator roles even if they’re not in <cite>allowed_users</cite>.</p>
@@ -545,10 +536,10 @@ If <cite>allow_mods</cite> is True, allow users with moderator roles even if the
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.pagination.html b/main/output/pydis_core.utils.pagination.html
index a6a2fa92..60f5ebe2 100644
--- a/main/output/pydis_core.utils.pagination.html
+++ b/main/output/pydis_core.utils.pagination.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="paste_service" href="pydis_core.utils.paste_service.html" /><link rel="prev" title="messages" href="pydis_core.utils.messages.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>pagination - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>pagination - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.pagination.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.pagination.html">v11.3.0</a>
</li>
@@ -464,14 +455,14 @@
<span id="pagination"></span><h1>pagination<a class="headerlink" href="#module-pydis_core.utils.pagination" title="Link to this heading">¶</a></h1>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.EmptyPaginatorEmbedError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">EmptyPaginatorEmbedError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L26-L28"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.EmptyPaginatorEmbedError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">EmptyPaginatorEmbedError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L26-L28"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.EmptyPaginatorEmbedError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised when attempting to paginate with empty contents.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.LinePaginator">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LinePaginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L30-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">LinePaginator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L30-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Paginator" title="(in discord.py v2.5.0a)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Paginator</span></code></a></p>
<p>A class that aids in paginating code blocks for Discord messages.</p>
<dl class="field-list simple">
@@ -488,14 +479,14 @@
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.LinePaginator.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L43-L81"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'```'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">linesep</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'\\n'</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L43-L81"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.__init__" title="Link to this definition">¶</a></dt>
<dd><p>This function overrides the Paginator.__init__ from inside discord.ext.commands.</p>
<p>It overrides in order to allow us to configure the maximum number of lines per page.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.LinePaginator.add_line">
-<span class="sig-name descname"><span class="pre">add_line</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">line</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L82-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.add_line" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">add_line</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">line</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L82-L134"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.add_line" title="Link to this definition">¶</a></dt>
<dd><p>Adds a line to the current page.</p>
<p>If a line on a page exceeds <cite>max_size</cite> characters, then <cite>max_size</cite> will go up to
<cite>scale_to_size</cite> for a single line before creating a new page for the overflow words. If it
@@ -523,7 +514,7 @@ page at a reasonable size.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.LinePaginator.paginate">
-<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">paginate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pagination_emojis</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lines</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restrict_to_user</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">footer_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exception_on_empty_embed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reply</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L189-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.paginate" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">async</span><span class="w"> </span><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">paginate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">pagination_emojis</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lines</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">embed</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prefix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suffix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_lines</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scale_to_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">4000</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">empty</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">restrict_to_user</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timeout</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">footer_text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">exception_on_empty_embed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reply</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allowed_roles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L189-L398"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.LinePaginator.paginate" title="Link to this definition">¶</a></dt>
<dd><p>Use a paginator and set of reactions to provide pagination over a set of lines.</p>
<p>The reactions are used to switch page, or to finish with pagination.</p>
<p>When used, this will send a message using <cite>ctx.send()</cite> and apply a set of reactions to it. These reactions may
@@ -567,7 +558,7 @@ to any user with a moderation role.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.pagination.PaginationEmojis">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PaginationEmojis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/pagination.py#L16-L24"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.PaginationEmojis" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PaginationEmojis</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/pagination.py#L16-L24"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.pagination.PaginationEmojis" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel" title="(in Pydantic v0.0.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseModel</span></code></a></p>
<p>The emojis that will be used for pagination.</p>
<dl class="py attribute">
@@ -674,10 +665,10 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.paste_service.html b/main/output/pydis_core.utils.paste_service.html
index 921d06ba..ab3b4692 100644
--- a/main/output/pydis_core.utils.paste_service.html
+++ b/main/output/pydis_core.utils.paste_service.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="regex" href="pydis_core.utils.regex.html" /><link rel="prev" title="pagination" href="pydis_core.utils.pagination.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>paste_service - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>paste_service - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.paste_service.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.paste_service.html">v11.3.0</a>
</li>
@@ -464,13 +455,13 @@
<span id="paste-service"></span><h1>paste_service<a class="headerlink" href="#module-pydis_core.utils.paste_service" title="Link to this heading">¶</a></h1>
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.MAX_PASTE_SIZE">
-<span class="sig-name descname"><span class="pre">MAX_PASTE_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">524288</span></em><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L13"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.MAX_PASTE_SIZE" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">MAX_PASTE_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">524288</span></em><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L13"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.MAX_PASTE_SIZE" title="Link to this definition">¶</a></dt>
<dd><p>The maximum allows size of a paste, in bytes.</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.PasteFile">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteFile</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L33-L46"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteFile" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteFile</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L33-L46"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteFile" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel" title="(in Pydantic v0.0.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseModel</span></code></a></p>
<p>A file to be pasted to the paste service.</p>
<dl class="field-list simple">
@@ -506,7 +497,7 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.PasteResponse">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteResponse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L20-L31"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteResponse" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteResponse</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L20-L31"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteResponse" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel" title="(in Pydantic v0.0.0)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseModel</span></code></a></p>
<p>A successful response from the paste service.</p>
<dl class="field-list simple">
@@ -541,28 +532,28 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.PasteTooLongError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteTooLongError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L56-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteTooLongError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteTooLongError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L56-L58"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteTooLongError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised when content is too large to upload to the paste service.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.PasteUnsupportedLexerError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteUnsupportedLexerError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L52-L54"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteUnsupportedLexerError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteUnsupportedLexerError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L52-L54"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteUnsupportedLexerError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised when an unsupported lexer is used.</p>
</dd></dl>
<dl class="py exception">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.PasteUploadError">
-<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteUploadError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L48-L50"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteUploadError" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PasteUploadError</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L48-L50"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.PasteUploadError" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#Exception" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a></p>
<p>Raised when an error is encountered uploading to the paste service.</p>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.paste_service.send_to_paste_service">
-<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">send_to_paste_service</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">files</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">paste_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'https://paste.pythondiscord.com'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">524288</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/paste_service.py#L70-L155"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.send_to_paste_service" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">send_to_paste_service</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">files</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">http_session</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">paste_url</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'https://paste.pythondiscord.com'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">524288</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/paste_service.py#L70-L155"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.paste_service.send_to_paste_service" title="Link to this definition">¶</a></dt>
<dd><p>Upload some contents to the paste service.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -675,10 +666,10 @@ mapping of field names to [<cite>FieldInfo</cite>][pydantic.fields.FieldInfo].</
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.regex.html b/main/output/pydis_core.utils.regex.html
index f35aafcb..4da29c70 100644
--- a/main/output/pydis_core.utils.regex.html
+++ b/main/output/pydis_core.utils.regex.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="scheduling" href="pydis_core.utils.scheduling.html" /><link rel="prev" title="paste_service" href="pydis_core.utils.paste_service.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>regex - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>regex - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.regex.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.regex.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>Common regular expressions.</p>
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.regex.DISCORD_INVITE">
-<span class="sig-name descname"><span class="pre">DISCORD_INVITE</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/regex.py#L5-L17"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.DISCORD_INVITE" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">DISCORD_INVITE</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/regex.py#L5-L17"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.DISCORD_INVITE" title="Link to this definition">¶</a></dt>
<dd><p>Regex for Discord server invites.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
@@ -479,7 +470,7 @@ such as <a class="reference external" href="https://docs.python.org/3/library/ur
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.regex.FORMATTED_CODE_REGEX">
-<span class="sig-name descname"><span class="pre">FORMATTED_CODE_REGEX</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/regex.py#L29-L37"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.FORMATTED_CODE_REGEX" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">FORMATTED_CODE_REGEX</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/regex.py#L29-L37"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.FORMATTED_CODE_REGEX" title="Link to this definition">¶</a></dt>
<dd><p>Regex for formatted code, using Discord’s code blocks.</p>
<dl class="field-list simple">
</dl>
@@ -487,7 +478,7 @@ such as <a class="reference external" href="https://docs.python.org/3/library/ur
<dl class="py data">
<dt class="sig sig-object py" id="pydis_core.utils.regex.RAW_CODE_REGEX">
-<span class="sig-name descname"><span class="pre">RAW_CODE_REGEX</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/regex.py#L44-L49"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.RAW_CODE_REGEX" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">RAW_CODE_REGEX</span></span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/regex.py#L44-L49"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.regex.RAW_CODE_REGEX" title="Link to this definition">¶</a></dt>
<dd><p>Regex for raw code, <em>not</em> using Discord’s code blocks.</p>
<dl class="field-list simple">
</dl>
@@ -565,10 +556,10 @@ such as <a class="reference external" href="https://docs.python.org/3/library/ur
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/output/pydis_core.utils.scheduling.html b/main/output/pydis_core.utils.scheduling.html
index e41f0cb1..de416dbf 100644
--- a/main/output/pydis_core.utils.scheduling.html
+++ b/main/output/pydis_core.utils.scheduling.html
@@ -5,14 +5,14 @@
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="async_stats" href="pydis_core.async_stats.html" /><link rel="prev" title="regex" href="pydis_core.utils.regex.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>scheduling - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>scheduling - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="../_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="../_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="../_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="../index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../../v11.3.1/output/pydis_core.utils.scheduling.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../../v11.3.0/output/pydis_core.utils.scheduling.html">v11.3.0</a>
</li>
@@ -465,7 +456,7 @@
<p>Generic python scheduler.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L19-L216"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler" title="Link to this definition">¶</a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Scheduler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L19-L216"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler" title="Link to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p>
<p>Schedule the execution of coroutines and keep track of them.</p>
<p>When instantiating a <a class="reference internal" href="#pydis_core.utils.scheduling.Scheduler" title="pydis_core.utils.scheduling.Scheduler"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Scheduler</span></code></a>, a name must be provided. This name is used to distinguish the
@@ -479,7 +470,7 @@ the same ID used to schedule it.</p>
<p>Any exception raised in a scheduled task is logged when the task is done.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.__contains__">
-<span class="sig-name descname"><span class="pre">__contains__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L49-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.__contains__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__contains__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L49-L60"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.__contains__" title="Link to this definition">¶</a></dt>
<dd><p>Return <a class="reference external" href="https://docs.python.org/3/library/constants.html#True" title="(in Python v3.12)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">True</span></code></a> if a task with the given <code class="docutils literal notranslate"><span class="pre">task_id</span></code> is currently scheduled.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -496,7 +487,7 @@ the same ID used to schedule it.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L37-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.__init__" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L37-L48"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.__init__" title="Link to this definition">¶</a></dt>
<dd><p>Initialize a new <a class="reference internal" href="#pydis_core.utils.scheduling.Scheduler" title="pydis_core.utils.scheduling.Scheduler"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Scheduler</span></code></a> instance.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -507,7 +498,7 @@ the same ID used to schedule it.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.cancel">
-<span class="sig-name descname"><span class="pre">cancel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L132-L149"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.cancel" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">cancel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L132-L149"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.cancel" title="Link to this definition">¶</a></dt>
<dd><p>Unschedule the task identified by <code class="docutils literal notranslate"><span class="pre">task_id</span></code>. Log a warning if the task doesn’t exist.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -521,7 +512,7 @@ the same ID used to schedule it.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.cancel_all">
-<span class="sig-name descname"><span class="pre">cancel_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L150-L156"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.cancel_all" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">cancel_all</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L150-L156"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.cancel_all" title="Link to this definition">¶</a></dt>
<dd><p>Unschedule all known tasks.</p>
<dl class="field-list simple">
<dt class="field-odd">Return type<span class="colon">:</span></dt>
@@ -532,7 +523,7 @@ the same ID used to schedule it.</p>
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.schedule">
-<span class="sig-name descname"><span class="pre">schedule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L61-L88"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">schedule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L61-L88"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule" title="Link to this definition">¶</a></dt>
<dd><p>Schedule the execution of a <code class="docutils literal notranslate"><span class="pre">coroutine</span></code>.</p>
<p>If a task with <code class="docutils literal notranslate"><span class="pre">task_id</span></code> already exists, close <code class="docutils literal notranslate"><span class="pre">coroutine</span></code> instead of scheduling it. This
prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-used elsewhere.</p>
@@ -551,7 +542,7 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.schedule_at">
-<span class="sig-name descname"><span class="pre">schedule_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">time</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L89-L112"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule_at" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">schedule_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">time</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L89-L112"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule_at" title="Link to this definition">¶</a></dt>
<dd><p>Schedule <code class="docutils literal notranslate"><span class="pre">coroutine</span></code> to be executed at the given <code class="docutils literal notranslate"><span class="pre">time</span></code>.</p>
<p>If <code class="docutils literal notranslate"><span class="pre">time</span></code> is timezone aware, then use that timezone to calculate now() when subtracting.
If <code class="docutils literal notranslate"><span class="pre">time</span></code> is naïve, then use UTC.</p>
@@ -574,7 +565,7 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
<dl class="py method">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.Scheduler.schedule_later">
-<span class="sig-name descname"><span class="pre">schedule_later</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">delay</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L113-L131"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule_later" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">schedule_later</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">delay</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">task_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coroutine</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L113-L131"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.Scheduler.schedule_later" title="Link to this definition">¶</a></dt>
<dd><p>Schedule <code class="docutils literal notranslate"><span class="pre">coroutine</span></code> to be executed after <code class="docutils literal notranslate"><span class="pre">delay</span></code> seconds.</p>
<p>If a task with <code class="docutils literal notranslate"><span class="pre">task_id</span></code> already exists, close <code class="docutils literal notranslate"><span class="pre">coroutine</span></code> instead of scheduling it. This
prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-used elsewhere.</p>
@@ -596,7 +587,7 @@ prevents unawaited coroutine warnings. Don’t pass a coroutine that’ll be re-
<dl class="py function">
<dt class="sig sig-object py" id="pydis_core.utils.scheduling.create_task">
-<span class="sig-name descname"><span class="pre">create_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">coro</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suppressed_exceptions</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">event_loop</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/e5023a0480337666bfe88874a66913c084bdb682/pydis_core/utils/scheduling.py#L221-L252"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.create_task" title="Link to this definition">¶</a></dt>
+<span class="sig-name descname"><span class="pre">create_task</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">coro</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">suppressed_exceptions</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">()</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">event_loop</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/python-discord/bot-core/blob/8a9d7f0bd1b64f967fe5848f6b2c38d8575b39fc/pydis_core/utils/scheduling.py#L221-L252"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pydis_core.utils.scheduling.create_task" title="Link to this definition">¶</a></dt>
<dd><p>Wrapper for creating an <a class="reference external" href="https://docs.python.org/3/library/asyncio-task.html#asyncio.Task" title="(in Python v3.12)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> which logs exceptions raised in the task.</p>
<p>If the <code class="docutils literal notranslate"><span class="pre">event_loop</span></code> kwarg is provided, the task is created from that event loop,
otherwise the running loop is used.</p>
@@ -698,10 +689,10 @@ otherwise the running loop is used.</p>
</aside>
</div>
-</div><script src="../_static/documentation_options.js?v=5c566949"></script>
+</div><script src="../_static/documentation_options.js?v=f82eed50"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="../_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="../_static/scripts/furo.js?v=5fa4622c"></script>
<script src="../_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/py-modindex.html b/main/py-modindex.html
index b3be6066..a535f9cc 100644
--- a/main/py-modindex.html
+++ b/main/py-modindex.html
@@ -4,13 +4,13 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 --><title>Python Module Index - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 --><title>Python Module Index - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -90,19 +90,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -143,7 +130,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -181,7 +168,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -208,7 +195,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -342,6 +329,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/index.html">v11.3.0</a>
</li>
@@ -642,10 +633,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file
diff --git a/main/search.html b/main/search.html
index 852ec174..b92c1ed1 100644
--- a/main/search.html
+++ b/main/search.html
@@ -5,14 +5,14 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
<meta name="robots" content="noindex" />
-<title>Search - Pydis Core Latest (11.3.0)</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+<title>Search - Pydis Core Latest (11.3.1)</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -92,19 +92,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -145,7 +132,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -183,7 +170,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -210,7 +197,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="#" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -344,6 +331,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/index.html">v11.3.0</a>
</li>
@@ -497,10 +488,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
<script src="_static/searchtools.js"></script>
diff --git a/main/searchindex.js b/main/searchindex.js
index 365ab31d..bf1feac1 100644
--- a/main/searchindex.js
+++ b/main/searchindex.js
@@ -1 +1 @@
-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, "244": 0, "24th": 0, "254": 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, "561": 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], "complianc": 0, "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, "pep": 0, "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 &amp; 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
+Search.setIndex({"alltitles": {"Bot Core Project Documentation": [[2, null]], "Changelog": [[0, null]], "Extras": [[2, "extras"]], "Exts": [[5, null]], "Local Development & Testing": [[1, null]], "Modules:": [[2, null]], "Option 1": [[1, "option-1"]], "Option 2": [[1, "option-2"]], "Pydis Core": [[3, null]], "Reference": [[2, "reference"]], "Submodules": [[3, "submodules"], [7, "submodules"], [14, "submodules"]], "Subpackages": [[3, "subpackages"], [7, "subpackages"], [13, "subpackages"]], "Utils": [[7, null]], "abc": [[15, null]], "async_stats": [[4, null]], "caching": [[8, null]], "channel": [[9, null]], "checks": [[10, null]], "commands": [[11, null]], "commands package": [[14, null]], "cooldown": [[12, null]], "error_handling package": [[13, null]], "function": [[17, null]], "interactions": [[18, null]], "lock": [[19, null]], "logging": [[20, null]], "manager": [[16, null]], "members": [[21, null]], "messages": [[22, null]], "pagination": [[23, null]], "paste_service": [[24, null]], "regex": [[25, null]], "scheduling": [[26, null]], "site_api": [[6, null]]}, "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": 62, "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, "244": 0, "24th": 0, "254": 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, "561": 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], "complianc": 0, "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": [0, 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, 18], "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, "pep": 0, "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 &amp; 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 51b0ca5f..68950dd2 100644
--- a/main/versions.html
+++ b/main/versions.html
@@ -4,14 +4,14 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" />
- <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.3.7 and Furo 2024.05.06 -->
- <title>Versions - Pydis Core Latest (11.3.0)</title>
+ <link rel="shortcut icon" href="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg"/><!-- Generated with Sphinx 7.4.7 and Furo 2024.07.18 -->
+ <title>Versions - Pydis Core Latest (11.3.1)</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=a746c00c" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=387cc868" />
- <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=36a5483c" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=613ab9ff" />
+ <link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=302659d7" />
+ <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
<link rel="stylesheet" type="text/css" href="_static/index.css?v=832e2368" />
<link rel="stylesheet" type="text/css" href="_static/changelog.css?v=117bb91a" />
- <link rel="stylesheet" type="text/css" href="_static/logo.css?v=41ebe54c" />
@@ -91,19 +91,6 @@
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
- <symbol id="svg-sun-half" viewBox="0 0 24 24">
- <title>Auto light/dark mode</title>
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
- stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
- <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
- <circle cx="12" cy="12" r="9" />
- <path d="M13 12h5" />
- <path d="M13 15h4" />
- <path d="M13 18h1" />
- <path d="M13 9h4" />
- <path d="M13 6h1" />
- </svg>
- </symbol>
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
<title>Auto light/dark, in light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
@@ -144,7 +131,7 @@
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
<path d="M13.5 6.5l4 4" />
<path d="M20 21l2 -2l-2 -2" />
- <path d="M17 17l-2 2l2 2" /
+ <path d="M17 17l-2 2l2 2" />
</svg>
</symbol>
<symbol id="svg-eye" viewBox="0 0 24 24">
@@ -182,7 +169,7 @@
</label>
</div>
<div class="header-center">
- <a href="index.html"><div class="brand">Pydis Core Latest (11.3.0)</div></a>
+ <a href="index.html"><div class="brand">Pydis Core Latest (11.3.1)</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@@ -209,7 +196,7 @@
<img class="sidebar-logo" src="https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_full/logo_full.min.svg" alt="Logo"/>
</div>
- <span class="sidebar-brand-text">Pydis Core Latest (11.3.0)</span>
+ <span class="sidebar-brand-text">Pydis Core Latest (11.3.1)</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
@@ -343,6 +330,10 @@
</li>
<li class="toctree-l2 ">
+ <a class="version_link reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+ </li>
+
+ <li class="toctree-l2 ">
<a class="version_link reference internal" href="../v11.3.0/index.html">v11.3.0</a>
</li>
@@ -563,6 +554,12 @@
</li>
<li>
+ <a class="reference internal" href="../v11.3.1/index.html">v11.3.1</a>
+
+
+ </li>
+
+ <li>
<a class="reference internal" href="../v11.3.0/index.html">v11.3.0</a>
@@ -680,10 +677,10 @@
</aside>
</div>
-</div><script src="_static/documentation_options.js?v=5c566949"></script>
+</div><script src="_static/documentation_options.js?v=f82eed50"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
- <script src="_static/scripts/furo.js?v=4e2eecee"></script>
+ <script src="_static/scripts/furo.js?v=5fa4622c"></script>
<script src="_static/changelog.js?v=11ff7913"></script>
</body>
</html> \ No newline at end of file