mirror of
https://github.com/evennia/evennia.git
synced 2026-03-20 06:46:31 +01:00
940 lines
No EOL
73 KiB
HTML
940 lines
No EOL
73 KiB
HTML
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>botocore.exceptions — Evennia latest documentation</title>
|
|
<link rel="stylesheet" href="../../_static/nature.css" type="text/css" />
|
|
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
|
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=d75fae25" />
|
|
<link rel="stylesheet" type="text/css" href="../../_static/nature.css?v=245aff17" />
|
|
<script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
|
|
<script src="../../_static/documentation_options.js?v=c6e86fd7"></script>
|
|
<script src="../../_static/doctools.js?v=9bcbadda"></script>
|
|
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
<link rel="index" title="Index" href="../../genindex.html" />
|
|
<link rel="search" title="Search" href="../../search.html" />
|
|
</head><body>
|
|
|
|
|
|
|
|
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../genindex.html" title="General Index"
|
|
accesskey="I">index</a></li>
|
|
<li class="right" >
|
|
<a href="../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li class="nav-item nav-item-0"><a href="../../index.html">Evennia latest</a> »</li>
|
|
<li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li>
|
|
<li class="nav-item nav-item-this"><a href="">botocore.exceptions</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="document">
|
|
|
|
<div class="documentwrapper">
|
|
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
|
<div class="sphinxsidebarwrapper">
|
|
<search id="searchbox" style="display: none" role="search">
|
|
<h3 id="searchlabel">Quick search</h3>
|
|
<div class="searchformwrapper">
|
|
<form class="search" action="../../search.html" method="get">
|
|
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
|
|
<input type="submit" value="Go" />
|
|
</form>
|
|
</div>
|
|
</search>
|
|
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Links</h3>
|
|
<ul>
|
|
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
|
|
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
|
|
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
|
|
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
|
<li>
|
|
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
|
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
|
<a href="https://evennia.blogspot.com/">Blog</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="bodywrapper">
|
|
<div class="body" role="main">
|
|
|
|
<h1>Source code for botocore.exceptions</h1><div class="highlight"><pre>
|
|
<span></span><span class="c1"># Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/</span>
|
|
<span class="c1"># Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.</span>
|
|
<span class="c1">#</span>
|
|
<span class="c1"># Licensed under the Apache License, Version 2.0 (the "License"). You</span>
|
|
<span class="c1"># may not use this file except in compliance with the License. A copy of</span>
|
|
<span class="c1"># the License is located at</span>
|
|
<span class="c1">#</span>
|
|
<span class="c1"># http://aws.amazon.com/apache2.0/</span>
|
|
<span class="c1">#</span>
|
|
<span class="c1"># or in the "license" file accompanying this file. This file is</span>
|
|
<span class="c1"># distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF</span>
|
|
<span class="c1"># ANY KIND, either express or implied. See the License for the specific</span>
|
|
<span class="c1"># language governing permissions and limitations under the License.</span>
|
|
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">botocore.vendored</span><span class="w"> </span><span class="kn">import</span> <span class="n">requests</span>
|
|
<span class="kn">from</span><span class="w"> </span><span class="nn">botocore.vendored.requests.packages</span><span class="w"> </span><span class="kn">import</span> <span class="n">urllib3</span>
|
|
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">_exception_from_packed_args</span><span class="p">(</span><span class="n">exception_cls</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
<span class="c1"># This is helpful for reducing Exceptions that only accept kwargs as</span>
|
|
<span class="c1"># only positional arguments can be provided for __reduce__</span>
|
|
<span class="c1"># Ideally, this would also be a class method on the BotoCoreError</span>
|
|
<span class="c1"># but instance methods cannot be pickled.</span>
|
|
<span class="k">if</span> <span class="n">args</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="n">args</span> <span class="o">=</span> <span class="p">()</span>
|
|
<span class="k">if</span> <span class="n">kwargs</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
<span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span>
|
|
<span class="k">return</span> <span class="n">exception_cls</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">BotoCoreError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The base exception class for BotoCore exceptions.</span>
|
|
|
|
<span class="sd"> :ivar msg: The descriptive message associated with the error.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'An unspecified error occurred'</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fmt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
<span class="ne">Exception</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">__reduce__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">_exception_from_packed_args</span><span class="p">,</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">DataNotFoundError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The data associated with a particular path could not be loaded.</span>
|
|
|
|
<span class="sd"> :ivar data_path: The data path that the user attempted to load.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unable to load data for: </span><span class="si">{data_path}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownServiceError</span><span class="p">(</span><span class="n">DataNotFoundError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Raised when trying to load data for an unknown service.</span>
|
|
|
|
<span class="sd"> :ivar service_name: The name of the unknown service.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"Unknown service: '</span><span class="si">{service_name}</span><span class="s2">'. Valid service names are: "</span>
|
|
<span class="s2">"</span><span class="si">{known_service_names}</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownRegionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Raised when trying to load data for an unknown region.</span>
|
|
|
|
<span class="sd"> :ivar region_name: The name of the unknown region.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Unknown region: '</span><span class="si">{region_name}</span><span class="s2">'. </span><span class="si">{error_msg}</span><span class="s2">"</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ApiVersionNotFoundError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The data associated with either the API version or a compatible one</span>
|
|
<span class="sd"> could not be loaded.</span>
|
|
|
|
<span class="sd"> :ivar data_path: The data path that the user attempted to load.</span>
|
|
<span class="sd"> :ivar api_version: The API version that the user attempted to load.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unable to load data </span><span class="si">{data_path}</span><span class="s1"> for: </span><span class="si">{api_version}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">HTTPClientError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'An HTTP Client raised an unhandled exception: </span><span class="si">{error}</span><span class="s1">'</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">response</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">request</span> <span class="o">=</span> <span class="n">request</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">response</span> <span class="o">=</span> <span class="n">response</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">__reduce__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">_exception_from_packed_args</span><span class="p">,</span> <span class="p">(</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span>
|
|
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">request</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">response</span><span class="p">),</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ConnectionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'An HTTP Client failed to establish a connection: </span><span class="si">{error}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidIMDSEndpointError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Invalid endpoint EC2 Instance Metadata endpoint: </span><span class="si">{endpoint}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidIMDSEndpointModeError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Invalid EC2 Instance Metadata endpoint mode: </span><span class="si">{mode}</span><span class="s1">'</span>
|
|
<span class="s1">' Valid endpoint modes (case-insensitive): </span><span class="si">{valid_modes}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">EndpointConnectionError</span><span class="p">(</span><span class="ne">ConnectionError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Could not connect to the endpoint URL: "</span><span class="si">{endpoint_url}</span><span class="s1">"'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">SSLError</span><span class="p">(</span><span class="ne">ConnectionError</span><span class="p">,</span> <span class="n">requests</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">SSLError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'SSL validation failed for </span><span class="si">{endpoint_url}</span><span class="s1"> </span><span class="si">{error}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ConnectionClosedError</span><span class="p">(</span><span class="n">HTTPClientError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Connection was closed before we received a valid response '</span>
|
|
<span class="s1">'from endpoint URL: "</span><span class="si">{endpoint_url}</span><span class="s1">".'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ReadTimeoutError</span><span class="p">(</span>
|
|
<span class="n">HTTPClientError</span><span class="p">,</span>
|
|
<span class="n">requests</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">ReadTimeout</span><span class="p">,</span>
|
|
<span class="n">urllib3</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">ReadTimeoutError</span><span class="p">,</span>
|
|
<span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Read timeout on endpoint URL: "</span><span class="si">{endpoint_url}</span><span class="s1">"'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ConnectTimeoutError</span><span class="p">(</span><span class="ne">ConnectionError</span><span class="p">,</span> <span class="n">requests</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">ConnectTimeout</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Connect timeout on endpoint URL: "</span><span class="si">{endpoint_url}</span><span class="s1">"'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ProxyConnectionError</span><span class="p">(</span><span class="ne">ConnectionError</span><span class="p">,</span> <span class="n">requests</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">ProxyError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Failed to connect to proxy URL: "</span><span class="si">{proxy_url}</span><span class="s1">"'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ResponseStreamingError</span><span class="p">(</span><span class="n">HTTPClientError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'An error occurred while reading from response stream: </span><span class="si">{error}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">NoCredentialsError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> No credentials could be found.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unable to locate credentials'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">NoAuthTokenError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> No authorization token could be found.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unable to locate authorization token'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">TokenRetrievalError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Error attempting to retrieve a token from a remote source.</span>
|
|
|
|
<span class="sd"> :ivar provider: The name of the token provider.</span>
|
|
<span class="sd"> :ivar error_msg: The msg explaining why the token could not be retrieved.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Error when retrieving token from </span><span class="si">{provider}</span><span class="s1">: </span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">PartialCredentialsError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Only partial credentials were found.</span>
|
|
|
|
<span class="sd"> :ivar cred_var: The missing credential variable name.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Partial credentials found in </span><span class="si">{provider}</span><span class="s1">, missing: </span><span class="si">{cred_var}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">CredentialRetrievalError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Error attempting to retrieve credentials from a remote source.</span>
|
|
|
|
<span class="sd"> :ivar provider: The name of the credential provider.</span>
|
|
<span class="sd"> :ivar error_msg: The msg explaining why credentials could not be</span>
|
|
<span class="sd"> retrieved.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Error when retrieving credentials from </span><span class="si">{provider}</span><span class="s1">: </span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownSignatureVersionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Requested Signature Version is not known.</span>
|
|
|
|
<span class="sd"> :ivar signature_version: The name of the requested signature version.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unknown Signature Version: </span><span class="si">{signature_version}</span><span class="s1">.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ServiceNotInRegionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The service is not available in requested region.</span>
|
|
|
|
<span class="sd"> :ivar service_name: The name of the service.</span>
|
|
<span class="sd"> :ivar region_name: The name of the region.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Service </span><span class="si">{service_name}</span><span class="s1"> not available in region </span><span class="si">{region_name}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">BaseEndpointResolverError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Base error for endpoint resolving errors.</span>
|
|
|
|
<span class="sd"> Should never be raised directly, but clients can catch</span>
|
|
<span class="sd"> this exception if they want to generically handle any errors</span>
|
|
<span class="sd"> during the endpoint resolution process.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">NoRegionError</span><span class="p">(</span><span class="n">BaseEndpointResolverError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""No region was specified."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'You must specify a region.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">EndpointVariantError</span><span class="p">(</span><span class="n">BaseEndpointResolverError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Could not construct modeled endpoint variant.</span>
|
|
|
|
<span class="sd"> :ivar error_msg: The message explaining why the modeled endpoint variant</span>
|
|
<span class="sd"> is unable to be constructed.</span>
|
|
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Unable to construct a modeled endpoint with the following '</span>
|
|
<span class="s1">'variant(s) </span><span class="si">{tags}</span><span class="s1">: '</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownEndpointError</span><span class="p">(</span><span class="n">BaseEndpointResolverError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Could not construct an endpoint.</span>
|
|
|
|
<span class="sd"> :ivar service_name: The name of the service.</span>
|
|
<span class="sd"> :ivar region_name: The name of the region.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Unable to construct an endpoint for '</span>
|
|
<span class="s1">'</span><span class="si">{service_name}</span><span class="s1"> in region </span><span class="si">{region_name}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownFIPSEndpointError</span><span class="p">(</span><span class="n">BaseEndpointResolverError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Could not construct a FIPS endpoint.</span>
|
|
|
|
<span class="sd"> :ivar service_name: The name of the service.</span>
|
|
<span class="sd"> :ivar region_name: The name of the region.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'The provided FIPS pseudo-region "</span><span class="si">{region_name}</span><span class="s1">" is not known for '</span>
|
|
<span class="s1">'the service "</span><span class="si">{service_name}</span><span class="s1">". A FIPS compliant endpoint cannot be '</span>
|
|
<span class="s1">'constructed.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ProfileNotFound</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The specified configuration profile was not found in the</span>
|
|
<span class="sd"> configuration file.</span>
|
|
|
|
<span class="sd"> :ivar profile: The name of the profile the user attempted to load.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'The config profile (</span><span class="si">{profile}</span><span class="s1">) could not be found'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ConfigParseError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The configuration file could not be parsed.</span>
|
|
|
|
<span class="sd"> :ivar path: The path to the configuration file.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unable to parse config file: </span><span class="si">{path}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ConfigNotFound</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> The specified configuration file could not be found.</span>
|
|
|
|
<span class="sd"> :ivar path: The path to the configuration file.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'The specified config file (</span><span class="si">{path}</span><span class="s1">) could not be found.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MissingParametersError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> One or more required parameters were not supplied.</span>
|
|
|
|
<span class="sd"> :ivar object: The object that has missing parameters.</span>
|
|
<span class="sd"> This can be an operation or a parameter (in the</span>
|
|
<span class="sd"> case of inner params). The str() of this object</span>
|
|
<span class="sd"> will be used so it doesn't need to implement anything</span>
|
|
<span class="sd"> other than str().</span>
|
|
<span class="sd"> :ivar missing: The names of the missing parameters.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'The following required parameters are missing for '</span>
|
|
<span class="s1">'</span><span class="si">{object_name}</span><span class="s1">: </span><span class="si">{missing}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ValidationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> An exception occurred validating parameters.</span>
|
|
|
|
<span class="sd"> Subclasses must accept a ``value`` and ``param``</span>
|
|
<span class="sd"> argument in their ``__init__``.</span>
|
|
|
|
<span class="sd"> :ivar value: The value that was being validated.</span>
|
|
<span class="sd"> :ivar param: The parameter that failed validation.</span>
|
|
<span class="sd"> :ivar type_name: The name of the underlying type.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Invalid value ('</span><span class="si">{value}</span><span class="s2">') for param </span><span class="si">{param}</span><span class="s2"> "</span> <span class="s2">"of type </span><span class="si">{type_name}</span><span class="s2"> "</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ParamValidationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Parameter validation failed:</span><span class="se">\n</span><span class="si">{report}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="c1"># These exceptions subclass from ValidationError so that code</span>
|
|
<span class="c1"># can just 'except ValidationError' to catch any possibly validation</span>
|
|
<span class="c1"># error.</span>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownKeyError</span><span class="p">(</span><span class="n">ValidationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Unknown key in a struct parameter.</span>
|
|
|
|
<span class="sd"> :ivar value: The value that was being checked.</span>
|
|
<span class="sd"> :ivar param: The name of the parameter.</span>
|
|
<span class="sd"> :ivar choices: The valid choices the value can be.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"Unknown key '</span><span class="si">{value}</span><span class="s2">' for param '</span><span class="si">{param}</span><span class="s2">'. Must be one "</span>
|
|
<span class="s2">"of: </span><span class="si">{choices}</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">RangeError</span><span class="p">(</span><span class="n">ValidationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> A parameter value was out of the valid range.</span>
|
|
|
|
<span class="sd"> :ivar value: The value that was being checked.</span>
|
|
<span class="sd"> :ivar param: The parameter that failed validation.</span>
|
|
<span class="sd"> :ivar min_value: The specified minimum value.</span>
|
|
<span class="sd"> :ivar max_value: The specified maximum value.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Value out of range for param </span><span class="si">{param}</span><span class="s1">: '</span>
|
|
<span class="s1">'</span><span class="si">{min_value}</span><span class="s1"> <= </span><span class="si">{value}</span><span class="s1"> <= </span><span class="si">{max_value}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownParameterError</span><span class="p">(</span><span class="n">ValidationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Unknown top level parameter.</span>
|
|
|
|
<span class="sd"> :ivar name: The name of the unknown parameter.</span>
|
|
<span class="sd"> :ivar operation: The name of the operation.</span>
|
|
<span class="sd"> :ivar choices: The valid choices the parameter name can be.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"Unknown parameter '</span><span class="si">{name}</span><span class="s2">' for operation </span><span class="si">{operation}</span><span class="s2">. Must be one "</span>
|
|
<span class="s2">"of: </span><span class="si">{choices}</span><span class="s2">"</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidRegionError</span><span class="p">(</span><span class="n">ValidationError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Invalid region_name provided to client or resource.</span>
|
|
|
|
<span class="sd"> :ivar region_name: region_name that was being validated.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Provided region_name '</span><span class="si">{region_name}</span><span class="s2">' doesn't match a supported format."</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">AliasConflictParameterError</span><span class="p">(</span><span class="n">ValidationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Error when an alias is provided for a parameter as well as the original.</span>
|
|
|
|
<span class="sd"> :ivar original: The name of the original parameter.</span>
|
|
<span class="sd"> :ivar alias: The name of the alias</span>
|
|
<span class="sd"> :ivar operation: The name of the operation.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"Parameter '</span><span class="si">{original}</span><span class="s2">' and its alias '</span><span class="si">{alias}</span><span class="s2">' were provided "</span>
|
|
<span class="s2">"for operation </span><span class="si">{operation}</span><span class="s2">. Only one of them may be used."</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownServiceStyle</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""</span>
|
|
<span class="sd"> Unknown style of service invocation.</span>
|
|
|
|
<span class="sd"> :ivar service_style: The style requested.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'The service style (</span><span class="si">{service_style}</span><span class="s1">) is not understood.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">PaginationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Error during pagination: </span><span class="si">{message}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">OperationNotPageableError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Operation cannot be paginated: </span><span class="si">{operation_name}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ChecksumError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""The expected checksum did not match the calculated checksum."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Checksum </span><span class="si">{checksum_type}</span><span class="s1"> failed, expected checksum '</span>
|
|
<span class="s1">'</span><span class="si">{expected_checksum}</span><span class="s1"> did not match calculated checksum '</span>
|
|
<span class="s1">'</span><span class="si">{actual_checksum}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnseekableStreamError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Need to seek a stream, but stream does not support seeking."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Need to rewind the stream </span><span class="si">{stream_object}</span><span class="s1">, but stream '</span>
|
|
<span class="s1">'is not seekable.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">WaiterError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Waiter failed to reach desired state."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Waiter </span><span class="si">{name}</span><span class="s1"> failed: </span><span class="si">{reason}</span><span class="s1">'</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">reason</span><span class="p">,</span> <span class="n">last_response</span><span class="p">):</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="n">reason</span><span class="o">=</span><span class="n">reason</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">last_response</span> <span class="o">=</span> <span class="n">last_response</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">IncompleteReadError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""HTTP response did not return expected number of bytes."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'</span><span class="si">{actual_bytes}</span><span class="s1"> read, but total bytes '</span> <span class="s1">'expected is </span><span class="si">{expected_bytes}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidExpressionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Expression is either invalid or too complex."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Invalid expression </span><span class="si">{expression}</span><span class="s1">: Only dotted lookups are supported.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownCredentialError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Tried to insert before/after an unregistered credential type."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Credential named </span><span class="si">{name}</span><span class="s1"> not found.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">WaiterConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when processing waiter configuration."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Error processing waiter config: </span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownClientMethodError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when trying to access a method on a client that does not exist."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Client does not have method: </span><span class="si">{method_name}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedSignatureVersionError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when trying to use an unsupported Signature Version."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Signature version(s) are not supported: </span><span class="si">{signature_version}</span><span class="s1">'</span>
|
|
|
|
|
|
<div class="viewcode-block" id="ClientError">
|
|
<a class="viewcode-back" href="../../api/evennia.contrib.base_systems.awsstorage.tests.html#evennia.contrib.base_systems.awsstorage.aws_s3_cdn.ClientError">[docs]</a>
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ClientError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
|
|
<span class="n">MSG_TEMPLATE</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'An error occurred (</span><span class="si">{error_code}</span><span class="s1">) when calling the </span><span class="si">{operation_name}</span><span class="s1"> '</span>
|
|
<span class="s1">'operation</span><span class="si">{retry_info}</span><span class="s1">: </span><span class="si">{error_message}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
<div class="viewcode-block" id="ClientError.__init__">
|
|
<a class="viewcode-back" href="../../api/evennia.contrib.base_systems.awsstorage.tests.html#evennia.contrib.base_systems.awsstorage.aws_s3_cdn.ClientError.__init__">[docs]</a>
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">error_response</span><span class="p">,</span> <span class="n">operation_name</span><span class="p">):</span>
|
|
<span class="n">retry_info</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_retry_info</span><span class="p">(</span><span class="n">error_response</span><span class="p">)</span>
|
|
<span class="n">error</span> <span class="o">=</span> <span class="n">error_response</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'Error'</span><span class="p">,</span> <span class="p">{})</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">MSG_TEMPLATE</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
|
<span class="n">error_code</span><span class="o">=</span><span class="n">error</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'Code'</span><span class="p">,</span> <span class="s1">'Unknown'</span><span class="p">),</span>
|
|
<span class="n">error_message</span><span class="o">=</span><span class="n">error</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'Message'</span><span class="p">,</span> <span class="s1">'Unknown'</span><span class="p">),</span>
|
|
<span class="n">operation_name</span><span class="o">=</span><span class="n">operation_name</span><span class="p">,</span>
|
|
<span class="n">retry_info</span><span class="o">=</span><span class="n">retry_info</span><span class="p">,</span>
|
|
<span class="p">)</span>
|
|
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">response</span> <span class="o">=</span> <span class="n">error_response</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">operation_name</span> <span class="o">=</span> <span class="n">operation_name</span></div>
|
|
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">_get_retry_info</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">response</span><span class="p">):</span>
|
|
<span class="n">retry_info</span> <span class="o">=</span> <span class="s1">''</span>
|
|
<span class="k">if</span> <span class="s1">'ResponseMetadata'</span> <span class="ow">in</span> <span class="n">response</span><span class="p">:</span>
|
|
<span class="n">metadata</span> <span class="o">=</span> <span class="n">response</span><span class="p">[</span><span class="s1">'ResponseMetadata'</span><span class="p">]</span>
|
|
<span class="k">if</span> <span class="n">metadata</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'MaxAttemptsReached'</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="s1">'RetryAttempts'</span> <span class="ow">in</span> <span class="n">metadata</span><span class="p">:</span>
|
|
<span class="n">retry_info</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="sa">f</span><span class="s2">" (reached max retries: </span><span class="si">{</span><span class="n">metadata</span><span class="p">[</span><span class="s1">'RetryAttempts'</span><span class="p">]</span><span class="si">}</span><span class="s2">)"</span>
|
|
<span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">retry_info</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="nf">__reduce__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="c1"># Subclasses of ClientError's are dynamically generated and</span>
|
|
<span class="c1"># cannot be pickled unless they are attributes of a</span>
|
|
<span class="c1"># module. So at the very least return a ClientError back.</span>
|
|
<span class="k">return</span> <span class="n">ClientError</span><span class="p">,</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">response</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">operation_name</span><span class="p">)</span></div>
|
|
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">EventStreamError</span><span class="p">(</span><span class="n">ClientError</span><span class="p">):</span>
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedTLSVersionWarning</span><span class="p">(</span><span class="ne">Warning</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Warn when an openssl version that uses TLS 1.2 is required"""</span>
|
|
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">ImminentRemovalWarning</span><span class="p">(</span><span class="ne">Warning</span><span class="p">):</span>
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidDNSNameError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when virtual host path is forced on a non-DNS compatible bucket"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Bucket named </span><span class="si">{bucket_name}</span><span class="s1"> is not DNS compatible. Virtual '</span>
|
|
<span class="s1">'hosted-style addressing cannot be used. The addressing style '</span>
|
|
<span class="s1">'can be configured by removing the addressing_style value '</span>
|
|
<span class="s1">'or setting that value to </span><span class="se">\'</span><span class="s1">path</span><span class="se">\'</span><span class="s1"> or </span><span class="se">\'</span><span class="s1">auto</span><span class="se">\'</span><span class="s1"> in the AWS Config '</span>
|
|
<span class="s1">'file or in the botocore.client.Config object.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidS3AddressingStyleError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an invalid path style is specified"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'S3 addressing style </span><span class="si">{s3_addressing_style}</span><span class="s1"> is invalid. Valid options '</span>
|
|
<span class="s1">'are: </span><span class="se">\'</span><span class="s1">auto</span><span class="se">\'</span><span class="s1">, </span><span class="se">\'</span><span class="s1">virtual</span><span class="se">\'</span><span class="s1">, and </span><span class="se">\'</span><span class="s1">path</span><span class="se">\'</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedS3ArnError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when S3 ARN provided to Bucket parameter is not supported"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'S3 ARN </span><span class="si">{arn}</span><span class="s1"> provided to "Bucket" parameter is invalid. Only '</span>
|
|
<span class="s1">'ARNs for S3 access-points are supported.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedS3ControlArnError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when S3 ARN provided to S3 control parameter is not supported"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'S3 ARN "</span><span class="si">{arn}</span><span class="s1">" provided is invalid for this operation. </span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidHostLabelError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an invalid host label would be bound to an endpoint"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Invalid host label to be bound to the hostname of the endpoint: '</span>
|
|
<span class="s1">'"</span><span class="si">{label}</span><span class="s1">".'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedOutpostResourceError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when S3 Outpost ARN provided to Bucket parameter is incomplete"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'S3 Outpost ARN resource "</span><span class="si">{resource_name}</span><span class="s1">" provided to "Bucket" '</span>
|
|
<span class="s1">'parameter is invalid. Only ARNs for S3 Outpost arns with an '</span>
|
|
<span class="s1">'access-point sub-resource are supported.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedS3ConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an unsupported configuration is used with access-points"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unsupported configuration when using S3: </span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedS3AccesspointConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an unsupported configuration is used with access-points"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unsupported configuration when using S3 access-points: </span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidEndpointDiscoveryConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when invalid value supplied for endpoint_discovery_enabled"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Unsupported configuration value for endpoint_discovery_enabled. '</span>
|
|
<span class="s1">'Expected one of ("true", "false", "auto") but got </span><span class="si">{config_value}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedS3ControlConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an unsupported configuration is used with S3 Control"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unsupported configuration when using S3 Control: </span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidRetryConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when invalid retry configuration is specified"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Cannot provide retry configuration for "</span><span class="si">{retry_config_option}</span><span class="s1">". '</span>
|
|
<span class="s1">'Valid retry configuration options are: </span><span class="si">{valid_options}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidMaxRetryAttemptsError</span><span class="p">(</span><span class="n">InvalidRetryConfigurationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when invalid retry configuration is specified"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Value provided to "max_attempts": </span><span class="si">{provided_max_attempts}</span><span class="s1"> must '</span>
|
|
<span class="s1">'be an integer greater than or equal to </span><span class="si">{min_value}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidRetryModeError</span><span class="p">(</span><span class="n">InvalidRetryConfigurationError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when invalid retry mode configuration is specified"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Invalid value provided to "mode": "</span><span class="si">{provided_retry_mode}</span><span class="s1">" must '</span>
|
|
<span class="s1">'be one of: </span><span class="si">{valid_modes}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidS3UsEast1RegionalEndpointConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error for invalid s3 us-east-1 regional endpoints configuration"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'S3 us-east-1 regional endpoint option '</span>
|
|
<span class="s1">'</span><span class="si">{s3_us_east_1_regional_endpoint_config}</span><span class="s1"> is '</span>
|
|
<span class="s1">'invalid. Valid options are: "legacy", "regional"'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidSTSRegionalEndpointsConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when invalid sts regional endpoints configuration is specified"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'STS regional endpoints option </span><span class="si">{sts_regional_endpoints_config}</span><span class="s1"> is '</span>
|
|
<span class="s1">'invalid. Valid options are: "legacy", "regional"'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">StubResponseError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Error getting response stub for operation </span><span class="si">{operation_name}</span><span class="s1">: </span><span class="si">{reason}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">StubAssertionError</span><span class="p">(</span><span class="n">StubResponseError</span><span class="p">,</span> <span class="ne">AssertionError</span><span class="p">):</span>
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnStubbedResponseError</span><span class="p">(</span><span class="n">StubResponseError</span><span class="p">):</span>
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InfiniteLoopConfigError</span><span class="p">(</span><span class="n">InvalidConfigError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Infinite loop in credential configuration detected. Attempting to '</span>
|
|
<span class="s1">'load from profile </span><span class="si">{source_profile}</span><span class="s1"> which has already been visited. '</span>
|
|
<span class="s1">'Visited profiles: </span><span class="si">{visited_profiles}</span><span class="s1">'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">RefreshWithMFAUnsupportedError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Cannot refresh credentials: MFA token required.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MD5UnavailableError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"This system does not support MD5 generation."</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MissingDependencyException</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Missing Dependency: </span><span class="si">{msg}</span><span class="s2">"</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MetadataRetrievalError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Error retrieving metadata: </span><span class="si">{error_msg}</span><span class="s2">"</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UndefinedModelAttributeError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
|
|
<span class="k">pass</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">MissingServiceIdError</span><span class="p">(</span><span class="n">UndefinedModelAttributeError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"The model being used for the service </span><span class="si">{service_name}</span><span class="s2"> is missing the "</span>
|
|
<span class="s2">"serviceId metadata property, which is required."</span>
|
|
<span class="p">)</span>
|
|
|
|
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">fmt</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
<span class="ne">Exception</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">SSOError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"An unspecified error happened when resolving AWS credentials or an "</span>
|
|
<span class="s2">"access token from SSO."</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">SSOTokenLoadError</span><span class="p">(</span><span class="n">SSOError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s2">"Error loading SSO Token: </span><span class="si">{error_msg}</span><span class="s2">"</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnauthorizedSSOTokenError</span><span class="p">(</span><span class="n">SSOError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s2">"The SSO session associated with this profile has expired or is "</span>
|
|
<span class="s2">"otherwise invalid. To refresh this SSO session run aws sso login "</span>
|
|
<span class="s2">"with the corresponding profile."</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">CapacityNotAvailableError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Insufficient request capacity available.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidProxiesConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Invalid configuration value(s) provided for proxies_config.'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidDefaultsMode</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Client configured with invalid defaults mode: </span><span class="si">{mode}</span><span class="s1">. '</span>
|
|
<span class="s1">'Valid defaults modes include: </span><span class="si">{valid_modes}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">AwsChunkedWrapperError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">FlexibleChecksumError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{error_msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidEndpointConfigurationError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Invalid endpoint configuration: </span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">EndpointProviderError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Base error for the EndpointProvider class"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">EndpointResolutionError</span><span class="p">(</span><span class="n">EndpointProviderError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when input parameters resolve to an error rule"""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'</span><span class="si">{msg}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnknownEndpointResolutionBuiltInName</span><span class="p">(</span><span class="n">EndpointProviderError</span><span class="p">):</span>
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="s1">'Unknown builtin variable name: </span><span class="si">{name}</span><span class="s1">'</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">InvalidChecksumConfigError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when an invalid checksum config value is supplied."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Unsupported configuration value for </span><span class="si">{config_key}</span><span class="s1">. '</span>
|
|
<span class="s1">'Expected one of </span><span class="si">{valid_options}</span><span class="s1"> but got </span><span class="si">{config_value}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span><span class="w"> </span><span class="nc">UnsupportedServiceProtocolsError</span><span class="p">(</span><span class="n">BotoCoreError</span><span class="p">):</span>
|
|
<span class="w"> </span><span class="sd">"""Error when a service does not use any protocol supported by botocore."""</span>
|
|
|
|
<span class="n">fmt</span> <span class="o">=</span> <span class="p">(</span>
|
|
<span class="s1">'Botocore supports </span><span class="si">{botocore_supported_protocols}</span><span class="s1">, but service </span><span class="si">{service}</span><span class="s1"> only '</span>
|
|
<span class="s1">'supports </span><span class="si">{service_supported_protocols}</span><span class="s1">.'</span>
|
|
<span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="related" role="navigation" aria-label="related navigation">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="../../genindex.html" title="General Index"
|
|
>index</a></li>
|
|
<li class="right" >
|
|
<a href="../../py-modindex.html" title="Python Module Index"
|
|
>modules</a> |</li>
|
|
<li class="nav-item nav-item-0"><a href="../../index.html">Evennia latest</a> »</li>
|
|
<li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li>
|
|
<li class="nav-item nav-item-this"><a href="">botocore.exceptions</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="footer" role="contentinfo">
|
|
© Copyright 2024, The Evennia developer community.
|
|
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
|
|
</div>
|
|
</body>
|
|
</html> |