Compare commits

..

No commits in common. "97db0946da61072dc0a87965f21c2e98cccb1a44" and "c6a7d839d96377faac41600dd027f7ddfe74e704" have entirely different histories.

4 changed files with 43 additions and 41 deletions

View file

@ -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 We've decided to use the best of the shims that merge the Python
```asyncio``` and Qt event loops: ```asyncio``` and Qt event loops:
[qasyc](https://github.com/CabbageDevelopment/qasync). This is seen as [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 The code is based on a
[comment](https://github.com/CabbageDevelopment/qasync/issues/35#issuecomment-1315060043) [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 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 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. it not a monolithic Qt program, so it can be used as a library.

View file

@ -3,15 +3,15 @@
import sys import sys
import os import os
import qasync
import asyncio import asyncio
import time import time
import random import random
# let qasync figure out what Qt we are using - we dont care from PyQt5 import QtWidgets
from qasync import QApplication, QtWidgets, QEventLoop from PyQt5.QtWidgets import (QProgressBar, QWidget, QVBoxLayout)
from phantompy import Render from phantompy import Render
# if you want an example of looking for things in downloaded HTML:
# from lookupdns import LookFor as Render # from lookupdns import LookFor as Render
from support_phantompy import vsetup_logging, omain_argparser from support_phantompy import vsetup_logging, omain_argparser
@ -28,7 +28,7 @@ class Widget(QtWidgets.QWidget):
box = QtWidgets.QHBoxLayout() box = QtWidgets.QHBoxLayout()
self.setLayout(box) self.setLayout(box)
box.addWidget(self._label) box.addWidget(self._label)
self.progress = QtWidgets.QProgressBar() self.progress = QProgressBar()
self.progress.setRange(0, 99) self.progress.setRange(0, 99)
box.addWidget(self.progress) box.addWidget(self.progress)
@ -80,7 +80,7 @@ def iMain(largs):
vsetup_logging(oargs.log_level, logfile='', stream=sys.stderr) vsetup_logging(oargs.log_level, logfile='', stream=sys.stderr)
except: pass except: pass
app = QApplication([]) app = QtWidgets.QApplication([])
app.lstart = [] app.lstart = []
if bgui: if bgui:
widget = Widget() widget = Widget()
@ -89,7 +89,7 @@ def iMain(largs):
else: else:
widget = None widget = None
loop = QEventLoop(app) loop = qasync.QEventLoop(app)
asyncio.set_event_loop(loop) asyncio.set_event_loop(loop)
url = oargs.html_url url = oargs.html_url

View file

@ -1,4 +1,4 @@
# -*-mode: python; indent-tabs-mode: nil; py-indent-offset: 4; coding: utf-8 -* # -*- coding: utf-8 -*-
from setuptools import setup from setuptools import setup
@ -8,34 +8,36 @@ long_description = "\n\n".join([
open("README.md").read(), open("README.md").read(),
]) ])
if __name__ == '__main__': setup(
setup( name="pahntompy",
name="phantompy", version=__version__,
version=__version__, description="""A simple replacement for phantomjs using PyQt""",
description="""A simple replacement for phantomjs using PyQt""", long_description=long_description,
long_description=long_description, author="Michael Franzl (originally) Goebel",
author="Michael Franzl (originally)", author_email='',
author_email='', license="1clause BSD",
license="1clause BSD", packages=['phantompy'],
packages=['phantompy'], # url="",
# url="", # These are for reference only, pip is not able to download packages
# download_url="https://", # from github because the archives do not include the project-name.
keywords=['JavaScript', 'phantomjs'], download_url="https://github.com/debops/yaml2rst/releases",
# maybe less - nothing fancy keywords=['JavaScript', 'phantomjs'],
python_requires=">=3.6", python_requires=">=3.6",
# probably works on PyQt6 and PySide2 but untested # probably works on PyQt6 and PySide2 but untested
# https://github.com/CabbageDevelopment/qasync/ install_requires=['qasync', 'PyQt5'],
install_requires=['qasync', 'PyQt5'], entry_points={
entry_points={ 'console_scripts': [
'console_scripts': ['phantompy = phantompy.__main__:iMain', ]}, 'phantompy = phantompy.__main__:iMain',
classifiers=[ ]
'Development Status :: 4 - Beta', },
'Environment :: Console', classifiers=[
'Intended Audience :: Developers', 'Development Status :: 4 - Beta',
'Intended Audience :: Web Developers', 'Environment :: Console',
'Natural Language :: English', 'Intended Audience :: Developers',
'Operating System :: OS Independent', 'Intended Audience :: Web Developers',
'Programming Language :: Python :: 3', 'Natural Language :: English',
'Topic :: Software Development :: Documentation', 'Operating System :: OS Independent',
], 'Programming Language :: Python :: 3',
) 'Topic :: Software Development :: Documentation',
],
)

View file

@ -108,7 +108,7 @@ def omain_argparser(_=None):
help="Write loaded and javascripted result to a HTML file") help="Write loaded and javascripted result to a HTML file")
parser.add_argument('--pdf_output', type=str, default='', parser.add_argument('--pdf_output', type=str, default='',
help="Write loaded and javascripted result to a PDF file") 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") help="show a progress meter that doesn't work")
parser.add_argument('html_url', type=str, nargs='?', parser.add_argument('html_url', type=str, nargs='?',
required=True, required=True,