semvec/pypi-packages huggingface dataset:
pymojihash 0.4.0
Python 3 package for hashing strings to emojis.

Hash (unicode) strings to emoji(s). You can set the length.

Importing is as easy as `from pymojihash import hash_to_emoji`!
`hash_to_emoji()` is the wonderful hashing function.

In this example a string is hashed to a single emoji:
    >>> hash_to_emoji('lol')
    '����'

There is a limited number of emojis outputs (see: `emojis.json` in this package) so if you increase the `hash_length` the less likely youa re to encounter different values which produce the same output/hash/emoji(s):
    >>> hash_to_emoji('lol', 4)
    '◼️��������'
    >>> hash_to_emoji('lol', 2)
    '������'
    >>> hash_to_emoji('heck', 2)
    '♠️����'

You can also exclude the flag emojis like this:
    >>> hash_to_emoji('heck')
    '����'
    >>> hash_to_emoji('heck', no_flags=True)
    '��'
lmaps 1.1.0
Lightweight Management and Provisioning Service

Lightweight Management and Provisioning Service
===============================================
lMaPS provides a simple way the use schema defined "instances" that can
be passed to an underlying configuration management system.  This will
provide the ability to allow desperate systems to use a common namespace
application scheme to interact directly with configuration management
systems.

## Installation
```
pip install lmaps
```

## Overview
![System Architecture](.readmeimg/sysarch.png)

## Example use cases

### Using lMaPS to reconfigure a host using using ansible
In this example, an ansible playbook can be written with the expectation
that a vars file containing the proper data structure will have the
correct information to turn up a given service.

Let's assume the following playbook /my-playbook.yaml:
```
- name: An example playbook
  hosts: localhost
  connection: local
  vars:
    some_structure:
      - message: This is one
      - message: This is two
      - message: This is three
  tasks:
    - debug:
        msg: '{{ item.message }}'
      with_items: '{{ some_structure }}'
```
Using this, a unit can be defined to call it via the `ansible_playbook`
unit handler.

We define the unit on the host as /etc/lmaps/units/some_example.yaml:
```
---
meta:
  name: some_example
  data_type: YamlKeyList
  store_key: some_structure
  store_root: /some/dir/to/store/instances
handler:
  name: ansible_some_example
  type: ansible_playbook
  args:
    playbook: /my-playbook.yaml
  params:
    additionalProperties: false
    properties:
      message:
        type: string
```

Now when the daemon is run (`lmaps -D`), we can create instances.

With no instances defined, ansible will use the default vars declared
in the playbook, but if we created the following as hello_world.yaml:
```
message: Hello world!
```
and created it via:
`lmaps --create --file hello_world.yaml --unit some_example`
then when applied, the loop will get the following output:

[![asciicast](https://asciinema.org/a/AZC5wiglgxG5Vt83a1YBsOhyP.png)](https://asciinema.org/a/AZC5wiglgxG5Vt83a1YBsOhyP)
launchpad-rgb 1.0.0
Easily make MIDI messages that take advantage of the 24 bit RGB LEDs on a Novation Launchpad MK2

# Launchpad_rgb
The Launchpad MK2 by Novation has 80 24 bit RGB LEDs, but the normal MIDI message protocol only allows for 127 total colors.  
How do you access the full power of 63\*63\*63 colors? System exclusive messages of course!

MIDI System Exclusive messages are messages that are exclusive to a specific device type. The purpose is so that device manufacturers can implement features outside of the MIDI specification while staying in-band.

Awesome! Now what?  
System exclusive messages are more complicated than normal messages. They need a header that includes the device-id, which specifies what device the messages are for, and two sub-ids, which specify what feature to invoke.

This library is a convenient way to create system exclusive messages that can access the full 24 bit RGB color available on the Launchpad MK2.

A Message object stores all the notes that will change and what their new color will be. The instance methods of Message modify that data and return the Message, so you can chain calls. To get the actual sysex data (not including the 0xF0 to start and 0xF7 to end the message), call the object like a function. The returned data is ready to be put into any MIDI message library, such as mido.

Example:  
~~~
msg = Message().row(0, 1, 0.5, 0.25)
msg.note(1, 1, 1, 0.5, 0.25).note(8, 1, 1, 0.5, 0.25)
data = msg()
print(data) -> [0, 32, 41, 2, 24, 11, 11, 63, 31.5, 15.75, 12, 63, 31.5, 15.75,
               13, 63, 31.5, 15.75, 14, 63, 31.5, 15.75, 15, 63, 31.5, 15.75,
               16, 63, 31.5, 15.75, 17, 63, 31.5, 15.75, 18, 63, 31.5, 15.75,
               22, 63, 31.5, 15.75, 29, 63, 31.5, 15.75]
~~~