Saravanan666/pypi-org huggingface dataset:
Package: zathura
______       ___________                       
___  /______ __  /___  /_____  ______________ _
__  / _  __ `/  __/_  __ \  / / /_  ___/  __ `/
_  /__/ /_/ // /_ _  / / / /_/ /_  /   / /_/ / 
/____/\__,_/ \__/ /_/ /_/\__,_/ /_/    \__,_/ZathuraZathura is a sqlite3 based logger. Currently, you can see your error and debug logs from terminal only. However, I am working on webview. Do keep in mind, you will have to handle the authentication for your own project.How to installpip install zathuraThis will install the latest version on your virtualenvCode Preview1.  You can just import Zathura from ZathuraProject.zathura and call insert_error_log function to start logging your errors right away.from ZathuraProject.zathura import Zathurazathura = Zathura()
zathura.insert_error_log(user_id, error_name, long_error_description)2. View your logs from terminalzathura helpThis will list all the avaiable command for you. Choose from them to see how you want to sort your logs.usage: Zathura COMMAND [args] ...
For example: { Zathura v } will show the current version of this pacakge.
-----------------------------------------------------
-----------------------------------------------------
All commands: 
[[ v ]] : Show the current version of this package
[[ developer ]] : Search based on developers name. You can filter out the result based on date and descending order
[[ debug_origin ]] : Shows debug messages based on point of origin. Point of origin is the class/function from where you are adding a message in sqlite.
[[ error_user ]] : Shows error generated under the given username
[[ all_debug ]] : Shows all debug messages
[[ error_name ]] : Shows error based on a error name.
[[ date ]] : Shows error occurred in between a specific date.
[[ all_error ]] : Shows all error messages
[[ origin ]] : Shows error generated on the given point of origin
[[ mark_resolve ]] : Given an error name and point of origin all errors logged on database, is marked resolved.
[[ delete_debug ]] : Deletes the last seven days of debug mesasges from the database. It is useful if you dont want to clutter the database with unnecessary debug info.
[[ help ]] : Shows all the commands necessary to run this package from terminal
-----------------------------------------------------
-----------------------------------------------------For example to see all error, without sorting you can just typezathura all_errorIt is without doubt that there might be some bugs and improvement for this project. I wrote zathura to help me with my projects. If you face any bugs or want some more modules, please open an issue. If you want to contribute, please clone my project and create a pull request for me.Thank you. IbtehazRun Zathura codebase on your computerClone the project and change your directory into it.pip install -r requirements.txtpip install --upgrade setuptools wheelpython3 setup.py sdist bdist_wheelThis will create a build file for you from the laterst version.pip install .To check on your machine
Package: zato
Zato /zɑːtəʊ/ESB, SOA, API and Cloud Integrations in Python.Zato is a Python-based, open-source integration platform and enterprise service bus that lets you automate,
integrate and orchestrate business systems,
APIs, workflows as well as hardware assets in industries such asairports,defense,health care,telecommunications,
financial services,
government
and more.Learn moreVisithttps://zato.iofor details, including:DownloadsScreenshotsProgramming examples
Package: zato-apitest
zato-apitest is a friendly command line tool for creating beautiful tests of HTTP-based REST, XML and SOAP APIs with as little
hassle as possible.Tests are written in plain English, with no programming needed, and can be trivially easy extended in Python if need be.Note that zato-apitest is meant to test APIs only. It’s doesn’t simulate a browser nor any sort of user interactions. It’s meant
purely for machine-machine API testing.Originally part ofZato- open-source ESB, SOA, REST, APIs and cloud integrations in Python.In addition to HTTP Zato itself supports AMQP, ZeroMQ, WebSphere MQ, including JMS, Redis, FTP, OpenERP, SMTP, IMAP, SQL, Amazon S3,
OpenStack Swift and more so it’s guaranteed zato-apitest will grow support for more protocols and transport layers with time.Here’s a sample test case:Feature: Customer update

Scenario: SOAP customer update

    Given address "http://example.com"
    Given URL path "/xml/customer"
    Given SOAP action "update:cust"
    Given HTTP method "POST"
    Given format "XML"
    Given namespace prefix "cust" of "http://example.com/cust"
    Given request "cust-update.xml"
    Given XPath "//cust:name" in request is "Maria"
    Given XPath "//cust:last-seen" in request is a random date before "2015-03-17" "default"

    When the URL is invoked

    Then XPath "//cust:action/cust:code" is an integer "0"
    And XPath "//cust:action/cust:msg" is "Ok, updated"

    And context is cleaned up

Scenario: REST customer update

    Given address "http://example.com"
    Given URL path "/json/customer"
    Given query string "?id=123"
    Given HTTP method "PUT"
    Given format "JSON"
    Given header "X-Node" "server-test-19"
    Given request "cust-update.json"
    Given JSON Pointer "/name" in request is "Maria"
    Given JSON Pointer "/last-seen" in request is UTC now "default"

    When the URL is invoked

    Then JSON Pointer "/action/code" is an integer "0"
    And JSON Pointer "/action/message" is "Ok, updated"
    And status is "200"
    And header "X-My-Header" is "Cool"More details, including plenty of usage examples, demos and screenshots, areon zato.io.
Package: zato-enclog
Encrypted logger which stores everything using Fernet keys (AES128). Safe to use in environments
that cannot store Personally Identifiable Information (PII) in clear text, such as HIPAA-compliant applications.Comes with a command line tool that is used to decrypt logs, including both open and tail -f functionality.Learn more about Fernet:https://cryptography.io/en/latest/fernet/# stdlib
import logging

# Zato
from zato.enclog import EncryptedLogFormatter, genkey

level = logging.INFO
format = '%(levelname)s - %(message)s'

key = genkey()
formatter = EncryptedLogFormatter(key, format)

handler = logging.StreamHandler()
handler.setFormatter(formatter)

logger = logging.getLogger('')
logger.addHandler(handler)
logger.setLevel(level)

logger.info(b'{"user":"Jane Xi"}')

# Shows the following
INFO - gAAAAABWYa17oiDoSMVjF8JM9DWzB3dtEvenW9laKqgsFl4d4ksbLCkoJzTyrI3nXKYVOcC03dhJ_BwfWlBN3CdGxJZAwMmfUbUzLHkqw2JeTzdgtz0YEGU=
Package: zato-ext-bunch
Bunch is a dictionary that supports attribute-style access, a la JavaScript.>>> b = Bunch()
>>> b.hello = 'world'
>>> b.hello
'world'
>>> b['hello'] += "!"
>>> b.hello
'world!'
>>> b.foo = Bunch(lol=True)
>>> b.foo.lol
True
>>> b.foo is b['foo']
TrueDictionary MethodsA Bunch is a subclass ofdict; it supports all the methods adictdoes:>>> b.keys()
['foo', 'hello']Includingupdate():>>> b.update({ 'ponies': 'are pretty!' }, hello=42)
>>> print repr(b)
Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')As well as iteration:>>> [ (k,b[k]) for k in b ]
[('ponies', 'are pretty!'), ('foo', Bunch(lol=True)), ('hello', 42)]And “splats”:>>> "The {knights} who say {ni}!".format(**Bunch(knights='lolcats', ni='can haz'))
'The lolcats who say can haz!'SerializationBunches happily and transparently serialize to JSON and YAML.>>> b = Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')
>>> import json
>>> json.dumps(b)
'{"ponies": "are pretty!", "foo": {"lol": true}, "hello": 42}'If JSON support is present (jsonorsimplejson),Bunchwill have atoJSON()method which returns the object as a JSON string.If you havePyYAMLinstalled, Bunch attempts to register itself with the various YAML Representers so that Bunches can be transparently dumped and loaded.>>> b = Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')
>>> import yaml
>>> yaml.dump(b)
'!bunch.Bunch\nfoo: !bunch.Bunch {lol: true}\nhello: 42\nponies: are pretty!\n'
>>> yaml.safe_dump(b)
'foo: {lol: true}\nhello: 42\nponies: are pretty!\n'In addition, Bunch instances will have atoYAML()method that returns the YAML string usingyaml.safe_dump(). This method also replaces__str__if present, as I find it far more readable. You can revert back to Python’s default use of__repr__with a simple assignment:Bunch.__str__ = Bunch.__repr__. The Bunch class will also have a static methodBunch.fromYAML(), which loads a Bunch out of a YAML string.Finally, Bunch converts easily and recursively to (unbunchify(),Bunch.toDict()) and from (bunchify(),Bunch.fromDict()) a normaldict, making it easy to cleanly serialize them in other formats.MiscellaneousIt is safe toimport *from this module. You’ll get:Bunch,bunchify, andunbunchify.Ample doctests:$ python -m bunch.test
$ python -m bunch.test -v | tail -n22
1 items had no tests:
    bunch.fromYAML
16 items passed all tests:
   8 tests in bunch
  13 tests in bunch.Bunch
   7 tests in bunch.Bunch.__contains__
   4 tests in bunch.Bunch.__delattr__
   7 tests in bunch.Bunch.__getattr__
   3 tests in bunch.Bunch.__repr__
   5 tests in bunch.Bunch.__setattr__
   2 tests in bunch.Bunch.fromDict
   2 tests in bunch.Bunch.toDict
   5 tests in bunch.bunchify
   2 tests in bunch.from_yaml
   3 tests in bunch.toJSON
   6 tests in bunch.toYAML
   3 tests in bunch.to_yaml
   3 tests in bunch.to_yaml_safe
   4 tests in bunch.unbunchify
77 tests in 17 items.
77 passed and 0 failed.
Test passed.FeedbackOpen a ticket / fork the project onGitHub, or send me an email atdsc@less.ly.
Package: zava
zavaParallel coordinates with Grand Tour for exploratory data visualization of massive and high-dimensional data in Python. If you want a desktop application for use, tryVizApp.GitHubDocumentationPyPiGitterRequirementsAt a minimum, you will need the following packages.python=3.8.3numpy=1.19.2scipy=1.5.2pandas=0.25.3matplotlib=3.3.2If you are generating animation videos, you will also needffmpeginstalled, as that is what matplotlib uses by default to render videos.IssuesYou may get into situations where ffmpeg appears to hang or stall. There are a lot of issues reported with matplotlib and ffmpeg interoperability.Matplotlib + ffmpeg crashes when saving MP4 fileffmpeg hangs when run in backgroundInstallationFrom pypibash pip install zavaFrom sourcepythonsetup.pyinstallCopyrightSoftwareCopyright 2020 One-Off Coder

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.ArtCopyright 2020 Daytchia VangCitation@misc{oneoffcoder_zava_2020,
title={zava, Parallel Coordinates with Grand Tour for TypeScript and Python},
url={https://github.com/oneoffcoder/zava},
author={Jee Vang},
year={2020},
month={Dec}}Sponsor, LovePatreonGitHub
Package: zax
ZAXZAX is a Fallout 2 game manager. Its purpose is to unify and simplify game and mods configuration. It should work with any game based on Fallout 2 engine.InstallationWindowsDownloadzax.exefrom thelatest release pageand launch it.Linux / Mac / otherThere's a x64binaryfor Linux.ZAX is also available in PyPi:pip3installzax
zaxInfoForumsDevelopmentChangelog
Package: zaya
zayais a toolbox for thehttps://zaya.iocommunity.Installpip3 install zayaUsageimport zayaConnectzaya.connect('YourToken')
# https://zaya.io/developers/apiaccount detailszaya.account()urlszaya.create_url('url')
zaya.all_url()
zaya.detail_url(id)
zaya.update_url(id, 'url')
zaya.delete_url(id)domainszaya.all_domain()
zaya.create_domain('domain')
zaya.details_domain(id)
zaya.update_domain(id, 'domain')
zaya.delete_domain(id)subjectszaya.subjects()
zaya.create_subject('name', 'red')
zaya.details_subject(id)
zaya.update_subject(id, 'subject')
zaya.delete_subject(id)statszaya.clicks(id)
zaya.stats(id)
zaya.referrers(id)
zaya.countries(id)
zaya.languages(id)
zaya.browsers(id)
zaya.devices(id)
zaya.os(id)get Information from zayazaya.__version__
zaya.__author__
zaya.__website__
zaya.__documentation__
Package: zazo
zazoA Pluggable Dependency Resolver written in Python. Intended for bringing dependency resolution to pip.MotivationThe motivation for this project is to make it feasible and easy for user-facing package managers written in Python to do proper dependency resolution.This project has grown out of aGSoC Project, which aimed to bring proper dependency resolution to pip. Once this package is ready, work will be done to make pip use this instead of its home-grown solution.DevelopmentThis project uses nox extensively.Documentation is built withnox -s docs.Linting and MyPy checking can be done usingnox -s lintTests are run withnox -s test.Currently, the documentation of this project is non-existent but this shall be rectified once the actual internal details of the package stabilize.
Package: zbar
ZBar Bar Code Reader is an open source software suite for reading bar
codes from various sources, such as video streams, image files and raw
intensity sensors. It supports EAN-13/UPC-A, UPC-E, EAN-8, Code 128,
Code 39, Interleaved 2 of 5 and QR Code.  These are the Python
bindings for the library.Check the ZBar project home page for the latest release, mailing
lists, etc.http://zbar.sourceforge.net/InstallationTo install this module type the following:python setup.py installDependenciesThis module requires the ZBar Bar Code Reader, which may be obtained
from:http://zbar.sourceforge.net/ExamplesTBDCopyright and LicenseLicensed under the GNU Lesser General Public License, version 2.1.http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txtCopyright 2008-2009 (c) Jeff Brown <spadix@users.sourceforge.net>
Package: zbarcam
zbarcamReal time Barcode and QR Code scanner using the camera.
It's built on top ofKivyandpyzbar.How to useSimply import and instanciateZBarCamin your kvlang file and access itssymbolsproperty.#:import ZBarCam kivy_garden.zbarcam.ZBarCam#:import ZBarSymbol pyzbar.pyzbar.ZBarSymbolBoxLayout:orientation:'vertical'ZBarCam:id:zbarcam# optional, by default checks all typescode_types:ZBarSymbol.QRCODE, ZBarSymbol.EAN13Label:size_hint:None, Nonesize:self.texture_size[0], 50text:','.join([str(symbol.data) for symbol in zbarcam.symbols])A full working demo is available insrc/main.py.InstallUbuntuInstall system requirements (Ubuntu 18.04):makesystem_dependenciesInstall zbarcam:pipinstallzbarcamThen import it in your Python code via:fromkivy_garden.zbarcamimportZBarCamAndroidBuild for Android via buildozer, seebuildozer.spec.ContributeTo play with the project, install system dependencies and Python requirements using theMakefile.makeThen verify everything is OK by running tests.maketestmakeuitestTroubleshootingAndroidValueError: Empty module nameMore likely an import issue in your.kvfile.
Try tofrom zbarcam import ZBarCamin yourmain.pyto see the exact error.
It's common to forgetPillowinbuildozer.specrequirementssection.
Package: zbarlight
ZbarLightzbarlightis a simple wrapper for the zbar library. For now, it can read all zbar supported codes. Contributions,
suggestions and pull requests are welcome.zbarlightis hosted on Github at <https://github.com/Polyconseil/zbarlight/>.InstallationYou need to install ZBar Bar Code Reader <http://zbar.sourceforge.net/> and its headers before installingzbarlight.On Debian$apt-getinstalllibzbar0libzbar-dev$pipinstallzbarlight# you can also use setuptools directlyOn Mac OS X$brewinstallzbar$exportLDFLAGS="-L$(brew--prefixzbar)/lib"$exportCFLAGS="-I$(brew--prefixzbar)/include"$pipinstallzbarlightOn WindowsInstruction can be found on <https://gist.github.com/Zephor5/aea563808d80f488310869b69661f330>.How To use ZbarLightfromPILimportImageimportzbarlightfile_path='./tests/fixtures/two_qr_codes.png'withopen(file_path,'rb')asimage_file:image=Image.open(image_file)image.load()codes=zbarlight.scan_codes(['qrcode'],image)print('QR codes:%s'%codes)TroubleshootingIn some casezbarlightwill not be able to detect the 1D or 2D code in an image, one of the known cause is that the
image background color is the same as the foreground color after conversion to grey scale (it’s happen on images with
alpha channel). You can use thecopy_image_on_backgroundfunction to add a background color on your image.fromPILimportImageimportzbarlightfile_path='./tests/fixtures/two_qr_codes.png'withopen(file_path,'rb')asimage_file:image=Image.open(image_file)image.load()new_image=zbarlight.copy_image_on_background(image,color=zbarlight.WHITE)# <<<<<<<<<<<<<<<< Add this line <<<<codes=zbarlight.scan_codes(['qrcode'],new_image)print('QR codes:%s'%codes)Some other cases without known solutions are show in thescan_codes()tests (search for the expected failures). Any
clues on these cases is welcome.
Package: zbar-py
IntroductionAuthor:Zachary Pincuszpincus@gmail.comContributions: Rounak Singhrounaksingh17@gmail.com(example code and
zbar.misc).zbar-py is a module (compatible with both Python 2.7 and 3+) that
provides an interface to thezbarbar-code reading library, which can read most barcode formats as well as
QR codes. Input images must be 2D numpy arrays of type uint8 (i.e. 2D
greyscale images).The zbar library itself packaged along with zbar-py (it’s built as a
python extension), so no external dependencies are required. Building
zbar requires the iconv library to be present, which you almost
certainly have, except if you’re on windows. Then you probably will need
to download or build the iconv DLL.Hereare pre-built 32- and 64-bit binaries for same.The python code is under the MIT license, and zbar itself is licensed
under the GNU LGPL version 2.1.Prerequisites:iconv – c library required for building zbar-py; see abovenumpy – for running zbar-pypygame – for examples using a webcamSimple examples:More sophisticated examples can be found in ‘examples’ directory.Scan for barcodes in a 2D numpy array:importzbarimage=read_image_into_numpy_array(...)# whatever function you use to read an image file into a numpy arrayscanner=zbar.Scanner()results=scanner.scan(image)forresultinresults:print(result.type,result.data,result.quality,result.position)Scan for UPC-A barcodes and perform checksum validity test:importzbarimportzbar.miscimage=read_image_into_numpy_array(...)# get an image into a numpy arrayscanner=zbar.Scanner()results=scanner.scan(image)forresultinresults:ifresult.type=='UPC-A':print(result.data,zbar.misc.upca_is_valid(result.data.decode('ascii')))
Package: z-base-32
z-base-32Thez-base-32is a human-oriented base-32 encoding.RustCrateInstallationcargoaddz-base-32APIThe library exposes two functions with the following signatures and an error type:pubfnencode(input:&[u8])->String;pubfndecode(input:&str)->Result<Vec<u8>,DecodeError>;pubstructDecodeError;Exampleusezbase32::{encode,decode};fnmain(){assert_eq!(encode(b"foo"),"c3zs6".to_string());assert_eq!(Ok(b"foo"),decode("c3zs6".to_string()));assert_eq!(decode(&encode(b"foo")).unwrap(),b"foo")}CLIThis project also provides a CLI utility with a similar interface to the well-knownbase64command.InstallationTo installz-base-32CLI you can build it from source or download prebuild binary fromreleases.cargo install --features cli z-base-32Example$zbase32-hz-base-32: human-oriented base-32 encodingUsage: zbase32 [OPTIONS] [FILE]Arguments:[FILE]  File to encode or decodeOptions:-d, --decode       Decode data-w, --wrap <WRAP>  Wrap encoded lines after COLS character [default: 76]-h, --help         Print help-V, --version      Print versionPythonInstallationThez-base-32package is published atPyPI. Install it using the following command:pip install z-base-32BuildingThis crate can be compiled with the feature flagpythonin which case it produces Python bindings. To build Python wheels usematurin:maturin buildAPIdefencode(input:bytes)->str:defdecode(input:str)->bytes:classDecodeError(Exception):Exampleimportzbase32assertzbase32.encode(b'foo')=='c3zs6'assertzbase32.decode('c3zs6')==b'foo'try:zbase32.decode('invalid@char')exceptzbase32.DecodeErrorase:print(e)Referenceshttps://philzimmermann.com/docs/human-oriented-base-32-encoding.txt
Package: zbench
zbenchThis package benchmarks lossless compression algorithms likegzipandbzip2,
facilitating quick comparison of the trade-offs between disk space and CPU time onyourfile(s).It is implemented in Python and provides a command line tool,zbench.Install fromPyPI:pipinstallzbenchExample$zbenchsetup.cfgpath      algorithm size percentage timesetup.cfg raw_py     853   100.000% 0.000setup.cfg gzip_py    488    57.210% 0.000setup.cfg bz2_py     547    64.127% 0.000setup.cfg lzma_py    572    67.057% 0.011setup.cfg zlib_py    476    55.803% 0.000LicenseCopyright 2020 Christopher Brown.MIT Licensed.
Package: zbitvector
zbitvectoris an efficient, well-typed interface to the Z3 and Bitwuzla SMT
solvers. It can be used to represent and manipulate symbolic expressions in the
theory of fixed-sized bitvectors and arrays (QF_BVA).importtypingimportzbitvectorUint8=zbitvector.Uint[typing.Literal[8]]Uint64=zbitvector.Uint[typing.Literal[64]]Uint64("X")+Uint64(1)# => Uint64(`(bvadd X #x01)`)Uint64("X")+Uint8(1)# fails to typecheckProject homepage →
Package: zbl
zblzblis a Rust and Python library aiming to make it easier to integrate OpenCV (and possibly other CV libraries) with
Windows Desktop apps for real-time processing. It does so by providing a simplified interface toWindows.Graphics.Capture.This library is not well-tested against corner cases, and was only verified to work for a 'happy path' scenarios, so beware of bugs!PythonInstallationpip install zblAlternatively, you can install suitable wheel fromreleases page.UsagefromzblimportCapturewithCapture(window_name='visual studio code')ascap:frame=next(cap.frames())print(frame.shape)The snippet above will capture a window which title contains the stringvisual studio code, take one frame (which is represented as anumpyarray) and print its shape.SeeCaptureconstructor for more options. It is possible to capture the entire screen usingdisplay_idargument,
for example.To run an example using OpenCV'shighgui:Installopencv-pythonRunpython -m zbl --window-name '<full or partial window name, case insensitive>'RustSeeexamples.
Note: if you are getting OpenCV build errors when building the example, check outhow to build OpenCV rust bindings.Why notmss/pyautogui?Those are the definition of "slow" at the time of writing.msstops at 30-50 fps in a tight loop,pyautoguiis
even slower than that. Due to GPU accel which comes with D3D11,zblcaptures at 500-700 fps - an order of magnitude faster, which allows a lot more time for the actual processing.Why Rust for the native code part and not C++ / C#?I need it for the Rust project, hence it is in Rust.Creditszblis heavily inspired byscreenshot-rs.
Package: zblocker
阻塞器, 单人阻塞器和多人阻塞器单人阻塞器:一个线程调用lock()会立即阻塞, 直到另一个线程调用unlock()为止, 同一个阻塞器只能阻塞一个线程测试代码:if __name__ == '__main__':print('测试单人阻塞器')def fun():for i in range(5):time.sleep(1)a.unlock()import threadingimport timea = BLock()threading.Thread(target=fun).start()for i in range(5):print('开始锁定', i, time.strftime('%H:%M:%S', time.localtime()))a.lock()  # 阻塞print('  解除', i, time.strftime('%H:%M:%S', time.localtime()))print('结束\n\n')多人阻塞器:任何线程在调用lock()的时候都会被阻塞, 直到有一个线程调用一次unlock()来解除所有阻塞测试代码if __name__ == '__main__':print('测试多人阻塞器')def fun1(value):print('阻塞', value)a.lock()print('  解除', value)def fun2():print('--2秒后解除所有阻塞--', time.strftime('%H:%M:%S', time.localtime()))time.sleep(2)print('--即将解除所有阻塞--', time.strftime('%H:%M:%S', time.localtime()))a.unlock()import threadingimport timea = BLock_more()for i in range(5):threading.Thread(target=fun1, args=(i,)).start()threading.Thread(target=fun2).start()a.join()print('结束')
Package: zboard
zboardFULL CREDIT GOES TO THE ORIGINAL AUTHER AND OPEN SOURCE COMMUNITY!!!!!MADE SOME CHANGES(TWEAKS) FOR PERSONAL USE AND TO SHARE WITH MY TEAMTake full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.InstallationInstall thePyPI package:pip install zboardFor Usage Go to the Original Author Page:https://github.com/boppreh/keyboard/