Metadata-Version: 2.4
Name: pydhara
Version: 0.1.0
Summary: Add your description here
Author-email: Mayank Thakur <mackv210w@gmail.com>
Requires-Python: >=3.12
Requires-Dist: loguru>=0.7.3
Requires-Dist: msgspec>=0.19.0
Requires-Dist: pyzmq>=26.4.0
Description-Content-Type: text/markdown

**Project Overview: PyDhara**
==========================

PyDhara is a **Asynchronous** data processing framework that enables users to create custom nodes to process data at various levels. These nodes can be connected using the **Operator Pattern**, a software design pattern that allows for the composition of nodes to form a data processing pipeline.

**Key Features:**

* **Custom Nodes**: Users can define their own nodes to perform specific data processing tasks, such as filtering, transformation, and aggregation.
* **Operator Pattern**: PyDhara uses the operator pattern to process data, where nodes are composed together to form a data processing pipeline.
* **Asynchronous Processing**: PyDhara is designed to process data asynchronously, allowing for efficient and scalable data processing pipelines.
* **Modular Architecture**: PyDhara's design allows for easy composition of nodes to create complex data processing pipelines.
* **Event-Driven Architecture**: PyDhara's operator pattern is built on top of an event-driven architecture, where nodes publish events (data) to a channel, and other nodes subscribe to receive those events.

**Example Use Case:**
--------------------

Suppose we want to build a data pipeline that:

1. Reads data from a CSV file
2. Filters out records with missing values
3. Transforms the data by converting dates to a standard format
4. Aggregates the data by group

Using PyDhara, we can define custom nodes for each of these tasks and connect them using the operator pattern. This allows us to create a modular and reusable data processing pipeline that can handle large datasets efficiently.
