Skip to content

__init__.py only exports Multiaddr — missing many useful symbols #121

Description

@sumanjeet0012

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions