semvec/pypi-packages huggingface dataset:
dummy-test-package-vasumadaan 0.1.0
A dummy package for testing private PyPI index
Requires Python: >=3.6

# Dummy Test Package

This is a dummy Python package created for testing private PyPI index uploads.

## Installation

```bash
pip install dummy-test-package
```

## Usage

```python
from dummy_package import greet

greet("World")
```

## Building the Package

```bash
python -m build
```

## Uploading to Private PyPI

```bash
twine upload --repository-url https://your-private-pypi-url/simple/ dist/*
```
coa-dev-coagent 0.7.1
CoAgent can help you assess, test, and monitor AI models and agents
Requires Python: >=3.10

# coa-dev-coagent

A Python client library for interacting with Coagent services.

## Installation

```bash
pip install coa-dev-coagent
```

## Usage

```python
from coa_dev_coagent import CoagentClient

client = CoagentClient()

# Session-based logging with structured data
client.log_session_start("session123", "Hello world", prompt_number=1)
client.log_llm_response("session123", "Hi there", 1, 1,
    input_tokens=10, output_tokens=5)
client.log_error("session123", 1, 1, "Connection failed",
    error_type="network")
```

## Development

This package is part of the coagent-python-client workspace.
inkparse 0.3.2
Functions and classes for recursive descent parsing.
Requires Python: >=3.11

# inkparse

This is an utility library for making hand written recursive descent parsers.

It is very early in development, so expect breaking changes.

Usage is somewhat verbose, and I'm not happy with it yet. I'll probably rewrite a lot of it before further development.

# Usage

(See the `inkparse.general` module for general purpose parsers you can use as examples. The classes also have some docstrings.)

Defining parsers:
```
def foo(si: StringIterator, ...) -> Result[int, Literal["token_type"]] | ParseFailure:
    with si() as c:
        si.literal("abc")
        # etc.
        return c.result(10, "token_type")       # success
        return c.fail("Fail reason here.")      # fail
        raise c.error("Error reason here.")     # error
```

Using parsers:
```
si = StringIterator("blablabla")

result = foo(si)
if result:
    ... # `result` is a `Result` or `Token` object
else:
    ... # `result` is a `ParseFailure` object

x = result.unwrap().data    # raises an error if x is a `ParseFailure`
```

String positions are *between* characters and start from 0. (The same as how python string slices work.)

In the string: `"abcdef"`
```
 a b c d e f
^ ^ ^ ^ ^ ^ ^
0 1 2 3 4 5 6
```

(Line numbers and column numbers shown in error messages start from 1 instead of 0.)