feat: reworking strukture

This is a breaking change. A reminder that this is in very early stage (first day) and nothing is set in stone yet.
This commit is contained in:
Mr Finchum 2025-01-31 14:59:09 +00:00
parent 5b462cd39f
commit 282a2145ff
4 changed files with 130 additions and 71 deletions

View file

@ -1,3 +1,52 @@
# PyPiUpdater
**UNFINISHED** Still early code, functions might change drasticly
## More to come
**PyPiUpdater** is a Python library for managing updates of packages installed via `pip`.
## Features
- Check the latest version of a package on PyPI
- Determine if an update is available
- Upgrade the package using `pip`
- Restart the Python script after updating
## Installation
```bash
pip install PyPiUpdater
```
## Usage example
**NOTE:** Example only work for client application, GUI apps such as OptimaLab35 with QT need also to close the window and should not use the restart function.
**Now the example by ChatGPT:**
Here's a short example code snippet for your `PyPiUpdater` package to include in your README:
```python
# Example usage of PyPiUpdater
from PyPiUpdater import PyPiUpdater
# Initialize the updater with the package name, current version, and log file path
updater = PyPiUpdater(package_name="OptimaLab35", local_version="0.7.0", log_path="update_log.txt")
# Check if an update is available (optionally forcing the check, otherwise only checked every 20 hours(default set with update_interval_seconds = int seconds))
is_newer, latest_version = updater.check_for_update(force=False)
if is_newer:
print(f"Update available! Latest version: {latest_version}")
# Update the package using pip
success, message = updater.update_package()
print(message)
if success:
# Restart the program after update
updater.restart_program()
else:
print("No update available or checked too recently.")
```
### Explanation:
- The example shows how to initialize the `PyPiUpdater` class with the package name, current version, and the path to a log file.
- It checks for an update by calling `check_for_update()`.
- If an update is available, it proceeds with updating the package using `update_package()` and restarts the program with `restart_program()`.
- If no update is available, or it was checked too recently, it prints an appropriate message.