Metadata-Version: 2.4
Name: indexly
Version: 1.1.6
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<5.0,>=4.12
Requires-Dist: colorama<1.0,>=0.4
Requires-Dist: ebooklib<1.0,>=0.18
Requires-Dist: eml-parser<2.0,>=1.0
Requires-Dist: extract-msg<1.0,>=0.25
Requires-Dist: fpdf2<3.0,>=2.8
Requires-Dist: nltk<4.0,>=3.8
Requires-Dist: odfpy<2.0,>=1.4
Requires-Dist: openpyxl<4.0,>=3.1
Requires-Dist: pandas<3.0,>=2.1
Requires-Dist: pillow<12.0,>=10.0
Requires-Dist: plotext<6.0,>=5.2
Requires-Dist: plotly<6.0,>=5.22
Requires-Dist: pymupdf<2.0,>=1.23
Requires-Dist: pypdf2<4.0,>=3.0
Requires-Dist: pytesseract<0.4,>=0.3.13
Requires-Dist: python-docx<2.0,>=1.2
Requires-Dist: python-pptx<1.0,>=0.6
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: rapidfuzz<4.0,>=2.16
Requires-Dist: reportlab<5.0,>=4.0
Requires-Dist: requests<3.0,>=2.31
Requires-Dist: rich<14.0,>=13.7
Requires-Dist: watchdog<5.0,>=3.0
Requires-Dist: xmltodict<1.0,>=0.13
Provides-Extra: analysis
Requires-Dist: matplotlib<3.10,>=3.8; (python_version < '3.13') and extra == 'analysis'
Requires-Dist: plotly<6.0,>=5.22; extra == 'analysis'
Requires-Dist: scipy<1.14,>=1.12; (python_version < '3.13') and extra == 'analysis'
Requires-Dist: statsmodels<0.15,>=0.14; extra == 'analysis'
Provides-Extra: exiftool
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 advanced metadata extraction for documents, images, CSV, JSON, and XML. Designed for speed, modularity, and extensibility.

---

## Features

### 🔍 Search & Query

* **SQLite FTS5** with logical operators (`AND`, `OR`, `NOT`, `NEAR`, `"quotes"`, `*`, `()`).
* **Regex search** with snippet context.
* **Fuzzy search** with adjustable threshold.

### 📁 Indexing & Structure

* Async file indexing with **change detection** (SHA-256 hashing).
* Real-time folder watching (`watch` command).
* Tagging system: `--tags`, `--add-tag`, `--remove-tag`.

### 🧠 File Analysis (New)

* **Unified file analysis pipeline** (`analyze-file`)
* **JSON analysis** with treeview, preview, summary statistics (`analyze-json`)
* **XML analysis** with treeview, preview, metadata extraction
* **Tree view** for hierarchical formats (`tree` command)

### 📊 CSV Analysis

* Delimiter detection
* Structural validation
* Summary statistics: mean, median, std, IQR, percentiles, row/column info
* Export to TXT or Markdown

### 📄 Filetype Support

`.txt`, `.md`, `.pdf`, `.docx`, `.xlsx`, `.pptx`,
`.odt`, `.epub`, `.csv`, `.json`, `.xml`,
`.jpg`, `.png`, `.gif`, `.tiff`, `.bmp`

### 🧾 Metadata Extraction

* **Documents** → title, author, subject, created/modified timestamps
* **Images** → EXIF timestamp, camera, dimensions, color mode
* **JSON / XML** → top-level keys, structure summary

### 📤 Export Tools

* Export search/analyze results as: **TXT, MD, PDF, JSON**

### 🌀 UX / Performance

* Optional ripple animation for long operations
* Modular architecture for easy extension

---

## Installation

```bash
pip install indexly
```

Or using your local wheel:

```bash
pip install path/to/indexly-*.whl
```

---

## CLI Usage

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

### Core Commands

| Command  | Description              |
| -------- | ------------------------ |
| `index`  | Index files in a folder  |
| `search` | Perform FTS5 search      |
| `regex`  | Regex search             |
| `fuzzy`  | Fuzzy search mode        |
| `watch`  | Watch folder for changes |
| `stats`  | Show database statistics |

### Analysis Commands (New)

| Command        | Description                            |
| -------------- | -------------------------------------- |
| `analyze-file` | Run the unified file analysis pipeline |
| `analyze-json` | Analyze JSON with tree + summary       |
| `--treeview`   | Show tree view for JSON or XML         |
| `analyze-csv`  | CSV analysis pipeline                  |

### Examples

```bash
# Index a folder
indexly index "C:\Docs" --filetype .pdf --tags Work

# FTS5 search
indexly search "invoice AND March"

# Regex search
indexly regex "(error|failed)" --filetype .log

# Add tags
indexly tag add --files notes.txt --tags project meeting

# Analyze any file
indexly analyze-file reports/summary.xlsx

# JSON analysis
indexly analyze-json data/config.json

# XML tree view
indexly analyze-file data/layout.xml --treeview

# CSV analysis
indexly analyze-csv data/sales.csv --format md --export-path report.md
```

---

## Development

* Python ≥ 3.8
* Dependencies managed through `pyproject.toml`
* Modular codebase:
  `analysis_orchestrator.py`, `csv_analyzer.py`, `search_core.py`,
  `filetype_utils.py`, `export_utils.py`, `watcher.py`, `universal_loader.py`, etc.

---

## License

MIT License © 2026 N.K. Franklin-Gent
