Saravanan666/pypi-org huggingface dataset:
Package: qrcode-term
qrcode_termQR code generator for terminal outputScreenshotFrom a terminal:CLI> python src/qrcode_term/qrcode_term.py
███████████████████████████
███▀▀▀▀▀▀▀████▀▀█▀▀▀▀▀▀▀███
███ █▀▀▀█ ██▄▀█ █ █▀▀▀█ ███
███ █   █ ███ ▀▀█ █   █ ███
███ ▀▀▀▀▀ █ █▀█▀█ ▀▀▀▀▀ ███
███▀██▀█▀▀█▀█ ▀▀▀█▀████████
███▄▄ ▄▀▄▀▀▀▄▄ ██▄ ▄▀▀▄ ███
████▄██▀▄▀   ▀▀▄▀▄▀ ▄█▄▄███
███▀▀▀▀▀▀▀█▄█▀ ▀█▀▀▀▀ ▀████
███ █▀▀▀█ █▄ ▄█▀▀█▄███▄████
███ █   █ █▄ ▀█ █▀▄ ▄ ▄ ███
███ ▀▀▀▀▀ █▀█ ▄▀▄▀▀█▀█▀████
███████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Hello world!

> python src/qrcode_term/qrcode_term.py --data "mydata" -f5
███████████████████████████████
███████████████████████████████
█████▀▀▀▀▀▀▀██▀████▀▀▀▀▀▀▀█████
█████ █▀▀▀█ █▄  █ █ █▀▀▀█ █████
█████ █   █ █▀▀▄▀▀█ █   █ █████
█████ ▀▀▀▀▀ █▀▄▀▄▀█ ▀▀▀▀▀ █████
█████▀█▀█▀█▀██▀██▀███▀██▀██████
██████ ▀▀  ▀█  █ █ ▀ █  ▀ █████
█████ ▄█▄▀▄▀ ▀█▄ ▄ ▀ ▄██▀██████
█████▀▀▀▀▀▀▀█▄▄ █▀█▄▄▀█▀  █████
█████ █▀▀▀█ █▀█ █▀█ █▀██  █████
█████ █   █ █▀█▄ █ ▀   ▀▄▀█████
█████ ▀▀▀▀▀ █▀ ▀ ▄ ▀ ▀▀█ ▀█████
███████████████████████████████
███████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
mydata

> python src/qrcode_term/qrcode_term.py --data "mydata 2" -f3 -i
                           
   ▄▄▄▄▄▄▄ ▄ ▄▄  ▄▄▄▄▄▄▄   
   █ ▄▄▄ █ ██▀█▀ █ ▄▄▄ █   
   █ ███ █ ▄▀▀▀▄ █ ███ █   
   █▄▄▄▄▄█ ▄ ▄▀█ █▄▄▄▄▄█   
   ▄  ▄▄▄▄▄▄██▀█▄  ▄ ▄▄▄   
    ▀▄▄█▀▄ ▄▀█ ▀ ▀█  ▄█▄   
   ▀▄▄ ▀▀▄▄▄▀ ▀ ▄▄▄█▄▀▀    
   ▄▄▄▄▄▄▄ █  ▀█▄▄▄█▀█▀    
   █ ▄▄▄ █ ██▀██▀▄█▀█▀ ▀   
   █ ███ █ ▀ █▀▀ ▄ ▄▀█▄▄   
   █▄▄▄▄▄█ ▄▀▄▄ ▀▀ ▄█▀▀▀   
                           
                           
mydata 2

> python src/qrcode_term/qrcode_term.py --data "mydata 3" -f10 -n
█████████████████████████████████████████
█████████████████████████████████████████
█████████████████████████████████████████
█████████████████████████████████████████
█████████████████████████████████████████
██████████ ▄▄▄▄▄ ██▄ ▀ █ ▄▄▄▄▄ ██████████
██████████ █   █ █ ▄ █▀█ █   █ ██████████
██████████ █▄▄▄█ █  ▄▄ █ █▄▄▄█ ██████████
██████████▄▄▄▄▄▄▄█ ▀▄▀ █▄▄▄▄▄▄▄██████████
██████████▄█▄▄▄▄▄█▀▄ █ █▄▄ ▄▄▀▀██████████
██████████▄ ▀  ▀▄▀█ ▄▄█▄▄ █   ███████████
██████████████▄▄▄█ █  ▀▀▀ ▀▀▀▄ ██████████
██████████ ▄▄▄▄▄ █▀▄▄▀ ▀ ▄█▀ ▄███████████
██████████ █   █ █ ▀██ ██ ▀█▀█▄██████████
██████████ █▄▄▄█ █▄▄▄▄█▄█▀█  ████████████
██████████▄▄▄▄▄▄▄█▄██▄█▄███▄█▄███████████
█████████████████████████████████████████
█████████████████████████████████████████
█████████████████████████████████████████
█████████████████████████████████████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
mydata 3APIExamples:from qrcode_term import qrcode_string

a = qrcode_string("Is there anybody out there?")
b = qrcode_string("It's just another brick in the wall", frame_width=1)
c = qrcode_string("Vera! Vera!", version=5, inverse=True, frame_width=5, ansi_white=False)

print(a)
print(b)
print(c)
Package: qrcodeutil
QR Code Decoder Python LibraryTheQR Code Decoder Python Libraryis a pure Python implementation of QR code decoding.The few existing Python implementations, such asqrtools, actually depends on other libraries (e.g.,Zbar), which your grandmother won't be able to install the same way on Windows, Mac, and Linux, in just one click, for sure. And you should consider most of the users, and even your pairs, like your grandmother.This Python library is not intended to be used for real-time QR code decoding. It takes a few seconds per image.
Package: qrcode-utils
qrcode_utilsEste pacote permite gerar um código do tipo imagem .png, QR CODE a partir de uma string fornecida pelo usuário, como também decodificar o codigo gerado através do arquivo de imagem fornecido.Instalação:pip install qrcode_utilsInstruções de uso:Primeiramente precisa instalar as bibliotecas e importa a classe Qr do módulo QrUtilitario.Qr
Em seguida, definir uma palavra (string de até 4296 caracteres) como entrada, que será transformada em QR CODE.
Para a decodificação, a entrada será um arquivo de imagem do tipo QR CODE, que será lida e decodificada em string.Requerimentos de bibliotecasPrincipais bibliotecas instaladas para que o pacote execute corretamente.opencv-pythonqrcodenumpyArquivo de testeO arquivo de teste.py (main.py) deve ser configurado da seguinte forma:from QrUtilitario.Qr import Qr

palavra = "Suco de cevadiss, é um leite divinis, qui tem lupuliz, matis, aguis e fermentis"

dado = Qr.gerar_qr(palavra)

Qr.ler_imagem("meu_qr_code.png")
Package: qrcode-xcolor
QRCode XColorNote: This does not work with the qrcode version 7.3.1 in pypi. pypi will not allow git sources in the setup.py requirments so mush be manually installedInstall qrcode from master branchpipinstallgit+https://github.com/lincolnloop/python-qrcode.git@8a37658d68dae463479ee88e96ee3f1f53a16f54This library recreates a few of themoduledrawersclasses already found inhttps://github.com/lincolnloop/python-qrcode.This was done to greatly speed up the generation of creating colored qrcodes, as well as supporting for different colors and styles for the location marker in the corners.Using these custom classes you do lose support for the full features of thecolor_maskargument in the originalQRCodelibrary like having the colors be a gradient across the qrcode.I chose for speed over having that feature with still getting full color and transparency support of the qrcode.All supported module drawers:fromqrcode_xcolorimport(XStyledPilImage,XSquareModuleDrawer,XGappedSquareModuleDrawer,XCircleModuleDrawer,XRoundedModuleDrawer,XVerticalBarsDrawer,XHorizontalBarsDrawer)Here are some examples of the speed difference:importtimeimportqrcodefromqrcode.image.styledpilimportStyledPilImagefromqrcode.image.styles.moduledrawersimportGappedSquareModuleDrawer,RoundedModuleDrawerfromqrcode.image.styles.colormasksimportSolidFillColorMaskfromqrcode_xcolorimportXStyledPilImage,XGappedSquareModuleDrawer,XRoundedModuleDrawerst=time.time()qr=qrcode.QRCode()qr.add_data("https://example.com")img=qr.make_image(image_factory=StyledPilImage,color_mask=SolidFillColorMask(front_color=(59,89,152),back_color=(255,255,255),),module_drawer=GappedSquareModuleDrawer(),eye_drawer=RoundedModuleDrawer(),embeded_image_path='docs/gitlab.png',)img.save("qrcode_color_mask.png")print(f"qrcode color_mask:{time.time()-st:.4f}s")st=time.time()qr=qrcode.QRCode()qr.add_data("https://example.com")# The 4th value in all the colors is the opacity the color should use (0=clear <--> 255=solid)img=qr.make_image(# Custom image factoryimage_factory=XStyledPilImage,back_color=(255,255,255,255),# Background color with opacity supportmodule_drawer=XGappedSquareModuleDrawer(front_color=(59,89,152,255),),eye_drawer=XRoundedModuleDrawer(front_color=(255,110,0,255),inner_eye_color=(65,14,158,255),# Only valid with the eye_drawer),embeded_image_path='docs/gitlab.png',# Still supports embedding logos in the middle)img.save("qrcode-xcolor.png")print(f"qrcode-xcolor:{time.time()-st:.4f}s")From this test we get the results (exact timings will vary but the difference is always there):qrcode color_mask: 0.5071sqrcode-xcolor: 0.0430s
Package: qrconfig
qrconfigCan access dictionary items both as dictionary (like config['field']) and as an attribute (config.field),
recursively: config.field.subfield.subsubfield...
Also supports item assignment to update the configuration in runtime.Usage example:fromqrconfigimportQRYamlConfigconfig=QRYamlConfig('config.yaml')a=config.ab=config['b']config.a=4
Package: qrconsole
QRConsoleA library to display QR codes in console.RequirementsPillow>=7.0.0- Download usingpythonorpython3 -m pip install "Pillow>=7.0.0"InstallationPyPITo get the module through PyPi:pip install qrconsole.GitHub (Pulled Repo)To install the module by pulling the repo:python setup.py install.How to useQRConsole is pretty straight-forward. Provide an image, and it will return a string with the console-ified version.The image provided must be black-and-white. If there are greys, they will be turned into white or black depending on which they are closer to.A good site for creation isthis one, since there is no rounding or styling, just b&w pixels.It is recommended to keep the images as small as possible, since every pixel of the image is two characters in the console. The example image is 65x65 px.UseIn a projectInitializefromqrconsoleimportQRConsoleqr=QRConsole(char="@")# char = The character to use for white in the QR Code. Must have a length of 1.Console-ify imageThere are two ways to do this. The first way is to provide a path to the image:print(qr.consoleify(qr_img="path_to_code.png",resize_factor=1))# `qr_img: str` - The path to the QR Code image.# `resize_factor: float` - How much to shrink/grow the image by (`width/resize_factor`, `height/resize_factor`)And the second way is to provide a Pillow Image object:fromPILimportImageimg=Image.open("path_to_code.png")print(qr.consoleify(qr_img=img,resize_factor=1))# `qr_img: Image` - A Pillow Image object.# `resize_factor: float` - How much to shrink/grow the image by (`width/resize_factor`, `height/resize_factor`)Some libraries (for example theqrcodelibrary) can turn codes into Images natively, so this method would be easier to use to avoid unnecessary file-writing.Throughpython -mIt is also possible to use QRConsole as a command line tool. After installing the package, runpythonorpython3 -m qrconsole <image path> <resize factor (optional)>.
Package: qr-console
qr_consoleThis project is a small console-app builder based onargparsepackage.Usage example:fromqr_consoleimportQRConsole,QRCommandconsole=QRConsole(hello='hello')console.add_command(QRCommand('add',lambdaa,b:print(a+b),'sum 2 integers').add_argument('a',type=int,help='1st arg').add_argument('b',type=int,help='2nd arg'))console.add_command(QRCommand('sub',lambdaa,b:print(a-b),'differ 2 integers').add_argument('-a',type=int,default=0,help='1st arg').add_argument('--value','-v',type=int,help='2nd arg'))console.add_command(QRCommand('one',lambdav,i:print(v+1ifielsev-1),'change value by 1').add_argument('v',type=int).add_argument('-i','--flag',action='store_true',help='set to inc; default is dec'))console.run()Output example:hello
Type'-h'or'--help'togetmoreinfo
Entercommands:
?>-h
usage:PROG[-h]{add,sub,one}...

positionalarguments:{add,sub,one}addsum2integerssubdiffer2integersonechangevalueby1optionalarguments:-h,--helpshowthishelpmessageandexit?>add-h
usage:add[-h]ab

positionalarguments:a1stargb2ndarg

optionalarguments:-h,--helpshowthishelpmessageandexit?>one--help
usage:one[-h][-i]v

positionalarguments:v

optionalarguments:-h,--helpshowthishelpmessageandexit-i,--i,--flagsettoinc;defaultisdec
?>add123?>sub-a=5-v=23?>sub--value=5-5
?>one54?>one-i56?>add
thefollowingargumentsarerequired:a,b
?>sub-b=5unrecognizedarguments:-b=5?>add1a
argumentb:invalidintvalue:'a'?>
Package: qrc-pathlib
qrc_pathlibQt Resource Systemallows to store files
inside binaries and read them by using Qt’s file system abstraction (QFile, QDir etc).This package extendspathlibintroduced in Python 3.4
by implementingPathandPurePathfor QRS:fromqrc_pathlibimportQrcPathQrcPath(':my_resource.svg').read_bytes()withQrcPath(':hello.txt').open()asf:print(f.read())Since QRS is read-only all methods that are supposed to modify files raisePermissionError. Other inapplicable methods
such asstatwill raiseNotImplementedError.
Package: qrdet
QRDetQRDetis a robustQR Detectorbased onYOLOv8.QRDetwill detect & segmentQRcodes even indifficultpositions ortrickyimages. If you are looking for a completeQR Detection+Decodingpipeline, take a look atQReader.InstallationTo installQRDet, simply run:pipinstallqrdetUsageThere is only one function you'll need to call to useQRDet,detect:fromqrdetimportQRDetectorimportcv2detector=QRDetector(model_size='s')image=cv2.imread(filename='resources/qreader_test_image.jpeg')detections=detector.detect(image=image,is_bgr=True)# Draw the detectionsfordetectionindetections:x1,y1,x2,y2=detections['bbox_xyxy']confidence=detections['confidence']segmenation_xy=detections['quadrilateral_xy']cv2.rectangle(image,(x1,y1),(x2,y2),color=(0,255,0),thickness=2)cv2.putText(image,f'{confidence:.2f}',(x1,y1-10),fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=1,color=(0,255,0),thickness=2)# Save the resultscv2.imwrite(filename='resources/qreader_test_image_detections.jpeg',img=image)API ReferenceQReader.detect(image, is_bgr = False, **kwargs)image:np.ndarray|'PIL.Image'|'torch.Tensor'|str.np.ndarrayof shape(H, W, 3),PIL.Image,Tensorof shape(1, 3, H, W), orpath/urlto the image to predict.'screen'for grabbing a screenshot.is_bgr:bool. IfTruethe image is expected to be inBGR. Otherwise, it will be expected to beRGB. Only used when image isnp.ndarrayortorch.tensor. Default:Falselegacy:bool. If sent askwarg, will parse the output to make it identical to 1.x versions. Not Recommended. Default: False.Returns:tuple[dict[str, np.ndarray|float|tuple[float|int, float|int]]]. A tuple of dictionaries containing all the information of every detection. Contains the following keys.KeyValue Desc.Value TypeValue FormconfidenceDetection confidencefloatconf.bbox_xyxyBounding boxnp.ndarray (4)[x1, y1, x2, y2]cxcyCenter of bounding boxtuple[float,float](x, y)whBounding box width and heighttuple[float,float](w, h)polygon_xyPrecise polygon that segments theQRnp.ndarray (N,2)[[x1, y1], [x2, y2], ...]quad_xyFour corners polygon that segments theQRnp.ndarray (4,2)[[x1, y1], ..., [x4, y4]]padded_quad_xyquad_xypadded to fully coverpolygon_xynp.ndarray (4,2)[[x1, y1], ..., [x4, y4]]image_shapeShape of the input imagetuple[float,float](h, w)NOTE:Allnp.ndarrayvalues are of typenp.float32All keys (exceptconfidenceandimage_shape) have a normalized ('n') version. For example,bbox_xyxyrepresents the bbox of the QR in image coordinates [[0., im_w], [0., im_h]], whilebbox_xyxyncontains the same bounding box in normalized coordinates [0., 1.].bbox_xyxy[n]andpolygon_xy[n]are clipped toimage_shape. You can use them for indexing without further managementAcknowledgementsThis library is based on the following projects:YoloV8model forObject Segmentation.QuadrilateralFitterfor fitting 4 corners polygons from noisysegmentation outputs.
Package: qrDocumentIndexer
qrDocumentIndexerA python library for tagging PDF documents with QR codes so that they can be rebuilt into the same document structure after being printed and scanned back.PurposeThis library is intended to be used where documents may be printed and then subsequently scanned back to digital format. Normally
this process would result in the loss of any format structure. The documents may even be scanned back in different orders. This
can be particularly common in the cases where documents being printed are technical drawings and they may be re-ordered for
review or other purposes before being scanned again.This library is intended to store the following information about each page of a PDF in a QR code:FilenamePage numberBookmarks (including nesting)This information can then be used to restructure the documents after scanning. This should even be possible if documents
are scanned into multiple PDFs or image files.Additional metadata that could be included in future could include:PagesizesPaper orientationCurrent StateThe tool in it's current state should be fully functional. It can:Insert QR codes into each page of provided PDFs to allow later sorting;Scan PDFs or image files for QR codes to determine their appropriate order in a document;Reconstitute PDF files based on the order dictated by detected QR codes, recreating the original filenames and orders of the documents.What is missing:There is currently no progress indication. It will finish when it finishes;Currently the QR scanning process is single threaded so it may take some time to complete;There is no preview for the documents so you will have to run the tool for everything to see what you get.How to installInstall with the following command:pip install qrDocumentIndexerZBarThis package relies on the ZBar library. Please see the below guides for ensuring this library is properly installed:OnWindows:No installation is required as it is packaged with the python libraries, but it does have dependancies which if not present can cause errors:If you see an ugly ImportError related withlizbar-64.dll, install thevcredist_x64.exefrom theVisual C++ Redistributable Packages for Visual Studio 2013OnLinux:sudoapt-getinstalllibzbar0OnMac OS X:brewinstallzbar
Package: qredis
QRedisAPython,QtbasedRedisclient user interface.Help wantedOpen to people who want to colaborate.Would like to know which features you would like to havePull requests are welcomeYou can always open an issue saying you want to be part of the teamInstallation$pipinstallqredisRequirementsPython >= 3.5PyQt5
(or in the future PySide)redis-pyUsage$qrediswithnoDBloadedonstartup$qredis$connecttolocalhost:6379,db=0$qredis-p6379$connectwithunixsocket,db=5$qredis-s/tmp/redis.sock-n5AlternativesRESP.app (Formerly RedisDesktopManager)dbgateRedisInsightredis-commanderAn updated list can be foundhereThat's all folks!
Package: qrem
QREM - Quantum Readout Errors MitigationThis package provides a versatile set of tools for the characterization and mitigation of readout noise in NISQ devices. Standard characterization approaches become infeasible with the growing size of a device, since the number of circuits required to perform tomographic reconstruction of a measurement process grows exponentially in the number of qubits. In QREM  we use efficient techniques that circumvent those problems by focusing on reconstructing local properties of the readout noise.You can find article based on initial version of this packagehere - http://arxiv.org/abs/2311.10661and the corresponding code used at the moment of writning the articlehere.Status of developmentThis package is released now as an alpha version, to gather feedback while it undergoes final adjustments prior to the first release. As it is under heavy development, existing functionalities might change, while new functionalities and notebooks are expected to be added in the future.DocumentationCurrent documentation (work in progress) is availablehereIntroductionThe two current main functionalities are:Noise characterizationexperiment designhardware experiment implementation and data processing (on devices supported by qiskit/pyquil)readout noise characterisationlearning of noise modelsNoise mitigationmitigation based on noise model provided by user ( currently available is CN, CTMP is under development)InstallationThe best way to install this package is to use pip (seepypi website):pip install qremThis method will automatically install all required dependecies (seebelow for list of dependecies).DependenciesForqrempackage to work properly, the following libraries should be present (and will install if you install via pip):"numpy >= 1.18.0, < 1.24","scipy >= 1.7.0","tqdm >= 4.46.0","colorama >= 0.4.3","qiskit >= 0.39.4","networkx >= 0.12.0, < 3.0","pandas >= 1.5.0","picos >= 2.4.0","qiskit-braket-provider >= 0.0.3","qutip >= 4.7.1","matplotlib >= 3.6.0","seaborn >= 0.12.0","sympy >= 1.11.0","pyquil >= 3.0.0","pyquil-for-azure-quantum","ipykernel >= 6.1.0","configargparse >= 1.5.0","python-dotenv >= 1.0.0",Optional dependenciesDependecies for visualizations:"manim >= 0.17.2"ReferencesThe workflow of this package is mainly based on works:[1] Filip B. Maciejewski, Zoltán Zimborás, Michał Oszmaniec, "Mitigation of readout noise in near-term quantum devices by classical post-processing based on detector tomography",Quantum 4, 257 (2020)[2] Filip B. Maciejewski, Flavio Baccari, Zoltán Zimborás, Michał Oszmaniec, "Modeling and mitigation of cross-talk effects in readout noise with applications to the Quantum Approximate Optimization Algorithm",Quantum 5, 464 (2021)Further references:[3]. Sergey Bravyi, Sarah Sheldon, Abhinav Kandala, David C. Mckay, Jay M. Gambetta, Mitigating measurement errors in multi-qubit experiments,Phys. Rev. A 103, 042605 (2021)[4]. Flavio Baccari, Christian Gogolin, Peter Wittek, and Antonio Acín, Verifying the output of quantum optimizers with ground-state energy lower bounds,Phys. Rev. Research 2, 043163 (2020)
Package: qrencode-ascii
# pyqrencode
Python wrapper for C qrencode library.### Usage`bash $ python3-c'import qrencode_ascii;print(qrencode_ascii.encode(\'HelloWorld\'))'███████████████████████████▄▄▄▄▄██ ▀ ▄█▄▄▄▄▄██ ██ █   █ █▄ █ ▄█ █   █ ██ ███▄▄▄████▄███▄▄▄█████▄▄▄▄▄▄▄█▀▄▀█▄▄▄▄▄▄▄████▄  █  ▄▄   ▄█▄▀▀█▄▀▀████▄██▄█▄█▀█▄▄█▄▄▄ ▄████▄▄██▄█▄▄▀▄▀▀▄█▄▄█▀▀█████▄▄▄▄▄█ ▀▄ ▀██▄█▄▄██ ██ █   ██▄▀▀██▀▀█▀▀██████▄▄▄███▄▀▄█▄██▄▀▄████▄▄▄▄▄▄▄█▄█▄▄▄██▄███▄▄███████████████████████████`
Package: qrequest
qrequest========Instantly create an API and web interface for SQL queries.# Basic Setup1. Write SQL queries to collect the data users can access. Use :keywords for parameters.2. Run `python qrequest.py setup` to get an sql folder to put your queries and default settings file2. Put these queries in the sql/main directory3. Modify the settings below to specify the database driver (name of the python module) and databsae connection string4. Then run `python qrequest.py run` to get a website which lets users run any of your queries without installing a thing, as well as an API endpoint.The settings file looks like this. You can change the website title, description and the port the site runs on```{"sites": {"main": {"db_connection_string": "<database connection string>","db_driver": "<python module name>"}},"website_description": "Run some queries","website_port_number": 5000,"website_title": "qRequest"}```Users can view queries through the web interface, and download the json or csv formatted query results.The URL format for the json endpoint is```/api/{site_name}/{query_name}.json?{params}```The URL format for the CSV endpoint is```/api/{site_name}/{query_name}.csv?{params}```As an example, if you have a query called example_query.sql with two parameters (param1 and param2),to run the query with param1=1234 and param2="string", go to```/api/main/example_query.sql.csv?param1=1234&param2=string```# Multiple Sitesqrequest supports multiple database connections, which are called sites.To setup qrequest for multiple sites, pass all the site names as arguments to the`setup` command. If none are passed, one site called `main` is created by default.As an example, to setup two sites called `site1` and `site2` run```python qrequest.py setup site1 site2```This will generate the following settings file```{"sites": {"site1": {"db_connection_string": "<database connection string>","db_driver": "<python module name>"},"site2": {"db_connection_string": "<database connection string>","db_driver": "<python module name>"}},"website_description": "Run some queries","website_port_number": 5000,"website_title": "qRequest"}```You can specify different connection strings and database drivers for each site.