semvec/pypi-packages huggingface dataset:
satbot 0.1.10
Read data from commonly-available "satellite" hobby R/C receivers.
License: MIT
Keywords: r/c,robotics,dsm

``satbot`` allows you to read and use the serial data output by common hobby R/C satellite receivers. It is possible to
simply get the relative "stick" and switch positions, which is very convenient for embedded/robotic projects.

Note that only Spektrum brand DSMX satellite receivers have been tested to-date, but Futaba and off-brand DSM2/DSMX
receivers should work, possibly with additional fiddling.

``satbot`` was created with embedded systems like the `Raspberry Pi <http://www.raspberrypi.org/>`_ in mind, but all
that is really needed is a TTL serial-usb cable (such as `this one <http://www.adafruit.com/product/954>`_.)

Assuming your satellite receiver is already bound to your transmitter and you've connected it via a USB dongle it
should be possible to simply:

    satbot start --foreground /dev/ttysXXX

At the command line, where ``/tmp/ttysXXX`` is the serial device associated with your receiver.
npconf 0.0.3
A flexible, intuitive native-python configuration system.
License: MIT
Keywords: configuration

``npconf`` is a flexible configuration system whose configuration files are plain python modules. The identifiers
(left-hand side) are declared by the administrator/developer and are hierarchical. A typical configuration file might
be:

.. code-block:: python

    myapp.subcomponent.value = 1
    myapp.enabled = True

The user needn't define "myapp". It's automatically included in ``globals()``.

The administrator/developer can disallow user-defined attributes. This is mostly intended to prevent typos in the
configuration files. In other words, if ``myapp.foo`` is not defined before reading the configuration files, no file
will be allowed to set ``myapp.foo``.

The configuration attributes are normally declared by a program before it reads any configuration files. They can be
declared at init time:

.. code-block:: python

    import npconf

    root = npconf.ConfigValue(name='myapp', data={'enabled': 'false'})
    # and/or updated after init:
    root.update(data={'thing': None})

    # to add another level to the hierarchy:

    subcomponent = npconf.ConfigValue(
        name='subcomponent',
        data={
            'foo': 'banana',
    })
    root.update({'subcomponent': subcomponent})