botocore-stubs 1.36.7__tar.gz → 1.40.76__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. {botocore_stubs-1.36.7/botocore_stubs.egg-info → botocore_stubs-1.40.76}/PKG-INFO +5 -27
  2. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/__init__.pyi +2 -1
  3. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/args.pyi +14 -1
  4. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/auth.pyi +6 -1
  5. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/awsrequest.pyi +2 -2
  6. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/client.pyi +6 -1
  7. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/compat.pyi +7 -1
  8. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/compress.pyi +2 -1
  9. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/config.pyi +13 -1
  10. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/configprovider.pyi +2 -1
  11. botocore_stubs-1.40.76/botocore-stubs/context.pyi +33 -0
  12. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/credentials.pyi +22 -6
  13. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/crt/auth.pyi +13 -7
  14. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/discovery.pyi +2 -1
  15. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/bcdoc/restdoc.pyi +2 -1
  16. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/method.pyi +2 -1
  17. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/params.pyi +2 -1
  18. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/shape.pyi +2 -1
  19. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/sharedexample.pyi +2 -1
  20. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/endpoint.pyi +2 -1
  21. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/endpoint_provider.pyi +5 -6
  22. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/errorfactory.pyi +1 -1
  23. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/eventstream.pyi +2 -1
  24. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/exceptions.pyi +3 -1
  25. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/handlers.pyi +10 -4
  26. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/hooks.pyi +2 -1
  27. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/httpchecksum.pyi +3 -1
  28. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/httpsession.pyi +2 -1
  29. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/loaders.pyi +2 -1
  30. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/model.pyi +6 -1
  31. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/monitoring.pyi +2 -1
  32. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/paginate.pyi +2 -1
  33. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/parsers.pyi +17 -1
  34. botocore_stubs-1.40.76/botocore-stubs/plugin.pyi +24 -0
  35. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/regions.pyi +2 -2
  36. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/response.pyi +3 -1
  37. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/standard.pyi +2 -1
  38. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retryhandler.pyi +2 -1
  39. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/serialize.pyi +31 -6
  40. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/session.pyi +11 -4
  41. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/signers.pyi +3 -1
  42. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/stub.pyi +2 -1
  43. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/tokens.pyi +9 -1
  44. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/useragent.pyi +15 -0
  45. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/utils.pyi +23 -9
  46. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/validate.pyi +2 -1
  47. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/waiter.pyi +2 -1
  48. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76/botocore_stubs.egg-info}/PKG-INFO +5 -27
  49. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore_stubs.egg-info/SOURCES.txt +2 -0
  50. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/pyproject.toml +7 -8
  51. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/LICENSE +0 -0
  52. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/MANIFEST.in +0 -0
  53. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/README.md +0 -0
  54. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/configloader.pyi +0 -0
  55. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/crt/__init__.pyi +0 -0
  56. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/__init__.pyi +0 -0
  57. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/bcdoc/__init__.pyi +0 -0
  58. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/bcdoc/docstringparser.pyi +0 -0
  59. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/bcdoc/style.pyi +0 -0
  60. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/client.pyi +0 -0
  61. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/docstring.pyi +0 -0
  62. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/example.pyi +0 -0
  63. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/paginator.pyi +0 -0
  64. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/service.pyi +0 -0
  65. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/translator.pyi +0 -0
  66. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/utils.pyi +0 -0
  67. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/docs/waiter.pyi +0 -0
  68. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/history.pyi +0 -0
  69. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/py.typed +0 -0
  70. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/__init__.pyi +0 -0
  71. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/adaptive.pyi +0 -0
  72. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/base.pyi +0 -0
  73. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/bucket.pyi +0 -0
  74. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/quota.pyi +0 -0
  75. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/special.pyi +0 -0
  76. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/retries/throttling.pyi +0 -0
  77. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore-stubs/translate.pyi +0 -0
  78. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore_stubs.egg-info/dependency_links.txt +0 -0
  79. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore_stubs.egg-info/requires.txt +0 -0
  80. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/botocore_stubs.egg-info/top_level.txt +0 -0
  81. {botocore_stubs-1.36.7 → botocore_stubs-1.40.76}/setup.cfg +0 -0
@@ -1,30 +1,9 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: botocore-stubs
3
- Version: 1.36.7
3
+ Version: 1.40.76
4
4
  Summary: Type annotations and code completion for botocore
5
5
  Author-email: Vlad Emelianov <vlad.emelianov.nz@gmail.com>
6
- License: MIT License
7
-
8
- Copyright (c) 2022 Vlad Emelianov
9
-
10
- Permission is hereby granted, free of charge, to any person obtaining a copy
11
- of this software and associated documentation files (the "Software"), to deal
12
- in the Software without restriction, including without limitation the rights
13
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
- copies of the Software, and to permit persons to whom the Software is
15
- furnished to do so, subject to the following conditions:
16
-
17
- The above copyright notice and this permission notice shall be included in all
18
- copies or substantial portions of the Software.
19
-
20
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
- SOFTWARE.
27
-
6
+ License-Expression: MIT
28
7
  Project-URL: Homepage, https://github.com/youtype/botocore-stubs
29
8
  Project-URL: Documentation, https://youtype.github.io/mypy_boto3_builder/
30
9
  Project-URL: Repository, https://github.com/youtype/botocore-stubs
@@ -33,11 +12,9 @@ Project-URL: Issues, https://github.com/youtype/botocore-stubs/issues
33
12
  Keywords: botocore,type-annotations,pyright,mypy,boto3
34
13
  Classifier: Development Status :: 5 - Production/Stable
35
14
  Classifier: Environment :: Console
36
- Classifier: License :: OSI Approved :: MIT License
37
15
  Classifier: Natural Language :: English
38
16
  Classifier: Operating System :: OS Independent
39
17
  Classifier: Programming Language :: Python :: 3
40
- Classifier: Programming Language :: Python :: 3.8
41
18
  Classifier: Programming Language :: Python :: 3.9
42
19
  Classifier: Programming Language :: Python :: 3.10
43
20
  Classifier: Programming Language :: Python :: 3.11
@@ -48,12 +25,13 @@ Classifier: Programming Language :: Python :: 3 :: Only
48
25
  Classifier: Programming Language :: Python :: Implementation :: CPython
49
26
  Classifier: Typing :: Stubs Only
50
27
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
51
- Requires-Python: >=3.8
28
+ Requires-Python: >=3.9
52
29
  Description-Content-Type: text/markdown
53
30
  License-File: LICENSE
54
31
  Requires-Dist: types-awscrt
55
32
  Provides-Extra: botocore
56
33
  Requires-Dist: botocore; extra == "botocore"
34
+ Dynamic: license-file
57
35
 
58
36
  # botocore-stubs
59
37
 
@@ -5,7 +5,8 @@ Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
7
  import logging
8
- from typing import Any, Callable, Mapping
8
+ from collections.abc import Mapping
9
+ from typing import Any, Callable
9
10
 
10
11
  from botocore.session import Session
11
12
 
@@ -4,12 +4,14 @@ Type annotations for botocore.args module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping
7
8
  from logging import Logger
8
- from typing import Any, Mapping, TypedDict
9
+ from typing import Any, Literal, TypedDict, TypeVar
9
10
 
10
11
  from botocore.client import ClientEndpointBridge
11
12
  from botocore.config import Config as Config
12
13
  from botocore.configprovider import ConfigValueStore
14
+ from botocore.credentials import Credentials
13
15
  from botocore.endpoint import Endpoint
14
16
  from botocore.endpoint import EndpointCreator as EndpointCreator
15
17
  from botocore.errorfactory import ClientExceptionsFactory
@@ -21,6 +23,8 @@ from botocore.serialize import BaseRestSerializer
21
23
  from botocore.signers import RequestSigner as RequestSigner
22
24
  from botocore.useragent import UserAgentString
23
25
 
26
+ _R = TypeVar("_R")
27
+
24
28
  logger: Logger = ...
25
29
 
26
30
  VALID_REGIONAL_ENDPOINTS_CONFIG: list[str] = ...
@@ -28,6 +32,8 @@ LEGACY_GLOBAL_STS_REGIONS: list[str] = ...
28
32
  USERAGENT_APPID_MAXLEN: int = ...
29
33
  VALID_REQUEST_CHECKSUM_CALCULATION_CONFIG: tuple[str, ...] = ...
30
34
  VALID_RESPONSE_CHECKSUM_VALIDATION_CONFIG: tuple[str, ...] = ...
35
+ PRIORITY_ORDERED_SUPPORTED_PROTOCOLS: tuple[str, ...] = ...
36
+ VALID_ACCOUNT_ID_ENDPOINT_MODE_CONFIG: tuple[str, ...] = ...
31
37
 
32
38
  class _GetClientArgsTypeDef(TypedDict):
33
39
  serializer: BaseRestSerializer
@@ -86,4 +92,11 @@ class ClientArgsCreator:
86
92
  endpoint_bridge: ClientEndpointBridge,
87
93
  client_endpoint_url: str,
88
94
  legacy_endpoint_url: str,
95
+ credentials: Credentials | None,
96
+ account_id_endpoint_mode: Literal["preferred", "disabled", "required"] | None,
89
97
  ) -> dict[str, Any]: ...
98
+
99
+ class ConfigObjectWrapper: ...
100
+
101
+ class ClientConfigString(str, ConfigObjectWrapper):
102
+ def __new__(cls: type[_R], value: Any = ...) -> _R: ...
@@ -4,9 +4,10 @@ Type annotations for botocore.auth module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Iterable, Mapping
7
8
  from http.client import HTTPMessage
8
9
  from logging import Logger
9
- from typing import Any, Iterable, Mapping
10
+ from typing import Any
10
11
  from urllib.parse import SplitResult
11
12
 
12
13
  from botocore.awsrequest import AWSRequest
@@ -156,6 +157,10 @@ class BearerAuth(TokenSigner):
156
157
  def add_auth(self, request: AWSRequest) -> None: ...
157
158
 
158
159
  def resolve_auth_type(auth_trait: Iterable[str]) -> str: ...
160
+ def resolve_auth_scheme_preference(
161
+ preference_list: Iterable[str], auth_options: Iterable[str]
162
+ ) -> str: ...
159
163
 
160
164
  AUTH_TYPE_MAPS: dict[str, type[BaseSigner]]
161
165
  AUTH_TYPE_TO_SIGNATURE_VERSION: dict[str, str]
166
+ AUTH_PREF_TO_SIGNATURE_VERSION: dict[str, str]
@@ -4,9 +4,9 @@ Type annotations for botocore.awsrequest module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from collections.abc import MutableMapping
7
+ from collections.abc import Iterator, Mapping, MutableMapping
8
8
  from logging import Logger
9
- from typing import IO, Any, Iterator, Mapping, TypeVar
9
+ from typing import IO, Any, TypeVar
10
10
 
11
11
  from botocore.compat import HTTPHeaders as HTTPHeaders
12
12
  from botocore.compat import HTTPResponse as HTTPResponse
@@ -4,8 +4,9 @@ Type annotations for botocore.client module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping
7
8
  from logging import Logger
8
- from typing import Any, Mapping
9
+ from typing import Any, Protocol
9
10
 
10
11
  from botocore.args import ClientArgsCreator as ClientArgsCreator
11
12
  from botocore.auth import AUTH_TYPE_MAPS as AUTH_TYPE_MAPS
@@ -52,6 +53,9 @@ from botocore.waiter import Waiter
52
53
  logger: Logger = ...
53
54
  history_recorder: HistoryRecorder = ...
54
55
 
56
+ class _AuthTokenResolver(Protocol):
57
+ def __call__(self, *, signing_name: str) -> str: ...
58
+
55
59
  class ClientCreator:
56
60
  def __init__(
57
61
  self,
@@ -65,6 +69,7 @@ class ClientCreator:
65
69
  exceptions_factory: ClientExceptionsFactory | None = ...,
66
70
  config_store: ConfigValueStore | None = ...,
67
71
  user_agent_creator: UserAgentString | None = ...,
72
+ auth_token_resolver: _AuthTokenResolver | None = None,
68
73
  ) -> None: ...
69
74
  def create_client(
70
75
  self,
@@ -7,6 +7,7 @@ Copyright 2025 Vlad Emelianov
7
7
  import datetime
8
8
  from base64 import encodebytes as encodebytes
9
9
  from collections import OrderedDict as OrderedDict
10
+ from collections.abc import Iterable, Mapping
10
11
  from email.utils import formatdate as formatdate
11
12
  from hashlib import _Hash
12
13
  from http.client import HTTPMessage
@@ -14,7 +15,8 @@ from http.client import HTTPResponse as HTTPResponse
14
15
  from inspect import FullArgSpec
15
16
  from itertools import zip_longest as zip_longest
16
17
  from logging import Logger
17
- from typing import Any, Callable, Iterable, Mapping, Pattern, TypeVar
18
+ from re import Pattern
19
+ from typing import Any, Callable, TypeVar
18
20
  from urllib.parse import parse_qs as parse_qs
19
21
  from urllib.parse import parse_qsl as parse_qsl
20
22
  from urllib.parse import quote as quote
@@ -70,6 +72,10 @@ def get_tzinfo_options() -> tuple[Any, ...]: ...
70
72
 
71
73
  HAS_CRT: bool
72
74
  disabled: str
75
+
76
+ def has_minimum_crt_version(minimum_version: tuple[int, ...]) -> bool: ...
77
+ def get_current_datetime(remove_tzinfo: bool = ...) -> datetime.datetime: ...
78
+
73
79
  IPV4_PAT: str
74
80
  IPV4_RE: Pattern[str]
75
81
  HEX_PAT: str
@@ -5,9 +5,10 @@ Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
7
  import io
8
+ from collections.abc import Mapping
8
9
  from gzip import GzipFile as GzipFile
9
10
  from logging import Logger
10
- from typing import Any, Callable, Mapping
11
+ from typing import Any, Callable
11
12
 
12
13
  from botocore.compat import urlencode as urlencode
13
14
  from botocore.config import Config
@@ -4,7 +4,8 @@ Type annotations for botocore.config module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Literal, Mapping, TypedDict, TypeVar
7
+ from collections.abc import Mapping
8
+ from typing import Any, Literal, TypedDict, TypeVar
8
9
 
9
10
  from botocore.compat import OrderedDict as OrderedDict
10
11
  from botocore.endpoint import DEFAULT_TIMEOUT as DEFAULT_TIMEOUT
@@ -56,5 +57,16 @@ class Config:
56
57
  use_fips_endpoint: bool | None = None,
57
58
  defaults_mode: bool | None = None,
58
59
  tcp_keepalive: bool | None = False,
60
+ request_min_compression_size_bytes: int | None = None,
61
+ disable_request_compression: bool | None = None,
62
+ sigv4a_signing_region_set: str | None = None,
63
+ client_context_params: Mapping[str, Any] | None = None,
64
+ request_checksum_calculation: Literal["when_supported", "when_required"] | None = None,
65
+ response_checksum_validation: Literal["when_supported", "when_required"] | None = None,
66
+ account_id_endpoint_mode: Literal["preferred", "disabled", "required"] | None = None,
59
67
  ) -> None: ...
60
68
  def merge(self: _Config, other_config: _Config) -> _Config: ...
69
+ @property
70
+ def inject_host_prefix(self) -> bool: ...
71
+ @inject_host_prefix.setter
72
+ def inject_host_prefix(self, value: bool) -> None: ...
@@ -4,8 +4,9 @@ Type annotations for botocore.configprovider module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping, Sequence
7
8
  from logging import Logger
8
- from typing import Any, Callable, Mapping, Sequence, TypeVar
9
+ from typing import Any, Callable, TypeVar
9
10
 
10
11
  from botocore.session import Session
11
12
  from botocore.utils import IMDSRegionProvider
@@ -0,0 +1,33 @@
1
+ """
2
+ Type annotations for botocore.context module.
3
+
4
+ Copyright 2025 Vlad Emelianov
5
+ """
6
+
7
+ from collections.abc import Callable, Iterator
8
+ from contextlib import contextmanager
9
+ from contextvars import ContextVar, Token
10
+ from dataclasses import dataclass
11
+ from typing import TypeVar
12
+
13
+ from typing_extensions import ParamSpec
14
+
15
+ _Param = ParamSpec("_Param")
16
+ _R = TypeVar("_R")
17
+
18
+ @dataclass
19
+ class ClientContext:
20
+ features: set[str] = ...
21
+
22
+ _context: ContextVar[ClientContext] = ...
23
+
24
+ def get_context() -> ClientContext | None:
25
+ return _context.get(None)
26
+
27
+ def set_context(ctx: ClientContext) -> Token[ClientContext]: ...
28
+ def reset_context(token: Token[ClientContext]) -> None: ...
29
+ @contextmanager
30
+ def start_as_current_context(ctx: ClientContext | None = ...) -> Iterator[None]: ...
31
+ def with_current_context(
32
+ hook: Callable[[], None] | None = ...,
33
+ ) -> Callable[[Callable[_Param, _R]], Callable[_Param, _R]]: ...
@@ -5,8 +5,9 @@ Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
7
  import datetime
8
+ from collections.abc import Mapping
8
9
  from logging import Logger
9
- from typing import Any, Callable, Mapping, NamedTuple, TypeVar
10
+ from typing import Any, Callable, NamedTuple, TypeVar
10
11
 
11
12
  from botocore.client import BaseClient
12
13
  from botocore.compat import compat_shell_split as compat_shell_split
@@ -34,9 +35,10 @@ _R = TypeVar("_R")
34
35
  logger: Logger = ...
35
36
 
36
37
  class ReadOnlyCredentials(NamedTuple):
37
- access_key: str
38
- secret_key: str
39
- token: str
38
+ access_key: str | None
39
+ secret_key: str | None
40
+ token: str | None
41
+ account_id: str | None = ...
40
42
 
41
43
  def create_credential_resolver(
42
44
  session: Session,
@@ -56,7 +58,7 @@ class ProfileProviderBuilder:
56
58
  self, profile_name: str, disable_env_vars: bool = ...
57
59
  ) -> list[CredentialProvider]: ...
58
60
 
59
- def get_credentials(session: Session) -> Any: ...
61
+ def get_credentials(session: Session) -> Credentials: ...
60
62
  def create_assume_role_refresher(client: BaseClient, params: Any) -> Any: ...
61
63
  def create_mfa_serial_refresher(actual_refresh: Any) -> Any: ...
62
64
 
@@ -67,6 +69,7 @@ class Credentials:
67
69
  secret_key: str,
68
70
  token: str | None = ...,
69
71
  method: str | None = ...,
72
+ account_id: str | None = ...,
70
73
  ) -> None:
71
74
  self.access_key: str = ...
72
75
  self.secret_key: str = ...
@@ -74,6 +77,7 @@ class Credentials:
74
77
  self.method: str = ...
75
78
 
76
79
  def get_frozen_credentials(self) -> ReadOnlyCredentials: ...
80
+ def get_deferred_property(self, property_name: str) -> Callable[[], str | None]: ...
77
81
 
78
82
  class RefreshableCredentials(Credentials):
79
83
  method: Any = ...
@@ -88,6 +92,7 @@ class RefreshableCredentials(Credentials):
88
92
  time_fetcher: Callable[[], datetime.datetime] | None = ...,
89
93
  advisory_timeout: int | None = ...,
90
94
  mandatory_timeout: int | None = ...,
95
+ account_id: str | None = ...,
91
96
  ) -> None: ...
92
97
  @classmethod
93
98
  def create_from_metadata(
@@ -110,6 +115,10 @@ class RefreshableCredentials(Credentials):
110
115
  def token(self) -> str: ... # type: ignore [override]
111
116
  @token.setter
112
117
  def token(self, value: str) -> None: ...
118
+ @property
119
+ def account_id(self) -> str: ...
120
+ @account_id.setter
121
+ def account_id(self, value: str) -> None: ...
113
122
  def refresh_needed(self, refresh_in: int | None = ...) -> bool: ...
114
123
  def get_frozen_credentials(self) -> ReadOnlyCredentials: ...
115
124
 
@@ -178,6 +187,8 @@ class ProcessProvider(CredentialProvider):
178
187
  self, profile_name: str, load_config: Callable[..., Any], popen: Callable[..., Any] = ...
179
188
  ) -> None: ...
180
189
  def load(self) -> Credentials | None: ...
190
+ @property
191
+ def profile_config(self) -> dict[str, Any]: ...
181
192
 
182
193
  class InstanceMetadataProvider(CredentialProvider):
183
194
  METHOD: str = ...
@@ -192,6 +203,7 @@ class EnvProvider(CredentialProvider):
192
203
  SECRET_KEY: str = ...
193
204
  TOKENS: list[str] = ...
194
205
  EXPIRY_TIME: str = ...
206
+ ACCOUNT_ID: str = ...
195
207
  def __init__(
196
208
  self, environ: Mapping[str, Any] | None = ..., mapping: Mapping[str, Any] | None = ...
197
209
  ) -> None:
@@ -216,6 +228,7 @@ class SharedCredentialProvider(CredentialProvider):
216
228
  ACCESS_KEY: str = ...
217
229
  SECRET_KEY: str = ...
218
230
  TOKENS: list[str] = ...
231
+ ACCOUNT_ID: str = ...
219
232
  def __init__(
220
233
  self,
221
234
  creds_filename: str,
@@ -230,6 +243,7 @@ class ConfigProvider(CredentialProvider):
230
243
  ACCESS_KEY: str = ...
231
244
  SECRET_KEY: str = ...
232
245
  TOKENS: list[str] = ...
246
+ ACCOUNT_ID: str = ...
233
247
  def __init__(
234
248
  self,
235
249
  config_filename: str,
@@ -250,10 +264,11 @@ class BotoProvider(CredentialProvider):
250
264
 
251
265
  class AssumeRoleProvider(CredentialProvider):
252
266
  METHOD: str = ...
253
- CANONICAL_NAME: None = ...
267
+ CANONICAL_NAME: str | None = ...
254
268
  ROLE_CONFIG_VAR: str = ...
255
269
  WEB_IDENTITY_TOKE_FILE_VAR: str = ...
256
270
  EXPIRY_WINDOW_SECONDS: int = ...
271
+ NAMED_PROVIDER_FEATURE_MAP: dict[str, str] = ...
257
272
  def __init__(
258
273
  self,
259
274
  load_config: Callable[[], Mapping[str, Any]],
@@ -323,6 +338,7 @@ class SSOCredentialFetcher(CachedCredentialFetcher):
323
338
  expiry_window_seconds: float | None = ...,
324
339
  token_provider: SSOTokenProvider | None = ...,
325
340
  sso_session_name: str | None = ...,
341
+ time_fetcher: Callable[[], datetime.datetime] = ...,
326
342
  ) -> None: ...
327
343
 
328
344
  class SSOProvider(CredentialProvider):
@@ -4,7 +4,8 @@ Type annotations for botocore.crt.auth module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from awscrt.auth import AwsCredentials
7
+ from typing import Protocol
8
+
8
9
  from botocore.auth import SIGNED_HEADERS_BLACKLIST as SIGNED_HEADERS_BLACKLIST
9
10
  from botocore.auth import STREAMING_UNSIGNED_PAYLOAD_TRAILER as STREAMING_UNSIGNED_PAYLOAD_TRAILER
10
11
  from botocore.auth import UNSIGNED_PAYLOAD as UNSIGNED_PAYLOAD
@@ -17,16 +18,21 @@ from botocore.compat import urlunsplit as urlunsplit
17
18
  from botocore.exceptions import NoCredentialsError as NoCredentialsError
18
19
  from botocore.utils import percent_encode_sequence as percent_encode_sequence
19
20
 
21
+ class _Credentials(Protocol):
22
+ access_key: str
23
+ secret_key: str
24
+ token: str | None
25
+
20
26
  class CrtSigV4Auth(BaseSigner):
21
27
  REQUIRES_REGION: bool = ...
22
28
 
23
29
  def __init__(
24
30
  self,
25
- credentials: AwsCredentials,
31
+ credentials: _Credentials,
26
32
  service_name: str,
27
33
  region_name: str,
28
34
  ) -> None:
29
- self.credentials: AwsCredentials = ...
35
+ self.credentials: _Credentials = ...
30
36
 
31
37
  def add_auth(self, request: AWSRequest) -> None: ...
32
38
 
@@ -37,11 +43,11 @@ class CrtSigV4AsymAuth(BaseSigner):
37
43
 
38
44
  def __init__(
39
45
  self,
40
- credentials: AwsCredentials,
46
+ credentials: _Credentials,
41
47
  service_name: str,
42
48
  region_name: str,
43
49
  ) -> None:
44
- self.credentials: AwsCredentials = ...
50
+ self.credentials: _Credentials = ...
45
51
 
46
52
  def add_auth(self, request: AWSRequest) -> None: ...
47
53
 
@@ -52,7 +58,7 @@ class CrtSigV4AsymQueryAuth(CrtSigV4AsymAuth):
52
58
 
53
59
  def __init__(
54
60
  self,
55
- credentials: AwsCredentials,
61
+ credentials: _Credentials,
56
62
  service_name: str,
57
63
  region_name: str,
58
64
  expires: int = ...,
@@ -64,7 +70,7 @@ class CrtSigV4QueryAuth(CrtSigV4Auth):
64
70
  DEFAULT_EXPIRES: int = ...
65
71
  def __init__(
66
72
  self,
67
- credentials: AwsCredentials,
73
+ credentials: _Credentials,
68
74
  service_name: str,
69
75
  region_name: str,
70
76
  expires: int = ...,
@@ -4,8 +4,9 @@ Type annotations for botocore.discovery module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping
7
8
  from logging import Logger
8
- from typing import Any, Callable, Mapping
9
+ from typing import Any, Callable
9
10
 
10
11
  from botocore.client import BaseClient
11
12
  from botocore.exceptions import BotoCoreError as BotoCoreError
@@ -5,8 +5,9 @@ Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
7
  import re
8
+ from collections.abc import Iterable, Mapping
8
9
  from logging import Logger
9
- from typing import Any, Iterable, Mapping
10
+ from typing import Any
10
11
 
11
12
  DEFAULT_AWS_DOCS_LINK: str = ...
12
13
  DOCUMENTATION_LINK_REGEX: re.Pattern[str] = ...
@@ -4,7 +4,8 @@ Type annotations for botocore.docs.method module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Any, Sequence
7
+ from collections.abc import Sequence
8
+ from typing import Any
8
9
 
9
10
  from botocore.docs.bcdoc.restdoc import DocumentStructure
10
11
  from botocore.hooks import BaseEventHooks
@@ -4,7 +4,8 @@ Type annotations for botocore.docs.params module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Any, Sequence
7
+ from collections.abc import Sequence
8
+ from typing import Any
8
9
 
9
10
  from botocore.docs.bcdoc.restdoc import DocumentStructure
10
11
  from botocore.docs.shape import ShapeDocumenter
@@ -4,7 +4,8 @@ Type annotations for botocore.docs.shape module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Any, Mapping
7
+ from collections.abc import Mapping
8
+ from typing import Any
8
9
 
9
10
  from botocore.docs.bcdoc.restdoc import DocumentStructure
10
11
  from botocore.hooks import BaseEventHooks
@@ -4,7 +4,8 @@ Type annotations for botocore.docs.sharedexample module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Any, Iterable, Mapping
7
+ from collections.abc import Iterable, Mapping
8
+ from typing import Any
8
9
 
9
10
  from botocore.docs.bcdoc.restdoc import DocumentStructure
10
11
  from botocore.model import OperationModel, Shape
@@ -4,8 +4,9 @@ Type annotations for botocore.endpoint module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping, Sequence
7
8
  from logging import Logger
8
- from typing import Any, Mapping, Sequence
9
+ from typing import Any
9
10
 
10
11
  from botocore.awsrequest import AWSPreparedRequest
11
12
  from botocore.awsrequest import create_request_object as create_request_object
@@ -5,15 +5,14 @@ Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
7
  import logging
8
+ from collections.abc import Iterable, Mapping
8
9
  from enum import Enum
10
+ from re import Pattern
9
11
  from string import Formatter
10
12
  from typing import (
11
13
  Any,
12
14
  Callable,
13
- Iterable,
14
- Mapping,
15
15
  NamedTuple,
16
- Pattern,
17
16
  )
18
17
 
19
18
  from botocore.compat import quote as quote
@@ -120,9 +119,9 @@ class RuleCreator:
120
119
  def create(cls, **kwargs: Any) -> BaseRule: ...
121
120
 
122
121
  class ParameterType(Enum):
123
- string = type(str)
124
- boolean = type(bool)
125
- stringarray = type(tuple)
122
+ string = ...
123
+ boolean = ...
124
+ stringarray = ...
126
125
 
127
126
  class ParameterDefinition:
128
127
  def __init__(
@@ -4,7 +4,7 @@ Type annotations for botocore.errorfactory module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Mapping
7
+ from collections.abc import Mapping
8
8
 
9
9
  from botocore.exceptions import ClientError as ClientError
10
10
  from botocore.exceptions import ClientError as _ClientError
@@ -4,7 +4,8 @@ Type annotations for botocore.eventstream module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import Any, Generic, Iterator, TypeVar
7
+ from collections.abc import Iterator
8
+ from typing import Any, Generic, TypeVar
8
9
 
9
10
  from botocore.exceptions import EventStreamError as EventStreamError
10
11
  from botocore.model import StructureShape
@@ -4,7 +4,8 @@ Type annotations for botocore.exceptions module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
- from typing import IO, Any, Iterable, Mapping, TypedDict
7
+ from collections.abc import Iterable, Mapping
8
+ from typing import IO, Any, TypedDict
8
9
 
9
10
  import requests
10
11
  from urllib3.exceptions import ReadTimeoutError as _ReadTimeoutError
@@ -632,3 +633,4 @@ class EndpointProviderError(BotoCoreError):
632
633
  class EndpointResolutionError(EndpointProviderError): ...
633
634
  class UnknownEndpointResolutionBuiltInName(EndpointProviderError): ...
634
635
  class InvalidChecksumConfigError(BotoCoreError): ...
636
+ class UnsupportedServiceProtocolsError(BotoCoreError): ...
@@ -4,8 +4,10 @@ Type annotations for botocore.handlers module.
4
4
  Copyright 2025 Vlad Emelianov
5
5
  """
6
6
 
7
+ from collections.abc import Mapping
7
8
  from logging import Logger
8
- from typing import Any, Mapping, Pattern
9
+ from re import Pattern
10
+ from typing import Any
9
11
  from urllib.request import Request
10
12
 
11
13
  from botocore.client import BaseClient
@@ -130,6 +132,12 @@ def remove_lex_v2_start_conversation(
130
132
  class_attributes: Mapping[str, Any], **kwargs: Any
131
133
  ) -> None: ...
132
134
  def remove_qbusiness_chat(class_attributes: Mapping[str, Any], **kwargs: Any) -> None: ...
135
+ def remove_bedrock_runtime_invoke_model_with_bidirectional_stream(
136
+ class_attributes: Mapping[str, Any], **kwargs: Any
137
+ ) -> None: ...
138
+ def enable_millisecond_timestamp_precision(
139
+ serializer_kwargs: Mapping[str, Any], **kwargs: Any
140
+ ) -> None: ...
133
141
  def add_retry_headers(request: Request, **kwargs: Any) -> None: ...
134
142
  def remove_bucket_from_url_paths_from_model(
135
143
  params: Mapping[str, Any], model: OperationModel, context: Mapping[str, Any], **kwargs: Any
@@ -153,8 +161,6 @@ def handle_expires_header(
153
161
  **kwargs: Any,
154
162
  ) -> None: ...
155
163
  def document_expires_shape(section: DocumentStructure, event_name: str, **kwargs: Any) -> None: ...
156
- def add_query_compatibility_header(
157
- model: OperationModel, params: dict[str, Any], **kwargs: Any
158
- ) -> None: ...
164
+ def get_bearer_auth_supported_services() -> set[str]: ...
159
165
 
160
166
  BUILTIN_HANDLERS: list[tuple[Any, ...]] = ...