You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

407 lines
11 KiB

4 years ago
  1. Metadata-Version: 2.1
  2. Name: zeroconf
  3. Version: 0.21.3
  4. Summary: Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)
  5. Home-page: https://github.com/jstasiak/python-zeroconf
  6. Author: Paul Scott-Murphy, William McBrine, Jakub Stasiak
  7. Author-email: UNKNOWN
  8. License: LGPL
  9. Keywords: Bonjour,Avahi,Zeroconf,Multicast DNS,Service Discovery,mDNS
  10. Platform: unix
  11. Platform: linux
  12. Platform: osx
  13. Classifier: Development Status :: 3 - Alpha
  14. Classifier: Intended Audience :: Developers
  15. Classifier: Intended Audience :: System Administrators
  16. Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
  17. Classifier: Operating System :: POSIX
  18. Classifier: Operating System :: POSIX :: Linux
  19. Classifier: Operating System :: MacOS :: MacOS X
  20. Classifier: Topic :: Software Development :: Libraries
  21. Classifier: Programming Language :: Python :: 3.4
  22. Classifier: Programming Language :: Python :: 3.5
  23. Classifier: Programming Language :: Python :: 3.6
  24. Classifier: Programming Language :: Python :: 3.7
  25. Classifier: Programming Language :: Python :: Implementation :: CPython
  26. Classifier: Programming Language :: Python :: Implementation :: PyPy
  27. Requires-Dist: ifaddr
  28. Requires-Dist: typing; python_version < "3.5"
  29. python-zeroconf
  30. ===============
  31. .. image:: https://travis-ci.org/jstasiak/python-zeroconf.svg?branch=master
  32. :target: https://travis-ci.org/jstasiak/python-zeroconf
  33. .. image:: https://img.shields.io/pypi/v/zeroconf.svg
  34. :target: https://pypi.python.org/pypi/zeroconf
  35. .. image:: https://img.shields.io/coveralls/jstasiak/python-zeroconf.svg
  36. :target: https://coveralls.io/r/jstasiak/python-zeroconf
  37. This is fork of pyzeroconf, Multicast DNS Service Discovery for Python,
  38. originally by Paul Scott-Murphy (https://github.com/paulsm/pyzeroconf),
  39. modified by William McBrine (https://github.com/wmcbrine/pyzeroconf).
  40. The original William McBrine's fork note::
  41. This fork is used in all of my TiVo-related projects: HME for Python
  42. (and therefore HME/VLC), Network Remote, Remote Proxy, and pyTivo.
  43. Before this, I was tracking the changes for zeroconf.py in three
  44. separate repos. I figured I should have an authoritative source.
  45. Although I make changes based on my experience with TiVos, I expect that
  46. they're generally applicable. This version also includes patches found
  47. on the now-defunct (?) Launchpad repo of pyzeroconf, and elsewhere
  48. around the net -- not always well-documented, sorry.
  49. Compatible with:
  50. * Bonjour
  51. * Avahi
  52. Compared to some other Zeroconf/Bonjour/Avahi Python packages, python-zeroconf:
  53. * isn't tied to Bonjour or Avahi
  54. * doesn't use D-Bus
  55. * doesn't force you to use particular event loop or Twisted
  56. * is pip-installable
  57. * has PyPI distribution
  58. Python compatibility
  59. --------------------
  60. * CPython 3.4+
  61. * PyPy3 5.8+
  62. Versioning
  63. ----------
  64. This project's versions follow the following pattern: MAJOR.MINOR.PATCH.
  65. * MAJOR version has been 0 so far
  66. * MINOR version is incremented on backward incompatible changes
  67. * PATCH version is incremented on backward compatible changes
  68. Status
  69. ------
  70. There are some people using this package. I don't actively use it and as such
  71. any help I can offer with regard to any issues is very limited.
  72. How to get python-zeroconf?
  73. ===========================
  74. * PyPI page https://pypi.python.org/pypi/zeroconf
  75. * GitHub project https://github.com/jstasiak/python-zeroconf
  76. The easiest way to install python-zeroconf is using pip::
  77. pip install zeroconf
  78. How do I use it?
  79. ================
  80. Here's an example of browsing for a service:
  81. .. code-block:: python
  82. from zeroconf import ServiceBrowser, Zeroconf
  83. class MyListener:
  84. def remove_service(self, zeroconf, type, name):
  85. print("Service %s removed" % (name,))
  86. def add_service(self, zeroconf, type, name):
  87. info = zeroconf.get_service_info(type, name)
  88. print("Service %s added, service info: %s" % (name, info))
  89. zeroconf = Zeroconf()
  90. listener = MyListener()
  91. browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
  92. try:
  93. input("Press enter to exit...\n\n")
  94. finally:
  95. zeroconf.close()
  96. .. note::
  97. Discovery and service registration use *all* available network interfaces by default.
  98. If you want to customize that you need to specify ``interfaces`` argument when
  99. constructing ``Zeroconf`` object (see the code for details).
  100. If you don't know the name of the service you need to browse for, try:
  101. .. code-block:: python
  102. from zeroconf import ZeroconfServiceTypes
  103. print('\n'.join(ZeroconfServiceTypes.find()))
  104. See examples directory for more.
  105. Changelog
  106. =========
  107. 0.21.3
  108. ------
  109. * This time really allowed incoming service names to contain underscores (patch released
  110. as part of 0.20.0 was defective)
  111. 0.21.2
  112. ------
  113. * Fixed import-time typing-related TypeError when older typing version is used
  114. 0.21.1
  115. ------
  116. * Fixed installation on Python 3.4 (we use typing now but there was no explicit dependency on it)
  117. 0.21.0
  118. ------
  119. * Added an error message when importing the package using unsupported Python version
  120. * Fixed TTL handling for published service
  121. * Implemented unicast support
  122. * Fixed WSL (Windows Subsystem for Linux) compatibility
  123. * Fixed occassional UnboundLocalError issue
  124. * Fixed UTF-8 multibyte name compression
  125. * Switched from netifaces to ifaddr (pure Python)
  126. * Allowed incoming service names to contain underscores
  127. 0.20.0
  128. ------
  129. * Dropped support for Python 2 (this includes PyPy) and 3.3
  130. * Fixed some class' equality operators
  131. * ServiceBrowser entries are being refreshed when 'stale' now
  132. * Cache returns new records first now instead of last
  133. 0.19.1
  134. ------
  135. * Allowed installation with netifaces >= 0.10.6 (a bug that was concerning us
  136. got fixed)
  137. 0.19.0
  138. ------
  139. * Technically backwards incompatible - restricted netifaces dependency version to
  140. work around a bug, see https://github.com/jstasiak/python-zeroconf/issues/84 for
  141. details
  142. 0.18.0
  143. ------
  144. * Dropped Python 2.6 support
  145. * Improved error handling inside code executed when Zeroconf object is being closed
  146. 0.17.7
  147. ------
  148. * Better Handling of DNS Incoming Packets parsing exceptions
  149. * Many exceptions will now log a warning the first time they are seen
  150. * Catch and log sendto() errors
  151. * Fix/Implement duplicate name change
  152. * Fix overly strict name validation introduced in 0.17.6
  153. * Greatly improve handling of oversized packets including:
  154. - Implement name compression per RFC1035
  155. - Limit size of generated packets to 9000 bytes as per RFC6762
  156. - Better handle over sized incoming packets
  157. * Increased test coverage to 95%
  158. 0.17.6
  159. ------
  160. * Many improvements to address race conditions and exceptions during ZC()
  161. startup and shutdown, thanks to: morpav, veawor, justingiorgi, herczy,
  162. stephenrauch
  163. * Added more test coverage: strahlex, stephenrauch
  164. * Stephen Rauch contributed:
  165. - Speed up browser startup
  166. - Add ZeroconfServiceTypes() query class to discover all advertised service types
  167. - Add full validation for service names, types and subtypes
  168. - Fix for subtype browsing
  169. - Fix DNSHInfo support
  170. 0.17.5
  171. ------
  172. * Fixed OpenBSD compatibility, thanks to Alessio Sergi
  173. * Fixed race condition on ServiceBrowser startup, thanks to gbiddison
  174. * Fixed installation on some Python 3 systems, thanks to Per Sandström
  175. * Fixed "size change during iteration" bug on Python 3, thanks to gbiddison
  176. 0.17.4
  177. ------
  178. * Fixed support for Linux kernel versions < 3.9 (thanks to Giovanni Harting
  179. and Luckydonald, GitHub pull request #26)
  180. 0.17.3
  181. ------
  182. * Fixed DNSText repr on Python 3 (it'd crash when the text was longer than
  183. 10 bytes), thanks to Paulus Schoutsen for the patch, GitHub pull request #24
  184. 0.17.2
  185. ------
  186. * Fixed installation on Python 3.4.3+ (was failing because of enum34 dependency
  187. which fails to install on 3.4.3+, changed to depend on enum-compat instead;
  188. thanks to Michael Brennan for the original patch, GitHub pull request #22)
  189. 0.17.1
  190. ------
  191. * Fixed EADDRNOTAVAIL when attempting to use dummy network interfaces on Windows,
  192. thanks to daid
  193. 0.17.0
  194. ------
  195. * Added some Python dependencies so it's not zero-dependencies anymore
  196. * Improved exception handling (it'll be quieter now)
  197. * Messages are listened to and sent using all available network interfaces
  198. by default (configurable); thanks to Marcus Müller
  199. * Started using logging more freely
  200. * Fixed a bug with binary strings as property values being converted to False
  201. (https://github.com/jstasiak/python-zeroconf/pull/10); thanks to Dr. Seuss
  202. * Added new ``ServiceBrowser`` event handler interface (see the examples)
  203. * PyPy3 now officially supported
  204. * Fixed ServiceInfo repr on Python 3, thanks to Yordan Miladinov
  205. 0.16.0
  206. ------
  207. * Set up Python logging and started using it
  208. * Cleaned up code style (includes migrating from camel case to snake case)
  209. 0.15.1
  210. ------
  211. * Fixed handling closed socket (GitHub #4)
  212. 0.15
  213. ----
  214. * Forked by Jakub Stasiak
  215. * Made Python 3 compatible
  216. * Added setup script, made installable by pip and uploaded to PyPI
  217. * Set up Travis build
  218. * Reformatted the code and moved files around
  219. * Stopped catching BaseException in several places, that could hide errors
  220. * Marked threads as daemonic, they won't keep application alive now
  221. 0.14
  222. ----
  223. * Fix for SOL_IP undefined on some systems - thanks Mike Erdely.
  224. * Cleaned up examples.
  225. * Lowercased module name.
  226. 0.13
  227. ----
  228. * Various minor changes; see git for details.
  229. * No longer compatible with Python 2.2. Only tested with 2.5-2.7.
  230. * Fork by William McBrine.
  231. 0.12
  232. ----
  233. * allow selection of binding interface
  234. * typo fix - Thanks A. M. Kuchlingi
  235. * removed all use of word 'Rendezvous' - this is an API change
  236. 0.11
  237. ----
  238. * correction to comments for addListener method
  239. * support for new record types seen from OS X
  240. - IPv6 address
  241. - hostinfo
  242. * ignore unknown DNS record types
  243. * fixes to name decoding
  244. * works alongside other processes using port 5353 (e.g. on Mac OS X)
  245. * tested against Mac OS X 10.3.2's mDNSResponder
  246. * corrections to removal of list entries for service browser
  247. 0.10
  248. ----
  249. * Jonathon Paisley contributed these corrections:
  250. - always multicast replies, even when query is unicast
  251. - correct a pointer encoding problem
  252. - can now write records in any order
  253. - traceback shown on failure
  254. - better TXT record parsing
  255. - server is now separate from name
  256. - can cancel a service browser
  257. * modified some unit tests to accommodate these changes
  258. 0.09
  259. ----
  260. * remove all records on service unregistration
  261. * fix DOS security problem with readName
  262. 0.08
  263. ----
  264. * changed licensing to LGPL
  265. 0.07
  266. ----
  267. * faster shutdown on engine
  268. * pointer encoding of outgoing names
  269. * ServiceBrowser now works
  270. * new unit tests
  271. 0.06
  272. ----
  273. * small improvements with unit tests
  274. * added defined exception types
  275. * new style objects
  276. * fixed hostname/interface problem
  277. * fixed socket timeout problem
  278. * fixed add_service_listener() typo bug
  279. * using select() for socket reads
  280. * tested on Debian unstable with Python 2.2.2
  281. 0.05
  282. ----
  283. * ensure case insensitivty on domain names
  284. * support for unicast DNS queries
  285. 0.04
  286. ----
  287. * added some unit tests
  288. * added __ne__ adjuncts where required
  289. * ensure names end in '.local.'
  290. * timeout on receiving socket for clean shutdown
  291. License
  292. =======
  293. LGPL, see COPYING file for details.