f43f51aa2f
Use a QWebEngineView if QtWebEngine is available. If QtWebEngine is not available replace figure tags with div's to allow the QTextEdit to render the rest of the html properly
290 lines
6.7 KiB
INI
290 lines
6.7 KiB
INI
[metadata]
|
|
name = comictagger
|
|
description = A cross-platform GUI/CLI app for writing metadata to comic archives
|
|
long_description = file: README.md
|
|
long_description_content_type = text/markdown
|
|
url = https://github.com/comictagger/comictagger
|
|
author = ComicTagger team
|
|
author_email = comictagger@gmail.com
|
|
license = Apache-2.0
|
|
license_files = LICENSE
|
|
classifiers =
|
|
Development Status :: 4 - Beta
|
|
Environment :: Console
|
|
Environment :: MacOS X
|
|
Environment :: Win32 (MS Windows)
|
|
Environment :: X11 Applications :: Qt
|
|
Intended Audience :: End Users/Desktop
|
|
License :: OSI Approved :: Apache Software License
|
|
Natural Language :: English
|
|
Operating System :: OS Independent
|
|
Programming Language :: Python :: 3
|
|
Programming Language :: Python :: 3 :: Only
|
|
Topic :: Multimedia :: Graphics
|
|
Topic :: Other/Nonlisted Topic
|
|
Topic :: Utilities
|
|
keywords =
|
|
comictagger
|
|
comics
|
|
comic
|
|
metadata
|
|
tagging
|
|
tagger
|
|
|
|
[options]
|
|
packages = find:
|
|
install_requires =
|
|
appdirs==1.4.4
|
|
beautifulsoup4>=4.1
|
|
importlib-metadata>=3.3.0
|
|
natsort>=8.1.0
|
|
pathvalidate
|
|
pillow>=9.1.0,<10
|
|
pycountry
|
|
pyrate-limiter
|
|
rapidfuzz>=2.12.0
|
|
requests==2.*
|
|
settngs==0.7.1
|
|
text2digits
|
|
typing-extensions>=4.3.0
|
|
wordninja
|
|
python_requires = >=3.9
|
|
|
|
[options.packages.find]
|
|
exclude = tests; testing
|
|
|
|
[options.entry_points]
|
|
console_scripts = comictagger=comictaggerlib.main:main
|
|
comicapi.archiver =
|
|
zip = comicapi.archivers.zip:ZipArchiver
|
|
sevenzip = comicapi.archivers.sevenzip:SevenZipArchiver
|
|
rar = comicapi.archivers.rar:RarArchiver
|
|
folder = comicapi.archivers.folder:FolderArchiver
|
|
comictagger.talker =
|
|
comicvine = comictalker.talkers.comicvine:ComicVineTalker
|
|
pyinstaller40 =
|
|
hook-dirs = comictaggerlib.__pyinstaller:get_hook_dirs
|
|
|
|
[options.extras_require]
|
|
7Z =
|
|
py7zr
|
|
CBR =
|
|
rarfile>=4.0
|
|
GUI =
|
|
PyQt5
|
|
ICU =
|
|
pyicu;sys_platform == 'linux' or sys_platform == 'darwin'
|
|
QTW =
|
|
PyQt5
|
|
PyQtWebEngine
|
|
all =
|
|
PyQt5
|
|
PyQtWebEngine
|
|
py7zr
|
|
rarfile>=4.0
|
|
pyicu;sys_platform == 'linux' or sys_platform == 'darwin'
|
|
|
|
[options.package_data]
|
|
comicapi =
|
|
data/*
|
|
comictaggerlib =
|
|
ui/*
|
|
graphics/*
|
|
|
|
[tox:tox]
|
|
env_list =
|
|
format
|
|
py3.9-{none,gui,7z,cbr,icu,all}
|
|
minversion = 4.4.12
|
|
basepython = {env:tox_python:python3.9}
|
|
|
|
[testenv]
|
|
description = run the tests with pytest
|
|
package = wheel
|
|
wheel_build_env = .pkg
|
|
deps =
|
|
pytest>=7
|
|
extras =
|
|
7z: 7Z
|
|
cbr: CBR
|
|
gui: GUI
|
|
icu: ICU
|
|
all: all
|
|
commands =
|
|
python -m pytest {tty:--color=yes} {posargs}
|
|
icu,all: python -c 'import importlib,platform; importlib.import_module("icu") if platform.system() != "Windows" else ...' # Sanity check for icu
|
|
|
|
[m1env]
|
|
description = run the tests with pytest
|
|
package = wheel
|
|
wheel_build_env = .pkg
|
|
deps =
|
|
pytest>=7
|
|
icu,all: pyicu-binary
|
|
extras =
|
|
7z: 7Z
|
|
cbr: CBR
|
|
gui: GUI
|
|
all: 7Z,CBR,GUI
|
|
|
|
[testenv:py3.9-{icu,all}]
|
|
base = {env:tox_env:testenv}
|
|
|
|
[testenv:format]
|
|
labels =
|
|
release
|
|
build
|
|
skip_install = true
|
|
deps =
|
|
black>=22
|
|
isort>=5.10
|
|
setup-cfg-fmt
|
|
autoflake
|
|
pyupgrade
|
|
commands =
|
|
-setup-cfg-fmt setup.cfg
|
|
-python -m autoflake -i --remove-all-unused-imports --ignore-init-module-imports .
|
|
-python -m isort --af --add-import 'from __future__ import annotations' .
|
|
-python -m black .
|
|
|
|
[testenv:lint]
|
|
labels =
|
|
release
|
|
skip_install = true
|
|
depends = format
|
|
deps =
|
|
flake8==4.*
|
|
flake8-black
|
|
flake8-encodings
|
|
flake8-isort
|
|
mypy
|
|
types-setuptools
|
|
types-requests
|
|
commands =
|
|
python -m flake8 .
|
|
-python -m mypy --ignore-missing-imports comicapi comictaggerlib comictalker
|
|
|
|
[testenv:clean]
|
|
description = Clean development outputs
|
|
labels =
|
|
release
|
|
build
|
|
depends =
|
|
format
|
|
lint
|
|
skip_install = true
|
|
commands =
|
|
-python -c 'import shutil,pathlib; \
|
|
shutil.rmtree("./build/", ignore_errors=True); \
|
|
shutil.rmtree("./dist/", ignore_errors=True); \
|
|
pathlib.Path("./comictaggerlib/ctversion.py").unlink(missing_ok=True); \
|
|
pathlib.Path("comictagger.spec").unlink(missing_ok=True)'
|
|
|
|
[testenv:wheel]
|
|
description = Generate wheel and tar.gz
|
|
labels =
|
|
release
|
|
build
|
|
depends = clean
|
|
skip_install = true
|
|
deps =
|
|
build
|
|
commands =
|
|
python -m build
|
|
|
|
[testenv:pypi-upload]
|
|
description = Upload wheel to PyPi
|
|
platform = linux
|
|
labels =
|
|
release
|
|
skip_install = true
|
|
depends = wheel
|
|
deps =
|
|
twine
|
|
passenv =
|
|
TWINE_*
|
|
setenv =
|
|
TWINE_NON_INTERACTIVE=true
|
|
commands =
|
|
python -m twine upload dist/*.whl dist/*.tar.gz
|
|
|
|
[testenv:pyinstaller]
|
|
description = Generate pyinstaller executable
|
|
labels =
|
|
release
|
|
build
|
|
base = {env:tox_env:testenv}
|
|
depends =
|
|
clean
|
|
pypi-upload
|
|
deps =
|
|
pyinstaller>=5.6.2
|
|
extras =
|
|
all
|
|
commands =
|
|
python -c 'import importlib,platform; importlib.import_module("icu") if platform.system() != "Windows" else ...' # Sanity check for icu
|
|
pyinstaller -y build-tools/comictagger.spec
|
|
|
|
[testenv:appimage]
|
|
description = Generate appimage executable
|
|
skip_install = true
|
|
platform = linux
|
|
base = {env:tox_env:testenv}
|
|
labels =
|
|
release
|
|
build
|
|
depends =
|
|
clean
|
|
pypi-upload
|
|
pyinstaller
|
|
deps =
|
|
requests
|
|
allowlist_externals =
|
|
{tox_root}/build/appimagetool-x86_64.AppImage
|
|
change_dir = dist
|
|
commands_pre =
|
|
-python -c 'import shutil; shutil.rmtree("{tox_root}/build/", ignore_errors=True)'
|
|
python {tox_root}/build-tools/get_appimage.py {tox_root}/build/appimagetool-x86_64.AppImage
|
|
commands =
|
|
python -c 'import shutil,pathlib; shutil.copytree("{tox_root}/dist/comictagger/", "{tox_root}/build/appimage", dirs_exist_ok=True); \
|
|
shutil.copy("{tox_root}/comictaggerlib/graphics/app.png", "{tox_root}/build/appimage/app.png"); \
|
|
pathlib.Path("{tox_root}/build/appimage/AppRun").symlink_to("comictagger"); \
|
|
pathlib.Path("{tox_root}/build/appimage/AppRun.desktop").write_text( \
|
|
pathlib.Path("{tox_root}/build-tools/ComicTagger.desktop").read_text() \
|
|
.replace("/usr/local/share/comictagger/app.png", "app") \
|
|
.replace("Exec=comictagger", "Exec={tox_root}/comictagger"))'
|
|
{tox_root}/build/appimagetool-x86_64.AppImage {tox_root}/build/appimage
|
|
|
|
[testenv:zip_artifacts]
|
|
description = Zip release artifacts
|
|
labels =
|
|
release
|
|
build
|
|
depends =
|
|
wheel
|
|
pyinstaller
|
|
appimage
|
|
commands =
|
|
python ./build-tools/zip_artifacts.py
|
|
|
|
[testenv:venv]
|
|
envdir = venv
|
|
deps =
|
|
flake8==4.*
|
|
flake8-black
|
|
flake8-encodings
|
|
flake8-isort
|
|
mypy
|
|
types-setuptools
|
|
types-requests
|
|
build
|
|
pyinstaller>=5.6.2
|
|
|
|
[flake8]
|
|
max-line-length = 120
|
|
extend-ignore = E203, E501, A003
|
|
extend-exclude = venv, scripts, build, dist, comictaggerlib/ctversion.py
|
|
per-file-ignores =
|
|
comictaggerlib/cli.py: T20
|
|
build-tools/generate_settngs.py: T20
|