Skip to content

Commit a5e4dce

Browse files
authored
[hvac] Add dynamic attributes and return types (#16023)
1 parent c6d1070 commit a5e4dce

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

stubs/hvac/hvac/api/secrets_engines/__init__.pyi

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from hvac.api.secrets_engines.active_directory import ActiveDirectory as ActiveDirectory
22
from hvac.api.secrets_engines.aws import Aws as Aws
33
from hvac.api.secrets_engines.azure import Azure as Azure
4+
from hvac.api.secrets_engines.consul import Consul as Consul
45
from hvac.api.secrets_engines.database import Database as Database
56
from hvac.api.secrets_engines.gcp import Gcp as Gcp
67
from hvac.api.secrets_engines.identity import Identity as Identity
@@ -38,3 +39,21 @@ __all__ = (
3839
class SecretsEngines(VaultApiCategory):
3940
implemented_classes: list[type[VaultApiBase]]
4041
unimplemented_classes: list[str]
42+
43+
# The following attributes are dynamically created at runtime by
44+
# VaultApiCategory based on implemented_classes.
45+
# These explicit assignments make them visible for static type checkers.
46+
aws: Aws
47+
azure: Azure
48+
gcp: Gcp
49+
activedirectory: ActiveDirectory
50+
identity: Identity
51+
kv: Kv
52+
ldap: Ldap
53+
pki: Pki
54+
transform: Transform
55+
transit: Transit
56+
database: Database
57+
consul: Consul
58+
rabbitmq: RabbitMQ
59+
ssh: Ssh
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22

3+
from hvac.api.secrets_engines import KvV1, KvV2
34
from hvac.api.vault_api_base import VaultApiBase
45

56
logger: logging.Logger
@@ -8,13 +9,13 @@ class Kv(VaultApiBase):
89
allowed_kv_versions: list[str]
910
def __init__(self, adapter, default_kv_version: str = "2") -> None: ...
1011
@property
11-
def v1(self): ...
12+
def v1(self) -> KvV1: ...
1213
@property
13-
def v2(self): ...
14+
def v2(self) -> KvV2: ...
1415

1516
@property
16-
def default_kv_version(self): ...
17+
def default_kv_version(self) -> str: ...
1718
@default_kv_version.setter
18-
def default_kv_version(self, default_kv_version) -> None: ...
19+
def default_kv_version(self, default_kv_version: str) -> None: ...
1920

20-
def __getattr__(self, item): ...
21+
def __getattr__(self, item: str): ...

0 commit comments

Comments
 (0)