diff --git a/pyrightconfig.stricter.json b/pyrightconfig.stricter.json index 43cfc0686146..20e350f8745e 100644 --- a/pyrightconfig.stricter.json +++ b/pyrightconfig.stricter.json @@ -66,6 +66,7 @@ "stubs/netaddr/netaddr/core.pyi", "stubs/netaddr/netaddr/ip/__init__.pyi", "stubs/netaddr/netaddr/ip/iana.pyi", + "stubs/netifaces", "stubs/networkx", "stubs/oauthlib", "stubs/openpyxl", diff --git a/stubs/netifaces/@tests/stubtest_allowlist.txt b/stubs/netifaces/@tests/stubtest_allowlist.txt new file mode 100644 index 000000000000..553280bdb8d9 --- /dev/null +++ b/stubs/netifaces/@tests/stubtest_allowlist.txt @@ -0,0 +1,34 @@ +# Values that may not always exist at runtime, as they are system-specific. +netifaces.AF_12844 +netifaces.AF_ATM +netifaces.AF_BAN +netifaces.AF_CCITT +netifaces.AF_CHAOS +netifaces.AF_CLUSTER +netifaces.AF_CNT +netifaces.AF_COIP +netifaces.AF_DATAKIT +netifaces.AF_DLI +netifaces.AF_ECMA +netifaces.AF_FIREFOX +netifaces.AF_HYLINK +netifaces.AF_IMPLINK +netifaces.AF_ISO +netifaces.AF_LAT +netifaces.AF_NATM +netifaces.AF_NDRV +netifaces.AF_NETBIOS +netifaces.AF_NETDES +netifaces.AF_NETGRAPH +netifaces.AF_NS +netifaces.AF_PPP +netifaces.AF_PUP +netifaces.AF_SIP +netifaces.AF_SYSTEM +netifaces.AF_UNKNOWN1 +netifaces.AF_VOICEVIEW +netifaces.IN6_IFF_AUTOCONF +netifaces.IN6_IFF_DYNAMIC +netifaces.IN6_IFF_OPTIMISTIC +netifaces.IN6_IFF_SECURED +netifaces.IN6_IFF_TEMPORARY diff --git a/stubs/netifaces/METADATA.toml b/stubs/netifaces/METADATA.toml new file mode 100644 index 000000000000..dadf1becdf8d --- /dev/null +++ b/stubs/netifaces/METADATA.toml @@ -0,0 +1,2 @@ +version = "0.11.*" +upstream_repository = "https://github.com/al45tair/netifaces" diff --git a/stubs/netifaces/netifaces.pyi b/stubs/netifaces/netifaces.pyi new file mode 100644 index 000000000000..104ab384e1fa --- /dev/null +++ b/stubs/netifaces/netifaces.pyi @@ -0,0 +1,72 @@ +from typing import Literal, Final + +AF_12844: Final[int] +AF_APPLETALK: Final[int] +AF_ASH: Final[int] +AF_ATM: Final[int] +AF_ATMPVC: Final[int] +AF_ATMSVC: Final[int] +AF_AX25: Final[int] +AF_BAN: Final[int] +AF_BLUETOOTH: Final[int] +AF_BRIDGE: Final[int] +AF_DATAKIT: Final[int] +AF_DECnet: Final[int] +AF_CCITT: Final[int] +AF_CHAOS: Final[int] +AF_CLUSTER: Final[int] +AF_CNT: Final[int] +AF_COIP: Final[int] +AF_DLI: Final[int] +AF_ECONET: Final[int] +AF_ECMA: Final[int] +AF_FILE: Final[int] +AF_FIREFOX: Final[int] +AF_HYLINK: Final[int] +AF_IMPLINK: Final[int] +AF_INET: Final[int] +AF_INET6: Final[int] +AF_IPX: Final[int] +AF_IRDA: Final[int] +AF_ISDN: Final[int] +AF_ISO: Final[int] +AF_KEY: Final[int] +AF_LAT: Final[int] +AF_LINK: Final[int] +AF_NATM: Final[int] +AF_NETBEUI: Final[int] +AF_NETBIOS: Final[int] +AF_NETDES: Final[int] +AF_NETGRAPH: Final[int] +AF_NETLINK: Final[int] +AF_NETROM: Final[int] +AF_NDRV: Final[int] +AF_NS: Final[int] +AF_PACKET: Final[int] +AF_PPP: Final[int] +AF_PPPOX: Final[int] +AF_PUP: Final[int] +AF_ROSE: Final[int] +AF_ROUTE: Final[int] +AF_SECURITY: Final[int] +AF_SIP: Final[int] +AF_SNA: Final[int] +AF_SYSTEM: Final[int] +AF_UNIX: Final[int] +AF_UNKNOWN1: Final[int] +AF_UNSPEC: Final[int] +AF_VOICEVIEW: Final[int] +AF_WANPIPE: Final[int] +AF_X25: Final[int] +IN6_IFF_AUTOCONF: Final[int] +IN6_IFF_TEMPORARY: Final[int] +IN6_IFF_DYNAMIC: Final[int] +IN6_IFF_OPTIMISTIC: Final[int] +IN6_IFF_SECURED: Final[int] + +address_families: Final[dict[int, str]] +version: Final[str] + +def gateways() -> dict[int | Literal["default"], list[tuple[str, str, bool] | tuple[str, str]] | dict[int, tuple[str, str]]]: ... +def ifaddresses(ifname: str, /) -> dict[int, list[dict[str, str]]]: ... +def interfaces() -> list[str]: ...