multiaddr/__init__.py only exports Multiaddr. Many useful symbols from protocols, utils, exceptions, and transforms are not available at the top level, forcing users to import from submodules.
Problem
Current __init__.py:
from .multiaddr import Multiaddr # NOQA
Users must do:
from multiaddr import Multiaddr
from multiaddr.protocols import P_TCP, P_UDP, Protocol, REGISTRY
from multiaddr.utils import get_thin_waist_addresses, dial_args
from multiaddr.exceptions import StringParseError, BinaryParseError
Proposed Solution
Expand __init__.py with commonly used symbols:
from .multiaddr import Multiaddr
from .protocols import (
PROTOCOLS, REGISTRY, Protocol,
P_IP4, P_IP6, P_TCP, P_UDP, P_P2P, P_DNS, P_DNS4, P_DNS6, P_DNSADDR,
protocol_with_name, protocol_with_code,
)
from .exceptions import (
StringParseError, BinaryParseError, ParseError,
ProtocolLookupError, ProtocolNotFoundError, ProtocolExistsError,
ProtocolRegistryLocked, ResolutionError, RecursionLimitError,
)
from .utils import (
get_thin_waist_addresses, get_multiaddr_options,
get_network_addrs, is_wildcard, is_link_local_ip,
)
__all__ = [
"Multiaddr",
"PROTOCOLS", "REGISTRY", "Protocol",
"P_IP4", "P_IP6", "P_TCP", "P_UDP", "P_P2P",
"P_DNS", "P_DNS4", "P_DNS6", "P_DNSADDR",
"protocol_with_name", "protocol_with_code",
"StringParseError", "BinaryParseError", "ParseError",
"ProtocolLookupError", "ProtocolNotFoundError",
"get_thin_waist_addresses", "get_multiaddr_options",
]
Related
- File:
multiaddr/__init__.py
multiaddr/__init__.pyonly exportsMultiaddr. Many useful symbols fromprotocols,utils,exceptions, andtransformsare not available at the top level, forcing users to import from submodules.Problem
Current
__init__.py:Users must do:
Proposed Solution
Expand
__init__.pywith commonly used symbols:Related
multiaddr/__init__.py