Metadata-Version: 2.1
Name: WSDiscovery
Version: 1.1.1
Summary: WS-Discovery implementation for python
Home-page: https://github.com/andreikop/python-ws-discovery.git
Author: Andrei Kopats
Author-email: andrei.kopats@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications
Description-Content-Type: text/markdown
Requires-Dist: netifaces
Requires-Dist: click

WS-Discovery in Python
======================
This is WS-Discovery implementation for Python 2 & 3. It allows to both discover
services and publish discoverable services.

Authors and maintaining
-----------------------
Original version created by L.A. Fernando. Code was then forked and maintained
by Andrei Kopats. Python3 port done by Pieter Jordaan. Packaging, major
refactoring & command-line client by Petri Savolainen. Python2 support fixes by Michael Leinartas.

Usage
-----

A simple `discover` command-line client is provided for discovering WS-Discovery compliant devices and systems. Run `discover --help` for usage instructions.

Here's an example of how to use the package in your Python code. The following code first publishes a service and then discovers it:

```python
    from wsdiscovery import WSDiscovery, QName, Scope

    wsd = WSDiscovery()
    wsd.start()

    ttype = QName("abc", "def")

    ttype1 = QName("namespace", "myTestService")

    # Note: some devices scope services using onvif:// scheme, not http://
    scope1 = Scope("http://myscope")
    ttype2 = QName("namespace", "myOtherTestService_type1")
    scope2 = Scope("http://other_scope")

    xAddr = "localhost:8080/abc"
    wsd.publishService(types=[ttype], scopes=[scope2], xAddrs=[xAddr])

    #ret = wsd.searchServices(scopes=[scope1], timeout=10)
    ret = wsd.searchServices()

    for service in ret:
        print(service.getEPR() + ":" + service.getXAddrs()[0])

    wsd.stop()
```

Development state
-----------------
This is not 100% complete and correct WS-Discovery implementation. It doesn't
verify data received from the network. It may crash, and might contain security
holes. No guarantees - test it carefully for your use case.




Changelog
==========

1.1.0 (2018-12-21)
-------------------

- Fix packaging

1.1.0 (2018-12-21)
-------------------

- Add a simple command-line client (petri)
- Debugging support, including message capture (petri)
- Fix breakage caused by refactoring (petri)
- Simple tests (petri)

1.0.0 (2018-12-18)
-------------------

- Improved packaging (petri)
- Modularize & refactor (petri)
- Better Python2 support (mleinart)

0.2 (2017-05-19)
-----------------

- First release @pypi (petri)


