semvec/pypi-packages huggingface dataset:
mowidgets 0.2.1
Reusable widgets for marimo notebooks
Requires Python: >=3.11

# mowidgets

Reuse [marimo](https://github.com/marimo-team/marimo) notebooks as widgets inside other marimo notebooks! This allows to build libraries of reusable widgets and distribute them.

This uses native `marimo` features and the standard Python library; no extra dependencies.

## Installation
```
pip install mowidgets
```

## Tutorial

As an example, we create a simple widget that multiplies two numbers and displays the result.

<p align="center">
  <img src="static/basic.png" alt="screenshot of a mowidget" style="width: 70%;">
</p>

1. Create a marimo notebook to define the widget.

    ```shell
    marimo edit multiply.py  # widget module name
    ```

  <p align="center">
    <img src="static/widget_definition.png" alt="screenshot of a mowidget" style="width: 70%;">
  </p>

2. Create a marimo notebook for the main app.

    ```shell
    marimo edit app.py
    ```

3. From the `multiply` (widget module name) Python module, import the `app` variable.

    ```python
    from multiply import app as multiply_app
    ```

4. Use `mowidgets.widgetize()` on the `marimo.App` instance to create the widget.

    ```python
    multiply_widget = mowidgets.widgetize(multiply_app)
    ```

5. Call `await` in front of the widget instance to render it.

    ```python
    await multiply_widget
    ```

6. Using `mowidgets.widgetize(..., data_access=True)` allows to read values exposed by the widget. You even get autocompletion!

  <p align="center">
    <img src="static/data_access.png" alt="screenshot of a mowidget" style="width: 70%;">
  </p>

> See the `examples/` directory to see complete files.

## Known limitations
- Using a [setup cell](https://docs.marimo.io/guides/reusing_functions/#1-create-a-setup-cell) cell in the primary notebook seems to create issues where the widget blocks the primary execution loop. Replacing the setup cell by regular cell avoids the problem.

## Next steps
- Pass starting values to the `MoWidget` instance. This would allow to compose widgets together. (Idea well-received by the core dev team)
- Have `MoWidget` expose a reliable  input and output schema. Optionally add type coercion via Pydantic.
- Simplify the import experience. Currently, the user must import the `marimo.App` instance in the main namespace for the widget to properly refresh.
nucore-holiday-provider 1.0.1
Baseclass for holiday providers for NuCore
Requires Python: >=3.10

# NuCore Holiday Provider Plugin

Base Holiday Provider for NuCore. Subclasses must implmenet all the abstract methods. 

## Installation

```bash
pip install nucore_holiday_provider
```

## Usage

```python
from nucore_holiday_provider import 

```
## Features
yumako 0.1.37
Vanilla python utilities, for humans.
Requires Python: >=3.9
Keywords: util, vanilla, for humans

# Yumako ![Yumako](doc/yumako.png)

Vanilla Python utilities for humans.

[![PyPI version](https://badge.fury.io/py/yumako.svg)](https://badge.fury.io/py/yumako)
[![Python Versions](https://img.shields.io/pypi/pyversions/yumako.svg)](https://pypi.org/project/yumako/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![Typed](https://img.shields.io/badge/Typed-Yes-blue.svg)](https://github.com/yumako/yumako)
[![Downloads](https://static.pepy.tech/badge/yumako)](https://pepy.tech/projects/yumako)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
[![security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
[![Sourcery](https://img.shields.io/badge/Sourcery-enabled-brightgreen)](https://sourcery.ai)
[![pylint: errors-only](https://img.shields.io/badge/pylint-errors--only-brightgreen)](https://github.com/pylint-dev/pylint)


## What Yumako Includes

- Human-friendly utilities.
- Utilities for generic use cases, not domain-specific.
- High performance utilities.
- Utilities based on vanilla Python with no external dependencies. 


## Installation
```bash
pip install yumako

# Yumako utilities are based on vanilla python: no other dependencies.
```

## Usage
```python
import yumako
# Yumako submodules are loaded only when needed

# ---------------------------------------
# Yumako utilities are highly performant
# ---------------------------------------
from yumako.lru import LRUDict, LRUSet
lru = LRUDict()
lru[1] = True
lru["hello"] = "mortal"
lru["ユマ果"] = "💖"
print(lru)

lru_set = LRUSet()
lru_set.add("ユマ果")
print(lru_set)


# ---------------------------------------
# Yumako utilities are handy
# ---------------------------------------
from yumako.state import state_file

context = state_file(".state")
context.k1 = "v1"   # Persisted to disk
print(context.k1)   # But also cached in RAM


# ---------------------------------------
# Yumako utilities are designed for humans
# ---------------------------------------
print(yumako.time.of("2025-01-17H23:00:00.000-05:00"))  # Popular standard time formats
print(yumako.time.of("-3d"))  # Popular intuitive human-friendly formats

seconds = yumako.time.duration("3m4s")  # "3m4s" -> 184 seconds
delta = timedelta(seconds=seconds)
print(yumako.time.display(delta))  # "3m4s"
```

More [examples](examples/).
prefect-keeper 0.1.1
Add your description here
Requires Python: >=3.10

# Prefect Keeper

A Prefect block for interacting with Keeper Security's Secrets Manager.

## Description

This project provides a custom Prefect block that allows interaction with Keeper Security's Secrets Manager. It enables secure retrieval of secrets stored in Keeper by record UID or record title within Prefect workflows.

## Features

- Seamless integration with Keeper Security's Secrets Manager
- Retrieve secrets by record UID or record title
- Secure handling of KSM configuration
- Easy configuration and intuitive usage

## Installation

To install this package, use the following command:

```bash
uv add prefect-keeper
```

## Usage

### Configuration

Before using the block, ensure that you have a valid KSM (Keeper Secrets Manager) configuration. The configuration should be provided as a base64 encoded string.

### Saving the Block

To save the Keeper block :

```python
from prefect_keeper import Keeper
from pydantic import SecretStr

# Initialize the Keeper block with your KSM configuration
keeper = Keeper(ksm_config=SecretStr("your-base64-encoded-config"))

# Save the block
keeper.save("my-keeper-block", overwrite=True)
```

### Loading and Using the Block

To load a previously saved block and use its methods:

```python
from prefect import flow
from prefect_keeper import Keeper

@flow
def example_flow():
    # Load the saved block
    keeper = Keeper.load("my-keeper-block")
    
    # Retrieve a secret by record UID
    record = keeper.get_record_by_uid("record-uid-123")
    print(f"Record by UID: {record}")
    
    # Retrieve a secret by record title
    record = keeper.get_record_by_title("My Secret Title")
    print(f"Record by Title: {record}")

if __name__ == "__main__":
    example_flow()
```

## Configuration

The block can be configured with the following parameters:

- `ksm_config`: The KSM config provided as a base64 encoded string. This is a required field and should be provided as a `SecretStr` for security.

### Configuration Example

```python
from prefect_keeper import Keeper
from pydantic import SecretStr

keeper = Keeper(
    ksm_config=SecretStr("your-base64-encoded-config")
)
```

## Development

### Prerequisites

- Python 3.10+
- Uv for dependency management
- Access to Keeper Security's Secrets Manager

### Development Installation

1. Clone the repository:

```bash
git clone https://github.com/patacoing/prefect-keeper.git
cd prefect-keeper
```

2. Install dependencies:

```bash
uv sync
```

This project uses [just](https://just.systems/man/en/) as a way to save and run project-specific commands.
You can go to [justfile](./justfile) or run `just -l` to display all available recipes

## Contribution

Contributions are welcome! Please open an issue or a pull request for any improvements or fixes.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.