semvec/pypi-packages huggingface dataset:
bolthole 1.0.2
bolthole
Requires Python: >=3.10

# bolthole

Automatically backup changes to a directory to git.

## Usage

```bash
bolthole
    [--ignore GLOB [--ignore ...]]          # autoignored: .git, .gitignore
    [--author AUTHOR] [--message TEXT]      # override your git config
    [--grace SECONDS] [--bundle SECONDS]    # allow for rapid edits to finish
    [--remote NAME [--remote ...]]          # push changes upstream
    [--verbose] [--show-git] [--timeless]
        [--watchdog-debug]                  # control verbosity
    [--dry-run]                             # test it first
    [--once]                                # no ongoing monitoring
    source_dir                              # what to monitor
    [dest_dir]                              # optionally copy to repo
```


## Autocommit a directory

```bash
bolthole .
```

Assumes the directory is already git controlled, and will refuse to start if
not. It will commit any outstanding changes. If `--once` was used, it will
then stop, otherwise it will watch for changes until killed, committing them.


## Autocommit to a different directory

```bash
bolthole project/ pristine-copy/
```

If `pristine-copy` doesn't exist, it will copy it and create a git repository
there, or it will check that if directory is already git controlled and will
refuse to start if not. It will commit any outstanding changes. If `--once`
was used, it will then stop, otherwise it will watch for changes until killed,
committing them.


## Grace and bundling

The `--grace SECONDS` option will wait until the amount of time specified
has passed before committing the file, and will restart the timer after
each change. This way, if a file is being edited repeatedly in a short
span of time, the result would be only one commit, not many.

The `--bundle SECONDS` option allows for multiple file changes to be
bundled together in one commit rather than one commit per file, as long as
they all happened at roughly the same time. The bundle time is how
recently a file needs to have been changed in order to be excluded from the
bundle.

For example, with a grace period of five minutes, and a bundle window of
one minute:

- at `t = 0m00s` — `foo.txt` is edited, and a timer for it is set for 300 seconds
- at `t = 0m30s` — `bar.txt` is edited, and a timer for it is set
  for 300s (we now have `foo.txt` at 270s, `bar.txt` at 300s)
- at `t = 4m30s` — `baz.txt` is edited, and a timer for it is set for 300s
  (we now have `foo.txt` at 30s, `bar.txt` at 60s, `baz.txt` at 300s)
- at `t = 5m00s` — the `foo.txt` timer goes off (we now have `foo.txt` at 0s,
  `bar.txt` at 30s, `baz.txt` at 270s); the changes to `foo.txt` and `bar.txt`
  were both made earlier than the bundle window, and one commit is made with
  both changes
- at `t = 9m30s` — `baz.txt` is committed


## Installation

Bolthole is installed from pypi:

```bash
pip install bolthole
```
bay-wheels 0.3.0
Unofficial Python client for the Bay Wheels bike-share API
Requires Python: >=3.10
Keywords: api, async, bay-wheels, bike-share, bikeshare, lyft

# bay-wheels

An unofficial Python client for the Bay Wheels bike-share API. Supports authentication, station lookup, bike availability, and reservations. Mostly vibe coded; use at your own risk.

## Installation

```bash
uv add bay-wheels
```

## Usage

```python
import asyncio
from bay_wheels import BayWheelsClient

async def main():
    async with BayWheelsClient() as client:
        # Authenticate via SMS
        await client.request_code("+14155551234")
        code = input("Enter code: ")
        await client.login("+14155551234", code)

        # List stations
        stations = await client.list_stations()
        for station in stations[:5]:
            print(f"{station.name}: {station.ebikes_available} e-bikes")

        # Get bikes at a station
        bikes = await client.get_station_bikes(stations[0].id)
        for bike in bikes:
            print(f"  Bike {bike.bike_id}: {bike.estimated_range_miles} mi")

        # Reserve a bike
        reservation = await client.create_reservation(stations[0].id)
        print(f"Reserved: {reservation.ride_id}")

        # Cancel reservation
        await client.cancel_reservation(reservation.ride_id)

asyncio.run(main())
```

## License

MIT
Topsis-Anshika-10123456 0.0.1
A Python package for TOPSIS implementation

# Topsis-Anshika-10123456

## Overview
This package implements the **TOPSIS (Technique for Order Preference by Similarity to Ideal Solution)**
method using Python.

TOPSIS is a multi-criteria decision-making technique used to rank alternatives based on their
distance from an ideal best and an ideal worst solution.

This package can be used directly from the **command line** after installation.

---

## Package Name
TOPSIS-ANSHIKA-102303042

---

## Installation
Install the package from PyPI using pip:
pip install TOPSIS-ANSHIKA-102303042

---

## Usage (Command Line)
topsis <InputDataFile> <Weights> <Impacts> <OutputResultFile>

---

### Example
topsis data.csv "1,1,1,2" "+,+,-,+" result.csv

---

## ðŸ“¥ Input File Format
- The input file must be in **CSV format**
- The **first column** should contain names of alternatives
- Remaining columns should contain **numeric values only**
- Minimum **3 columns** are required

### Sample Input
Fund Name,P1,P2,P3,P4
M1,0.67,0.45,6.5,42.6
M2,0.60,0.36,3.6,53.3
M3,0.82,0.67,3.8,63.1

---

## ðŸ“¤ Output File Format
The output file is a CSV file containing:
- **Topsis Score** â€“ relative closeness to the ideal solution
- **Rank** â€“ ranking based on TOPSIS score

Higher score indicates a better alternative.

---

##  Methodology (Brief)
1. Read input data from CSV file
2. Normalize the decision matrix
3. Apply weights to the normalized matrix
4. Determine ideal best and ideal worst values
5. Calculate distance from ideal best and worst
6. Compute TOPSIS score
7. Rank alternatives based on the score

---

##  Error Handling
The package checks for:
- Incorrect number of arguments
- File not found errors
- Non-numeric values in criteria columns
- Mismatch in number of weights and impacts
- Invalid impact values (only `+` or `-` allowed)

---

##  Dependencies
- Python 3.x
- Pandas
- NumPy

---

##  Conclusion
This package provides a simple and effective way to perform TOPSIS analysis using Python.
It is useful for decision-making problems involving multiple criteria.