diff --git a/README.md b/README.md index 1f17af3..249992a 100644 --- a/README.md +++ b/README.md @@ -62,10 +62,10 @@ for the PyQt ```app.exec``` and the exiting of the program. We've decided to use the best of the shims that merge the Python ```asyncio``` and Qt event loops: [qasyc](https://github.com/CabbageDevelopment/qasync). This is seen as -the successor to the sorta abandoned [quamash](https://github.com/harvimt/quamash). +the successor to the sorta abandoned[quamash](https://github.com/harvimt/quamash). The code is based on a [comment](https://github.com/CabbageDevelopment/qasync/issues/35#issuecomment-1315060043) -by [Alex March](https://github.com/hosaka) who's excellent code helped me. +by [Alex Marcha](https://github.com/hosaka) who's excellent code helped me. As this is my first use of ```asyncio``` and ```qasync``` I may have introduced some errors and it may be improved on, but it works, and it not a monolithic Qt program, so it can be used as a library. diff --git a/qasync_phantompy.py b/qasync_phantompy.py index 99927ba..fdd850e 100644 --- a/qasync_phantompy.py +++ b/qasync_phantompy.py @@ -3,15 +3,15 @@ import sys import os +import qasync import asyncio import time import random -# let qasync figure out what Qt we are using - we dont care -from qasync import QApplication, QtWidgets, QEventLoop +from PyQt5 import QtWidgets +from PyQt5.QtWidgets import (QProgressBar, QWidget, QVBoxLayout) from phantompy import Render -# if you want an example of looking for things in downloaded HTML: # from lookupdns import LookFor as Render from support_phantompy import vsetup_logging, omain_argparser @@ -28,7 +28,7 @@ class Widget(QtWidgets.QWidget): box = QtWidgets.QHBoxLayout() self.setLayout(box) box.addWidget(self._label) - self.progress = QtWidgets.QProgressBar() + self.progress = QProgressBar() self.progress.setRange(0, 99) box.addWidget(self.progress) @@ -80,7 +80,7 @@ def iMain(largs): vsetup_logging(oargs.log_level, logfile='', stream=sys.stderr) except: pass - app = QApplication([]) + app = QtWidgets.QApplication([]) app.lstart = [] if bgui: widget = Widget() @@ -89,7 +89,7 @@ def iMain(largs): else: widget = None - loop = QEventLoop(app) + loop = qasync.QEventLoop(app) asyncio.set_event_loop(loop) url = oargs.html_url diff --git a/setup.py b/setup.py index bdf9f6e..2311cdb 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# -*-mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -* +# -*- coding: utf-8 -*- from setuptools import setup @@ -8,34 +8,36 @@ long_description = "\n\n".join([ open("README.md").read(), ]) -if __name__ == '__main__': - setup( - name="phantompy", - version=__version__, - description="""A simple replacement for phantomjs using PyQt""", - long_description=long_description, - author="Michael Franzl (originally)", - author_email='', - license="1clause BSD", - packages=['phantompy'], - # url="", - # download_url="https://", - keywords=['JavaScript', 'phantomjs'], - # maybe less - nothing fancy - python_requires=">=3.6", - # probably works on PyQt6 and PySide2 but untested - # https://github.com/CabbageDevelopment/qasync/ - install_requires=['qasync', 'PyQt5'], - entry_points={ - 'console_scripts': ['phantompy = phantompy.__main__:iMain', ]}, - classifiers=[ - 'Development Status :: 4 - Beta', - 'Environment :: Console', - 'Intended Audience :: Developers', - 'Intended Audience :: Web Developers', - 'Natural Language :: English', - 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3', - 'Topic :: Software Development :: Documentation', - ], - ) +setup( + name="pahntompy", + version=__version__, + description="""A simple replacement for phantomjs using PyQt""", + long_description=long_description, + author="Michael Franzl (originally) Goebel", + author_email='', + license="1clause BSD", + packages=['phantompy'], + # url="", + # These are for reference only, pip is not able to download packages + # from github because the archives do not include the project-name. + download_url="https://github.com/debops/yaml2rst/releases", + keywords=['JavaScript', 'phantomjs'], + python_requires=">=3.6", + # probably works on PyQt6 and PySide2 but untested + install_requires=['qasync', 'PyQt5'], + entry_points={ + 'console_scripts': [ + 'phantompy = phantompy.__main__:iMain', + ] + }, + classifiers=[ + 'Development Status :: 4 - Beta', + 'Environment :: Console', + 'Intended Audience :: Developers', + 'Intended Audience :: Web Developers', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 3', + 'Topic :: Software Development :: Documentation', + ], +) diff --git a/support_phantompy.py b/support_phantompy.py index 1c81f3f..c19968f 100644 --- a/support_phantompy.py +++ b/support_phantompy.py @@ -108,7 +108,7 @@ def omain_argparser(_=None): help="Write loaded and javascripted result to a HTML file") parser.add_argument('--pdf_output', type=str, default='', help="Write loaded and javascripted result to a PDF file") - parser.add_argument('--show_gui', type=bool, default=False, store_action=True, + parser.add_argument('--show_gui', type=bool, default=False, store_action=True), help="show a progress meter that doesn't work") parser.add_argument('html_url', type=str, nargs='?', required=True,