From 5ad8ef8dd867bb12ebbc69cff925d4197ecab05c Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 13 Jun 2021 09:36:31 -1000 Subject: [PATCH] Mark zeroconf.utils as protected by renaming to zeroconf._utils - The public API should only access zeroconf and zeroconf.aio as internals may be relocated between releases --- setup.py | 2 +- tests/test_aio.py | 2 +- tests/utils/test_aio.py | 4 ++-- tests/utils/test_net.py | 8 ++++---- zeroconf/__init__.py | 8 ++++---- zeroconf/_cache.py | 2 +- zeroconf/_core.py | 20 ++++++++++---------- zeroconf/_dns.py | 6 +++--- zeroconf/_handlers.py | 2 +- zeroconf/{utils => _utils}/__init__.py | 0 zeroconf/{utils => _utils}/aio.py | 0 zeroconf/{utils => _utils}/name.py | 0 zeroconf/{utils => _utils}/net.py | 0 zeroconf/{utils => _utils}/struct.py | 0 zeroconf/{utils => _utils}/time.py | 0 zeroconf/aio.py | 6 +++--- zeroconf/services/__init__.py | 17 +++++++++-------- zeroconf/services/types.py | 2 +- 18 files changed, 40 insertions(+), 39 deletions(-) rename zeroconf/{utils => _utils}/__init__.py (100%) rename zeroconf/{utils => _utils}/aio.py (100%) rename zeroconf/{utils => _utils}/name.py (100%) rename zeroconf/{utils => _utils}/net.py (100%) rename zeroconf/{utils => _utils}/struct.py (100%) rename zeroconf/{utils => _utils}/time.py (100%) diff --git a/setup.py b/setup.py index c1c0da34..f6f8582b 100755 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ author='Paul Scott-Murphy, William McBrine, Jakub Stasiak', url='https://github.com/jstasiak/python-zeroconf', package_data={"zeroconf": ["py.typed"]}, - packages=["zeroconf", "zeroconf.services", "zeroconf.utils"], + packages=["zeroconf", "zeroconf.services", "zeroconf._utils"], platforms=['unix', 'linux', 'osx'], license='LGPL', zip_safe=False, diff --git a/tests/test_aio.py b/tests/test_aio.py index 962e0df8..5d04e019 100644 --- a/tests/test_aio.py +++ b/tests/test_aio.py @@ -16,7 +16,7 @@ from zeroconf.const import _LISTENER_TIME from zeroconf._exceptions import BadTypeInNameException, NonUniqueNameException, ServiceNameAlreadyRegistered from zeroconf.services import ServiceInfo, ServiceListener -from zeroconf.utils.time import current_time_millis +from zeroconf._utils.time import current_time_millis @pytest.fixture(autouse=True) diff --git a/tests/utils/test_aio.py b/tests/utils/test_aio.py index e38eb583..a74d991d 100644 --- a/tests/utils/test_aio.py +++ b/tests/utils/test_aio.py @@ -2,13 +2,13 @@ # -*- coding: utf-8 -*- -"""Unit tests for zeroconf.utils.aio.""" +"""Unit tests for zeroconf._utils.aio.""" import asyncio import pytest -from zeroconf.utils import aio as aioutils +from zeroconf._utils import aio as aioutils @pytest.mark.asyncio diff --git a/tests/utils/test_net.py b/tests/utils/test_net.py index d4b829c2..1360f936 100644 --- a/tests/utils/test_net.py +++ b/tests/utils/test_net.py @@ -2,13 +2,13 @@ # -*- coding: utf-8 -*- -"""Unit tests for zeroconf.utils.net.""" +"""Unit tests for zeroconf._utils.net.""" from unittest.mock import Mock, patch import ifaddr import pytest -from zeroconf.utils import net as netutils +from zeroconf._utils import net as netutils def _generate_mock_adapters(): @@ -50,9 +50,9 @@ def test_interface_index_to_ip6_address(): def test_ip6_addresses_to_indexes(): """Test we can extract from mocked adapters.""" interfaces = [1] - with patch("zeroconf.utils.net.ifaddr.get_adapters", return_value=_generate_mock_adapters()): + with patch("zeroconf._utils.net.ifaddr.get_adapters", return_value=_generate_mock_adapters()): assert netutils.ip6_addresses_to_indexes(interfaces) == [(('2001:db8::', 1, 1), 1)] interfaces = ['2001:db8::'] - with patch("zeroconf.utils.net.ifaddr.get_adapters", return_value=_generate_mock_adapters()): + with patch("zeroconf._utils.net.ifaddr.get_adapters", return_value=_generate_mock_adapters()): assert netutils.ip6_addresses_to_indexes(interfaces) == [(('2001:db8::', 1, 1), 1)] diff --git a/zeroconf/__init__.py b/zeroconf/__init__.py index dec26353..e424118d 100644 --- a/zeroconf/__init__.py +++ b/zeroconf/__init__.py @@ -58,8 +58,8 @@ ) from .services.registry import ServiceRegistry # noqa # import needed for backwards compat from .services.types import ZeroconfServiceTypes # noqa # import needed for backwards compat -from .utils.name import service_type_name # noqa # import needed for backwards compat -from .utils.net import ( # noqa # import needed for backwards compat +from ._utils.name import service_type_name # noqa # import needed for backwards compat +from ._utils.net import ( # noqa # import needed for backwards compat add_multicast_member, can_send_to, autodetect_ip_version, @@ -70,8 +70,8 @@ IPVersion, get_all_addresses, ) -from .utils.struct import int2byte # noqa # import needed for backwards compat -from .utils.time import current_time_millis, millis_to_seconds # noqa # import needed for backwards compat +from ._utils.struct import int2byte # noqa # import needed for backwards compat +from ._utils.time import current_time_millis, millis_to_seconds # noqa # import needed for backwards compat __author__ = 'Paul Scott-Murphy, William McBrine' __maintainer__ = 'Jakub Stasiak ' diff --git a/zeroconf/_cache.py b/zeroconf/_cache.py index cb54341e..135b1884 100644 --- a/zeroconf/_cache.py +++ b/zeroconf/_cache.py @@ -23,8 +23,8 @@ from typing import Dict, Iterable, List, Optional, cast from ._dns import DNSEntry, DNSPointer, DNSRecord, DNSService +from ._utils.time import current_time_millis from .const import _TYPE_PTR -from .utils.time import current_time_millis class DNSCache: diff --git a/zeroconf/_core.py b/zeroconf/_core.py index 594754ee..a2547305 100644 --- a/zeroconf/_core.py +++ b/zeroconf/_core.py @@ -33,6 +33,16 @@ from ._exceptions import NonUniqueNameException from ._handlers import QueryHandler, RecordManager from ._logger import QuietLogger, log +from ._utils.name import service_type_name +from ._utils.net import ( + IPVersion, + InterfaceChoice, + InterfacesType, + autodetect_ip_version, + can_send_to, + create_sockets, +) +from ._utils.time import current_time_millis, millis_to_seconds from .const import ( _CACHE_CLEANUP_INTERVAL, _CHECK_TIME, @@ -57,16 +67,6 @@ instance_name_from_service_info, ) from .services.registry import ServiceRegistry -from .utils.name import service_type_name -from .utils.net import ( - IPVersion, - InterfaceChoice, - InterfacesType, - autodetect_ip_version, - can_send_to, - create_sockets, -) -from .utils.time import current_time_millis, millis_to_seconds class NotifyListener: diff --git a/zeroconf/_dns.py b/zeroconf/_dns.py index 5e1c6067..aa2b4983 100644 --- a/zeroconf/_dns.py +++ b/zeroconf/_dns.py @@ -27,6 +27,9 @@ from ._exceptions import AbstractMethodException, IncomingDecodeError, NamePartTooLongException from ._logger import QuietLogger, log +from ._utils.net import _is_v6_address +from ._utils.struct import int2byte +from ._utils.time import current_time_millis, millis_to_seconds from .const import ( _CLASSES, _CLASS_MASK, @@ -49,9 +52,6 @@ _TYPE_SRV, _TYPE_TXT, ) -from .utils.net import _is_v6_address -from .utils.struct import int2byte -from .utils.time import current_time_millis, millis_to_seconds if TYPE_CHECKING: diff --git a/zeroconf/_handlers.py b/zeroconf/_handlers.py index f3397fa9..83f2524a 100644 --- a/zeroconf/_handlers.py +++ b/zeroconf/_handlers.py @@ -25,6 +25,7 @@ from ._dns import DNSAddress, DNSIncoming, DNSOutgoing, DNSPointer, DNSQuestion, DNSRecord from ._logger import log +from ._utils.time import current_time_millis from .const import ( _CLASS_IN, _DNS_OTHER_TTL, @@ -41,7 +42,6 @@ RecordUpdateListener, ) from .services.registry import ServiceRegistry -from .utils.time import current_time_millis if TYPE_CHECKING: diff --git a/zeroconf/utils/__init__.py b/zeroconf/_utils/__init__.py similarity index 100% rename from zeroconf/utils/__init__.py rename to zeroconf/_utils/__init__.py diff --git a/zeroconf/utils/aio.py b/zeroconf/_utils/aio.py similarity index 100% rename from zeroconf/utils/aio.py rename to zeroconf/_utils/aio.py diff --git a/zeroconf/utils/name.py b/zeroconf/_utils/name.py similarity index 100% rename from zeroconf/utils/name.py rename to zeroconf/_utils/name.py diff --git a/zeroconf/utils/net.py b/zeroconf/_utils/net.py similarity index 100% rename from zeroconf/utils/net.py rename to zeroconf/_utils/net.py diff --git a/zeroconf/utils/struct.py b/zeroconf/_utils/struct.py similarity index 100% rename from zeroconf/utils/struct.py rename to zeroconf/_utils/struct.py diff --git a/zeroconf/utils/time.py b/zeroconf/_utils/time.py similarity index 100% rename from zeroconf/utils/time.py rename to zeroconf/_utils/time.py diff --git a/zeroconf/aio.py b/zeroconf/aio.py index d8ed256e..d745957a 100644 --- a/zeroconf/aio.py +++ b/zeroconf/aio.py @@ -29,11 +29,11 @@ from ._core import NotifyListener, Zeroconf from ._dns import DNSOutgoing from ._exceptions import NonUniqueNameException +from ._utils.aio import wait_condition_or_timeout +from ._utils.net import IPVersion, InterfaceChoice, InterfacesType +from ._utils.time import current_time_millis, millis_to_seconds from .const import _BROWSER_TIME, _CHECK_TIME, _LISTENER_TIME, _MDNS_PORT, _REGISTER_TIME, _UNREGISTER_TIME from .services import ServiceInfo, _ServiceBrowserBase, instance_name_from_service_info -from .utils.aio import wait_condition_or_timeout -from .utils.net import IPVersion, InterfaceChoice, InterfacesType -from .utils.time import current_time_millis, millis_to_seconds def _get_best_available_queue() -> queue.Queue: diff --git a/zeroconf/services/__init__.py b/zeroconf/services/__init__.py index 4fc62c87..09aa4c73 100644 --- a/zeroconf/services/__init__.py +++ b/zeroconf/services/__init__.py @@ -29,6 +29,14 @@ from .._dns import DNSAddress, DNSOutgoing, DNSPointer, DNSQuestion, DNSRecord, DNSService, DNSText from .._exceptions import BadTypeInNameException +from .._utils.name import service_type_name +from .._utils.net import ( + IPVersion, + _encode_address, + _is_v6_address, +) +from .._utils.struct import int2byte +from .._utils.time import current_time_millis, millis_to_seconds from ..const import ( _BROWSER_BACKOFF_LIMIT, _BROWSER_TIME, @@ -48,14 +56,7 @@ _TYPE_SRV, _TYPE_TXT, ) -from ..utils.name import service_type_name -from ..utils.net import ( - IPVersion, - _encode_address, - _is_v6_address, -) -from ..utils.struct import int2byte -from ..utils.time import current_time_millis, millis_to_seconds + if TYPE_CHECKING: # https://github.com/PyCQA/pylint/issues/3525 diff --git a/zeroconf/services/types.py b/zeroconf/services/types.py index d6cc1e97..6b454e65 100644 --- a/zeroconf/services/types.py +++ b/zeroconf/services/types.py @@ -24,9 +24,9 @@ from typing import Optional, Set, Tuple, Union from .._core import Zeroconf +from .._utils.net import IPVersion, InterfaceChoice, InterfacesType from ..const import _SERVICE_TYPE_ENUMERATION_NAME from ..services import ServiceBrowser, ServiceListener -from ..utils.net import IPVersion, InterfaceChoice, InterfacesType class ZeroconfServiceTypes(ServiceListener):