Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: boto/boto3
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 1.36.6
Choose a base ref
...
head repository: boto/boto3
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1.36.7
Choose a head ref
  • 7 commits
  • 14 files changed
  • 4 contributors

Commits on Jan 24, 2025

  1. Merge branch 'release-1.36.6' into develop

    * release-1.36.6:
      Bumping version to 1.36.6
      Add changelog entries from botocore
    aws-sdk-python-automation committed Jan 24, 2025
    Copy the full SHA
    0ef73f5 View commit details

Commits on Jan 27, 2025

  1. Bump aws-actions/stale-issue-cleanup

    Bumps [aws-actions/stale-issue-cleanup](https://github.com/aws-actions/stale-issue-cleanup) from c452909aaa3fd1be240576cb41c6dd7bcb95cc10 to 119dcadf8036efef52409d94132c9441c346285c.
    - [Release notes](https://github.com/aws-actions/stale-issue-cleanup/releases)
    - [Commits](aws-actions/stale-issue-cleanup@c452909...119dcad)
    
    ---
    updated-dependencies:
    - dependency-name: aws-actions/stale-issue-cleanup
      dependency-type: direct:production
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Jan 27, 2025
    Copy the full SHA
    e7d463b View commit details
  2. Removes inline scripts and inline styles to make it compatible with t…

    …he newly added security headers (#4369)
    
    * This change updates the furo generator files to remove inline styles and scripts to make them compatible with the newly added security headers
    ubaskota authored Jan 27, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    45bd69c View commit details
  3. Merge pull request #4407 from boto/dependabot/github_actions/aws-acti…

    …ons/stale-issue-cleanup-119dcadf8036efef52409d94132c9441c346285c
    nateprewitt authored Jan 27, 2025
    Copy the full SHA
    b0e0593 View commit details
  4. Copy the full SHA
    030de63 View commit details
  5. Copy the full SHA
    9d078a7 View commit details
  6. Merge branch 'release-1.36.7'

    * release-1.36.7:
      Bumping version to 1.36.7
      Add changelog entries from botocore
      Removes inline scripts and inline styles to make it compatible with the newly added security headers (#4369)
      Bump aws-actions/stale-issue-cleanup
    aws-sdk-python-automation committed Jan 27, 2025
    Copy the full SHA
    d1a05a1 View commit details
27 changes: 27 additions & 0 deletions .changes/1.36.7.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[
{
"category": "``bedrock-agent``",
"description": "[``botocore``] Add support for the prompt caching feature for Bedrock Prompt Management",
"type": "api-change"
},
{
"category": "``iot``",
"description": "[``botocore``] Raised the documentParameters size limit to 30 KB for AWS IoT Device Management - Jobs.",
"type": "api-change"
},
{
"category": "``mediaconvert``",
"description": "[``botocore``] This release adds support for dynamic audio configuration and the ability to disable the deblocking filter for h265 encodes.",
"type": "api-change"
},
{
"category": "``s3control``",
"description": "[``botocore``] Minor fix to ARN validation for Lambda functions passed to S3 Batch Operations",
"type": "api-change"
},
{
"category": "Signing",
"description": "[``botocore``] No longer sign transfer-encoding header for SigV4",
"type": "bugfix"
}
]
2 changes: 1 addition & 1 deletion .github/workflows/stale_issue.yml
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
name: Stale issue job
steps:
- uses: aws-actions/stale-issue-cleanup@c452909aaa3fd1be240576cb41c6dd7bcb95cc10
- uses: aws-actions/stale-issue-cleanup@119dcadf8036efef52409d94132c9441c346285c
with:
issue-types: issues
stale-issue-message: Greetings! It looks like this issue hasn’t been
10 changes: 10 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -2,6 +2,16 @@
CHANGELOG
=========

1.36.7
======

* api-change:``bedrock-agent``: [``botocore``] Add support for the prompt caching feature for Bedrock Prompt Management
* api-change:``iot``: [``botocore``] Raised the documentParameters size limit to 30 KB for AWS IoT Device Management - Jobs.
* api-change:``mediaconvert``: [``botocore``] This release adds support for dynamic audio configuration and the ability to disable the deblocking filter for h265 encodes.
* api-change:``s3control``: [``botocore``] Minor fix to ARN validation for Lambda functions passed to S3 Batch Operations
* bugfix:Signing: [``botocore``] No longer sign transfer-encoding header for SigV4


1.36.6
======

2 changes: 1 addition & 1 deletion boto3/__init__.py
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@
from boto3.session import Session

__author__ = 'Amazon Web Services'
__version__ = '1.36.6'
__version__ = '1.36.7'


# The default Boto3 session; autoloaded when needed.
49 changes: 28 additions & 21 deletions docs/source/_static/css/custom.css
Original file line number Diff line number Diff line change
@@ -1,34 +1,37 @@
/* Prevents two-dimensional scrolling and content loss. */
h1, code, li {
h1,
code,
li {
overflow-wrap: break-word;
}
/* Provides padding to push down the "breadcrumb" navigation in nested pages. */
.content{
.content {
padding: 1em 3em;
}
/* Improves spacing around custom sidebar section*/
.sidebar-div{
.sidebar-div {
margin: var(--sidebar-caption-space-above) 0 0 0;
padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);
padding: var(--sidebar-item-spacing-vertical)
var(--sidebar-item-spacing-horizontal);
}
/* Custom sidebar heading text. Example: Feedback Section heading. */
.sidebar-heading{
.sidebar-heading {
color: var(--color-sidebar-caption-text);
font-size: var(--font-size--normal);
font-weight: 700;
}
/* Improves text used in custom sidebar section. Example: Feedback section content.*/
.sidebar-text{
.sidebar-text {
color: var(--color-sidebar-caption-text);
font-size: var(--sidebar-item-font-size);
line-height: 1.4;
}
/* Removes empty space above the sidebar-tree (under "Feedback" section) */
.sidebar-tree{
.sidebar-tree {
margin-top: 0px;
}
/* Adds padding around AWS Logo in the left sidebar. */
.sidebar-logo{
.sidebar-logo {
padding: 20% 15%;
}
/* Hides a div by default. */
@@ -52,7 +55,7 @@ h1, code, li {
visibility: hidden;
}
/* Hides the icon by default and applies relevant styling. */
.nav-close-icon{
.nav-close-icon {
color: var(--color-foreground-secondary);
display: flex;
align-items: center;
@@ -73,24 +76,24 @@ h1, code, li {
}
}
@media (max-width: 82em) {
/* Displays a div on a medium screen. */
/* Displays a div on a medium screen. */
.show-div-md {
display: flex;
}
}
/* Apply furo styled admonition titles for <h3>. */
h3.admonition-title {
position: relative;
margin: 0 -0.5rem 0.5rem;
padding-left: 2.5rem;
padding-right: .5rem;
padding-top: .4rem;
padding-bottom: .4rem;
font-weight: 700;
font-size: 1.5em;
line-height: 1.25;
border-radius: unset;
background-color: var(--color-admonition-title-background);
position: relative;
margin: 0 -0.5rem 0.5rem;
padding-left: 2.5rem;
padding-right: 0.5rem;
padding-top: 0.4rem;
padding-bottom: 0.4rem;
font-weight: 700;
font-size: 1.5em;
line-height: 1.25;
border-radius: unset;
background-color: var(--color-admonition-title-background);
}
/* Apply furo styled admonition icons before <h3>. */
h3.admonition-title::before {
@@ -103,3 +106,7 @@ h3.admonition-title::before {
mask-image: var(--icon-admonition-default);
mask-repeat: no-repeat;
}
/* Hides an element by removing it from the document flow */
.hidden {
display: none;
}
23 changes: 23 additions & 0 deletions docs/source/_static/css/dark_light_mode.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*This file replaces the style defined in the "_head_css_variables.html"
partial from furo==2022.12.7*/

body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}

/* Dark theme styles */
@media not print {
body[data-theme="dark"] {
--color-code-background: #272822;
--color-code-foreground: #f8f8f2;
}

/* For users who prefer dark color scheme */
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #272822;
--color-code-foreground: #f8f8f2;
}
}
}
213 changes: 132 additions & 81 deletions docs/source/_static/js/custom.js
Original file line number Diff line number Diff line change
@@ -13,17 +13,18 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

const nonResourceSubHeadings = [
'client',
'waiters',
'paginators',
'resources',
'examples'
"client",
"waiters",
"paginators",
"resources",
"examples",
];
// Checks if an html doc name matches a service class name.
function isValidServiceName(serviceClassName) {
const pageTitle = document.getElementsByTagName('h1')[0];
const newDocName = pageTitle.innerText.replace('#', '');
const pageTitle = document.getElementsByTagName("h1")[0];
const newDocName = pageTitle.innerText.replace("#", "");
return newDocName.toLowerCase() === serviceClassName;
}
// Checks if all elements of the split fragment are valid.
@@ -40,158 +41,208 @@ function isValidFragment(splitFragment) {
}
// Checks if a name is a possible resource name.
function isValidResource(name, serviceDocName) {
return name !== serviceDocName.replaceAll('-', '') && !nonResourceSubHeadings.includes(name);
return (
name !== serviceDocName.replaceAll("-", "") &&
!nonResourceSubHeadings.includes(name)
);
}
// Reroutes previously existing links to the new path.
// Old: <root_url>/reference/services/s3.html#S3.Client.delete_bucket
// New: <root_url>/reference/services/s3/client/delete_bucket.html
// This must be done client side since the fragment (#S3.Client.delete_bucket) is never
// passed to the server.
(function () {
const currentPath = window.location.pathname.split('/');
const currentPath = window.location.pathname.split("/");
const fragment = window.location.hash.substring(1);
const splitFragment = fragment.split('.').map(part => part.replace(/serviceresource/i, 'service-resource'));
const splitFragment = fragment
.split(".")
.map((part) => part.replace(/serviceresource/i, "service-resource"));
// Only redirect when viewing a top-level service page.
if (isValidFragment(splitFragment) && currentPath[currentPath.length - 2] === 'services') {
const serviceDocName = currentPath[currentPath.length - 1].replace('.html', '');
if (
isValidFragment(splitFragment) &&
currentPath[currentPath.length - 2] === "services"
) {
const serviceDocName = currentPath[currentPath.length - 1].replace(
".html",
"",
);
if (splitFragment.length > 1) {
splitFragment[0] = splitFragment[0].toLowerCase();
splitFragment[1] = splitFragment[1].toLowerCase();
}
let newPath;
if (splitFragment.length >= 3 && isValidServiceName(splitFragment[0])) {
splitFragment[0] = serviceDocName;
newPath = `${ splitFragment.slice(0, 3).join('/') }.html#${ splitFragment.length > 3 ? fragment : '' }`;
} else if (splitFragment.length == 2 && isValidResource(splitFragment[1].toLowerCase(), serviceDocName)) {
newPath = `${ splitFragment.join('/') }/index.html#${ fragment }`;
} else if (splitFragment.length == 1 && isValidResource(splitFragment[0], serviceDocName)) {
newPath = `${ serviceDocName }/${ splitFragment.join('/') }/index.html`;
newPath = `${splitFragment.slice(0, 3).join("/")}.html#${splitFragment.length > 3 ? fragment : ""}`;
} else if (
splitFragment.length == 2 &&
isValidResource(splitFragment[1].toLowerCase(), serviceDocName)
) {
newPath = `${splitFragment.join("/")}/index.html#${fragment}`;
} else if (
splitFragment.length == 1 &&
isValidResource(splitFragment[0], serviceDocName)
) {
newPath = `${serviceDocName}/${splitFragment.join("/")}/index.html`;
} else {
return;
}
window.location.assign(newPath);
}
}());
})();
// Given a service name, we apply the html classes which indicate a current page to the corresponsing list item.
// Before: <li class="toctree-l2"><a class="reference internal" href="../../acm.html">ACM</a></li>
// After: <li class="toctree-l2 current current-page"><a class="reference internal" href="../../acm.html">ACM</a></li>
function makeServiceLinkCurrent(serviceName) {
const servicesSection = [...document.querySelectorAll('a')].find(
e => e.innerHTML.includes('Available Services')
const servicesSection = [...document.querySelectorAll("a")].find((e) =>
e.innerHTML.includes("Available Services"),
).parentElement;
var linkElement = servicesSection.querySelectorAll(`a[href*="../${ serviceName }.html"]`);
var linkElement = servicesSection.querySelectorAll(
`a[href*="../${serviceName}.html"]`,
);
if (linkElement.length === 0) {
linkElement = servicesSection.querySelectorAll(`a[href="#"]`)[0];
} else {
linkElement = linkElement[0];
}
let linkParent = linkElement.parentElement;
linkParent.classList.add('current');
linkParent.classList.add('current-page');
linkParent.classList.add("current");
linkParent.classList.add("current-page");
}
const currentPagePath = window.location.pathname.split('/');
const codeBlockSelector = 'div.highlight pre';
const currentPagePath = window.location.pathname.split("/");
const codeBlockSelector = "div.highlight pre";
// Expands the "Available Services" sub-menu in the side-bar when viewing
// nested doc pages and highlights the corresponding service list item.
function expandSubMenu() {
if (currentPagePath.includes('services')) {
document.getElementById('toctree-checkbox-11').checked = true;
if (currentPagePath.includes("services")) {
document.getElementById("toctree-checkbox-11").checked = true;
// Example Nested Path: /reference/services/<service_name>/client/<operation_name>.html
const serviceNameIndex = currentPagePath.indexOf('services') + 1;
const serviceNameIndex = currentPagePath.indexOf("services") + 1;
const serviceName = currentPagePath[serviceNameIndex];
makeServiceLinkCurrent(serviceName);
}
}
// Allows code blocks to be scrollable by keyboard only users.
function makeCodeBlocksScrollable() {
const codeCells = document.querySelectorAll(codeBlockSelector);
codeCells.forEach(codeCell => {
codeCells.forEach((codeCell) => {
codeCell.tabIndex = 0;
});
}
// Determines which of the two table-of-contents menu labels is visible.
function determineVisibleTocOpenMenu() {
const mediaQuery = window.matchMedia('(max-width: 67em)');
return mediaQuery.matches ? 'toc-menu-open-sm' : 'toc-menu-open-md';
const mediaQuery = window.matchMedia("(max-width: 67em)");
return mediaQuery.matches ? "toc-menu-open-sm" : "toc-menu-open-md";
}

// A mapping of current to next focus id's. For example, We want a corresponsing
// menu's close button to be highlighted after a menu is opened with a keyboard.
const NEXT_FOCUS_ID_MAP = {
'nav-menu-open': 'nav-menu-close',
'nav-menu-close': 'nav-menu-open',
'toc-menu-open-sm': 'toc-menu-close',
'toc-menu-open-md': 'toc-menu-close',
'toc-menu-close': determineVisibleTocOpenMenu(),
"nav-menu-open": "nav-menu-close",
"nav-menu-close": "nav-menu-open",
"toc-menu-open-sm": "toc-menu-close",
"toc-menu-open-md": "toc-menu-close",
"toc-menu-close": determineVisibleTocOpenMenu(),
};

// Toggles the visibility of a sidebar menu to prevent keyboard focus on hidden elements.
function toggleSidebarMenuVisibility(elementQuery, inputQuery) {
const sidebarElement = document.querySelector(elementQuery);
const sidebarInput = document.querySelector(inputQuery);
sidebarInput.addEventListener('change', () => {
setTimeout(
() => {
sidebarElement.classList.toggle('hide-sidebar', !sidebarInput.checked);
},
sidebarInput.checked ? 0 : 250,
);
});
window.matchMedia('(max-width: 67em)').addEventListener('change', (event) => {
NEXT_FOCUS_ID_MAP['toc-menu-close'] = determineVisibleTocOpenMenu();
if (!event.matches) {
document
.querySelector('.sidebar-drawer')
.classList.remove('hide-sidebar');
}
});
window.matchMedia('(max-width: 82em)').addEventListener('change', (event) => {
if (!event.matches) {
document.querySelector('.toc-drawer').classList.remove('hide-sidebar');
}
});
const sidebarElement = document.querySelector(elementQuery);
const sidebarInput = document.querySelector(inputQuery);
sidebarInput.addEventListener("change", () => {
setTimeout(
() => {
sidebarElement.classList.toggle("hide-sidebar", !sidebarInput.checked);
},
sidebarInput.checked ? 0 : 250,
);
});
window.matchMedia("(max-width: 67em)").addEventListener("change", (event) => {
NEXT_FOCUS_ID_MAP["toc-menu-close"] = determineVisibleTocOpenMenu();
if (!event.matches) {
document
.querySelector(".sidebar-drawer")
.classList.remove("hide-sidebar");
}
});
window.matchMedia("(max-width: 82em)").addEventListener("change", (event) => {
if (!event.matches) {
document.querySelector(".toc-drawer").classList.remove("hide-sidebar");
}
});
}

// Activates labels when a user focuses on them and clicks "Enter".
// Also highlights the next appropriate input label.
function activateLabelOnEnter() {
const labels = document.querySelectorAll('label');
labels.forEach((element) => {
element.setAttribute('tabindex', '0');
element.addEventListener('keypress', (event) => {
if (event.key === 'Enter') {
const targetId = element.getAttribute('for');
document.getElementById(targetId).click();
const nextFocusId = NEXT_FOCUS_ID_MAP[element.id];
if (nextFocusId) {
// Timeout is needed to let the label become visible.
setTimeout(() => {
document.getElementById(nextFocusId).focus();
}, 250);
}
}
});
});
const labels = document.querySelectorAll("label");
labels.forEach((element) => {
element.setAttribute("tabindex", "0");
element.addEventListener("keypress", (event) => {
if (event.key === "Enter") {
const targetId = element.getAttribute("for");
document.getElementById(targetId).click();
const nextFocusId = NEXT_FOCUS_ID_MAP[element.id];
if (nextFocusId) {
// Timeout is needed to let the label become visible.
setTimeout(() => {
document.getElementById(nextFocusId).focus();
}, 250);
}
}
});
});
}

function loadThemeFromLocalStorage() {
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
}

// Improves accessibility for keyboard-only users.
function setupKeyboardFriendlyNavigation() {
activateLabelOnEnter();
toggleSidebarMenuVisibility('.toc-drawer', '#__toc');
toggleSidebarMenuVisibility('.sidebar-drawer', '#__navigation');
activateLabelOnEnter();
toggleSidebarMenuVisibility(".toc-drawer", "#__toc");
toggleSidebarMenuVisibility(".sidebar-drawer", "#__navigation");
}

function loadShortbread() {
if (typeof AWSCShortbread !== "undefined") {
const shortbread = AWSCShortbread({
// If you're testing in your dev environment, use ".cloudfront.net" for domain, else ".amazonaws.com"
domain: ".amazonaws.com",
});

// Check for cookie consent
shortbread.checkForCookieConsent();

const cookiePreferencesLink = document.getElementById("cookie-button-link");
if (cookiePreferencesLink) {
cookiePreferencesLink.addEventListener("click", function (event) {
event.preventDefault();
shortbread.customizeCookies();
});
}

console.log("AWSCShortbread successfully loaded...!!!");
} else {
console.error("AWSCShortbread failed to load!!!");
}
}

// Functions to run after the DOM loads.
function runAfterDOMLoads() {
expandSubMenu();
makeCodeBlocksScrollable();
setupKeyboardFriendlyNavigation();
loadThemeFromLocalStorage();
loadShortbread();
}
// Run a function after the DOM loads.
function ready(fn) {
if (document.readyState !== 'loading') {
if (document.readyState !== "loading") {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
document.addEventListener("DOMContentLoaded", fn);
}
}
ready(runAfterDOMLoads);
3 changes: 0 additions & 3 deletions docs/source/_static/shortbreadv1.js

This file was deleted.

27 changes: 12 additions & 15 deletions docs/source/_templates/page.html
Original file line number Diff line number Diff line change
@@ -9,14 +9,17 @@
furnished to do so, subject to the following conditions:
#}

{%- extends "!page.html" %}
{% extends "!page.html" %}

{%- block extrahead %}
<script src="https://prod.assets.shortbread.aws.dev/shortbread.js"></script>
<link href="https://prod.assets.shortbread.aws.dev/shortbread.css" rel="stylesheet">
{% endblock %}


{% block body -%}
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
{% include "partials/icons.html" %}
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
{% include 'partials/icons.html' %}
<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
<symbol id="svg-close" viewBox="0 0 24 24">
<title>Close Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke="currentColor"
@@ -176,15 +179,9 @@
{%- endif %}
{# start of AWS modification of Furo template #}
<div class="legal-info">
<script type="text/javascript" src="{{ pathto('_static/shortbreadv1.js',1 ) }}"></script>
<script type="text/javascript">
const shortbread = AWSCShortbread({
domain: ".amazonaws.com",
});
shortbread.checkForCookieConsent();
</script>
<a href="https://aws.amazon.com/privacy">Privacy</a> | <a href="https://aws.amazon.com/terms">Site Terms</a> | <a
href="#" onclick="shortbread.customizeCookies();">Cookie preferences</a>
<a href="https://aws.amazon.com/privacy">Privacy</a> |
<a href="https://aws.amazon.com/terms">Site Terms</a> |
<a href="#" id="cookie-button-link">Cookie preferences</a>
</div>
{# end of AWS modification of Furo template #}
</div>
6 changes: 6 additions & 0 deletions docs/source/_templates/partials/_head_css_variables.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{# DO NOT REMOVE THIS FILE This file is normally inherited from the version
defined by our docs theme (Furo). However, that file includes in-line styling
which isn't allowed by our website's Content Security Policy (CSP). To resolve
this issue, we've copied over the styling changes to
`docs/source/_static/css/dark_light_mode.css`. Although this file is empty, it
overwrites the template inherited from Furo. #}
111 changes: 111 additions & 0 deletions docs/source/_templates/partials/icons.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
{#This file is a modified version of "icons.html" file in furo version
2022.12.7. #} {# Adapted from Just the Docs #}
<svg xmlns="http://www.w3.org/2000/svg" class="hidden">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg
stroke="currentColor"
fill="currentColor"
stroke-width="0"
viewBox="0 0 1024 1024"
>
<path
d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"
/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather-menu"
>
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather-chevron-right"
>
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
class="feather-sun"
>
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
class="icon-tabler-moon"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<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.5"
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>
</svg>
1 change: 1 addition & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -166,6 +166,7 @@
# List of custom CSS files relative to _static directory.
html_css_files = [
'css/custom.css',
'css/dark_light_mode.css',
]
# List of custom JS files relative to _static directory.
html_js_files = [
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ universal = 0

[metadata]
requires_dist =
botocore>=1.36.6,<1.37.0
botocore>=1.36.7,<1.37.0
jmespath>=0.7.1,<2.0.0
s3transfer>=0.11.0,<0.12.0

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@


requires = [
'botocore>=1.36.6,<1.37.0',
'botocore>=1.36.7,<1.37.0',
'jmespath>=0.7.1,<2.0.0',
's3transfer>=0.11.0,<0.12.0',
]