mirror of
https://github.com/lilydjwg/nvchecker
synced 2025-03-10 05:20:22 +00:00
pypi: use_pre_release support
Signed-off-by: Bruce Zhang <zttt183525594@gmail.com>
This commit is contained in:
parent
22c7b5db20
commit
2e55a7db60
@ -1,15 +1,25 @@
|
||||
# MIT licensed
|
||||
# Copyright (c) 2013-2017 lilydjwg <lilydjwg@gmail.com>, et al.
|
||||
|
||||
from .simple_json import simple_json
|
||||
from . import cmd, conf_cacheable_with_name, session
|
||||
|
||||
PYPI_URL = 'https://pypi.org/pypi/%s/json'
|
||||
get_cacheable_conf = conf_cacheable_with_name('pypi')
|
||||
|
||||
def _version_from_json(data):
|
||||
return data['info']['version']
|
||||
async def get_version(name, conf, **kwargs):
|
||||
package = conf.get('pypi')
|
||||
use_pre_release = conf.getboolean('use_pre_release', False)
|
||||
|
||||
get_version, get_cacheable_conf = simple_json(
|
||||
PYPI_URL,
|
||||
'pypi',
|
||||
_version_from_json,
|
||||
)
|
||||
headers = {
|
||||
'Accept': 'application/json',
|
||||
'User-Agent': 'lilydjwg/nvchecker',
|
||||
}
|
||||
url = 'https://pypi.org/pypi/{}/json'.format(package)
|
||||
|
||||
async with session.get(url) as res:
|
||||
data = await res.json()
|
||||
|
||||
if use_pre_release:
|
||||
version = sorted(data['releases'].keys())[-1]
|
||||
else:
|
||||
version = data['info']['version']
|
||||
return version
|
||||
|
@ -6,3 +6,9 @@ pytestmark = pytest.mark.asyncio
|
||||
|
||||
async def test_pypi(get_version):
|
||||
assert await get_version("example", {"pypi": None}) == "0.1.0"
|
||||
|
||||
async def test_pypi_release(get_version):
|
||||
assert await get_version("example-test-package", {"pypi": "example-test-package"}) == "1.0.0"
|
||||
|
||||
async def test_pypi_pre_release(get_version):
|
||||
assert await get_version("example-test-package", {"pypi": "example-test-package", "use_pre_release": 1}) == "1.0.1a1"
|
||||
|
Loading…
Reference in New Issue
Block a user