semvec/pypi-packages huggingface dataset:
littletree 0.9.1
Tree library
Requires Python: >=3.10
Keywords: tree, datastructure, hierarchy, taxonomy, newick, graphviz, mermaid

LittleTree is a library that provides a tree data structure to python,
which is both fast and flexible.
It can be used to represent file systems, taxonomies and much more.

## Features ##

- Intuitive basic creation and modification of trees.
- Efficient implementation of common tree operations and traversals
  that still work on trees that are more than 10,000 layers deep.
- Extensible: either subclass from `Node` or `BaseNode`.
- Can be imported / exported to many different formats (nested dict, rows, relations, graphviz, mermaid, newick, networkx).
- Purely written in Python.

## Limitation ##
- Each node has at most one parent. (It's a tree not a graph!)

## Installing ##

- Use [pip](https://pip.pypa.io/en/stable/getting-started/) to install littletree:

```sh
$ pip install --upgrade littletree
```
## Usage ##

A tree can be used in a similar way as a `dict`:

```python
from littletree import Node

tree = Node(identifier="World")
tree["Asia"] = Node()
tree["Africa"] = Node(data={"surface_area": 30.37e6})
tree["America"] = Node()

# Alternative way of adding a node
tree.add_child(Node(identifier="Europe"))

# Print tree to console
tree.show()

# Show tree as an image
tree.to_pillow().show()
```

The resulting tree is printed like this:

```
World
├─ Asia
├─ Africa
├─ America
└─ Europe
```

If [Pillow](https://pypi.org/project/pillow/) and [graphviz](https://graphviz.org/) are installed,
it will also display the following image:

![world](images/world.png)

See [tutorial](https://lverweijen.github.io/littletree/tutorial.html) for more information.

See further:
[Pypi](https://pypi.org/project/littletree/) |
[Github](https://github.com/lverweijen/littletree) |
[Issues](https://github.com/lverweijen/littletree/issues) |
[Documentation](https://lverweijen.github.io/littletree)
eclipse-ecal 6.0.1
High performance publish/subscribe middleware
Requires Python: >=3.8
Keywords: IPC, Middleware

# eCAL Python Binding

The Python binding for [eCAL (enhanced Communication Abstraction Layer)](https://github.com/eclipse-ecal/ecal) enables easy use of eCAL features in Python projects. It allows you to build distributed applications and cross-platform inter-process communication.

Find a full getting-started guide at http://ecal.io

## Installation

```bash
pip install eclipse-ecal
```

## Quick Example

Send and receive messages with eCAL in Python:

### Publisher

```python
import ecal.nanobind_core as ecal_core
from ecal.msg.string.core import Publisher as StringPublisher

import time

ecal_core.initialize("HelloWorldPublisher")
publisher = StringPublisher("hello_topic")

for i in range(20):
    message = f"Hello World {i}"
    print(f"Sending: {message}")
    publisher.send(message)
    time.sleep(1)

print("Finished. Shutting down eCAL...")
ecal_core.finalize()
```

### Subscriber

```python
import ecal.nanobind_core as ecal_core
from ecal.msg.string.core import Subscriber as StringSubscriber

def callback(publisher_id, data):
    print(f"Received: {data.message}")

ecal_core.initialize("HelloWorldSubscriber")

print("Waiting for data. Press Enter to exit!")
subscriber = StringSubscriber("hello_topic")
subscriber.set_receive_callback(callback)

input()

subscriber.remove_receive_callback()
ecal_core.finalize()
```

## Further Information

- [eCAL Documentation](http://ecal.io)
- [GitHub Repository](https://github.com/eclipse-ecal/ecal)