semvec/pypi-packages huggingface dataset:
Topsis-Arshia-102303144 1.0.0
Python package for solving MCDM problems using TOPSIS
License: MIT
Requires Python: >=3.7

# Topsis-Arshia-102303144

## Project Description
**Topsis-Arshia-102303144** is a Python package for solving Multiple Criteria Decision Making (MCDM) problems using the **Technique for Order of Preference by Similarity to Ideal Solution (TOPSIS)**.

TOPSIS ranks alternatives based on their distance from an ideal best and an ideal worst solution. This package provides a simple command-line interface to perform TOPSIS analysis on CSV data files.

---

## Course & Student Details
**Course:** Project-1 (UCS654)  
**Submitted by:** Arshia Anand  
**Roll No:** 102303144  
**Group:** 3C15  

---

## Installation
Install via PyPI using pip:

```bash
pip install Topsis-Arshia-102303144
```
## Usage

Run the TOPSIS analysis using:

```bash
topsis <InputDataFile> <Weights> <Impacts> <OutputResultFileName>
```

## Arguments

InputDataFile: CSV file containing the dataset

Weights: Comma-separated numeric weights for each criterion

Impacts: Comma-separated impacts (+ for benefit, - for cost)

OutputResultFileName: Output CSV file containing TOPSIS scores and ranks

## Example
```bash
topsis sample.csv "0.25,0.25,0.25,0.25" "+,+,-,+" result.csv
```

## Sample Input File (sample.csv)
```csv
Model,Storage,Camera,Price,Looks
M1,16,12,250,5
M2,16,8,200,3
M3,32,16,300,4
M4,32,8,275,4
M5,16,16,225,2
```

## Sample Output
```txt
Topsis Score  Rank
0.691632      1
0.534737      2
0.534277      3
0.401046      4
0.308368      5
```

## Important Notes

Input file must contain at least three columns

From the 2nd column to the last column, all values must be numeric

Number of weights must equal the number of impacts

Number of weights and impacts must match the number of criteria

Impacts must be either + (benefit) or - (cost)

Weights and impacts must be separated by commas (,)

## License

MIT License. See the LICENSE file for details.
howdididolib 0.4.0
How Did I Do library
License: MIT
Requires Python: >=3.10

# How Did I Do Library

A Python library and CLI tool for retrieving golf booking and fixture information from the [How Did I Do](https://www.howdidido.com) website.

## Features

- 🔐 **Secure Authentication**: Authenticate once and save credentials locally.
- 📅 **Booking Information**: Retrieve details of both your current and upcoming bookable golf events.
- 🏟️ **Fixtures**: Get a comprehensive list of upcoming fixtures and competitions.
- 💻 **CLI Interface**: Easy-to-use command-line interface with `rich` formatting.
- 🧪 **High Coverage**: Robust test suite with 99% coverage.

## Installation

Install using `uv`:

```shell
uv add howdididolib
```

Or using `pip`:

```shell
pip install howdididolib
```

## Development

This project uses [uv](https://docs.astral.sh/uv/) for package management.

### Setup

```shell
# Install dependencies
uv sync
```

### Running Tests

```shell
uv run pytest
```

## CLI Usage

The library includes a CLI tool named `howdidido`.

### Authentication

First, authenticate and save your credentials:

```shell
uv run howdidido auth --username "your_username" --password "your_password"
```

### Get Bookings

View your current and upcoming bookable events:

```shell
uv run howdidido bookings
```

### Get Fixtures

View upcoming fixtures:

```shell
uv run howdidido fixtures
```

### Debugging

Enable verbose logging for any command:

```shell
uv run howdidido bookings --debug
```

## Programmatic Usage

You can also use the library in your own Python projects:

```python
import aiohttp
from howdididolib.authentication import AuthenticationClient
from howdididolib.bookings import BookingClient

async def main():
    async with aiohttp.ClientSession() as session:
        auth = AuthenticationClient(session, username="user", password="pass")
        await auth.login()
        await auth.save_auth_cookie()

        booking_client = BookingClient(session)
        bookings = await booking_client.get()
        print(bookings.booked_events)
```

## License

Distributed under the MIT License. See `LICENSE` for more information.