Skip to content

Commit 207eaed

Browse files
committed
Mark zeroconf.services as protected by renaming to zeroconf._services
- The public API should only access zeroconf and zeroconf.aio as internals may be relocated between releases
1 parent cc5bc36 commit 207eaed

10 files changed

Lines changed: 29 additions & 31 deletions

File tree

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
author='Paul Scott-Murphy, William McBrine, Jakub Stasiak',
2424
url='https://github.com/jstasiak/python-zeroconf',
2525
package_data={"zeroconf": ["py.typed"]},
26-
packages=["zeroconf", "zeroconf.services", "zeroconf._utils"],
26+
packages=["zeroconf", "zeroconf._services", "zeroconf._utils"],
2727
platforms=['unix', 'linux', 'osx'],
2828
license='LGPL',
2929
zip_safe=False,

tests/test_aio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from zeroconf import Zeroconf
1616
from zeroconf.const import _LISTENER_TIME
1717
from zeroconf._exceptions import BadTypeInNameException, NonUniqueNameException, ServiceNameAlreadyRegistered
18-
from zeroconf.services import ServiceInfo, ServiceListener
18+
from zeroconf._services import ServiceInfo, ServiceListener
1919
from zeroconf._utils.time import current_time_millis
2020

2121

tests/test_services.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33

44

5-
""" Unit tests for zeroconf.services. """
5+
""" Unit tests for zeroconf._services. """
66

77
import logging
88
import socket
@@ -16,9 +16,9 @@
1616

1717
import zeroconf as r
1818
from zeroconf import const
19-
import zeroconf.services as s
19+
import zeroconf._services as s
2020
from zeroconf import Zeroconf
21-
from zeroconf.services import (
21+
from zeroconf._services import (
2222
ServiceBrowser,
2323
ServiceInfo,
2424
ServiceStateChange,

zeroconf/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
NonUniqueNameException,
4747
ServiceNameAlreadyRegistered,
4848
)
49-
from .services import ( # noqa # import needed for backwards compat
49+
from ._services import ( # noqa # import needed for backwards compat
5050
instance_name_from_service_info,
5151
Signal,
5252
SignalRegistrationInterface,
@@ -56,8 +56,8 @@
5656
ServiceListener,
5757
ServiceStateChange,
5858
)
59-
from .services.registry import ServiceRegistry # noqa # import needed for backwards compat
60-
from .services.types import ZeroconfServiceTypes # noqa # import needed for backwards compat
59+
from ._services.registry import ServiceRegistry # noqa # import needed for backwards compat
60+
from ._services.types import ZeroconfServiceTypes # noqa # import needed for backwards compat
6161
from ._utils.name import service_type_name # noqa # import needed for backwards compat
6262
from ._utils.net import ( # noqa # import needed for backwards compat
6363
add_multicast_member,

zeroconf/_core.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@
3333
from ._exceptions import NonUniqueNameException
3434
from ._handlers import QueryHandler, RecordManager
3535
from ._logger import QuietLogger, log
36+
from ._services import (
37+
RecordUpdateListener,
38+
ServiceBrowser,
39+
ServiceInfo,
40+
ServiceListener,
41+
instance_name_from_service_info,
42+
)
43+
from ._services.registry import ServiceRegistry
3644
from ._utils.name import service_type_name
3745
from ._utils.net import (
3846
IPVersion,
@@ -59,14 +67,6 @@
5967
_TYPE_PTR,
6068
_UNREGISTER_TIME,
6169
)
62-
from .services import (
63-
RecordUpdateListener,
64-
ServiceBrowser,
65-
ServiceInfo,
66-
ServiceListener,
67-
instance_name_from_service_info,
68-
)
69-
from .services.registry import ServiceRegistry
7070

7171

7272
class NotifyListener:

zeroconf/_handlers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525

2626
from ._dns import DNSAddress, DNSIncoming, DNSOutgoing, DNSPointer, DNSQuestion, DNSRecord
2727
from ._logger import log
28+
from ._services import RecordUpdateListener
29+
from ._services.registry import ServiceRegistry
2830
from ._utils.time import current_time_millis
2931
from .const import (
3032
_CLASS_IN,
@@ -38,10 +40,6 @@
3840
_TYPE_SRV,
3941
_TYPE_TXT,
4042
)
41-
from .services import (
42-
RecordUpdateListener,
43-
)
44-
from .services.registry import ServiceRegistry
4543

4644

4745
if TYPE_CHECKING:
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626

2727
from .._exceptions import ServiceNameAlreadyRegistered
28-
from ..services import ServiceInfo
28+
from .._services import ServiceInfo
2929

3030

3131
class ServiceRegistry:
@@ -40,7 +40,7 @@ def __init__(
4040
self,
4141
) -> None:
4242
"""Create the ServiceRegistry class."""
43-
self.services = {} # type: Dict[str, ServiceInfo]
43+
self._services = {} # type: Dict[str, ServiceInfo]
4444
self.types = {} # type: Dict[str, List]
4545
self.servers = {} # type: Dict[str, List]
4646
self._lock = threading.Lock() # add and remove services thread safe
@@ -66,11 +66,11 @@ def update(self, info: ServiceInfo) -> None:
6666

6767
def get_service_infos(self) -> List[ServiceInfo]:
6868
"""Return all ServiceInfo."""
69-
return list(self.services.values())
69+
return list(self._services.values())
7070

7171
def get_info_name(self, name: str) -> Optional[ServiceInfo]:
7272
"""Return all ServiceInfo for the name."""
73-
return self.services.get(name)
73+
return self._services.get(name)
7474

7575
def get_types(self) -> List[str]:
7676
"""Return all types."""
@@ -89,7 +89,7 @@ def _get_by_index(self, attr: str, key: str) -> List[ServiceInfo]:
8989
service_infos = []
9090

9191
for name in getattr(self, attr).get(key, [])[:]:
92-
info = self.services.get(name)
92+
info = self._services.get(name)
9393
# Since we do not get under a lock since it would be
9494
# a performance issue, its possible
9595
# the service can be unregistered during the get
@@ -102,17 +102,17 @@ def _get_by_index(self, attr: str, key: str) -> List[ServiceInfo]:
102102
def _add(self, info: ServiceInfo) -> None:
103103
"""Add a new service under the lock."""
104104
lower_name = info.name.lower()
105-
if lower_name in self.services:
105+
if lower_name in self._services:
106106
raise ServiceNameAlreadyRegistered
107107

108-
self.services[lower_name] = info
108+
self._services[lower_name] = info
109109
self.types.setdefault(info.type, []).append(lower_name)
110110
self.servers.setdefault(info.server, []).append(lower_name)
111111

112112
def _remove(self, info: ServiceInfo) -> None:
113113
"""Remove a service under the lock."""
114114
lower_name = info.name.lower()
115-
old_service_info = self.services[lower_name]
115+
old_service_info = self._services[lower_name]
116116
self.types[old_service_info.type].remove(lower_name)
117117
self.servers[old_service_info.server].remove(lower_name)
118-
del self.services[lower_name]
118+
del self._services[lower_name]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
from typing import Optional, Set, Tuple, Union
2525

2626
from .._core import Zeroconf
27+
from .._services import ServiceBrowser, ServiceListener
2728
from .._utils.net import IPVersion, InterfaceChoice, InterfacesType
2829
from ..const import _SERVICE_TYPE_ENUMERATION_NAME
29-
from ..services import ServiceBrowser, ServiceListener
3030

3131

3232
class ZeroconfServiceTypes(ServiceListener):

zeroconf/aio.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
from ._core import NotifyListener, Zeroconf
3030
from ._dns import DNSOutgoing
3131
from ._exceptions import NonUniqueNameException
32+
from ._services import ServiceInfo, _ServiceBrowserBase, instance_name_from_service_info
3233
from ._utils.aio import wait_condition_or_timeout
3334
from ._utils.net import IPVersion, InterfaceChoice, InterfacesType
3435
from ._utils.time import current_time_millis, millis_to_seconds
3536
from .const import _BROWSER_TIME, _CHECK_TIME, _LISTENER_TIME, _MDNS_PORT, _REGISTER_TIME, _UNREGISTER_TIME
36-
from .services import ServiceInfo, _ServiceBrowserBase, instance_name_from_service_info
3737

3838

3939
def _get_best_available_queue() -> queue.Queue:

0 commit comments

Comments
 (0)