semvec/pypi-packages huggingface dataset:
adnan-chat-pdf 0.1
Chat with PDFs using LangChain In Few Lines of Code
Requires Python: >=3.10

# chat-pdf

Chat with PDF documents using LangChain and OpenAI.

`chat-pdf` is a lightweight Python library that allows you to load a PDF, ask questions about its content, and optionally retrieve the source passages used to generate the answers.

The library is intentionally simple and pinned to stable LangChain versions to avoid breaking changes.

---

## Features

- Load and index PDF documents
- Ask natural language questions
- Retrieve answers with or without source documents
- Minimal, function-based API
- Stable LangChain 1.2.x compatibility
- Suitable for scripts, notebooks, and APIs

---

## Installation

```bash
pip install chat-pdf
```

---

## Requirements

- Python 3.10 or higher
- OpenAI API key

Set your API key as an environment variable or pass it directly in code:

```bash
export OPENAI_API_KEY="your-api-key"
```

---

## Quick Start

### 1. Load a PDF

```python
from chat_pdf import load_pdf

db = load_pdf(
    "document.pdf",
    api_key="OPENAI_API_KEY"
)
```

This will:
- Load the PDF file
- Split it into chunks
- Generate embeddings
- Store them in a Chroma vector database

---

### 2. Ask a Question

```python
from chat_pdf import ask_question

answer = ask_question(
    "What is this document about?",
    db=db,
    api_key="OPENAI_API_KEY"
)

print(answer)
```

---

### 3. Ask a Question with Sources (Optional)

```python
from chat_pdf import ask_question_with_sources

result = ask_question_with_sources(
    "What are the termination conditions?",
    db=db,
    api_key="OPENAI_API_KEY"
)

print("Answer:")
print(result["answer"])

print("\nSources:")
for doc in result["sources"]:
    print(doc.metadata)
```

Returned keys:
- `answer` – generated response
- `sources` – list of retrieved document chunks

---

## API Reference

### load_pdf

```python
load_pdf(
    pdf_path: str,
    api_key: str,
    chunk_size: int = 1000,
    chunk_overlap: int = 200,
    persist_directory: str | None = None
)
```

---

### ask_question

```python
ask_question(
    question: str,
    db,
    api_key: str,
    model_name: str = "gpt-3.5-turbo",
    search_kwargs: dict | None = None,
    system_prompt: str | None = None
)
```

Returns a string answer.

---

### ask_question_with_sources

```python
ask_question_with_sources(
    question: str,
    db,
    api_key: str,
    model_name: str = "gpt-3.5-turbo",
    search_kwargs: dict | None = None,
    system_prompt: str | None = None
)
```

Returns a dictionary:

```python
{
    "answer": str,
    "sources": list
}
```

---

## Version Compatibility

This package is pinned for stability.

| chat-pdf | LangChain |
|----------|-----------|
| 1.2.0.0  | 1.2.x     |

Upgrading LangChain independently is not recommended.

---

## Design Philosophy

- Simple over clever
- Stable over experimental
- Explicit over magical

This library is designed to be easy to read, debug, and extend.

---

## License

MIT License
authskaf 0.1.0
A simple project scaffolding tool
Requires Python: >=3.13

# authskaf 🚀

A simple, lightweight project scaffolding tool built with Python, Typer, and Rich. `authskaf` helps you jumpstart your projects by generating boilerplate from customizable templates.

## ✨ Features

- **Template-based:** Create new projects from predefined or custom templates.
- **Variable Replacement:** Supports `{{variable}}` placeholders in any file within your template.
- **Interactive CLI:** Automatically detects variables and prompts you for values.
- **Flexible Metadata:** Add custom fields like `author`, `version`, or `license` to your templates.
- **Platform Idiomatic:** Stores templates in standard config directories (`AppData` on Windows, `.config` on Linux/macOS).
- **Batteries Included:** Automatically installs default templates on the first run.
- **UV Integration:** Built-in support for initializing Python projects with `uv`.

## 🚀 Installation

The easiest way to install `authskaf` is using [uv](https://github.com/astral-sh/uv):

```bash
uv tool install authskaf
```

Alternatively, you can install it via pip:

```bash
pip install authskaf
```

## 🛠️ Usage

### 1. List Available Templates
See all templates currently installed on your system.
```bash
authskaf list
```

### 2. Get Template Details
View a template's description, required variables, and custom metadata.
```bash
authskaf info <template_name>
```

### 3. Initialize a New Project
Create a new project from a template. `authskaf` will guide you through the configuration.
```bash
authskaf init <template_name> <output_directory>
```

**Example:**
```bash
authskaf init python-web ./my-api --python 3.12
```

## 📂 Template Locations

`authskaf` looks for templates in the following platform-specific directories:

- **Windows:** `%APPDATA%\authskaf\templates\`
- **Linux/macOS:** `~/.config/authskaf/templates/`

Each template should be a folder containing:
1.  `template.toml`: (Optional) Manifest file for metadata.
2.  `files/`: A directory containing the boilerplate files.

## ✍️ Creating Your Own Template

1. Create a folder in your templates directory (e.g., `my-template`).
2. Create a `files/` directory inside it and add your boilerplate. Use `{{variable_name}}` for placeholders.
3. (Optional) Create a `template.toml` to add metadata:

```toml
name = "My Awesome Template"
description = "A starter for high-performance APIs"
author = "Your Name"
version = "1.0.0"

# You can also pre-define variables (optional, authskaf auto-detects them too)
variables = ["project_name", "db_type"]
```

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
KelpMark 1.1.0
Watermark images or PDF
Keywords: document, image, kyc, pdf, watermark

# KelpMark

KelpMark helps creating watermarks on images or PDFs.

## Example

Suppose you have your passport: ![sample passport](https://github.com/hydrargyrum/kelpmark/blob/main/kelpmark_before.jpg?raw=true)

And need to send it to some company, but don't trust them because they might have security breaches and might leak your data.
So you want to watermark it to make it harder to reuse in case of data leak.

![kelpmark screenshot](https://github.com/hydrargyrum/kelpmark/blob/main/kelpmark_screenshot.jpg?raw=true)

Then you can save the resulting image/PDF: ![watermarked passport](https://github.com/hydrargyrum/kelpmark/blob/main/kelpmark_after.jpg?raw=true)

## Features

- Import multiple images at once
- Import multi-page PDF
- Export to single image
- Export to multi-page PDF
- Watermark text tiling
- Various graphical features

## Requirements

- PyQt5
- python-poppler-qt5

[requirements.txt](requirements.txt)

## Install

[`pipx install KelpMark`](https://pypi.org/project/KelpMark/)

## License

KelpMark is licensed under the [Unlicense](UNLICENSE).
chat-pdf-qa 0.1.0
Chat with PDFs using LangChain In Few Lines of Code
Requires Python: >=3.10

# chat-pdf

Chat with PDF documents using LangChain and OpenAI.

`chat-pdf` is a lightweight Python library that allows you to load a PDF, ask questions about its content, and optionally retrieve the source passages used to generate the answers.

The library is intentionally simple and pinned to stable LangChain versions to avoid breaking changes.

---

## Features

- Load and index PDF documents
- Ask natural language questions
- Retrieve answers with or without source documents
- Minimal, function-based API
- Stable LangChain 1.2.x compatibility
- Suitable for scripts, notebooks, and APIs

---

## Installation

```bash
pip install chat-pdf
```

---

## Requirements

- Python 3.10 or higher
- OpenAI API key

Set your API key as an environment variable or pass it directly in code:

```bash
export OPENAI_API_KEY="your-api-key"
```

---

## Quick Start

### 1. Load a PDF

```python
from chat_pdf import load_pdf

db = load_pdf(
    "document.pdf",
    api_key="OPENAI_API_KEY"
)
```

This will:
- Load the PDF file
- Split it into chunks
- Generate embeddings
- Store them in a Chroma vector database

---

### 2. Ask a Question

```python
from chat_pdf import ask_question

answer = ask_question(
    "What is this document about?",
    db=db,
    api_key="OPENAI_API_KEY"
)

print(answer)
```

---

### 3. Ask a Question with Sources (Optional)

```python
from chat_pdf import ask_question_with_sources

result = ask_question_with_sources(
    "What are the termination conditions?",
    db=db,
    api_key="OPENAI_API_KEY"
)

print("Answer:")
print(result["answer"])

print("\nSources:")
for doc in result["sources"]:
    print(doc.metadata)
```

Returned keys:
- `answer` – generated response
- `sources` – list of retrieved document chunks

---

## API Reference

### load_pdf

```python
load_pdf(
    pdf_path: str,
    api_key: str,
    chunk_size: int = 1000,
    chunk_overlap: int = 200,
    persist_directory: str | None = None
)
```

---

### ask_question

```python
ask_question(
    question: str,
    db,
    api_key: str,
    model_name: str = "gpt-3.5-turbo",
    search_kwargs: dict | None = None,
    system_prompt: str | None = None
)
```

Returns a string answer.

---

### ask_question_with_sources

```python
ask_question_with_sources(
    question: str,
    db,
    api_key: str,
    model_name: str = "gpt-3.5-turbo",
    search_kwargs: dict | None = None,
    system_prompt: str | None = None
)
```

Returns a dictionary:

```python
{
    "answer": str,
    "sources": list
}
```

---

## Version Compatibility

This package is pinned for stability.

| chat-pdf | LangChain |
|----------|-----------|
| 1.2.0.0  | 1.2.x     |

Upgrading LangChain independently is not recommended.

---

## Design Philosophy

- Simple over clever
- Stable over experimental
- Explicit over magical

This library is designed to be easy to read, debug, and extend.

---

## License

MIT License
locknkeycmd 0.2.2
Official CLI for LocknKey - Secure, Zero-Knowledge Secret Management with environment injection.
Requires Python: >=3.9

# locknkeycmd: Secure, Zero-Knowledge Secret Management CLI

`locknkeycmd` is the official command-line interface for **LocknKey**, a secure, end-to-end encrypted secret management platform. This tool allows developers to securely inject secrets into their applications and scripts at runtime, without storing them in plain text files (specifically preventing `.env` sprawl).

## Features

*   **End-to-End Encryption**: Secrets are decrypted only in memory on your local machine.
*   **Zero-Knowledge Architecture**: The server never sees your unencrypted secrets.
*   **TOTP-Based Security**: Uses your Google Authenticator secret to derive encryption keys, adding a layer of security beyond just passwords.
*   **Environment injection**: seamlessly inject secrets into `npm start`, `python main.py`, or any other command.
*   **Multi-Environment**: Support for Development (`-d`), Staging (`-s`), and Production (`-p`) environments.

## Installation

Install via pip:

```bash
pip install locknkeycmd
```

## Prerequisites

1.  **A Lockbox/LocknKey Account**: Sign up at [https://locknkey.site](https://locknkey.site).
2.  **2FA Enabled**: You **must** enable Two-Factor Authentication (Google Authenticator) on the Web Dashboard. The CLI requires this to decrypt your vault securely.

## Quick Start

### 1. Authenticate

Log in to your account. This will open a browser window to authenticate with Google.

```bash
locknkeycmd login
```

### 2. Initialize Session (Unlock Vault)

Decrypt your master encryption key using your 2FA code. This session remains active locally so you don't need to re-enter it for every command.

```bash
locknkeycmd init
```
*Enter your 6-digit Google Authenticator code when prompted.*

### 3. Run Commands with Secrets

Inject secrets directly into your application process.

**Syntax:**
```bash
locknkeycmd run <project-name-or-id> -- <your-command>
```

**Examples:**

Run a Node.js app with **Development** secrets (Default):
```bash
locknkeycmd run my-api -- npm start
```

Run a Python script with **Production** secrets:
```bash
locknkeycmd run my-api --prod -- python main.py
```

Print secrets to console (useful for debugging/verifying):
```bash
locknkeycmd run my-api
```

## Other Commands

**Show Account Info:**
```bash
locknkeycmd --show
```

**List Organizations:**
```bash
locknkeycmd --show --org
```

**List Projects:**
```bash
locknkeycmd --show --proj
```

**Logout:**
```bash
locknkeycmd logout
```

## Security

`locknkeycmd` uses a combination of modern cryptographic primitives:
*   **Argon2id** for key derivation (hardening your TOTP secret into an encryption key).
*   **NaCl (TweetNaCl/PyNaCl)** for high-speed authenticated encryption (using XSalsa20-Poly1305).

No private keys are ever sent to the server.

## Troubleshooting

*   **"Session Locked"**: Run `locknkeycmd init` again.
*   **"Invalid Authenticator Code"**: Ensure your system time is synced.
rhyolite-open-commerce-sdk 0.0.3
A Python SDK for Rhyolite Open Commerce API.
Requires Python: >=3.8

# Rhyolite Open Commerce Python SDK

A Python SDK for the Rhyolite Open Commerce API.

## Installation

```bash
pip install rhyolite-open-commerce-sdk
```

## Usage

```python
from rhyolite_open_commerce_sdk import RhyoliteOpenCommerce

# Initialize the client with your credentials
client = RhyoliteOpenCommerce(
    account_id="YOUR_ACCOUNT_ID",
    account_secret="YOUR_ACCOUNT_SECRET"
)

# Get categories
try:
    categories = client.get_categories(page_no=1, page_size=10)
    print(categories)
except Exception as e:
    print(f"An error occurred: {e}")

```
bincsync 0.4.0
bincsync: Binary incremental sync
Requires Python: <3.14,>=3.9


# bincsync

bincsync is a tool to incrementally sync binary file distributions (as well as
creating them for upload). This tool is initially implemented for syncing
large genomic data files that changes little between versions, but have great
individual file size.

bincsync currently support the database version control from Alibaba Cloud 
object storage service (OSS). You should register an account for Alibaba OSS
to authenticate yourself to download from private repositories.

This utility suite will provide a commandline interface `bsync-fetch`. It also
provides `bsync-make` and `bsync-push` for database maintainers to publish 
databases that can be downloaded and managed with the fetch utility.

### Usage

```
usage: bsync-fetch [-h] --id ID --secret SECRET 
                        --bucket BUCKET [--endpoint ENDPOINT] --version VERSION

fetch from remote bucket.

options:
  -h, --help           show this help message and exit
  --id ID              The requester access id.
  --secret SECRET      The requester access secret.
  --bucket BUCKET      The name of the bucket.
  --endpoint ENDPOINT  The domain names that other services can use to access OSS.
  --version VERSION    The version to fetch from remote.
```

The authentication tokens passed to `--id` and `--secret` is provided by the
Alibaba Cloud service (See the [Documentation](https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair)
for details). For more explanation on `--bucket` and `--endpoint`, see
[here](https://help.aliyun.com/zh/oss/user-guide/endpoint). The `--version` 
option allow you to retrieve a specific version of the database release.
Contact your database distributor for the versioning scheme if you have no idea.

* This name is chosen because `bsync`, `bisync` and `binsync` are all registered.