mirror of
https://github.com/lilydjwg/nvchecker.git
synced 2025-03-10 06:14:02 +00:00
Merge remote-tracking branch 'origin/pr/212'
Conflicts: setup.cfg setup.py
This commit is contained in:
commit
fad7cf631d
10 changed files with 115 additions and 81 deletions
2
.github/workflows/tests.yaml
vendored
2
.github/workflows/tests.yaml
vendored
|
@ -34,7 +34,7 @@ jobs:
|
||||||
cache-name: cache-pip
|
cache-name: cache-pip
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
path: ~/.cache/pip
|
||||||
key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.deps }}-${{ hashFiles('setup.py') }}
|
key: ${{ runner.os }}-${{ env.cache-name }}-${{ matrix.deps }}-${{ hashFiles('pyproject.toml', 'setup.cfg') }}
|
||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-${{ env.cache-name }}-${{ matrix.deps }}-
|
${{ runner.os }}-${{ env.cache-name }}-${{ matrix.deps }}-
|
||||||
${{ runner.os }}-${{ env.cache-name }}-
|
${{ runner.os }}-${{ env.cache-name }}-
|
||||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,10 +1,12 @@
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
__pycache__/
|
__pycache__/
|
||||||
/build/
|
/build/
|
||||||
|
/dist/
|
||||||
.cache/
|
.cache/
|
||||||
.eggs/
|
.eggs/
|
||||||
*.pyc
|
*.pyc
|
||||||
*.pyo
|
*.pyo
|
||||||
.travis.pub
|
.travis.pub
|
||||||
.pytest_cache/
|
.pytest_cache/
|
||||||
|
.tox/
|
||||||
keyfile.toml
|
keyfile.toml
|
||||||
|
|
|
@ -42,7 +42,7 @@ To install::
|
||||||
|
|
||||||
To use the latest code, you can also clone this repository and run::
|
To use the latest code, you can also clone this repository and run::
|
||||||
|
|
||||||
python3 setup.py install
|
pip install .
|
||||||
|
|
||||||
To see available options::
|
To see available options::
|
||||||
|
|
||||||
|
|
|
@ -204,8 +204,8 @@ httptoken
|
||||||
A personal authorization token used to fetch the url with the ``Authorization`` header.
|
A personal authorization token used to fetch the url with the ``Authorization`` header.
|
||||||
The type of token depends on the authorization required.
|
The type of token depends on the authorization required.
|
||||||
|
|
||||||
- For Bearer token set : ``Bearer <Your_bearer_token>``
|
- For Bearer token set \: ``Bearer <Your_bearer_token>``
|
||||||
- For Basic token set : ``Basic <Your_base64_encoded_token>``
|
- For Basic token set \: ``Basic <Your_base64_encoded_token>``
|
||||||
|
|
||||||
In the keyfile add ``httptoken_{name}`` token.
|
In the keyfile add ``httptoken_{name}`` token.
|
||||||
|
|
||||||
|
|
7
pyproject.toml
Normal file
7
pyproject.toml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
# addopts = -n auto
|
||||||
|
asyncio_mode = "strict"
|
74
setup.cfg
74
setup.cfg
|
@ -1,5 +1,73 @@
|
||||||
|
# The complex upload command:
|
||||||
|
# rm -rf dist && python -m build --sdist && twine check dist/* && twine upload -s dist/*
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
name = nvchecker
|
||||||
|
version = attr: nvchecker.__version__
|
||||||
|
author = lilydjwg
|
||||||
|
author_email = lilydjwg@gmail.com
|
||||||
|
description = New version checker for software
|
||||||
|
license = MIT
|
||||||
|
keywords = new, version, build, check
|
||||||
|
url = https://github.com/lilydjwg/nvchecker
|
||||||
|
long_description = file: README.rst
|
||||||
|
long_description_content_type = text/x-rst
|
||||||
|
platforms = any
|
||||||
|
|
||||||
|
classifiers =
|
||||||
|
Development Status :: 5 - Production/Stable
|
||||||
|
Environment :: Console
|
||||||
|
Intended Audience :: Developers
|
||||||
|
Intended Audience :: System Administrators
|
||||||
|
License :: OSI Approved :: MIT License
|
||||||
|
Operating System :: OS Independent
|
||||||
|
Programming Language :: Python
|
||||||
|
Programming Language :: Python :: 3
|
||||||
|
Programming Language :: Python :: 3 :: Only
|
||||||
|
Programming Language :: Python :: 3.7
|
||||||
|
Programming Language :: Python :: 3.8
|
||||||
|
Programming Language :: Python :: 3.9
|
||||||
|
Programming Language :: Python :: 3.10
|
||||||
|
Topic :: Internet
|
||||||
|
Topic :: Internet :: WWW/HTTP
|
||||||
|
Topic :: Software Development
|
||||||
|
Topic :: System :: Archiving :: Packaging
|
||||||
|
Topic :: System :: Software Distribution
|
||||||
|
Topic :: Utilities
|
||||||
|
|
||||||
|
[options]
|
||||||
|
zip_safe = True
|
||||||
|
|
||||||
|
packages = find_namespace:
|
||||||
|
install_requires =
|
||||||
|
setuptools; python_version<"3.8"
|
||||||
|
tomli
|
||||||
|
structlog
|
||||||
|
appdirs
|
||||||
|
tornado>=6
|
||||||
|
pycurl
|
||||||
|
scripts =
|
||||||
|
scripts/nvchecker-ini2toml
|
||||||
|
scripts/nvchecker-notify
|
||||||
|
|
||||||
|
[options.packages.find]
|
||||||
|
exclude = tests, build*, docs*
|
||||||
|
|
||||||
|
[options.extras_require]
|
||||||
|
vercmp =
|
||||||
|
pyalpm
|
||||||
|
awesomeversion =
|
||||||
|
awesomeversion
|
||||||
|
pypi =
|
||||||
|
packaging
|
||||||
|
htmlparser =
|
||||||
|
lxml
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
console_scripts =
|
||||||
|
nvchecker = nvchecker.__main__:main
|
||||||
|
nvtake = nvchecker.tools:take
|
||||||
|
nvcmp = nvchecker.tools:cmp
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore = E111, E302, E501
|
ignore = E111, E302, E501
|
||||||
|
|
||||||
[tool:pytest]
|
|
||||||
addopts = --asyncio-mode=auto
|
|
||||||
|
|
70
setup.py
70
setup.py
|
@ -1,70 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
from setuptools import setup, find_namespace_packages
|
|
||||||
import nvchecker
|
|
||||||
|
|
||||||
# The complex upload command:
|
|
||||||
# rm -rf dist && python setup.py sdist && twine check dist/* && twine upload -s dist/*
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name = 'nvchecker',
|
|
||||||
version = nvchecker.__version__,
|
|
||||||
author = 'lilydjwg',
|
|
||||||
author_email = 'lilydjwg@gmail.com',
|
|
||||||
description = 'New version checker for software',
|
|
||||||
license = 'MIT',
|
|
||||||
keywords = 'new version build check',
|
|
||||||
url = 'https://github.com/lilydjwg/nvchecker',
|
|
||||||
long_description = open('README.rst', encoding='utf-8').read(),
|
|
||||||
long_description_content_type = 'text/x-rst',
|
|
||||||
platforms = 'any',
|
|
||||||
zip_safe = True,
|
|
||||||
|
|
||||||
packages = find_namespace_packages(include=['nvchecker*']),
|
|
||||||
install_requires = ['setuptools; python_version<"3.8"', 'tomli', 'structlog', 'appdirs', 'tornado>=6', 'pycurl'],
|
|
||||||
extras_require = {
|
|
||||||
'vercmp': ['pyalpm'],
|
|
||||||
'awesomeversion': ['awesomeversion'],
|
|
||||||
'pypi': ['packaging'],
|
|
||||||
'htmlparser': ['lxml'],
|
|
||||||
},
|
|
||||||
tests_require = [
|
|
||||||
'pytest',
|
|
||||||
'pytest-asyncio',
|
|
||||||
'pytest-httpbin',
|
|
||||||
'flaky',
|
|
||||||
],
|
|
||||||
entry_points = {
|
|
||||||
'console_scripts': [
|
|
||||||
'nvchecker = nvchecker.__main__:main',
|
|
||||||
'nvtake = nvchecker.tools:take',
|
|
||||||
'nvcmp = nvchecker.tools:cmp',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
scripts = [
|
|
||||||
'scripts/nvchecker-ini2toml',
|
|
||||||
'scripts/nvchecker-notify',
|
|
||||||
],
|
|
||||||
|
|
||||||
classifiers = [
|
|
||||||
"Development Status :: 5 - Production/Stable",
|
|
||||||
"Environment :: Console",
|
|
||||||
"Intended Audience :: Developers",
|
|
||||||
"Intended Audience :: System Administrators",
|
|
||||||
"License :: OSI Approved :: MIT License",
|
|
||||||
"Operating System :: OS Independent",
|
|
||||||
"Programming Language :: Python",
|
|
||||||
"Programming Language :: Python :: 3",
|
|
||||||
"Programming Language :: Python :: 3 :: Only",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Programming Language :: Python :: 3.10",
|
|
||||||
"Topic :: Internet",
|
|
||||||
"Topic :: Internet :: WWW/HTTP",
|
|
||||||
"Topic :: Software Development",
|
|
||||||
"Topic :: System :: Archiving :: Packaging",
|
|
||||||
"Topic :: System :: Software Distribution",
|
|
||||||
"Topic :: Utilities",
|
|
||||||
],
|
|
||||||
)
|
|
|
@ -8,6 +8,7 @@ from pathlib import Path
|
||||||
|
|
||||||
import tomli
|
import tomli
|
||||||
import pytest
|
import pytest
|
||||||
|
import pytest_asyncio
|
||||||
|
|
||||||
from nvchecker import core
|
from nvchecker import core
|
||||||
from nvchecker import __main__ as main
|
from nvchecker import __main__ as main
|
||||||
|
@ -41,7 +42,7 @@ async def run(
|
||||||
vers, _has_failures = await main.run(result_coro, runner_coro)
|
vers, _has_failures = await main.run(result_coro, runner_coro)
|
||||||
return vers
|
return vers
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest_asyncio.fixture(scope="module")
|
||||||
async def get_version():
|
async def get_version():
|
||||||
async def __call__(name, config):
|
async def __call__(name, config):
|
||||||
entries = {name: config}
|
entries = {name: config}
|
||||||
|
@ -50,7 +51,7 @@ async def get_version():
|
||||||
|
|
||||||
return __call__
|
return __call__
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest_asyncio.fixture(scope="module")
|
||||||
async def run_str():
|
async def run_str():
|
||||||
async def __call__(str):
|
async def __call__(str):
|
||||||
entries = tomli.loads(str)
|
entries = tomli.loads(str)
|
||||||
|
@ -59,7 +60,7 @@ async def run_str():
|
||||||
|
|
||||||
return __call__
|
return __call__
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest_asyncio.fixture(scope="module")
|
||||||
async def run_str_multi():
|
async def run_str_multi():
|
||||||
async def __call__(str):
|
async def __call__(str):
|
||||||
entries = tomli.loads(str)
|
entries = tomli.loads(str)
|
||||||
|
|
|
@ -3,7 +3,17 @@
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pytestmark = [pytest.mark.asyncio, pytest.mark.needs_net]
|
lxml_available = True
|
||||||
|
try:
|
||||||
|
import lxml
|
||||||
|
except ImportError:
|
||||||
|
lxml_available = False
|
||||||
|
|
||||||
|
pytestmark = [
|
||||||
|
pytest.mark.asyncio,
|
||||||
|
pytest.mark.needs_net,
|
||||||
|
pytest.mark.skipif(not lxml_available, reason="needs lxml"),
|
||||||
|
]
|
||||||
|
|
||||||
async def test_xpath_ok(get_version):
|
async def test_xpath_ok(get_version):
|
||||||
assert await get_version("unifiedremote", {
|
assert await get_version("unifiedremote", {
|
16
tox.ini
Normal file
16
tox.ini
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[tox]
|
||||||
|
isolated_build = True
|
||||||
|
# you may find `tox --skip-missing-interpreters=true` helpful.
|
||||||
|
envlist = py3{7,8,9,10}
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
usedevelop = false
|
||||||
|
deps =
|
||||||
|
pytest
|
||||||
|
pytest-asyncio
|
||||||
|
pytest-httpbin
|
||||||
|
flaky
|
||||||
|
extras =
|
||||||
|
htmlparser
|
||||||
|
passenv = KEYFILE
|
||||||
|
commands = pytest -r fEs {posargs}
|
Loading…
Add table
Reference in a new issue