<commit_before>UPnPy: A UPnP client library for Python
=======================================

This is absolutely a work in progress.

The end goal is that this library should make it possible to easily interact
with UPnP devices on a LAN. This library should implement some significant
subset of the functionality required for a UPnP control point.

Right now it doesn't implement anything, though.

Usage
-----

.. code-block:: python

    import upnpy
    cp = upnpy.ControlPoint()
    cp.discover(30)

Caveats
-------

There are some awkward requirements of asynchronicity here. For the moment most
of the API calls block for some amount of time while they listen for responses.
This is clearly less than ideal, but we'll just have to live with it for a
while.<commit_msg>Update README.<commit_after>UPnPy: A UPnP client library for Python
=======================================

This is absolutely a work in progress.

The end goal is that this library should make it possible to easily interact
with UPnP devices on a LAN. This library should implement some significant
subset of the functionality required for a UPnP control point.

Right now it doesn't implement anything, though.

Usage
-----

.. code-block:: python

    import upnpy
    cp = upnpy.ControlPoint()
    devices = cp.discover(30)

Caveats
-------

There are some awkward requirements of asynchronicity here. For the moment most
of the API calls block for some amount of time while they listen for responses.
This is clearly less than ideal, but we'll just have to live with it for a
while.
{'fraction_non_alphanumeric': 0.10095846645367412, 'fraction_numerical': 0.0025559105431309905, 'mean_word_length': 3.878504672897196, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4059245', 'n_tokens_mistral': 408, 'n_tokens_neox': 393, 'n_words': 221}