fix: Fixed that prereleases version were listed
This commit is contained in:
parent
9680e33730
commit
712d80a0aa
3 changed files with 26 additions and 5 deletions
|
@ -1,4 +1,5 @@
|
|||
from .pypi_updater import PyPiUpdater
|
||||
from .single_updater import PyPiUpdater
|
||||
#from .multi_updater import MultiPackageUpdater
|
||||
|
||||
__all__ = ["PyPiUpdater"]
|
||||
|
||||
|
|
4
src/PyPiUpdater/multi_updater.py
Normal file
4
src/PyPiUpdater/multi_updater.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
class MultiPackageUpdater:
|
||||
def __init__(self, log_path):
|
||||
print("Not ready yet...")
|
|
@ -6,6 +6,7 @@ import time
|
|||
import json
|
||||
import re
|
||||
from packaging import version
|
||||
from packaging.version import parse, Version
|
||||
from xml.etree import ElementTree as ET
|
||||
|
||||
class PyPiUpdater:
|
||||
|
@ -25,7 +26,7 @@ class PyPiUpdater:
|
|||
self.last_update_check = 0.1
|
||||
|
||||
def _get_latest_version(self):
|
||||
"""Fetch the latest version from PyPI RSS feed."""
|
||||
"""Fetch the latest stable version from PyPI RSS feed."""
|
||||
rss_url = f"https://pypi.org/rss/project/{self.package_name.lower()}/releases.xml"
|
||||
|
||||
try:
|
||||
|
@ -33,9 +34,24 @@ class PyPiUpdater:
|
|||
response.raise_for_status()
|
||||
root = ET.fromstring(response.content)
|
||||
|
||||
latest_version = root.find(".//item/title").text.strip()
|
||||
self.latest_version = latest_version
|
||||
return [latest_version, None]
|
||||
# Extract all versions from the feed
|
||||
versions = []
|
||||
for item in root.findall(".//item/title"):
|
||||
version_text = item.text.strip()
|
||||
parsed_version = parse(version_text)
|
||||
print(version_text,"\n",parsed_version)
|
||||
# Check if the version is stable (not a pre-release)
|
||||
if isinstance(parsed_version, Version) and not parsed_version.is_prerelease:
|
||||
versions.append(parsed_version)
|
||||
|
||||
# Return the latest stable version
|
||||
if versions:
|
||||
latest_version = str(max(versions))
|
||||
self.latest_version = latest_version
|
||||
return [latest_version, None]
|
||||
|
||||
return [None, "No stable versions found"]
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
return [None, f"Network error: {str(e)}"]
|
||||
except Exception as e:
|
Loading…
Add table
Add a link
Reference in a new issue