Metadata-Version: 2.4
Name: Topsis-Harshpreet-102317160
Version: 1.0.0
Summary: A production-grade TOPSIS implementation (CLI + Python package).
Author-email: Harshpreet <harshp4466@gmail.com>
License-Expression: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.0
Dynamic: license-file

# TOPSIS — Harshpreet (102317160)

This package implements **TOPSIS (Technique for Order Preference by Similarity to Ideal Solution)** as required by the assignment:
- CLI program
- Input validation
- CSV output with **Topsis Score** and **Rank**
- Packaged for PyPI

## Installation (from source)
```bash
pip install -U pip
pip install .
```

## CLI Usage (Assignment Part-I)
```bash
python topsis.py <InputDataFile> <Weights> <Impacts> <OutputResultFileName>
```

Example:
```bash
python topsis.py data.csv "1,1,1,2,1" "+,+,-,+,+" output-result.csv
```

## CLI Usage (after installing as a package)
```bash
topsis-harshpreet-102317160 <InputDataFile> <Weights> <Impacts> <OutputResultFileName>
```

## Input Rules
- CSV must contain **3 or more columns**
- **1st column**: alternatives/labels (can be non-numeric)
- **2nd to last columns**: numeric criteria values
- Weights and Impacts must be comma-separated lists, same length as number of criteria
- Impacts must be `+` (benefit) or `-` (cost)

## Output
Adds:
- `Topsis Score`
- `Rank` (1 = best)

## Build & Upload to PyPI (Part-II)
1. Update `authors.email` in `pyproject.toml`
2. Build:
```bash
python -m pip install build twine
python -m build
```
3. Upload:
```bash
python -m twine upload dist/*
```

## Quick Test
```bash
pip install dist/Topsis_Harshpreet_102317160-1.0.0-py3-none-any.whl
topsis-harshpreet-102317160 data.csv "1,1,1,2,1" "+,+,-,+,+" out.csv
```
