semvec/pypi-packages huggingface dataset:
edc-form-describer 1.0.2
Describe clinicedc/edc forms in markdown
Requires Python: >=3.12
Keywords: django, edc, clinicedc, markdown, clinical trials

|pypi| |actions| |coverage|

edc-form-describer
------------------

Describe edc forms in markdown.

Generate a document describing the forms in an EDC module annotated with field names, table
names, choices, etc.

For example::

    python manage.py make_forms_reference \
        --app_label effect_subject \
        --admin_site effect_subject_admin \
        --visit_schedule visit_schedule


.. |pypi| image:: https://img.shields.io/pypi/v/edc-form-describer.svg
    :target: https://pypi.python.org/pypi/edc-form-describer

.. |actions| image:: https://github.com/clinicedc/edc-form-describer/actions/workflows/build.yml/badge.svg
  :target: https://github.com/clinicedc/edc-form-describer/actions/workflows/build.yml

.. |coverage| image:: https://coveralls.io/repos/github/clinicedc/edc-form-describer/badge.svg?branch=develop
    :target: https://coveralls.io/github/clinicedc/edc-form-describer?branch=develop
safehtml 1.0.1
Escape HTML with style using T-Strings!
Requires Python: >=3.14

## SafeHTML

A *simple* package for safely rendering HTML using the new [template string syntax (PEP 750)](https://peps.python.org/pep-0750/), in Python `3.14`.

### Example

```python
from safehtml import html

input = "Jacob <script>alert('xss')</script>"
print(html(t"<p>Hello {input}</p>"))
```

Output:
```plaintext
<p>Hello Jacob &lt;script&gt;alert(&#x27;xss&#x27;)&lt;/script&gt;</p>
```

### Install

```bash
uv init
```

```bash
uv python pin 3.14.0rc1
```

```bash
uv add safehtml
```
llmunchies 0.2.0
A lightweight, model-agnostic context engine for LLMs. Feed your model tasty context.
Requires Python: >=3.8
Keywords: llm, context, memory, prompt, gpt, claude, ai, middleware

# 🧠 LLMunchies
*Feeding your model tasty context.*

LLMunchies is a lightweight, model-agnostic context engine for developers. It lets you store conversation history, format it for different models like GPT and Claude, and swap models on the fly without rewriting your prompt logic.

It is **NOT** a chatbot framework or a full AI agent platform. It's the simple, pluggable memory layer that sits between your app and the model API.

## Mission
Let developers format, swap, and manage LLM context without prompt PTSD.

## Installation
Currently, LLMunchies is not on PyPI. To use it, simply place the `llmunchies` folder into your project and import the `MemoryManager`. You will also need `tiktoken` for V2 functionality.

```bash
pip install tiktoken
parse-slice 0.1.0a1
A Python function that normalizes and validates slice objects, ensuring correct bounds based on the step direction.
Requires Python: >=2

# `parse-slice`

A Python function that normalizes and validates slice objects, ensuring correct bounds based on the step direction.

## Installation

```bash
pip install parse-slice
```

## Usage

```python
def parse_slice(slice_object: slice) -> tuple[int | None, int | None, int]: ...
```

### Behavior

- **Extracts `step` (`int`)**:
  - If `slice_object.step is None`, `step` is set to 1.
  - Otherwise, `step` is set to `slice_object.step`.
  - Raises `ValueError` if `step` is 0 or not an integer.
  - **Guarantees `step > 0` or `step < 0`.**
- **Extracts `start` and `stop` (both either `int` or `None`)**:
  - If `step > 0`
    - `start=None` stands for `start=-inf`, `stop=None` stands for `stop=+inf`
    - **Guarantees `start <= stop` via clamping.**
  - If `step < 0`
    - `start=None` stands for `start=+inf`, `stop=None` stands for `stop=-inf`
    - **Guarantees `start >= stop` via clamping.**
  - Raises `ValueError` if `start`/`stop` are neither integers nor `None`s

## Examples

```python
# Basic usage
from parse_slice import parse_slice

# Start only
assert parse_slice(slice(0, None, None)) == (0, None, 1)

# Stop only
assert parse_slice(slice(None, 0, None)) == (None, 0, 1)

# Step only
assert parse_slice(slice(None, None, 1)) == (None, None, 1)
assert parse_slice(slice(None, None, -1)) == (None, None, -1)

# Start + stop
assert parse_slice(slice(0, 10, None)) == (0, 10, 1)
assert parse_slice(slice(10, 0, None)) == (10, 10, 1)  # Clamped

# Start + step
assert parse_slice(slice(0, None, 1)) == (0, None, 1)
assert parse_slice(slice(0, None, -1)) == (0, None, -1)

# Stop + step
assert parse_slice(slice(None, 10, 1)) == (None, 10, 1)
assert parse_slice(slice(None, 10, -1)) == (None, 10, -1)

# Start + stop + step
assert parse_slice(slice(0, 10, 1)) == (0, 10, 1)
assert parse_slice(slice(10, 0, -1)) == (10, 0, -1)
assert parse_slice(slice(10, 0, 1)) == (10, 10, 1)  # Clamped
assert parse_slice(slice(0, 10, -1)) == (0, 0, -1)  # Clamped
```

## Use Cases

- Implementing custom sequence types.
- Normalizing slices for mathematical operations (e.g., array indexing).
- Debugging or logging slice behavior.

## Contributing

Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.

## License

This project is licensed under the [MIT License](LICENSE).