Metadata-Version: 2.4
Name: nwpackageversions
Version: 2.0.1
Summary: A library that helps with retrieving package information from PyPi.org and comparing them with what you have installed locally.
Home-page: https://github.com/numbworks/nwpackageversions
Author: numbworks
License: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: requests==2.32.3
Requires-Dist: lxml==5.3.0
Dynamic: author
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# nwpackageversions

## Introduction

This packages consists of the following modules:

- `nwpackageversions` is a library that helps with retrieving package information from PyPi.org and comparing them with what you have installed locally.
- `nwpackageversionscli` is a command-line application built on the top of `nwpackageversions`.

## Getting Started

I'll use Debian as operating system, but the concept is similar for Windows or Mac.

Procedure:

1. Install `pip` and `venv`:

```sh
sudo apt install python3-pip python3.12-venv
```

2. Create a virtual environment:

```sh
python3 -m venv /tmp/nwpackageversions
source /tmp/nwpackageversions/bin/activate
```

3. Download and install the package:

```sh
pip install nwpackageversions
```

4. Enter in the interactive Python environment:

```sh
python3
```
```
Python 3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
```

5. Try out if the library works:

```python
from nwpackageversions import RequirementChecker

requirement_checker : RequirementChecker = RequirementChecker()
```

6. Exit from the interactive Python environment:

```python
exit()
```

7. Try out if the CLI application works:

```sh
nwpackageversionscli
```

8. Deactivate and delete the virtual environment:

```sh
deactivate
rm -rf /tmp/nwpackageversions
```

9. Done!

## Examples

Run it against the current runtime:

```sh
nwpackageversionscli runtime --required 3.12.5
```

```
*****************************************************************
'##::: ##:'##:::::'##:'########::'##::::'##:'########:'########::
 ###:: ##: ##:'##: ##: ##.... ##: ##:::: ##: ##.....:: ##.... ##:
 ####: ##: ##: ##: ##: ##:::: ##: ##:::: ##: ##::::::: ##:::: ##:
 ## ## ##: ##: ##: ##: ########:: ##:::: ##: ######::: ########::
 ##. ####: ##: ##: ##: ##.....:::. ##:: ##:: ##...:::: ##.. ##:::
 ##:. ###: ##: ##: ##: ##:::::::::. ## ##::: ##::::::: ##::. ##::
 ##::. ##:. ###. ###:: ##::::::::::. ###:::: ########: ##:::. ##:
..::::..:::...::...:::..::::::::::::...:::::........::..:::::..::
**********************************************Version: 2.0.1*****

command: 'runtime'
required: '(3, 12, 5)'

The installed Python version is matching the expected one (installed: '3.12.5', expected: '3.12.5').
```

Run it against a `file_path`:

```sh
nwpackageversionscli requirements --file_path .devcontainer/main/Dockerfile --waiting_time 5
```

```
*****************************************************************
'##::: ##:'##:::::'##:'########::'##::::'##:'########:'########::
 ###:: ##: ##:'##: ##: ##.... ##: ##:::: ##: ##.....:: ##.... ##:
 ####: ##: ##: ##: ##: ##:::: ##: ##:::: ##: ##::::::: ##:::: ##:
 ## ## ##: ##: ##: ##: ########:: ##:::: ##: ######::: ########::
 ##. ####: ##: ##: ##: ##.....:::. ##:: ##:: ##...:::: ##.. ##:::
 ##:. ###: ##: ##: ##: ##:::::::::. ## ##::: ##::::::: ##::. ##::
 ##::. ##:. ###. ###:: ##::::::::::. ###:::: ########: ##:::. ##:
..::::..:::...::...:::..::::::::::::...:::::........::..:::::..::
**********************************************Version: 2.0.1*****

command: 'requirements'
file_path: '.devcontainer/main/Dockerfile'
only_stable_releases: 'True'
waiting_time: '5'

total_packages: '9'
matching: '3'
matching_prc: '33.33%'
mismatching: '6'
mismatching_prc: '66.67%'

The current version ('2.32.3') of 'requests' doesn't match with the most recent release ('2.33.1', '2026-03-30').
The current version ('5.3.0') of 'lxml' doesn't match with the most recent release ('6.0.4', '2026-04-12').
The current version ('7.6.4') of 'coverage' doesn't match with the most recent release ('7.13.5', '2026-03-17').
The current version ('1.13.0') of 'mypy' doesn't match with the most recent release ('1.20.0', '2026-03-31').
The current version ('2.32.0.20241016') of 'types-requests' doesn't match with the most recent release ('2.33.0.20260408', '2026-04-08').
The current version ('3.3.3') of 'pylint' doesn't match with the most recent release ('4.0.5', '2026-02-20').
The current version ('0.9.0') of 'parameterized' matches with the most recent release ('0.9.0', '2023-03-27').
The current version ('0.5.1') of 'lxml-stubs' matches with the most recent release ('0.5.1', '2024-01-10').
The current version ('6.0.1') of 'radon' matches with the most recent release ('6.0.1', '2023-03-26').
```

## Links

- Source: https://github.com/numbworks/nwpackageversions
- License: https://github.com/numbworks/nwpackageversions/blob/master/LICENSE

## Total Downloads (PyPi)

[![PyPI Downloads](https://static.pepy.tech/personalized-badge/nwpackageversions?period=total&units=NONE&left_color=BLACK&right_color=BLUE&left_text=TOTAL+DOWNLOADS)](https://pepy.tech/projects/nwpackageversions)
