Metadata-Version: 2.4
Name: lab-ia
Version: 0.1.0
Summary: A premium cross-platform CLI tool to package and distribute lab assets.
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0.0
Requires-Dist: colorama>=0.4.4

# lab-ia 🧪

A production-ready Python CLI package that packages and distributes lab assets (including `.docx`, `.txt`, `.ipynb`, `.csv` datasets, and whole projects) cross-platform on Windows, macOS, and Linux.

## Installation

You can install `lab-ia` directly from source:

```bash
pip install .
```

## CLI Commands

### 1. Download All Labs
Downloads all labs (ML, SDP, MAD) to the default Downloads directory (`~/Downloads`):

```bash
lab-ia download-all
```

#### Optional Flags
* `--dir`, `-d` : Specify a custom directory.
* `--verbose`, `-v` : Enable verbose progress logging.
* `--force`, `-f` : Overwrite files if they already exist in the target directory (without this flag, existing files are safely skipped).

Example:
```bash
lab-ia download-all --verbose --force
```

### 2. Download to User Directory
Downloads all labs to a user-specified directory:

```bash
lab-ia download --dir ~/Desktop/Labs
```

#### Directory Handling
* Handles relative paths (e.g. `Labs`, `./Labs`)
* Handles absolute paths (e.g. `C:\Labs` on Windows or `/usr/local/labs` on Linux)
* Handles home relative paths (e.g. `~/Desktop/Labs`)
* Handles direct shortcuts (e.g. `/Desktop/Labs` or `\Desktop\Labs` on Windows)
* Automatically creates any missing directories in the path.

### 3. Asset Integrity Verification
Includes internal automated byte-for-byte copy validation and structural integrity validation (e.g., zip validity check on Word files, JSON parser check on Jupyter Notebooks, CSV column check on dataset tables) to prevent 0KB or corrupt files.

## Project Structure

```txt
src/
 └── lab_ia/
      ├── assets/
      │    ├── ML/
      │    ├── SDP/
      │    └── MAD/
      ├── cli.py
      ├── downloader.py
      └── __init__.py
```
