Metadata-Version: 2.4
Name: photoforge
Version: 0.0.1
Summary: Deterministic JPEG photo deduplication and organization CLI.
Author-email: Erwin Vanhecke <contact@evhconsult.eu>
License: MIT
Keywords: photos,jpeg,exif,deduplication,cli
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: Pillow<12,>=10

# PhotoForge

PhotoForge is a deterministic command-line tool for scanning JPEG files, extracting timestamps from EXIF metadata, detecting exact duplicates using SHA-256, and generating a canonical rename and organization plan.

Version `0.0.1` is a packaging scaffold aligned with the locked v0.1 CLI shape.

## Specification

See [SPEC.md](./SPEC.md) for the locked v0.1 behavior contract.

## Scope

PhotoForge v0.1 is defined around the following command shape:

```bash
photoforge <input_path> [--apply] [--output <output_path>] [--json]
```

Current scaffold includes:

- installable Python package
- `src/` layout
- CLI entry point
- argument parsing only

Business logic is intentionally not implemented yet.

## Supported file formats

Planned v0.1 support is limited to JPEG files only:

- `.jpg`
- `.jpeg`

## Installation

```bash
pip install .
```

For editable development install:

```bash
pip install -e .
```

## Usage

Show help:

```bash
photoforge --help
```

Dry-run against an input directory:

```bash
photoforge /path/to/input
```

Apply changes:

```bash
photoforge /path/to/input --apply
```

Write organized output to a target root:

```bash
photoforge /path/to/input --output /path/to/output
```

Emit JSON report in addition to standard console output:

```bash
photoforge /path/to/input --json
```

Combine flags:

```bash
photoforge /path/to/input --apply --output /path/to/output --json
```

## Notes

- Dry-run is the default mode
- `--apply` enables filesystem changes
- `--output` selects a target root for organized files
- `--json` enables JSON report output in addition to standard console output
