semvec/pypi-packages huggingface dataset:
novatrace 1.3.5
A package to facilitate the traceability and management of LLM/Agent projects.
Requires Python: >=3.12

NovaTrace

NovaTrace is a tracing solution for AI projects and language models (LLMs)
 that enables detailed logging and persistent storage of sessions, projects, 
 and execution traces. It is ideal for monitoring and auditing AI API calls, 
 agents, and tools with metrics such as token usage, costs, response times, 
 and more.

Features
Manages sessions and projects to organize traces.

Persistent logging with SQLAlchemy (supports SQLite and other databases).

Supports multiple trace types: LLM, Agent, and Tool.

Easy-to-use decorators to instrument functions (@llm, @agent, @tool).

Automatic token and cost calculation per call based on configurable metadata.

Timezone-aware timestamps for accurate logging.

---------------------------------------------------------------------------------------------------------------------------------

NovaTrace

NovaTrace es una solución de trazabilidad para proyectos de inteligencia artificial 
y modelos de lenguaje (LLM) que permite registrar y almacenar logs detallados de 
sesiones, proyectos y trazas de ejecución. Ideal para monitorear y auditar llamadas 
a APIs de IA, agentes y herramientas con métricas como tokens usados, costos, tiempos 
de respuesta y más.

Características
Gestión de sesiones y proyectos para organizar trazas.

Registro persistente en base de datos con SQLAlchemy (compatible con SQLite y otros motores).

Soporte para diferentes tipos de trazas: LLM, agentes y herramientas (tools).

Decoradores para instrumentar funciones fácilmente (@llm, @agent, @tool).

Cálculo automático de tokens y costos por llamada basados en metadata configurable.

Manejo de zonas horarias para registros con timestamps precisos.

Extensible y adaptable a distintos proveedores de modelos y entornos.
dieopt 0.1.0
Die layout and optimisation tool
Requires Python: >=3.8

# dieopt

**dieopt** is a Python package for optimal die placement on circular wafers, supporting semiconductor layout and process engineering. It provides fast, flexible algorithms to maximize die-per-wafer (DPW) yield, visualize placements, and compare strategies.

---

## Features

- **Three fixed-offset strategies:** Center, half-offset, and full-offset placement modes.
- **Optimal DPW calculation:** Quickly compute the best die arrangement for given wafer and die dimensions.
- **Visualization:** Easily plot wafer layouts and compare placement strategies.
- **Simple API:** Functional interface for both quick overviews, and GDS-II files.

---

## Installation

```bash
pip install dieopt
```

---

## Quickstart

```python
from dieopt import get_solution, show_solution

# Visualize all three placement strategies
show_solution(
    wafer_diameter=50.8,
    edge_exclusion=2.0,
    width=1.0,
    height=1.0,
    scribe=7.0,
    solution="comparison"
)

# Get coordinates for the optimal placement
coords = get_solution(
    wafer_diameter=50.8,
    edge_exclusion=2.0,
    width=1.0,
    height=1.0,
    scribe=7.0,
    solution="optimal" # or "center", "half_offset", "full_offset"
)
print(coords)

>>> [(-12.0, -16.0), (-4.0, -16.0), (4.0, -16.0), (12.0, -16.0), (-20.0, -8.0), (-12.0, -8.0), (-4.0, -8.0), (4.0, -8.0), (12.0, -8.0), (20.0, -8.0), (-20.0, 0.0), (-12.0, 0.0), (-4.0, 0.0), (4.0, 0.0), (12.0, 0.0), (20.0, 0.0), (-20.0, 8.0), (-12.0, 8.0), (-4.0, 8.0), (4.0, 8.0), (12.0, 8.0), (20.0, 8.0), (-12.0, 16.0), (-4.0, 16.0), (4.0, 16.0), (12.0, 16.0)]
```

![Wafer Layout Example](example.png)

---

## API Reference

### `get_solution(...)`

Compute die placements for a wafer.

**Parameters:**
- `wafer_diameter` (float): Wafer diameter in mm.
- `edge_exclusion` (float): Edge exclusion in mm.
- `width` (float): Die width in mm.
- `height` (float): Die height in mm.
- `scribe` (float): Scribe street width in mm.
- `solution` (str): `"center"`, `"half_offset"`, `"full_offset"`, or `"optimal"`.

**Returns:**  
`List[Tuple[float, float]]` — Die center coordinates.

---

### `show_solution(...)`

Visualize die placements on a wafer.

**Parameters:**
- Same as `get_solution`
- `solution` (str): `"center"`, `"half_offset"`, `"full_offset"`, `"comparison"`, or `"optimal"`

**Returns:**  
Shows a matplotlib plot of the wafer and die placements.

---

## Placement Modes

- **center:** Dies placed with grid centered on wafer.
- **half_offset:** Grid offset by half a die.
- **full_offset:** Grid offset by a full die.
- **optimal:** Automatically selects the best DPW.
- **comparison:** Visualizes all three strategies side-by-side.

---

## License

Mozilla License

---

## Authors

- Bjorn Funch Schrøder

---

## Acknowledgements

Adapted from my Masters Thesis: "Site controlled epitaxy of quantum dots for nano- and 
quantum photonic applications in telecom wavelength range".
asgi-sqlalchemy 0.2.0
Pure ASGI Database middleware.
Requires Python: >=3.10
Keywords: FastAPI, Middleware, SQLAlchemy, asgi

# asgi-sqlalchemy

ASGI Middleware that manages the lifespan of a database engine and a corresponding session, featuring no global state, and automatic rollbacks on unhandled exceptions. Includes FastAPI and Starlette integrations.

I wrote about my motivations for this library in-depth [here](https://abhi.rodeo/posts/programming/languages/python/fastapi/globals-in-fastapi/), but the short version is that using the ASGI lifespan protocol, we can avoid the use of global state, making database access more predictable and easier to test/mock.

## Installation:

```bash
uv add asgi-sqlalchemy
```

## Usage:

### FastAPI:

```python
from contextlib import AsyncContextManager
from collections.abc import AsyncGenerator
from typing_extensions import TypedDict

from fastapi import FastAPI

from asgi_sqlalchemy import DatabaseContext, SessionMiddleware
from asgi_sqlalchemy.fastapi import SessionDependency

class AppState(TypedDict):
    db: DatabaseContext

async def lifespan() -> AsyncGenerator[AppState]:
    async with DatabaseContext(...) as db:
        yield {"db": db}

app = FastAPI()
app.add_middleware(SessionMiddleware)

@app.get("/db")
async def handler(session: SessionDependency) -> str:
    # do something with your async session!
```

### Starlette:

```python
from contextlib import AsyncContextManager
from collections.abc import AsyncGenerator
from typing_extensions import TypedDict

from starlette.applications import Starlette
from starlette.requests import Request
from starlette.responses import JSONResponse
from starlette.routing import Route

from asgi_sqlalchemy import DatabaseContext, SessionMiddleware
from asgi_sqlalchemy.starlette import get_session

class AppState(TypedDict):
    db: DatabaseContext

async def lifespan() -> AsyncGenerator[AppState]:
    async with DatabaseContext(...) as db:
        yield {"db": db}

async def handler(request: Request) -> JSONResponse:
    session = await get_session(request)
    # do something with your async session!

app = Starlette(routes=[Route("/db", handler)], lifespan=lifespan)
app.add_middleware(SessionMiddleware)
```

### Tests:

This library was explicitly designed to be easy to test without dependency overrides.

- For synchronous tests, use FastAPI's `TestClient`.
- For asynchronous tests, use HTTPX `AsyncClient` with `ASGITransport`, and wrap the app with `LifespanManager` so startup/shutdown events run. See the FastAPI docs: [Async Tests – In Detail](https://fastapi.tiangolo.com/advanced/async-tests/?h=lifespanmanager#in-detail).
- To “mock” your database, provide a custom lifespan in tests that yields the database object you want (real DB or test double). The middleware will inject a fresh session per request, no dependency overrides needed.

See complete examples in [`tests/test_fastapi.py`](./tests/test_fastapi.py) and [`tests/test_starlette.py`](./tests/test_starlette.py) inside the [`tests/`](./tests/) folder.
MODISCI 1.4.0
generates rasters of MODIS clumping index
Requires Python: >=3.10

# `MODISCI` Python Package

The `MODISCI` Python package generates rasters of MODIS clumping index.

[Gregory H. Halverson](https://github.com/gregory-halverson-jpl) (they/them)<br>
[gregory.h.halverson@jpl.nasa.gov](mailto:gregory.h.halverson@jpl.nasa.gov)<br>
NASA Jet Propulsion Laboratory 329G

## Installation

This package is available on PyPi as a [pip package](https://pypi.org/project/modisci/) called `MODISCI`.

```bash
pip install MODISCI
```

## Usage

Import this package as `MODISCI`.

```python
import MODISCI
```

## References

1. He, L., J.M. Chen, J. Pisek, C. Schaaf, and A.H. Strahler. 2017. Global 500-m Foliage Clumping Index Data Derived from MODIS BRDF, 2006. ORNL DAAC, Oak Ridge, Tennessee, USA. .
2. He, LM; Chen, JM; Pisek, J; Schaaf, CB; Strahler, AH (2012). Global clumping index map derived from the MODIS BRDF product. REMOTE SENSING OF ENVIRONMENT, 119, 118-130.
aidrin 2025.9.1
A tool to evaluate the readiness of data for AI

# AIDRIN – AI Data Readiness Inspector

**AIDRIN** (AI Data Readiness Inspector) is a lightweight, open-source tool designed to evaluate the readiness of datasets for AI and machine learning workflows. It provides an intuitive web interface to assess dataset quality, completeness, and structure through quantitative metrics.

For installation, usage, and contribution guidelines, please refer to the [AIDRIN documentation](https://aidrin.readthedocs.io/en/latest/).
LHCbDIRACCommon 0.0.1
Common utilities and components shared across the LHCb DIRAC ecosystem during the DIRAC → DiracX migration
Requires Python: >=3.11

# LHCbDIRACCommon

LHCbDIRACCommon contains common utilities and components shared across the LHCb DIRAC ecosystem during the DIRAC → DiracX migration.

## Purpose

This package serves as a foundational layer containing shared code that is used by multiple LHCb DIRAC packages. By maintaining it as a separate repository, we:

- **Avoid dependency cycles** in the package tagging order
- **Minimize changes** as this code is expected to be stable and change infrequently
- **Provide a clean separation** of concerns between core utilities and higher-level functionality
- **Support the DIRAC → DiracX migration** by housing shared components needed across both systems

## Context

LHCbDIRACCommon is part of the broader DIRAC → DiracX migration effort, where DiracX represents "The neXt DIRAC incarnation" - a modern evolution of the existing DIRAC distributed computing framework. This package contains shared utilities that facilitate the transition between the legacy DIRAC system and the new DiracX architecture.

**Note:** This package is an implementation detail and is not intended for direct end-user consumption.

## Package Dependencies

The dependency structure is designed to prevent circular dependencies and ensure a clean build order:

```mermaid
graph TD
    A[LHCbDIRACCommon] --> B[lhcbdiracx]
    B --> C[LHCbDIRAC]
    B --> D[lhcbdiracx-charts]

    style A fill:#e1f5fe
    style B fill:#f3e5f5
    style C fill:#fff3e0
    style D fill:#e8f5e8
```

## Development

### Running Tests

```bash
# Run all tests
pixi run test

# Run tests with coverage
pixi run pytest --cov=lhcbdiraccommon
```

### Code Quality

```bash
# Run pre-commit hooks
pixi run -e pre-commit pre-commit run --all-files

# Install pre-commit hooks for development
pixi run -e pre-commit pre-commit install
```

### Available Commands

- `pixi run test` / `pixi run pytest` - Run the test suite
- `pixi run -e pre-commit pre-commit` - Run pre-commit hooks

## Contributing

For detailed contribution guidelines and requirements for code inclusion, please refer to the [DIRAC-common README](https://github.com/DIRACGrid/DIRAC/blob/integration/dirac-common/README.md), which provides comprehensive guidance on:

- Code quality standards
- Testing requirements
- Migration patterns and best practices
- Architectural decisions and design principles

## License

This project is licensed under the same terms as the DIRAC project.
parsing_tools 2.0.0
Python Parsing Tools
Requires Python: >=3.8
Keywords: mime, xml

*************
Parsing Tools
*************

.. image:: http://img.shields.io/pypi/v/parsing_tools.svg
    :target: https://pypi.python.org/pypi/parsing_tools
    :alt: PyPI Version

.. image:: https://img.shields.io/pypi/pyversions/parsing_tools.svg
    :target: https://pypi.python.org/pypi/parsing_tools
    :alt: PY Versions

.. image:: https://travis-ci.org/cnobile2012/parsing_tools.svg?branch=master
    :target: https://travis-ci.org/cnobile2012/parsing_tools
    :alt: Build Status

.. image:: http://img.shields.io/coveralls/cnobile2012/parsing_tools/master.svg?branch=master
    :target: https://coveralls.io/github/cnobile2012/parsing_tools?branch=master
    :alt: Test Coverage

.. image:: https://img.shields.io/pypi/dm/parsing_tools.svg
    :target: https://pypi.python.org/pypi/parsing_tools
    :alt: PyPI Downloads

The MIT License (MIT)

This repository contains multiple small projects each of which can be used
separately. There are, at this point, no dependencies between them.

This would be a great package to use when creating your own custom Django
REST Framework renderers and parsers based on custom MIME types.

Current Projects
================

mimeparser
----------

This tool would be used to parse HTTP headers to derive the 'best fit' mime
type. It handles suffix and quality parsing and can be used to find the best
match from an `Accept` header from a list of available mime types.

xml2dict
--------

This tool should be able to parse any XML document into Python objects. The
output will become very verbose since it will include all attributes,
elements and namespaces found in the XML document.
report-pdf-wrapper 1.0.7
A simple pip module for creating generic PDF reports.
Requires Python: >=3.6

# Report-PDF-Creation
This python projects uses PyMuPDF to create generic report templates, with widgets that are easily fillable and modifiable.

## To publish a new pip version
1. Increment version in setup.py
2. `python setup.py bdist_wheel`
3. `twine upload dist/*`
koppengeiger 1.1.0
generates rasters of Köppen-Geiger land-cover classification
Requires Python: >=3.10

# `koppengeiger` Python Package

[![CI](https://github.com/JPL-Evapotranspiration-Algorithms/koppengeiger/actions/workflows/ci.yml/badge.svg)](https://github.com/JPL-Evapotranspiration-Algorithms/koppengeiger/actions/workflows/ci.yml)

The `koppengeiger` Python package generates rasters of [Köppen-Geiger land-cover classification](https://koppen.earth/).

[Gregory H. Halverson](https://github.com/gregory-halverson-jpl) (they/them)<br>
[gregory.h.halverson@jpl.nasa.gov](mailto:gregory.h.halverson@jpl.nasa.gov)<br>
NASA Jet Propulsion Laboratory 329G

## Installation

This package is available on PyPi as a [pip package](https://pypi.org/project/koppengeiger/) called `koppengeiger`.

```bash
pip install koppengeiger
```

## Loading Köppen-Geiger Land-Cover Classification Raster

The function `load_koppen_geiger` is used to load a subset of the Köppen-Geiger land-cover classification raster as a `rasters.Raster` object. The Köppen-Geiger land-cover classification is a widely used vegetation and climate classification system. More details about this classification system can be found at Koppen Earth.

### Parameters

- `geometry` (RasterGeometry, optional): The geometry to which the raster should be transformed. If None, the original raster geometry is used.

### Returns

- `Raster`: The loaded Köppen-Geiger land-cover classification raster, potentially transformed to the given geometry.

### Usage

```python
import numpy as np
import rasters as rt
import modland
from koppengeiger import load_koppen_geiger

geometry = modland.generate_modland_grid(8, 5, 2400)
land_cover = load_koppen_geiger(geometry)
land_cover
```

![example koppen geiger map](example.png)


## References

Beck, H. E., Zimmermann, N. E., McVicar, T. R., Vergopolan, N., Berg, A., & Wood, E. F. (2018). Present and future Köppen-Geiger climate classification maps at 1-km resolution. Scientific Data, 5, 180214.
pytesdaq 0.4.6
DAQ and Intruments control for TES development

# `pytesdaq`

[![PyPI](https://img.shields.io/pypi/v/pytesdaq)](https://pypi.org/project/pytesdaq/) [![Python 3.6](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/release/python-360/)

`pytesdaq` contains python data acquisition and data handling code for TES detector related R&D and dark matter searches.

To install the most recent release of `pytesdaq`, type the following line into your command line

`pip install pytesdaq --upgrade`

To install the most recent development version of `pytesdaq`, clone this repo, then from the top-level directory of the repo, type the following line into your command line

`pip install .`

If using a shared Python installation, you may want to add the `--user` flag to the above line.
surfsci 0.2.0
A suite of tools for handling surface science related x-ray data
Requires Python: >=3.8
Keywords: Surface Science

# surfsci

`surfsci` is a set of scripts for handling and maniplulating surface science x-ray data.

[![PyPI - Version](https://img.shields.io/pypi/v/surfsci.svg)](https://pypi.org/project/surfsci)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/surfsci.svg)](https://pypi.org/project/surfsci)

-----

## Table of Contents

- [Installation](#installation)
- [X-ray](#x-ray)
- [License](#license)

## Installation

```console
pip install surfsci
```

## X-ray Photoelectron Spectroscopy

This is just a convenience wrapper around [xps](https://pypi.org/project/xps/)

```python
from surfsci import xps
```

## X-ray

### X-ray Diffratometer 500 / 5000

Conversion script for _asc_ to _xy_ format. Handy if you want easily parsable data or want to use [fityk](https://fityk.nieto.pl/).

```sh
surfsci-xy-conv my_xrd_data.asc
```

This will generate _my_xrd_data.xy_

### MAX3D G-Pol 2D X-ray data

Plot and x-y data for the _*.gpol_ files produced by the [MAX3D detector at McMaster](https://max3d.mcmaster.ca/doc/index.html). Usage,

```sh
surfsci-gpol my_data_file.gpol
```

## License

`surfsci` is distributed under the terms of the [BSD-2-Clause](https://spdx.org/licenses/BSD-2-Clause.html) license.
advio 0.1.1
Smart tool for sending automated
Requires Python: >=3.10
Keywords: advertising, automation, marketing, bot, telegram


<h1 align="center">🚀 Advio: Smart Advertising Tool</h1>
<p align="center">
    <!-- PyPI Version -->
    <a href="https://pypi.org/project/advio/">
        <img src="https://img.shields.io/pypi/v/advio?style=plastic" alt="PyPI - Version">
    </a>
    <!-- Python Versions -->
    <a href="https://pypi.org/project/advio/">
        <img src="https://img.shields.io/pypi/pyversions/advio?style=plastic" alt="Python Versions">
    </a>
    <!-- License -->
    <a href="https://pypi.org/project/advio/">
        <img src="https://img.shields.io/pypi/l/advio?style=plastic" alt="License">
    </a>
    <!-- Downloads -->
    <a href="https://pepy.tech/project/advio">
        <img src="https://pepy.tech/badge/advio?style=flat-plastic" alt="Downloads">
    </a>
    <!-- Issues -->
    <a href="https://github.com/abbas-bachari/advio/issues">
        <img src="https://img.shields.io/github/issues/abbas-bachari/advio?style=plastic" alt="GitHub Issues">
    </a>
</p>

---

## **Advio** is a smart tool for sending automated advertisements

### 🛠️ Version: 0.1.1

---

## 📥 Installation

```bash
pip install advio
```

## 💡 Quick Start

```python
from advio  import AdvioTG,Settings
```

---

## 🧑‍💻 Usage

```python
from advio  import AdvioTG,Settings
```

---

## ⚙️ Configuration

```python
from advio  import AdvioTG,Settings

telegram_proxy=['http','127.0.0.1', 10808]
settings = Settings(sessions_path='sessions.ses', join_list='join_list.txt', sleep_time=1, telegram='A', last_index=0)
advio = AdvioTG(settings=settings,proxy=telegram_proxy)

```


## **Links**

- [PyPI](https://pypi.org/project/advio/)
- [GitHub](https://github.com/abbas-bachari/advio)

## **License**

Advio is released under the MIT License.

## 👤 About the Author

**Abbas Bachari / عباس بچاری** – Developer & Maintainer of **Advio**

- 📧 Telegram: [@abbas_bachari](https://t.me/abbas_bachari)  
- 🌐 GitHub: [github.com/abbas-bachari](https://github.com/abbas-bachari)