about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/botocore/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/botocore/__init__.py')
-rw-r--r--.venv/lib/python3.12/site-packages/botocore/__init__.py191
1 files changed, 191 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/botocore/__init__.py b/.venv/lib/python3.12/site-packages/botocore/__init__.py
new file mode 100644
index 00000000..3be5364d
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/botocore/__init__.py
@@ -0,0 +1,191 @@
+# Copyright (c) 2012-2013 Mitch Garnaat http://garnaat.org/
+# Copyright 2012-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"). You
+# may not use this file except in compliance with the License. A copy of
+# the License is located at
+#
+# http://aws.amazon.com/apache2.0/
+#
+# or in the "license" file accompanying this file. This file is
+# distributed on an "AS IS" BASIS, 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.
+
+import logging
+import os
+import re
+
+__version__ = '1.37.18'
+
+
+class NullHandler(logging.Handler):
+    def emit(self, record):
+        pass
+
+
+# Configure default logger to do nothing
+log = logging.getLogger('botocore')
+log.addHandler(NullHandler())
+
+_INITIALIZERS = []
+
+_first_cap_regex = re.compile('(.)([A-Z][a-z]+)')
+_end_cap_regex = re.compile('([a-z0-9])([A-Z])')
+# The regex below handles the special case where some acronym
+# name is pluralized, e.g GatewayARNs, ListWebACLs, SomeCNAMEs.
+_special_case_transform = re.compile('[A-Z]{2,}s$')
+# Prepopulate the cache with special cases that don't match
+# our regular transformation.
+_xform_cache = {
+    ('CreateCachediSCSIVolume', '_'): 'create_cached_iscsi_volume',
+    ('CreateCachediSCSIVolume', '-'): 'create-cached-iscsi-volume',
+    ('DescribeCachediSCSIVolumes', '_'): 'describe_cached_iscsi_volumes',
+    ('DescribeCachediSCSIVolumes', '-'): 'describe-cached-iscsi-volumes',
+    ('DescribeStorediSCSIVolumes', '_'): 'describe_stored_iscsi_volumes',
+    ('DescribeStorediSCSIVolumes', '-'): 'describe-stored-iscsi-volumes',
+    ('CreateStorediSCSIVolume', '_'): 'create_stored_iscsi_volume',
+    ('CreateStorediSCSIVolume', '-'): 'create-stored-iscsi-volume',
+    ('ListHITsForQualificationType', '_'): 'list_hits_for_qualification_type',
+    ('ListHITsForQualificationType', '-'): 'list-hits-for-qualification-type',
+    ('ExecutePartiQLStatement', '_'): 'execute_partiql_statement',
+    ('ExecutePartiQLStatement', '-'): 'execute-partiql-statement',
+    ('ExecutePartiQLTransaction', '_'): 'execute_partiql_transaction',
+    ('ExecutePartiQLTransaction', '-'): 'execute-partiql-transaction',
+    ('ExecutePartiQLBatch', '_'): 'execute_partiql_batch',
+    ('ExecutePartiQLBatch', '-'): 'execute-partiql-batch',
+    (
+        'AssociateWhatsAppBusinessAccount',
+        '_',
+    ): 'associate_whatsapp_business_account',
+    (
+        'AssociateWhatsAppBusinessAccount',
+        '-',
+    ): 'associate-whatsapp-business-account',
+    ('DeleteWhatsAppMessageMedia', '_'): 'delete_whatsapp_media_message',
+    ('DeleteWhatsAppMessageMedia', '-'): 'delete-whatsapp-media-message',
+    (
+        'DisassociateWhatsAppBusinessAccount',
+        '_',
+    ): 'disassociate_whatsapp_business_account',
+    (
+        'DisassociateWhatsAppBusinessAccount',
+        '-',
+    ): 'disassociate-whatsapp-business-account',
+    (
+        'GetLinkedWhatsAppBusinessAccount',
+        '_',
+    ): 'get_linked_whatsapp_business_account',
+    (
+        'GetLinkedWhatsAppBusinessAccount',
+        '-',
+    ): 'get-linked-whatsapp-business-account',
+    (
+        'GetLinkedWhatsAppBusinessAccountPhoneNumber',
+        '_',
+    ): 'get_linked_whatsapp_business_account_phone_number',
+    (
+        'GetLinkedWhatsAppBusinessAccountPhoneNumber',
+        '-',
+    ): 'get-linked-whatsapp-business-account-phone-number',
+    ('GetWhatsAppMessageMedia', '_'): 'get_whatsapp_message_media',
+    ('GetWhatsAppMessageMedia', '-'): 'get-whatsapp-message-media',
+    (
+        'ListLinkedWhatsAppBusinessAccounts',
+        '_',
+    ): 'list_linked_whatsapp_business_accounts',
+    (
+        'ListLinkedWhatsAppBusinessAccounts',
+        '-',
+    ): 'list-linked-whatsapp-business-accounts',
+    ('PostWhatsAppMessageMedia', '_'): 'post_whatsapp_message_media',
+    ('PostWhatsAppMessageMedia', '-'): 'post-whatsapp-message-media',
+    (
+        'PutWhatsAppBusinessAccountEventDestinations',
+        '_',
+    ): 'put_whatsapp_business_account_event_destinations',
+    (
+        'PutWhatsAppBusinessAccountEventDestinations',
+        '-',
+    ): 'put-whatsapp-business-account-event-destinations',
+    ('SendWhatsAppMessage', '_'): 'send_whatsapp_message',
+    ('SendWhatsAppMessage', '-'): 'send-whatsapp-message',
+}
+ScalarTypes = ('string', 'integer', 'boolean', 'timestamp', 'float', 'double')
+
+BOTOCORE_ROOT = os.path.dirname(os.path.abspath(__file__))
+
+
+# Used to specify anonymous (unsigned) request signature
+class UNSIGNED:
+    def __copy__(self):
+        return self
+
+    def __deepcopy__(self, memodict):
+        return self
+
+
+UNSIGNED = UNSIGNED()
+
+
+def xform_name(name, sep='_', _xform_cache=_xform_cache):
+    """Convert camel case to a "pythonic" name.
+
+    If the name contains the ``sep`` character, then it is
+    returned unchanged.
+
+    """
+    if sep in name:
+        # If the sep is in the name, assume that it's already
+        # transformed and return the string unchanged.
+        return name
+    key = (name, sep)
+    if key not in _xform_cache:
+        if _special_case_transform.search(name) is not None:
+            is_special = _special_case_transform.search(name)
+            matched = is_special.group()
+            # Replace something like ARNs, ACLs with _arns, _acls.
+            name = f"{name[: -len(matched)]}{sep}{matched.lower()}"
+        s1 = _first_cap_regex.sub(r'\1' + sep + r'\2', name)
+        transformed = _end_cap_regex.sub(r'\1' + sep + r'\2', s1).lower()
+        _xform_cache[key] = transformed
+    return _xform_cache[key]
+
+
+def register_initializer(callback):
+    """Register an initializer function for session creation.
+
+    This initializer function will be invoked whenever a new
+    `botocore.session.Session` is instantiated.
+
+    :type callback: callable
+    :param callback: A callable that accepts a single argument
+        of type `botocore.session.Session`.
+
+    """
+    _INITIALIZERS.append(callback)
+
+
+def unregister_initializer(callback):
+    """Unregister an initializer function.
+
+    :type callback: callable
+    :param callback: A callable that was previously registered
+        with `botocore.register_initializer`.
+
+    :raises ValueError: If a callback is provided that is not currently
+        registered as an initializer.
+
+    """
+    _INITIALIZERS.remove(callback)
+
+
+def invoke_initializers(session):
+    """Invoke all initializers for a session.
+
+    :type session: botocore.session.Session
+    :param session: The session to initialize.
+
+    """
+    for initializer in _INITIALIZERS:
+        initializer(session)