Metadata-Version: 2.2
Name: topsis_yash_102303796
Version: 1.0.2
Summary: A Python package for TOPSIS (Technique for Order Preference by Similarity to Ideal Solution)
Author: Yash
Author-email: yash@example.com
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: numpy
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# TOPSIS – Python Package

## Project Description

topsis-yash-102303796 is a Python package that implements  
**TOPSIS (Technique for Order Preference by Similarity to Ideal Solution)**,  
a popular Multi-Criteria Decision Making (MCDM) technique.

This package ranks alternatives based on multiple numeric criteria,
user-defined weights, and impacts.

This project is developed as part of an academic assignment.

---

## Installation

Install the package using pip:

```bash
pip install topsis-yash-102303796==1.0.3
```

---

## Usage

Enter csv filename followed by .csv extentsion, then enter the weights vector with vector values separated by commas, followed by the impacts vector with comma separated signs (+,-)
```bash
topsis <input_file.csv> <weights> <impacts> <output_file.csv>
```

---

## Parameters
1. input_file.csv
CSV file containing alternatives and criteria
(first column = names, remaining columns = numeric values)

2. weights
Comma-separated numeric values
Example:
```bash
1,1,1,1,1
```

3. impacts
Comma-separated signs (+ for benefit, - for cost)
Example:
```bash
+,+,+,+,+
```

4. output_file.csv
Output CSV file generated by the program

---

## Example

Sample Input File (data.csv)
| Fund Name | P1   | P2   | P3  | P4   | P5    |
| --------- | ---- | ---- | --- | ---- | ----- |
| M1        | 0.84 | 0.71 | 6.7 | 42.1 | 12.59 |
| M2        | 0.91 | 0.83 | 7.0 | 31.7 | 10.11 |
| M3        | 0.79 | 0.62 | 4.8 | 46.7 | 13.23 |
| M4        | 0.78 | 0.61 | 6.4 | 42.4 | 12.55 |
| M5        | 0.94 | 0.88 | 3.6 | 62.2 | 16.91 |
| M6        | 0.88 | 0.77 | 6.5 | 51.5 | 14.91 |
| M7        | 0.66 | 0.44 | 5.3 | 48.9 | 13.83 |
| M8        | 0.93 | 0.86 | 3.4 | 37.0 | 10.55 |

Command
```bash
topsis input.csv "1,1,1,1,1" "+,+,+,+,+" output.csv
```

Sample Output (output.csv)
| Fund Name | P1   | P2   | P3  | P4   | P5    | Topsis Score | Rank |
| --------- | ---- | ---- | --- | ---- | ----- | ------------ | ---- |
| M1        | 0.84 | 0.71 | 6.7 | 42.1 | 12.59 | 0.5636923298 | 3    |
| M2        | 0.91 | 0.83 | 7.0 | 31.7 | 10.11 | 0.5130321034 | 4    |
| M3        | 0.79 | 0.62 | 4.8 | 46.7 | 13.23 | 0.4391772826 | 6    |
| M4        | 0.78 | 0.61 | 6.4 | 42.4 | 12.55 | 0.4919560825 | 5    |
| M5        | 0.94 | 0.88 | 3.6 | 62.2 | 16.91 | 0.6418858152 | 2    |
| M6        | 0.88 | 0.77 | 6.5 | 51.5 | 14.91 | 0.7381481319 | 1    |
| M7        | 0.66 | 0.44 | 5.3 | 48.9 | 13.83 | 0.4073895318 | 8    |
| M8        | 0.93 | 0.86 | 3.4 | 37.0 | 10.55 | 0.4084986767 | 7    |


---

## Notes
1. Input CSV must contain numeric values only (except first column)
2. Number of weights must match number of criteria columns
3. Impacts must be either + or -
4. Input and output files must be in the current working directory
5. The package does not include sample CSV files

---

## Author
Yash Raghuvanshi
Roll Number: 102303796
