Saravanan666/pypi-org huggingface dataset:
Package: qstash-python
Upstash Python QStash SDKQStashis an HTTP based messaging and scheduling solution for serverless and edge runtimes.QStash DocumentationUsageYou can get your QStash token from theUpstash Console.Publish a JSON messagefromupstash_qstashimportClientclient=Client("QSTASH_TOKEN")client.publish_json({"url":"https://my-api...","body":{"hello":"world"},"headers":{"test-header":"test-value",},})Create a scheduled messagefromupstash_qstashimportClientclient=Client("QSTASH_TOKEN")schedules=client.schedules()schedules.create({"destination":"https://my-api...","cron":"*/5 * * * *",})Receiving messagesfromupstash_qstashimportClient# Keys available from the QStash consolereceiver=Receiver({"current_signing_key":"CURRENT_SIGNING_KEY","next_signing_key":"NEXT_SIGNING_KEY",})verified=receiver.verify({"signature":req.headers["Upstash-Signature"],"body":req.body,"url":"https://my-api...",# Optional})Additional configurationfromupstash_qstashimportClientclient=Client("QSTASH_TOKEN")# Create a client with a custom retry configuration. This is# for sending messages to QStash, not for sending messages to# your endpoints.# The default configuration is:# {#   "attempts": 6,#   "backoff": lambda retry_count: math.exp(retry_count) * 50,# }client=Client("QSTASH_TOKEN",{"attempts":2,"backoff":lambdaretry_count:(2**retry_count)*20,})# Create Topictopics=client.topics()topics.upsert_or_add_endpoints("my-topic",[{"name":"endpoint1","url":"https://example.com"},{"name":"endpoint2","url":"https://somewhere-else.com"}])# Publish to Topicclient.publish_json({"topic":"my-topic","body":{"key":"value"},# Retry sending message to API 3 times# https://upstash.com/docs/qstash/features/retry"retries":3,# Schedule message to be sent 4 seconds from now"delay":4,# When message is sent, send a request to this URL# https://upstash.com/docs/qstash/features/callbacks"callback":"https://my-api.com/callback",# When message fails to send, send a request to this URL"failure_callback":"https://my-api.com/failure_callback",# Headers to forward to the endpoint"headers":{"test-header":"test-value",},# Enable content-based deduplication# https://upstash.com/docs/qstash/features/deduplication#content-based-deduplication"content_based_deduplication":True,})Additional methods are available for managing topics, schedules, and messages. See the examples folder for more.DevelopmentClone the repositoryInstallPoetryInstall dependencies withpoetry installCreate a .env file withcp .env.example .envand fill in theQSTASH_TOKENRun tests withpoetry run pytestand examples withpython3 examples/<example>.pyFormat withpoetry run black .
Package: qstat
The sungrid job submission framework known as`qsub`is a powerful tool to distribute your workload over many machines in parallel. To check the status of the jobs in the queue there is`qstat`which can print a human readable status table on the command line. Such status can be useful to keep track of your submitted compute jobs to e.g. prevent duplicate submission.This python qstat wrapper parses the jobs listed in`qstat-xml`into a list of dictionaries.Install with$ pip install qstatUsageGet python dictionaries descibing your`qsub`jobs.fromqstatimportqstatqueue_info,job_info=qstat()queue_info[13]{'@state':'running','JAT_prio':'0.55008','JAT_start_time':'2017-09-04T16:22:50','JB_job_number':'6384796','JB_name':'phs_obs_20120102_001','JB_owner':'relleums','queue_name':'test@isdc-cn11.astro.unige.ch','slots':'1','state':'r'}Add both`queue_info`and`job_info`to have one list of both running and waiting jobs:fromqstatimportqstatqueue_info,job_info=qstat()all_jobs=queue_info+job_infoforjobinall_jobs:print(job['JB_name'],'is',job['@state'])my_job_001 is running
my_job_002 is running
my_job_003 is runningor combine with e.g. with pandas DataFramefromqstatimportqstatq,j=qstat()importpandasaspddf=pd.DataFrame(q+j)df.tail()@state JAT_prio JAT_start_time JB_job_number               JB_name  \
190  pending  0.00000            NaN       6384973  phs_obs_20160102_002
191  pending  0.00000            NaN       6384974  phs_obs_20160201_001
192  pending  0.00000            NaN       6384975  phs_obs_20160201_002
193  pending  0.00000            NaN       6384976  phs_obs_20160202_001
194  pending  0.00000            NaN       6384977  phs_obs_20160202_002

     JB_owner   JB_submission_time queue_name slots state
190  relleums  2017-09-04T16:22:51       None     1    qw
191  relleums  2017-09-04T16:22:51       None     1    qw
192  relleums  2017-09-04T16:22:51       None     1    qw
193  relleums  2017-09-04T16:22:51       None     1    qw
194  relleums  2017-09-04T16:22:51       None     1    qw
Package: qstatistic
==========qstatistic==========.. image:: https://img.shields.io/pypi/v/qstatistic.svg:target: https://pypi.python.org/pypi/qstatistic.. image:: https://img.shields.io/travis/yan-duarte/qstatistic.svg:target: https://travis-ci.org/yan-duarte/qstatistic.. image:: https://readthedocs.org/projects/qstatistic/badge/?version=latest:target: https://qstatistic.readthedocs.io/en/latest/?badge=latest:alt: Documentation Status.. image:: https://pyup.io/repos/github/yan-duarte/qstatistic/shield.svg:target: https://pyup.io/repos/github/yan-duarte/qstatistic/:alt: UpdatesPython Boilerplate contains all the boilerplate you need to create a Python package.* Free software: GNU General Public License v3* Documentation: https://qstatistic.readthedocs.io.Features--------* TODOCredits---------This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template... _Cookiecutter: https://github.com/audreyr/cookiecutter.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage=======History=======0.1.0.2 (2017-09-03)------------------* qSigmoid now accept a numpy array as input.* Made some tests for qSigmoid.0.1.0.1 (2017-08-31)------------------* First release on PyPI.
Package: qstock
qstock由“Python金融量化”公众号开发，试图打造成个人量化投研分析开源库，目前包括数据获取（data）、可视化(plot)、选股(stock)和量化回测（backtest）四个模块。其中数据模块（data）数据来源于东方财富网、同花顺、新浪财经等网上公开数据，数据爬虫部分参考了现有金融数据包tushare、akshare和efinance。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口。可视化模块基于plotly.express和pyecharts包，为用户提供基于web的交互图形简单操作接口；选股模块提供了同花顺的技术选股和公众号策略选股，包括RPS、MM趋势、财务指标、资金流模型等，回测模块为大家提供向量化（基于pandas）和基于事件驱动的基本框架和模型。
qstock目前在pypi官网上发布，开源第一版本为1.1.0，目前更新至1.3.4.读者直接“pip install qstock ”安装，或通过’pip install –upgrade qstock’进行更新。GitHub地址：https://github.com/tkfy920/qstock。目前部分策略选股和策略回测功能仅供知识星球会员使用，会员可在知识星球置顶帖子上上获取qstock离线安装包。相关教程：【qstock开源了】数据篇之行情交易数据(https://mp.weixin.qq.com/s/p1lEsBVhrm5ej3YZl0BhOw)
【qstock数据篇】行业概念板块与资金流(https://mp.weixin.qq.com/s/hj4yuqFDBidAeSRucz6TwQ)
【qstock量化】数据篇之股票基本面数据(https://mp.weixin.qq.com/s/XznS8hFMEa47x1IElZXJaA)
【qstock量化】数据篇之宏观指标和财经新闻文本(https://mp.weixin.qq.com/s/vq7BJUCdHMkcgJYjsErpYQ)
【qstock量化】动态交互数据可视化(https://mp.weixin.qq.com/s/zmY4gsPDQ6xDDpC-fVBUPg)更多干货请关注微信公众号：Python金融量化
Package: qstylizer
InstallationpipinstallqstylizerDocumentationRead the Docs.Introductionqstylizeris a python package designed to help with the construction of
PyQt/PySide stylesheets.importPyQt5.QtWidgetsimportqstylizer.stylecss=qstylizer.style.StyleSheet()css.setValues(backgroundColor="green",color="#F0F0F0",marginLeft="2px")css.QToolButton.setValues(border="1px transparent lightblue",borderRadius="3px",margin="1px",padding="3px")css.QToolButton.menuButton.pressed.setValues(border="1px solid #333333",padding="5px",backgroundColor="#333333")# The following is also valid and is equivalent to the statement above.css["QToolButton::menu-button:pressed"].setValues(**{"border":"1px solid #333333","padding":"5px","background-color":"#333333",})css.QCheckBox.disabled.backgroundColor.setValue("#797979")widget=PyQt5.QtWidgets.QWidget()widget.setStyleSheet(css.toString())The stylesheet generated above looks like this when passed to setStyleSheet():* {
    color: #F0F0F0;
    margin-left: 2px;
    background-color: green;
}
QToolButton {
    border-radius: 3px;
    padding: 3px;
    border: 1px transparent lightblue;
    margin: 1px;
}
QToolButton::menu-button:pressed {
    padding: 5px;
    border: 1px solid #333333;
    background-color: #333333;
}
QCheckBox:disabled {
    background-color: #797979;
}The true power comes from parsing an existing stylesheet and tweaking individual
property values.importqstylizer.parsercss=qstylizer.parser.parse("""
    QToolButton::menu-button:pressed {
        padding: 5px;
        border: 1px solid #333333;
        background-color: #333333;
    }
    QCheckBox:disabled {
        background-color: #797979;
    }
    """)css.QToolButton.menuButton.pressed.padding.setValue("10px")css.QCheckBox.disabled.backgroundColor.setValue("#222222")print(css.toString())Output:QToolButton::menu-button:pressed {
    padding: 10px;
    border: 1px solid #333333;
    background-color: #333333;
}
QCheckBox:disabled {
    background-color: #222222;
}LicenseMIT LicenseCopyright (c) 2018 Brett LambrightPermission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Package: qsubr
qsubr==========version 0.2A quick qsub job submission programqsubrusage:Themissingqsubcommand[-h][--clusterCLUSTER][--queueQUEUE][--accountACCOUNT][--nameNAME][--memMEM][--nodesNODES][--threadsTHREADS][--logLOG][--debug]commandpositionalarguments:commandAquotedstringofcommands

optionalarguments:-h,--helpshowthishelpmessageandexit--clusterCLUSTER,-cCLUSTERclustersettings--queueQUEUE,-qQUEUEqueue--accountACCOUNT,-AACCOUNTaccount_string--nameNAME,-NNAMEname--memMEM,-gbMEMmemoryingigabytes--nodesNODES,-nNODESnodes--threadsTHREADS,-tTHREADSthreads--logLOG,-lLOGlogfilename--debug,-dToprintcommands(Fortestingflow).OPTIONALAcknowledgementsWritten by Scott Furlan.
Package: qsubwt
Simple wrapper for sge qsub which provides the functionality of the "-sync" optionpython requires: >=3.5Installgit repo (for recommend)pip install git+https://github.com/yodeng/qsubwt.gitPypipip install qsubwt -UHelp$ qsubwt -h 
Simple wrapper for sge qsub which provides the functionality of the "-sync" option.

Usage:
    qsubwt [qsub options] script.sh

Version: xxx
Author: Deng Yong
Author-email: yodeng@tju.edu.cn
Home-page: https://github.com/yodeng/qsubwt.git
Package: qsymm
QsymmSymmetry finder and symmetric Hamiltonian generatorqsymmis anopen-sourcePython library that makes symmetry analysis simple.It automatically generates model Hamiltonians from symmetry constraints
and finds the full symmetry group of your Hamiltonian.Check out theintroductory tutorialto see examples of how to useqsymm.Implemented algorithmsThe two core concepts inqsymmareHamiltonian families(Hamiltonians that may depend on
free parameters) andsymmetries. We provide powerful classes to handle these:Modelis used to store symbolic Hamiltonians that may depend on momenta and other free parameters.
We usesympyfor symbolic manipulation, but our implementation utilizesnumpyarrays for
efficient calculations with matrix valued functions.PointGroupElementandContinuousGroupGeneratorare used to store symmetry operators.
Besides the ability to combine symmetries, they can also be applied to aModelto transform it.We implement algorithms that form a two-way connection between Hamiltonian families and symmetries.Symmetry finding is handled bysymmetries, it takes aModelas input and finds all of its symmetries,
including conserved quantities, time reversal, particle-hole, and spatial rotation symmetries.
See thesymmetry finder tutorialand thekekule tutorialfor detailed examples.continuum_hamiltonianandbloch_familyare used to generatek.por lattice Hamiltonians
from symmetry constraints. See thek-dot-p generator tutorial,
theBloch generator tutorialand thekekule tutorialfor detailed examples.Installationqsymmworks with Python 3.5 and is available on PyPI:pipinstallqsymmSome of the example notebooks also requireKwant.DocumentationQsymm's documentation is hosted onRead the DocsCitingCheck outCITING.mdfor instructions on how to cite Qsymm in your publications.Developmentqsymmis onGitlab, visit there if you would
like to to contribute, report issues, or get the latest development version.
Package: qsync-control
A Python library for operating QMotion blinds controlled a QSync device on the local network. The program is written in Python 3. Network protocol dissection can be found in the comments within the qsync_control.py file. Protocol details are inferred from Wireshark monitoring of the network traffic between the QMotion QSync iPhone app and the QSync device.Usage examples can be found at:https://github.com/exitexit/qsync-control
Package: qsys
Python QSYS QRC WrapperControl QSC QSYS Core devices with pythonToDoFlaskify...Document, document, documentUseFor each QSC Core on the network instantiate a "Core" classWhen adding control objects they will "cast" themselves to the parent core classThe parent Core class instance is required as keyword arg "parent" when creating control objects#!/usr/bin/python3importtimefromqsys.classesimportCore,Control,ChangeGroup#returns epoch timefromqsys.helpersimportepochdefmain():#See qsys.py for parameters in Core class#The initiail EngineStatus response parameters from the device will get added to Core.__dict__#You can pass "port" as well, but it defaults to 1710myCore=Core(Name='myCore',User='',Password='',ip='192.168.61.2')#Open the socket,creates "listen" and "keepalive" threadsmyCore.start()#ValueType can be a list of potential value types [int,float] or a single type "str" etc#This object is assumed to be a "gain" control object, so we can pass [int,float]gainControlObject=Control(parent=myCore,Name='namedControlInQsysDesigner',ValueType=[int,float])#To constantly monitor the state of your object use a ChangeGroup#You need to a ChangeGroup instance to add control objects and set polling rates#Parameters that are capitalize are that way because of the QRC parameter protocol#Id in this case is just the name of the ChangeGroupmyChangeGroup=ChangeGroup(parent=myCore,Id='myChangeGroup')myChangeGroup.AddControl(gainControlObject)#Allow the socket time to connect and parse the initial responsestime.sleep(2)#Set the change group auto poll rate#This rate is fast, your mileage may varymyChangeGroup.AutoPoll(Rate=0.1)#Value = value to set object to#TransId = QRC id parameter for transaction IDgainControlObject.set(Value=10,TransId=epoch())whileTrue:print(gainControlObject.state)time.sleep(1)if__name__=='__main__':main()NotesIn development, versions will change rapidly. This version doesn't do much yet.. stand byReferenceshttps://q-syshelp.qsc.com/Content/External_Control/Q-Sys_Remote_Control/QRC.htm
Package: qt3rfsynthcontrol
Controller for Windfreak SynthHD v2 RF GeneratorHelper code to controlWindfreak's SynthHD RF generator.Installationpip install qt3rfsynthcontrolUsageDetermine the portimportqt3rfsynthcontrolqt3rfsynthcontrol.discover_devices()Will return a list of ports and information about devices connected to those ports.
For example[['COM3','Intel(R) Active Management Technology - SOL (COM3)','PCI\\VEN_8086&DEV_43E3&SUBSYS_0A541028&REV_11\\3&11583659&1&B3'],['COM5','USB Serial Device (COM5)','USB VID:PID=0483:A3E5 SER=206A36705430 LOCATION=1-2:x.0'],['COM6','USB Serial Device (COM6)','USB VID:PID=04D8:000A SER= LOCATION=1-8:x.0'],['COM7','USB Serial Device (COM7)','USB VID:PID=239A:8014 SER=3B0D07C25831555020312E341A3214FF LOCATION=1-6:x.0']]It is certainly not obvious to which USB port the Windfreak is connected. However,
using the Windows Task Manager, as well as trial and error, should eventually
reveal the correct serial port to use.Connection to SynthHDrf_synth=qt3rfsynthcontrol.QT3SynthHD('COM5')Hardware Inforf_synth.hw_info()Current Signal Statusrf_synth.current_status()Set Fixed Frequencychannel_A=0channel_B=1rf_synth.set_channel_fixed_output(channel_A,power=-5.0,frequency=2870e6)Set Up For Frequency ScanFrequency scan can either be triggered externally (using the Quantum Composer
Sapphire pulser, or other), or can run independent of any external control.channel_A=0channel_B=1rf_synth.set_frequency_sweep(channel_A,power=-5.0,frequency_low=2820e6,frequency_high=2920e6,n_steps=101,trigger_mode='single frequency step',frequency_sample_time=0.100)See the function's documentation for further detailshelp(rf_synth.set_frequency_sweep)Turn RF ON/OFFThe RF generation can be turned on and off withchannel_A=0channel_B=1rf_synth.rf_on(channel_A)rf_sythh.rf_off(channel_A)Windfreak.SynthHDIf you wish to use thewindfreak-pythonSynthHD object instance directly, you
can obtain it from the propertySynthHD. Usage ofwindfreak-python is documented here.windfreak_synthhd=rf_synth.SynthHD()print(windfreak_synthhd[0].power)print(windfreak_synthhd[0].frequency)The documentation is a little sparse, however. The full set of commands are found inthe codethe programming manualIt can take a little effort to match the python API with the description in the manual as
some of thewindfreak-pythonAPI functions do not exactly match the function name in the manual.
For examplesweep_singleinwindfreak-pythonis calledsweep_runorrun_sweepin the programming manual.LICENSELICENCE
Package: qt4a
QT4AQT4A (Quick Test for Android) is a QTA test automation driver for Android application.FeaturesSupport most versions of Android OS from 2.3 to 8.1Multiple devices can be used simultaneously in a testSupport testing multi-process application, and multiple application can be tested simultaneouslySupport testting code obfuscated applicationSupport testing with custom controlsSupport non-root devicesQT4A should be used withQTAF, please check it first.LinksDemo ProjectUsage DocumentDesign DocumentAndroidUISpy ToolQT4A (Quick Test for Android)，基于QTA提供面向Android应用的UI测试自动化测试解决方案。特性介绍支持Android 2.3 - 8.1版本支持多设备协同测试支持跨进程、跨应用测试支持进行过控件混淆的安装包支持自定义（自绘）控件支持非root设备QT4A需要和QTAF一起使用，请先参考QTAF的使用链接Demo项目代码使用文档设计文档AndroidUISpy工具欢迎加入QQ群（432699528）交流使用和反馈
Package: qt4c
QT4CQT4C (Quick Test for Client) is a QTA test automation driver for Win32 client application.FeaturesPowerful UI driver, support Windows native controls, Web controls, Accessibility controlsWriting maintainable functional tests with QTA QPath technology and QTA UI frameworkQT4C should be used withQTAF, please check it first.Get StartedCheck out ourUsage Documentto get going with QT4C. There is alsosample codethat shows how to run testcase with QT4C.AnatomyIf you are interested in anatomy of QT4C, theDesign Documentmay be useful to you.QT4C (Quick Test for Client)，基于QTA提供面向Win32应用的UI测试自动化测试框架。特性强大UI驱动引擎支持，Windows Native控件、Web控件、Accessibility控件基于QPath技术和QTA UI框架，降低产品变化的脚本维护投入QT4C需要和QTAF一起使用，请先参考QTAF的使用入门指南请查看我们的使用文档以便您快速上手QT4C，同时可以参考我们的示例代码。框架原理如果你对QT4C的实现原理感兴趣，可以参考我们的设计文档。欢迎加入QQ群（432699528）交流使用和反馈
Package: qt4_gengui
A Generic Gui Built With pyqt4. Used As Starting Point For New GUI Apps.See the Code at:https://github.com/sonofeft/Qt4_GenGUISee the Docs at:http://qt4_gengui.readthedocs.org/en/latest/See PyPI page at:https://pypi.python.org/pypi/qt4_genguiThis generic GUI places a main page, menu, toolbar, statusbar and sphinx doc directory.
Modify this starting point to suit your projets’ needs.
Package: qt4i
QT4iQT4i (Quick Test for iOS) is a QTA test automation driver for iOS application.FeaturesEasy to use, only Apple developer certificate is needed, no jailbreak or test stub is requiredSupport native, web and custom controls with AccessibilitySupport iOS device and simulator, and multiple devices can be used simultaneously in a testLow maintenance costs with QTA UI test automation frameworkQT4i should be used withQTAF, please check it first.Get StartedCheck out ourUsage Documentto get going with QT4i. There is alsosample codethat shows how to run testcase with QT4i.AnatomyIf you are interested in anatomy of QT4i, theDesign Documentmay be useful to you.QT4i(Quick Test for iOS)，基于QTA提供面向iOS应用的UI测试自动化测试解决方案。主要特性轻松易用——无需越狱，无需插桩，只要是开发者证书编译的版本即可进行测试强大引擎——支持iOS Native控件、webview控件和自定义控件平台支持——全面兼容iOS真机和模拟器，基于分布式技术，高效并发执行测试高效维护——基于QPath技术和QTAFUI框架，降低产品变化的脚本维护投入QT4i需要和QTAF一起使用，请先参考QTAF的使用入门指南请查看我们的使用文档以便您快速上手QT4i，同时可以参考我们的示例代码。框架原理如果你对QT4i的实现原理感兴趣，可以参考我们的设计文档。欢迎加入QQ群（432699528）交流使用和反馈
Package: qt4reactor
Qt4ReactorUsing the QtReactor-------------------Before running / importing any other Twisted code, invoke:::app = QApplication(sys.argv) # your code to init QtCorefrom twisted.application import reactorsreactors.installReactor('pyqt4')or::app = QApplication(sys.argv) # your code to init QtCorefrom twisted.application import reactorsreactors.installReactor('pyside4')alternatively (gui example):::app = PyQt4.QtGui(sys.argv) # your code to init QtGuifrom qtreactor import pyqt4reactorpyqt4reactor.install()Testing~~~~~~~::trial --reactor=pyqt4 [twisted] [twisted.test] [twisted.test.test_internet]Testing with a Gui~~~~~~~~~~~~~~~~~~Twisted trial can be run for a Gui test using gtrial. Run Trial in thesame directory as bin/gtrial and it pops up a trivial gui... hit thebuton and it all runs the same... don't use the --reactor option whencalling gtrial... but all the other options appear to work.::cp gtrial <test-directory>cd <test-directory> && trialIf you're writing a conventional Qt application and just want twisted asan addon, you can get that by calling reactor.runReturn() instead ofrun(). This call needs to occur after your installation of of thereactor and after QApplication.exec\_() (or QCoreApplication.exec\_()whichever you are using.reactor.run() will also work as expected in a typical twistedapplicationNote that if a QApplication or QCoreApplication instance isn'tconstructed prior to calling reactor run, an internally ownedQCoreApplication is created and destroyed. This won't work if you callrunReturn instead of run unless you take responsibility for destroyingQCoreApplication yourself...However, most users want this reactor to do gui stuff so this shouldn'tbe an issue.Performance impact of Qt has been reduced by minimizing use of signalingwhich is expensive.Examples / tests in ghtTests
Package: qt5-cef
version: 1.1.7

sth tips(mac):
1, cefpython3== version 57.0, python version to use the version 3.7, 3.7 version is not supported.
cefpython3==66.0. If the mac os version is less than 11(big sur), you need to enable the external_message_pump parameter. Otherwise, the page cannot respond to the event loop properly.
3, cefpython3==66.0 version, if the native html select tag element appears in the page, after clicking will produce a flash back phenomenon.
4. For mac os packaging, use the pyinstaller package tool (pyinstaller version is 4.3).Version: 1.1.8 / 1.1.9 / 1.1.10

sth tips:
1. When the embedded page is cross-domain, the request request is blocked through CEF
2. WebRequestClient OnDownloadData() accepted byte as the data type, but actually received string as the data type. Write to byte before buffering; otherwise, the output parameter is not fully displayed
Package: qt5-levelmeter
Level Meter (VU Meter) for QT5Installation:From source:git clone https://gitlab.com/t-5/python3-qt5-levelmeter.git
cd python3-qt5-levelmeter
pip3 install .Debian Package:I have a prebuilt debian package for this module.
Please refer to the pagehttps://t-5.eu/hp/Software/Debian%20repository/to setup the repo.
After the repo is setup you can install the package by issueingapt install python3-qt5-levelmeterin a shell.Usage:Usage:
from qt5_levelmeter import QLevelMetermeter = QLevelMeter(parent)call periodically:
meter.levelChanged(levelInDb)