Metadata-Version: 2.1
Name: netmeasure
Version: 1.2.4
Summary: A tool for measuring Internet connection quality in a structured way.
Home-page: https://github.com/amorphitec/netmeasure
Author: James Stewart
Author-email: james@amorphitec.io
Maintainer: James Stewart
Maintainer-email: james@amorphitec.io
Requires-Python: >=3.8,<4
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: beautifulsoup4 (>=4.11.2,<5.0.0)
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: exitstatus (>=2.3.0,<3.0.0)
Requires-Dist: halo (>=0.0.31,<0.0.32)
Requires-Dist: requests (>=2.28,<3.0)
Requires-Dist: rich (>=13.3.2,<14.0.0)
Requires-Dist: scapy (>=2.5,<3.0)
Requires-Dist: speedtest-cli (>=2.1,<3.0)
Requires-Dist: validators (>=0.20,<0.21)
Requires-Dist: yt-dlp (>=2023.3.4,<2024.0.0)
Project-URL: Repository, https://github.com/amorphitec/netmeasure
Description-Content-Type: text/markdown

[![PyPI version](https://badge.fury.io/py/netmeasure.svg)](https://badge.fury.io/py/netmeasure)
[![PyPI Supported Python Versions](https://img.shields.io/pypi/pyversions/netmeasure.svg)](https://pypi.python.org/pypi/netmeasure/)
[![GitHub license](https://img.shields.io/github/license/amorphitec/netmeasure)](https://github.com/amorhpitec/netmeaure/blob/master/LICENSE)
[![GitHub Actions (Tests)](https://github.com/amorphitec/netmeasure/workflows/Tests/badge.svg)](https://github.com/amorphitec/netmeasure)

# Netmeasure

A library for measuring Internet connection quality in a structured and consistent way.

## Purpose

There are a variety of services, clients, tools, and methodologies used to measure Internet connection quality. Each of these has its own advantages, flaws, biases and units of measurement.

Netmeasure brings together a variety of Internet connection quality measurements in a single library with a consistent interface and explicitly-defined units.

An open-source license ensures methodology is transparent and open to ongoing community improvement.

## Measurements

- `file_download` - measures download of a file from a given endpoint using the [wget](https://www.gnu.org/software/wget/) application.
- `ip_route` - measures network hops to a given endpoint using the [scapy](https://scapy.net/) library.
- `latency` - measures latency to a given endpoint using the [ping](https://en.wikipedia.org/wiki/Ping_%28networking_utility%29) application.
- `netflix_fast` - measures download from the [netflix fast](https://fast.com/) service using the [requests](https://requests.readthedocs.io/en/latest/) library.
- `speedtest_dotnet` - measures download from, upload to and latency to the [speedtest.net](https://www.speedtest.net/) service using the [speedtest-cli](https://pypi.org/project/speedtest-cli/) library.
- `webpage_download` - measures download of a given web page and its associated assets using the [requests](https://requests.readthedocs.io/en/latest/) library.
- `youtube_download` - measures download of a given [youtube](https://www.youtube.com/) video using the [youtube-dl](https://youtube-dl.org/) library.

## Usage

...

## Requirements

`netmeasure` supports Python 3.8 to Python 3.11 inclusively.

## Development

### Git hooks

[pre-commit](https://pre-commit.com/) hooks are included to ensure code quality
on `commit` and `push`. Install these hooks like so:

```shell script
$ pre-commit install && pre-commit install -t pre-push
asd
```

### Publishing a release

1. Install [poetry](https://poetry.eustace.io)

2. Checkout the release:

    ```shell script
    $ git checkout v<x>.<y>.<z>
    ```

3. Publish the release:

    ```shell script
    $ poetry publish --build
    ```

