Metadata-Version: 2.4
Name: indexly
Version: 1.0.2
Summary: A local file indexing and search tool with FTS5, regex, and CSV analysis support.
Project-URL: Homepage, https://projectindexly.com
Project-URL: Documentation, https://projectindexly.com
Project-URL: Source, https://github.com/kimsgent/project-indexly
Project-URL: Issues, https://github.com/kimsgent/project-indexly/issues
Author: N. K Franklin-Gent
Author-email: OpenAI ChatGPT <support@openai.com>
License: MIT
License-File: LICENSE.txt
Keywords: asyncio,csv,fts5,indexing,regex,search
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Text Processing :: Indexing
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: colorama>=0.4.6
Requires-Dist: ebooklib>=0.18
Requires-Dist: eml-parser>=1.0.7
Requires-Dist: extract-msg>=0.25.0
Requires-Dist: fpdf2>=2.8.3
Requires-Dist: nltk>=3.8.0
Requires-Dist: odfpy>=1.4.1
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: pillow>=11.3.0
Requires-Dist: pymupdf>=1.23.0
Requires-Dist: pypdf2>=3.0.1
Requires-Dist: pytesseract>=0.3.13
Requires-Dist: python-docx>=1.2.0
Requires-Dist: python-pptx>=0.6.21
Requires-Dist: rapidfuzz>=2.16.0
Requires-Dist: reportlab>=4.4.2
Requires-Dist: rich>=13.7.1
Requires-Dist: watchdog>=3.0.0
Description-Content-Type: text/markdown

# Indexly

**Indexly** is a local file indexing and search tool for Windows, Linux, and macOS. It supports **FTS5 full-text search**, **regex search**, **fuzzy search**, and rich metadata extraction for documents, images, and CSV files. Designed for speed, modularity, and extensibility.

---

## Features

* Async file indexing with **change detection** (SHA-256 hash).
* **SQLite FTS5** full-text search with logical operators (`AND`, `OR`, `NOT`, `NEAR`, `*`, `"quotes"`, `()`).
* **Regex search** with snippet context.
* **Fuzzy search** with adjustable threshold.
* **CSV analysis**: delimiter detection, validation, and summary statistics (mean, median, std, IQR, etc.).
* **Filetype support**: `.txt`, `.md`, `.pdf`, `.docx`, `.xlsx`, `.pptx`, `.odt`, `.epub`, `.csv`, `.jpg`, `.png`, `.gif`, `.tiff`, `.bmp`.
* **Metadata extraction**:

  * Documents → title, author, subject, created/modified.
  * Images → EXIF timestamp, camera, dimensions, format.
* Tagging system (`--tags`, `--add-tag`, `--remove-tag`).
* Export results as **TXT, MD, PDF, JSON**.
* Optional **ripple animation** for indexing/search wait times.
* Modular architecture for easy future extension.

---

## Installation

```bash
# Using Hatchling-built wheel
pip install path/to/indexly-*.whl
```

---

## CLI Usage

```bash
indexly <command> [options]
```

**Commands**:

| Command       | Description                             |
| ------------- | --------------------------------------- |
| `index`       | Index files in a folder                 |
| `search`      | Perform FTS5 search                     |
| `regex`       | Regex search mode                       |
| `watch`       | Watch folder for changes and auto-index |
| `analyze-csv` | Analyze CSV file                        |
| `stats`       | Show database statistics                |

**Example**:

```bash
# Index a folder with PDF files
indexly index "C:\Documents\Projects" --filetype .pdf --tags Project

# Perform regex search
indexly regex "(invoice.*paid|paid.*invoice)" --filetype .docx --export-format txt

# Analyze a CSV
indexly analyze-csv "data/sales.csv" --format md --export-path "reports/sales.md"
```

---

## Development

* Python ≥ 3.8
* Dependencies: `pandas`, `python-docx`, `pillow`, `pyPDF2`, `openpyxl`, etc. (auto-installed via `pyproject.toml`)
* Modular design: `indexly.py` (CLI), `fts_core.py`, `search_core.py`, `filetype_utils.py`, `export_utils.py`, `cli_utils.py`, `cache_utils.py`, `csv_analyzer.py`, `watcher.py`, etc.

---

## License

MIT License © 2025 N.K. Franklin-Gent

---