{ "info": { "author": "Paul Scott-Murphy, William McBrine, Jakub Stasiak, Jamie Alexandre", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries" ], "description": "python-zeroconf-py2compat\n=========================\n\nThis is a fork of pyzeroconf, Multicast DNS Service Discovery for Python,\noriginally by Paul Scott-Murphy (https://github.com/paulsm/pyzeroconf),\nmodified by William McBrine (https://github.com/wmcbrine/pyzeroconf),\nand then further modified (off the 0.19.1 tag, the last to support Py2.7)\nby Jamie Alexandre (https://github.com/learningequality/python-zeroconf).\n\nCompatible with:\n\n* Bonjour\n* Avahi\n\nCompared to some other Zeroconf/Bonjour/Avahi Python packages, python-zeroconf:\n\n* isn't tied to Bonjour or Avahi\n* doesn't use D-Bus\n* doesn't force you to use particular event loop or Twisted\n* is pip-installable\n\nPython compatibility\n--------------------\n\n* CPython 2.7, 3.3+\n* PyPy 2.2+ (possibly 1.9-2.1 as well)\n* PyPy3 2.4+\n\nVersioning\n----------\n\nThis project's versions follow the following pattern: MAJOR.MINOR.PATCH.\n\n* MAJOR version has been 0 so far\n* MINOR version is incremented on backward incompatible changes\n* PATCH version is incremented on backward compatible changes\n\nStatus\n------\n\nThere are some people using this package. I don't actively use it and as such\nany help I can offer with regard to any issues is very limited.\n\n\nHow to get python-zeroconf-py2compat?\n=====================================\n\n* PyPI page https://pypi.python.org/pypi/zeroconf-py2compat\n* GitHub project https://github.com/learningequality/python-zeroconf-py2compat\n\nThe easiest way to install python-zeroconf-py2compat is using pip::\n\n pip install zeroconf-py2compat\n\n\n\nHow do I use it?\n================\n\nHere's an example of browsing for a service:\n\n.. code-block:: python\n\n from six.moves import input\n from zeroconf import ServiceBrowser, Zeroconf\n\n\n class MyListener(object):\n\n def remove_service(self, zeroconf, type, name):\n print(\"Service %s removed\" % (name,))\n\n def add_service(self, zeroconf, type, name):\n info = zeroconf.get_service_info(type, name)\n print(\"Service %s added, service info: %s\" % (name, info))\n\n\n zeroconf = Zeroconf()\n listener = MyListener()\n browser = ServiceBrowser(zeroconf, \"_http._tcp.local.\", listener)\n try:\n input(\"Press enter to exit...\\n\\n\")\n finally:\n zeroconf.close()\n\n.. note::\n\n Discovery and service registration use *all* available network interfaces by default.\n If you want to customize that you need to specify ``interfaces`` argument when\n constructing ``Zeroconf`` object (see the code for details).\n\nIf you don't know the name of the service you need to browse for, try:\n\n.. code-block:: python\n\n from zeroconf import ZeroconfServiceTypes\n print('\\n'.join(ZeroconfServiceTypes.find()))\n\nSee examples directory for more.\n\nChangelog\n=========\n\n0.19.3\n------\n* Fix to setup.py, so as to actually include zeroconf.py!\n\n0.19.2 (first release in learningequality/python-zeroconf-py2compat)\n--------------------------------------------------------------------\n* Replace C-based netifaces with pure-Python ifcfg for portability\n* Allow the DNS A record address to be determined by outgoing interface IP\n* Refresh ServiceBrowser entries already when 'stale' (backport from 0.20.0)\n* Add new records first in cache entry instead of last (backport from 0.20.0)\n* Correct broken __eq__ in child classes to DNSRecord (backport from 0.20.0)\n* Fix TTL handling for published service, and use RFC6762 (backport from 0.21.0)\n* Fix UnboundLocalError for count after loop (backport from 0.21.0)\n* Fix UTF-8 multibyte name compression (backport from 0.21.0)\n* Fix a logging call (backport from 0.21.0)\n* Fix service removal packets not being sent on shutdown (backport from 0.22.0)\n* MyListener callback on service TXT record changes (backport from 0.23.0)\n\n0.19.1\n------\n\n* Allowed installation with netifaces >= 0.10.6 (a bug that was concerning us\n got fixed)\n\n0.19.0\n------\n\n* Technically backwards incompatible - restricted netifaces dependency version to\n work around a bug, see https://github.com/jstasiak/python-zeroconf/issues/84 for\n details\n\n0.18.0\n------\n\n* Dropped Python 2.6 support\n* Improved error handling inside code executed when Zeroconf object is being closed\n\n0.17.7\n------\n\n* Better Handling of DNS Incoming Packets parsing exceptions\n* Many exceptions will now log a warning the first time they are seen\n* Catch and log sendto() errors\n* Fix/Implement duplicate name change\n* Fix overly strict name validation introduced in 0.17.6\n* Greatly improve handling of oversized packets including:\n\n - Implement name compression per RFC1035\n - Limit size of generated packets to 9000 bytes as per RFC6762\n - Better handle over sized incoming packets\n\n* Increased test coverage to 95%\n\n0.17.6\n------\n\n* Many improvements to address race conditions and exceptions during ZC()\n startup and shutdown, thanks to: morpav, veawor, justingiorgi, herczy,\n stephenrauch\n* Added more test coverage: strahlex, stephenrauch\n* Stephen Rauch contributed:\n\n - Speed up browser startup\n - Add ZeroconfServiceTypes() query class to discover all advertised service types\n - Add full validation for service names, types and subtypes\n - Fix for subtype browsing\n - Fix DNSHInfo support\n\n0.17.5\n------\n\n* Fixed OpenBSD compatibility, thanks to Alessio Sergi\n* Fixed race condition on ServiceBrowser startup, thanks to gbiddison\n* Fixed installation on some Python 3 systems, thanks to Per Sandstr\u00f6m\n* Fixed \"size change during iteration\" bug on Python 3, thanks to gbiddison\n\n0.17.4\n------\n\n* Fixed support for Linux kernel versions < 3.9 (thanks to Giovanni Harting\n and Luckydonald, GitHub pull request #26)\n\n0.17.3\n------\n\n* Fixed DNSText repr on Python 3 (it'd crash when the text was longer than\n 10 bytes), thanks to Paulus Schoutsen for the patch, GitHub pull request #24\n\n0.17.2\n------\n\n* Fixed installation on Python 3.4.3+ (was failing because of enum34 dependency\n which fails to install on 3.4.3+, changed to depend on enum-compat instead;\n thanks to Michael Brennan for the original patch, GitHub pull request #22)\n\n0.17.1\n------\n\n* Fixed EADDRNOTAVAIL when attempting to use dummy network interfaces on Windows,\n thanks to daid\n\n0.17.0\n------\n\n* Added some Python dependencies so it's not zero-dependencies anymore\n* Improved exception handling (it'll be quieter now)\n* Messages are listened to and sent using all available network interfaces\n by default (configurable); thanks to Marcus M\u00fcller\n* Started using logging more freely\n* Fixed a bug with binary strings as property values being converted to False\n (https://github.com/jstasiak/python-zeroconf/pull/10); thanks to Dr. Seuss\n* Added new ``ServiceBrowser`` event handler interface (see the examples)\n* PyPy3 now officially supported\n* Fixed ServiceInfo repr on Python 3, thanks to Yordan Miladinov\n\n0.16.0\n------\n\n* Set up Python logging and started using it\n* Cleaned up code style (includes migrating from camel case to snake case)\n\n0.15.1\n------\n\n* Fixed handling closed socket (GitHub #4)\n\n0.15\n----\n\n* Forked by Jakub Stasiak\n* Made Python 3 compatible\n* Added setup script, made installable by pip and uploaded to PyPI\n* Set up Travis build\n* Reformatted the code and moved files around\n* Stopped catching BaseException in several places, that could hide errors\n* Marked threads as daemonic, they won't keep application alive now\n\n0.14\n----\n\n* Fix for SOL_IP undefined on some systems - thanks Mike Erdely.\n* Cleaned up examples.\n* Lowercased module name.\n\n0.13\n----\n\n* Various minor changes; see git for details.\n* No longer compatible with Python 2.2. Only tested with 2.5-2.7.\n* Fork by William McBrine.\n\n0.12\n----\n\n* allow selection of binding interface\n* typo fix - Thanks A. M. Kuchlingi\n* removed all use of word 'Rendezvous' - this is an API change\n\n0.11\n----\n\n* correction to comments for addListener method\n* support for new record types seen from OS X\n - IPv6 address\n - hostinfo\n\n* ignore unknown DNS record types\n* fixes to name decoding\n* works alongside other processes using port 5353 (e.g. on Mac OS X)\n* tested against Mac OS X 10.3.2's mDNSResponder\n* corrections to removal of list entries for service browser\n\n0.10\n----\n\n* Jonathon Paisley contributed these corrections:\n\n - always multicast replies, even when query is unicast\n - correct a pointer encoding problem\n - can now write records in any order\n - traceback shown on failure\n - better TXT record parsing\n - server is now separate from name\n - can cancel a service browser\n\n* modified some unit tests to accommodate these changes\n\n0.09\n----\n\n* remove all records on service unregistration\n* fix DOS security problem with readName\n\n0.08\n----\n\n* changed licensing to LGPL\n\n0.07\n----\n\n* faster shutdown on engine\n* pointer encoding of outgoing names\n* ServiceBrowser now works\n* new unit tests\n\n0.06\n----\n* small improvements with unit tests\n* added defined exception types\n* new style objects\n* fixed hostname/interface problem\n* fixed socket timeout problem\n* fixed add_service_listener() typo bug\n* using select() for socket reads\n* tested on Debian unstable with Python 2.2.2\n\n0.05\n----\n\n* ensure case insensitivty on domain names\n* support for unicast DNS queries\n\n0.04\n----\n\n* added some unit tests\n* added __ne__ adjuncts where required\n* ensure names end in '.local.'\n* timeout on receiving socket for clean shutdown\n\n\nLicense\n=======\n\nLGPL, see COPYING file for details.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/learningequality/python-zeroconf", "keywords": "Bonjour,Avahi,Zeroconf,Multicast DNS,Service Discovery,mDNS", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "zeroconf-py2compat", "package_url": "https://pypi.org/project/zeroconf-py2compat/", "platform": "unix", "project_url": "https://pypi.org/project/zeroconf-py2compat/", "project_urls": { "Homepage": "https://github.com/learningequality/python-zeroconf" }, "release_url": "https://pypi.org/project/zeroconf-py2compat/0.19.3/", "requires_dist": [ "enum-compat", "ifcfg", "six" ], "requires_python": "", "summary": "Pure Python Multicast DNS Service Discovery Library (Bonjour/Avahi compatible)", "version": "0.19.3" }, "last_serial": 5706580, "releases": { "0.19.3": [ { "comment_text": "", "digests": { "md5": "160152ab627385b0085c71631d059147", "sha256": "34eef92efcc9f5da855dc17b1dcb5a97b5cda650ee95f54e9e0f726895a8dab6" }, "downloads": -1, "filename": "zeroconf_py2compat-0.19.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "160152ab627385b0085c71631d059147", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31394, "upload_time": "2019-06-20T17:51:00", "url": "https://files.pythonhosted.org/packages/6f/9d/bab24c3601d2f2e53de05685253c2acdee64dade3825ff1b4a6c4c716177/zeroconf_py2compat-0.19.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6bd7375ca603e2f2ea1d7d0fc1c300c", "sha256": "f8f6d1b3a1a2e80f5f2e38a7d34ed3ebcee704eae0bfa946158d782cfc4af042" }, "downloads": -1, "filename": "zeroconf-py2compat-0.19.3.tar.gz", "has_sig": true, "md5_digest": "a6bd7375ca603e2f2ea1d7d0fc1c300c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26235, "upload_time": "2019-06-20T17:51:02", "url": "https://files.pythonhosted.org/packages/2d/da/d6a4e535342b036beda626b16463523a9919cbff3ffd15bc6139f96d936b/zeroconf-py2compat-0.19.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "160152ab627385b0085c71631d059147", "sha256": "34eef92efcc9f5da855dc17b1dcb5a97b5cda650ee95f54e9e0f726895a8dab6" }, "downloads": -1, "filename": "zeroconf_py2compat-0.19.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "160152ab627385b0085c71631d059147", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31394, "upload_time": "2019-06-20T17:51:00", "url": "https://files.pythonhosted.org/packages/6f/9d/bab24c3601d2f2e53de05685253c2acdee64dade3825ff1b4a6c4c716177/zeroconf_py2compat-0.19.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6bd7375ca603e2f2ea1d7d0fc1c300c", "sha256": "f8f6d1b3a1a2e80f5f2e38a7d34ed3ebcee704eae0bfa946158d782cfc4af042" }, "downloads": -1, "filename": "zeroconf-py2compat-0.19.3.tar.gz", "has_sig": true, "md5_digest": "a6bd7375ca603e2f2ea1d7d0fc1c300c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26235, "upload_time": "2019-06-20T17:51:02", "url": "https://files.pythonhosted.org/packages/2d/da/d6a4e535342b036beda626b16463523a9919cbff3ffd15bc6139f96d936b/zeroconf-py2compat-0.19.3.tar.gz" } ] }