semvec/pypi-packages huggingface dataset:
apache-airflow-providers-mnb 1.0.2
Provider for Apache Airflow. Implements apache-airflow-providers-mnb package
License: MIT
Requires Python: >=3.8.1,<4.0.0

# MNB Provider for Apache Airflow

This package contains all the necessary operators, hooks and sensors necessary to access the daily exchange rates published by MNB (Central Bank of Hungary) in Apache Airflow.

## Installation

You can install it with any package manager compatible with PyPI:

```
pip install apache-airflow-provider-mnb
```

## Components

| Component | Notes |
| - | - |
| `MnbHook` | Implements low-level functions to interact with MNB's API |
| `MnbExchangeRateOperator` | Provides access to the exchange rates published on a specific day |
| `MnbExchangeRateSensor` | Senses whether the rates were already published for a specific day

## Example
This following example demonstrates a typical use case:

1. Start running at 8:00AM every day
1. Check if the exchange rates were already published (repeat every 10 minutes)
1. Permanently fail after 3 hours if the rates were never published (there are no rates available on the weekends and public holidays)
1. Generate the SQL commands
1. Run them against a PostgreSQL database

```python
from datetime import date
import json
import pendulum
from airflow.decorators import dag, task
from airflow.providers.postgres.operators.postgres import PostgresOperator
from airflow.providers.mnb.sensors.mnb import MnbExchangeRateSensor
from airflow.providers.mnb.operators.mnb import MnbExchangeRateOperator

@dag(
    dag_id="refresh_currency_rates",
    description="Refresh currency exchange rates",
    schedule="0 8 * * *",
    start_date=pendulum.datetime(2023, 1, 16, tz="Europe/Budapest"),
    catchup=False
)
def mnb():
    is_exchange_rate_available = MnbExchangeRateSensor(
        task_id="is_exchange_rate_available",
        timeout=10800,
        poke_interval=600,
        date="{{ ds }}"
    )
    
    exchange_rates = MnbExchangeRateOperator(
        task_id="get_exchange_rates",
        date="{{ ds }}"
    )
    
    @task
    def generate_queries(exchange_rates: str):
        rates = json.loads(exchange_rates)
        queries = ""
        mnb_date = rates["date"]
        for rate in rates["rates"]:
            currency_id = rate["currency"]
            mnb_rate = rate["rate"]
            queries += f"UPDATE finance.currency SET mnb_rate = '{mnb_rate}', mnb_date = '{mnb_date}' WHERE currency_id = '{currency_id}';\n"
        return queries

    is_exchange_rate_available >> exchange_rates

    queries = generate_queries(exchange_rates.output)
    PostgresOperator(
        task_id="update_exchange_rates",
        postgres_conn_id="postgres_default",
        database="erp",
        sql=queries)

mnb()
```
interactions-molter 1.1.0
An extension library for interactions.py to add prefixed commands. A demonstration of molter-core.
License: MIT
Requires Python: >=3.8.6

<p align="center">
  <img src="https://cdn.discordapp.com/attachments/623677414278561793/978141383804215317/interactions-molter-banner.png" alt="The banner for Molter for interactions.py." width="700"/>
</p>

<h1 align="center">Molter for interactions.py.</h1>

<p align="center">
  <a href="https://pypi.org/project/interactions-molter/">
    <img src="https://img.shields.io/pypi/v/interactions-molter" alt="PyPI">
  </a>
  <a href="https://pepy.tech/project/interactions-molter">
    <img src="https://static.pepy.tech/personalized-badge/interactions-molter?period=total&units=abbreviation&left_color=grey&right_color=green&left_text=pip%20installs" alt="Downloads">
  </a>
  <a href="https://interactions-py.github.io/molter/main/">
    <img src="https://img.shields.io/badge/docs-passing-success", alt="docs: Github Pages">
  </a>
  <a href="https://github.com/psf/black">
    <img src="https://img.shields.io/badge/code%20style-black-000000.svg", alt="Code style: black">
  </a>
</p>


An extension library for interactions.py to add prefixed (AKA text-based or 'message') commands. This is a demonstration of [the Molter framework](https://github.com/Astrea49/molter-core), a framework for adding prefixed commands into Discord Python libraries.

This attempts to make the prefixed command experience much like `discord.py`'s prefixed commands, though it is *not* 1:1 on purpose.

**NOTE**: This extension is primarily developed by [Astrea49](https://github.com/Astrea49).

## Installation

```
pip install interactions-molter
```

## Documentation

Documentation, including examples and an API reference, for the `main` branch (and so the latest PyPI version) can be found at [its respective Github Page](https://interactions-py.github.io/molter/main/).

For documentation for the other branches, you can look for the respective documentation [on the home page](https://interactions-py.github.io/molter/).

## Branch Explanation

- The `main` branch is the PyPI version - this branch will never deviate from it. This is done to make sure the PyPI page's example links link to the right code.
- The `beta` branch is code considered code that is stable enough to use in daily use, though it is not perfect. This branch also will target any beta, pre-release, or release candidate version of `interactions.py`, if possible.
- The `dev` branch mirrors `interactions.py`'s `unstable` branch, and is also a general testing ground for new and experimental changes. *Bugs are common on this branch. If you decide to use this branch, I highly suggest pinning to a specific commit you know is stable.*
- The `gh-pages` branch powers the documentation website, and has no Molter-related code in it.

## Credit

Thanks to both [`NAFF`](https://github.com/NAFTeam/NAFF) and [Toricane's `interactions-message-commands`](https://github.com/Toricane/interactions-message-commands) for a decent part of this! They both had a huge influence over how this port was designed.
itsh5py 0.7.2
Python datatype support for hdf files
License: MIT
Requires Python: >=3.7
Keywords: h5py, hdf, data storage

# itsh5py
*Python datatype support for hdf files*

While there are many ways to store different data types, many of them have
their drawbacks. Sometimes it can be practical to store arrays with
additional (pythonic) data in a single file. While *hdf attributes* can
support some types, many exception exists especially with pyhtonic types.

This is a small implementation of recursive dict support for python to write
and read *hdf* files with many different pythonic data types. Almost all types
implemented in default python and *numpy* should be supported, even in nested
structures. The resulting files work in hdfview and panoply with some small
drawbacks.

Data types which are unknown will be serialized if possible using *yaml*.
Lists and tuples are unrolled so they do not have to be serialized in most cases.
Lazy support can be enabled allowing to work fast with large files, only loading
references of large arrays and fetching the data on demand as supported by
*h5py*. This works for *numpy* arrays only but mixed results are possible, e.g.
having fully loaded pythonic types and referenced *numpy* arrays in a single
loaded file.

Since this module is most likely used for data storage, please be warned that
*tests are still WiP* and there is a good chance that you will encounter some
types that either **won't be saved** or possibly **break your file**. No
warranty is given.

The original idea was taken from [SiggiGue](https://github.com/SiggiGue/hdfdict)
thus there are some obvious similarities. This package extends the
functionality to handle most of the pythonic data types and adds functions
for convenient handling of the different data structures.


Find the [Full documentation here](https://itsh5py.readthedocs.io/en/latest)