semvec/pypi-packages huggingface dataset:
terminus-ai 2.0.4
Terminus CLI: An autonomous AI agent for terminal-based task execution
Requires Python: >=3.12

# Terminus CLI

Terminus CLI is a CLI agent for terminal-based task execution. It can be used as a standalone tool, although
it was primarily designed as a research-preview agent for evaluating the abilities of language models to
power autonomous agents in the terminal.

Note that Terminus CLI is a fork of [Terminus-2 agent](https://www.tbench.ai/terminus), which is a built-in agent in terminal-bench.
Terminus CLI 2.0.0 shows slightly better performance than Terminus-2 agent with openai/gpt-5 model on terminal-bench@2.0.0 benchmark.
Different from Terminus-2, which by design runs its control logic outside task's container, Terminus CLI is a standalone library
that runs entirely inside task's container.

## Installation

### Prerequisites

- Python >=3.12
- tmux (required for terminal session management)

### Installing tmux

Terminus requires tmux to manage terminal sessions. Install it using your system's package manager:

**macOS:**
```bash
brew install tmux
```

**Ubuntu/Debian:**
```bash
sudo apt-get install tmux
```

**Fedora:**
```bash
sudo dnf install tmux
```

**Arch Linux:**
```bash
sudo pacman -S tmux
```

### Install Terminus

```bash tab="uv"
uv tool install terminus-ai
```
or
```bash tab="pip"
pip install terminus-ai
```

## Usage

### Command Line Interface

Terminus provides a CLI for quick testing and demonstration:

```bash
# Basic usage
terminus "Create a file hello.txt with Hello World"

# With options
terminus "Create a file hello.txt" \
  --model openai/gpt-4o \
  --logs-dir ./logs \
  --parser json \
  --temperature 0.7

# Show help
terminus --help
```

**Note:**
- The CLI runs directly on your local system using tmux (no Docker required)
- Perfect for quick tasks, testing, and automation

### Programmatic Usage

You can also use Terminus programmatically in Python:

```python
from terminus import Terminus
from pathlib import Path

agent = Terminus(
    logs_dir=Path("./logs"),
    model_name="anthropic/claude-sonnet-4",
    parser_name="json",  # or "xml"
    temperature=0.7,
    max_turns=100,
    enable_summarize=True,
)
```

## Configuration Options

- `model_name`: The LLM model to use (required)
- `parser_name`: Response format - "json" or "xml" (default: "json")
- `temperature`: Sampling temperature (default: 0.7)
- `max_turns`: Maximum number of agent turns (default: 1000000)
- `enable_summarize`: Enable context summarization when limits are reached (default: True)
- `api_base`: Custom API base URL (optional)
- `collect_rollout_details`: Collect detailed token-level rollout data (default: False)
fondsweb-scraper 0.1.4
Web scraper for ETF data from fondsweb website.
Requires Python: >=3.12

# fondsweb-scraper

This is a web scraper for ETF data from the Fondsweb website.

[Fondsweb](https://fondsweb.com) is a lesser known german website, that provides information
about funds. Unlike its competitors, it offers the ability to sort funds
by volatility, [Sharpe ratio](https://en.wikipedia.org/wiki/Sharpe_ratio), costs, FWW and ISS ratings, etc.

But apart from an old Perl package 
[Finance::Quote::Fondsweb](https://github.com/finance-quote/finance-quote/blob/master/lib/Finance/Quote/Fondsweb.pm)
there seems to be no other way to access Fondsweb data. 
This Python package is a new implementation that makes accessing the data from Fondsweb easier.  

## Usage

Install the package from PyPi

    $ pip install fondsweb-scraper

To import do 

    >>> from fondsweb import fondsweb as fw

Get information about a single fund by its ISIN

    >>> fw.get_fund("LU1834983477")
    {'name': 'Amundi STOXX Europe 600 Banks UCITS ETF Acc',
    'currency': 'EUR',
    'costs': 0.3,
    'fund_vol': 1520550000.0,
    'per (EUR)': {0: 54.72, 1: 60.55, 3: 42.21, 5: 37.15},
    'vol': {1: 16.1, 3: 19.01, 5: 23.43},
    'sharpe': {1: 3.66, 3: 2.22, 5: 1.49}}

Search for all stock funds sorted by sharpe ratio of the last year 

    >>> response = fw.search_fondsweb(afocus=["Aktienfonds"], sort="Sharpe Ratio 1 Jahr")
    https://www.fondsweb.com/de/suchen/afocus/2-123/sort/sharpe1j

It will print the url used for the search. You can then show the top10 results like

    >>> for entry in response[:10]:
    ...     print(entry["sharpe"], entry["year_1"], entry["isin"], entry["name"])
    ... 
    6.33 39.74 LI0181971842 ASPOMA Japan Opportunities Fund E
    6.31 41.74 LI0393642439 ASPOMA Japan Opportunities Fund A
    5.71 58.19 IE000YYE6WK5 VanEck Defense UCITS ETF USD A
    5.32 71.47 IE000JCW3DZ3 Global X Defence Tech UCITS ETF USD thes.
    4.73 63.91 LU0832413909 ALKEN FUND - European Opportunities US1
    4.69 63.48 LU0866838492 ALKEN FUND - European Opportunities US2
    4.65 63.44 LU0235308136 ALKEN FUND - European Opportunities H
    4.65 63.36 LU0866838575 ALKEN FUND - European Opportunities EU1
    4.63 63.13 LU0432793510 ALKEN FUND - European Opportunities Z
    4.63 63.08 LU0235308482 ALKEN FUND - European Opportunities R

To retrieve time series information about a fund you first need to fetch some config data from the 
Fondsweb website. 

    config = fw.fetch_config()

The `config` object is the needed as parameter to access the time series data. 

    df = fw.get_fund_timeseries("IE00B4L5Y983", config=config)
    print(df)
              date   value
    0   2009-09-25  100.00
    1   2009-09-28  101.24
    2   2009-10-12  102.06
    3   2009-10-26   99.74
    4   2009-11-09  101.60
    ..         ...     ...
    741 2025-10-24  660.64
    742 2025-10-27  666.20
    743 2025-10-28  667.90
    744 2025-10-29  667.39
    745 2025-10-30  665.80

The time series data is returned as a pandas DataFrame.
    
For more examples have a look at the jupyter notebooks in the [notebooks](https://github.com/asmaier/fondsweb/tree/main/notebooks) directory.
cli-dumper 1.1
A CLI tool that merges multiple files into a single text file
Requires Python: >=3.13

# Dumper

[![Python](https://img.shields.io/badge/Python-3.13%2B-blue)](https://www.python.org/)
[![Typer](https://img.shields.io/badge/CLI-typer-green)](https://typer.tiangolo.com/)
[![Rich](https://img.shields.io/badge/UI-rich-magenta)](https://github.com/Textualize/rich)
[![Tests](https://img.shields.io/badge/tests-pytest-yellow)](https://docs.pytest.org/)

**Dumper** is a simple CLI tool that merges multiple files into a single text file.
It supports patterns for inclusion and allows ignoring specific files or directories.

---

## ✨ Features
- 📂 Merge multiple files into one text file
- 🎯 Use glob patterns to include files (`.py`, `.txt`)
- 🚫 Ignore directories and specific files
- 🎨 Colored output powered by [rich](https://github.com/Textualize/rich)
- 🧪 Tested with `pytest`

---

## 🚀 Installation
### Recommended installing with **uv**:
```bash
uv tool install cli-dumper
```

### or from source:
```
git clone https://github.com/DasKaroWow/cli-dumper.git
cd cli-dumper
pip install -e .
```

---

## 📖 Usage

After installation, the CLI is available as `dumper`.

```bash
dumper .py --ignore-dirs venv --ignore-files test.py
```

This will:
- collect all `.py` files in the project (excluding `venv/` and `test.py`)
- merge their content into `project_dump.txt` in the current folder
- print a summary

---

## 🧑‍💻 Development

Run tests:

```bash
uv run pytest
```

Code style checks (if you add ruff/black):

```bash
uv run ruff check .
uv run ruff format .
```

---

## 📜 License

MIT License. See [LICENSE](LICENSE) for details.
update-workflows 0.2
Update GitHub Actions Workflows
Requires Python: >=3.10

# update-workflows

[![PyPI](https://img.shields.io/pypi/v/update-workflows.svg)](https://pypi.org/project/update-workflows/)
[![Changelog](https://img.shields.io/github/v/release/simonw/update-workflows?include_prereleases&label=changelog)](https://github.com/simonw/update-workflows/releases)
[![Tests](https://github.com/simonw/update-workflows/workflows/Test/badge.svg)](https://github.com/simonw/update-workflows/actions?query=workflow%3ATest)
[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/update-workflows/blob/master/LICENSE)

Run this tool to update `.github/workflows/*.yml` files based on a configuration file.

## Usage

```bash
python -m update_workflows
```

This reads `.github/workflows.yml` which contains references to workflow templates:

```yaml
- simonw/python-test
- simonw/python-publish
```

Or with custom filenames:

```yaml
test: simonw/python-test
publish: simonw/python-publish
```

The command will fetch the latest version of each workflow from the [simonw/actions-workflows](https://github.com/simonw/actions-workflows) repository and update the corresponding files in `.github/workflows/`.

### List Format

When using the list format, the workflow filename is derived from the template name:

```yaml
- simonw/python-test
```

This creates/updates `.github/workflows/python-test.yml`

### Dict Format

When using the dict format, you specify custom filenames:

```yaml
test: simonw/python-test
publish: simonw/python-publish
```

This creates/updates:
- `.github/workflows/test.yml`
- `.github/workflows/publish.yml`

## CLI Options

### Basic Options

```bash
# Dry-run mode (shows what would be updated)
python -m update_workflows --dry-run
```

### Bulk Operations

```bash
# Process all projects in current directory and subdirectories
# (finds all directories with .github/workflows.yml)
python -m update_workflows --all

# Process all projects with dry-run
python -m update_workflows --all --dry-run
```

### Git Integration

```bash
# Update and commit changes with auto-generated message
python -m update_workflows --commit

# Update, commit, and push changes
python -m update_workflows --push

# Process all projects, committing and pushing updates
python -m update_workflows --all --push
```

The `--commit` option automatically generates commit messages in the format:
```
update-workflows: test.yml, publish.yml
```

The `--push` option implies `--commit`, so you don't need to specify both.

**Note**: You cannot use `--commit` or `--push` with `--dry-run`.

### Example: Bulk Update Multiple Projects

If you have a directory structure like:
```
dev/
  my-project-1/
    .github/workflows.yml
    .github/workflows/test.yml
  my-project-2/
    .github/workflows.yml
    .github/workflows/publish.yml
```

Run this from the `dev/` directory:
```bash
cd dev
python -m update_workflows --all --push
```

This will:
1. Find all projects with `.github/workflows.yml`
2. Update the workflow files in each project
3. Commit the changes in each project's git repository
4. Push the commits to each project's remote