Saravanan666/pypi-org huggingface dataset:
Package: hotbits
HotBits Python APIPython API for HotBits random data generator.DescriptionThis project is random data generator. It uses is HotBits API web service for radioactively-generated random data.The web service generates random data. Without API token, only pseudorandom data will be returned. For radioactively-generated random data, you would need torequest free API key.The project is not part of the HotBits. It is just API client for it, made by community. For any information about HotBits, you should usethe official website.UsageFirst, you need to import the generator class:fromhotbitsimportRandomDataGeneratorThen you need to init the generator client, with default service URL:generator=RandomDataGenerator()Custom URL can be changed with parameters:generator=RandomDataGenerator(custom_url='https://example.com')You can then generate data with specific length and API key:result=generator.generate(length='256',apikey='exampleAPIkey')Length of 128 bytes is used by default. If no API key is specified, pseudorandom data will be returned.Random data are returned as list:print(result[0])# First byteprint(result[1])# Second byteprint(result[3])# Third byteYou can also look toexample filefor more examples.VersioningThis library usesSemVerfor versioning. For the versions available, seethe tagson this repository.LicenseThis library is licensed under the GPLv3+ license. See theLICENSEfile for details.
Package: hotblast
hotblast介绍这是一款轻量级的搜索工具，你也可以把它当作一个框架。运行环境windows使用说明设置config.py文件参数运行initialize.py文件进行初始化运行Search.py文件进行查找参与贡献黄宏哲 Fork 本仓库黄宏哲 新建 master 分支黄宏哲 提交代码黄宏哲 新建 Pull Request文档教程下载安装如果你的计算机中还没有安装python,那么请访问python官网进行下载安装，并配置好环境配置，这些前置工作并不是重点，所以不在叙述。推荐你使用在线下载的方式pipinstallhotblast官方pypi地址:hotblast使用CMD命令我非常推荐你去这样做，因为它足够简单。一、初始化第一次输入该命令，会生成配置配件，并且自动打开。push一般来说，你只需要修改扫描文件夹路径就可以了，也就是Data下的第一个参数。[DATA]# 扫描文件夹路径total_folder_path=C:# 选择扫描文件夹或者文件 [文件夹:1,文件:2,全部:3]select_file_or_folder=3# 日志文件编码coding=gbk如果你嫌麻烦，你也可以直接在cmd命令行输入modifty此时会提示你输入一个扫描路径。第二次初始化，依然使用push它会读取配置文件并且扫描磁盘。push二、使用搜索cmd输入so此时程序提示输入需要搜索的名称，输入按下回车就可以了。框架开发开发是如此容易，只需要重写initialize.py文件中的Initialize类的scan方法即可。重写Initialize类的scan方法，必须返回一个dict类型。设计思想hotbalst
支持你将任何信息与文件的路径绑定起来，它支持你这么去做。与Everthing软件不同，hotbalst是真正扫描磁盘，而不是读取文件系统的日志。blasthot初始化扫描后，是直接读取历史数据所以它也能一瞬间找到文件。另外，作为开发者，我想做的是一款兼容window xp 及以上 windows系统的搜素框架，它能做到扫描局域网地址文件(网上邻居等)
，而Everything只能读取NTFS文件系统的日志，框架不同于一款软件，它能支持你开发出任何信息与文件路径进行绑定的事情，比如在众多Excel文件中，你想找到文件中含订单号1001信息的那个文件，那么hotblast就派上大用场了。示例fromhotblast.initializeimportInitialize'''导入Initialize,定义一个子类用来继承Initialize重写scan方法,然后任由你发挥，写点什么吧~'''classHello(Initialize):def__init__(self,cfg_path):# 接收一个配置文件路径super(Hello,self).__init__(cfg_path)@propertydefScan(self)->dict:return{"name":"黄宏哲"}hello=Hello(cfg_path='config.cfg')hello.run()如上，我们可以讲后期展望由于开发者是一个人进度较慢，下一步将着手优化扫描速度，加入异步程序，感兴趣的小伙伴请加入我，提意见。联系开发者
Package: hotbox
🏃 Run your code 📦 on Firecracker MicroVMs 🔥 in the cloud ☁️Documentation:https://hotbox.corletti.xyzSource Code:https://github.com/anthonycorletti/hotbox🏃 Run your code 📦 on Firecracker MicroVMs 🔥 in the cloud ☁️👨‍💻 Who is this for?Developers that want to run:Code in the cloud and don't need or want the complexity of orchestrators like KubernetesCode in a sand-boxed environmentCode in a serverless environmentCI environments on their own servers💡 What is this for?⚠️Not production... yet!Learning about MicroVMsRapid prototypingRunning your own CI environmentsRunning Cron jobs, backend APIs, etc.Making your own tiny serverless platform...Anything you can run in a Docker container🎉 FeaturingCreate EC2 instances provisioned to run Firecracker MicroVMsQuickly deploy and run your code on Firecracker MicroVMsSupports any runtime that can be run in a Docker containerSet your own CPU and memory limits📝 RequirementsPython 3.10+An AWS Account. Sign up for freehere.⚙️ Installationpipinstallhotbox🏎️ A Quick ExampleStart running your code on MicroVMs in the cloud here!🫶 How can I help?⭐️ Star hotbox on GitHub! ⭐️Open anissueif you have a question, comment, feature request, or bug report.Open apull requeston GitHub. Contributions are encouraged and welcome!📲 ContactReach out to Anthony directly onTwitterif you'd like to get in touch.
Package: hotbuckets
IntroTired of dealing with major & minor numbers? You like the TOML format (kind of "ini" on steroids)?
Always wanted to play with traffic shaping on linux but it turned too complex or confusing?
This alpha tool aims at simplifying the learning curve for traffic control on ip route 2.The format started quite close to the original command-line and progressively adds more support and shorter or easier notations.Forget aboutclassid,flowid.
Considerparentsometimes handle forcomplexscenarios only!Check theexamplesfolder to dive into the syntax.Supported featureshosts aliasesnetwork interfaces aliasesspeeds aliasesautomatic generation of major & minor mumbers (all of them!) when possiblevisual representation of the setupTrafic control coveragesfq : makes a more fair trafficnetem : simulate network problemshtb : control traffic rate using categoriestbf : very basic shapingQDiscssfqnetemhtbtbfClasseshtbFilters (assign traffic)fwu32ip (src, dst, sport, dport)actionInstallationpip install hotbucketsYou can also directly downloadthe file, mark it executable adn run it.You can optionally installgraphvizto enable the--showaction.UsageCheck theexamplesfor more usages.Given the file:[speeds]full="32mbit"half="15mbit"[interfaces.nic]dev="wlo1"[shaper.base]dev="nic"default="baseline"ceil="full"[class.unlimited]parent="base"rate="full"[class."baseline"]parent="unlimited"rate="half"ceil="full"[shaper.fairness]parent="baseline"type="sfq"perturb=10[class."web"]parent="unlimited"rate="half"ceil="full"[shaper.fairness-web]parent="web"type="sfq"perturb=10[match.filtHttp]protocol="ip"parent="base"sendTo="web"ip={dport="80"}[match.filtHttps]protocol="ip"parent="base"sendTo="web"ip={dport="443"}You can use the commandhtb configuration.tomlto get the following output:#!/bin/bash
# Cleanup:
tc qdisc del dev wlo1 root
set -ex
# Rules:
tc qdisc add dev wlo1 root handle 1: htb default 2 # base
tc class add dev wlo1 parent 1: classid 1:1 htb rate 32mbit # unlimited
tc class add dev wlo1 parent 1:1 classid 1:2 htb rate 15mbit ceil 32mbit # baseline
tc class add dev wlo1 parent 1:1 classid 1:3 htb rate 15mbit ceil 32mbit # web
tc qdisc add dev wlo1 parent 1:2 handle 2: sfq perturb 10 # fairness
tc qdisc add dev wlo1 parent 1:3 handle 3: sfq perturb 10 # fairness-web
tc filter add dev wlo1 protocol ip parent 1: u32 match ip dport 80 0xffff flowid 1:3 # filtHttp
tc filter add dev wlo1 protocol ip parent 1: u32 match ip dport 443 0xffff flowid 1:3 # filtHttpsYou can also use the--showparameter to get a representation like this:Misc notesshapers are qdiscs, the "main" type of traffic control object, some can use classesclasses are used by some shapers to divide the trafficmatch allows sending network traffic to a specific class or shaper (qdisc)try to avoid using the same names in match and class, some cases are ambiguousTODOrelative speeds (percents)templates (for repeated attributes)
Package: hotchocolate
Hot Chocolate is a static site generator that uses Markdown files as input,
and is designed for building very lightweight sites.DisclaimerYou should consider this as alpha-quality software at best.  Although I run
several sites with it, it’s stilluser-unfriendly, undocumented and rough
around the edges.  If you want a static site generator, look at something
likeJekyllorPelican.I’d like to document it properly and make it user-friendly, but for now it’s
more like a melting pot for my ideas about static site generators.InstallationInstall with pip:$pipinstallhotchocolateHot Chocolate requires Python 3.5 or later.CommandsCreate a site:cocoa initBuild articles:cocoa buildRun a preview server (requires Docker):cocoa serveSite structureEach Markdown file starts with YAML-like front matter, followed by content:title:   The cacao beanslug:    /cacao-beans/The*cacao bean*is the seed of the cacao tree, and is used to makecocoa solids and cocoa butter.  This is the basis of chocolate, amongother foods.You can read more about cacao [on Wikipedia][wiki].[wiki]:https://en.wikipedia.org/wiki/Cocoa_beanFor posts, the slug will be prepended with a/YYYY/MMslug when built.
For pages, the slug is relative to the root of the web server.The following directory structure is used (and generated bycocoa init):(source folder)/
   pages/
      (you can organise this folder however you like)
      about.md
      contact.md
      ...
   posts/
      (likewise, you can organise this however you like)
      (Hot Chocolate will find any Markdown files in the tree)
      an-interesting-story.md
      another-interesting-story.md
      the-final-part-of-the-story.md
      ...
   static/
      (this directory structure is copied directly into the build root)
      aztec-sculpture.jpg
      cacao-beans.png
      personal/
         contact-photo.tiff
      ...
   style/
      (a custom.scss file in this directory will override the base styles)
      custom.scss
   templates/
      (templates in this directory replace the base templates)
      base.html
      ...
Package: hotcodeswap
Hotswap for PythonInstallpip install hotcodeswapUsageDecorate the main function with @hotswap.mainExampleimporthotswapfromtimeimportsleepdeffunction():print('hoge')classCalculater:defadd(self,x,y):returnx+y@hotswap.main# add this to main functiondefmain():# cannot be hot-swapped to the main functioncalc=Calculater()whileTrue:function()print(calc.add(2,3))sleep(1)if__name__=='__main__':main()
Package: hotdag
HotDAGHotDAG is a lightweight tool that allows for testing for dbt node selectors against dbt project manifests
on a local filesystem, stored on dbt Cloud, or located remotely. Once evaluated, this selection of nodes
can be returned as a list ofunique_ids, a JSON list ofunique_ids, or as an SVG of the selection.Table of ContentsBut Why Though?InstallationLicenseBut Why Though?Sometimes, it can be valuable while developing locally to have a means of quickly testing a selection string against
the production version of a dbt project without fiddling with the generated docs site or compiling the current
production branch. Instead, HotDAG lets you quickly test and visualize your selection using your project's manifest,
whether its on your local file system, stored remotely and accessible via URL, or hosted on dbt Cloud.Installationpip install hotdagGetting StartedThere are a few primary ways to use HotDAG. The most common way is to load a local manifest file and list the
selection. This is roughly equivalent to usingdbt lshotdag --input file --file targets/manifest.json --select "resource_type:source+"source.example.example.usersmodel.example.stg_usersmodel.example.userstest.example.not_null_stg_users_idtest.example.unique_stg_users_idHotDAG really shines, however, if you want to see a diagram of the selection.hotdag --input file --output svg \--file targets/manifest.json \--select "resource_type:source+"Also of use is the ability to directly reference the latest manifest from your project's dbt Cloud
job. For example:hotdag --input dbt_cloud --output svg \--account-id 1234 --job-id 9876 \--select "resource_type:source+"RoadmapStyling the SVG output to better distinguish between node types.Improved error handling for remote resource failures.Add rational defaults (e.g. default input tofileand--fileto the targets directory)Verify support for Selectors (as defined in yaml)Licensehotdagis distributed under the terms of theMITlicense.
Package: hotdate
hotdateis a library for doing friendly date formating. Its API is
inspired byMoment.js.hotdatewraps Python’s builtindatetimeobject with a layer that
simplifies some common operations that are annoying to do withdatetime. More importantly,hotdateprovides functionality for
doing friendly/human-readable relative date formatting. It even has one
of those crazy “fluent interfaces” that are so hip with the kids these
days.A quick tourConstructionYou can create hotdate objects in a bunch of ways.fromhotdateimporthotdate# get the current time and date>>>hotdate()hotdate(2014,3,4,21,34,3,661600)>>>hotdate(2011)hotdate(2011,1,1,0,0)>>>hotdate('2012 03','%Y %m')hotdate(2012,3,1,0,0)>>>d=datetime.datetime.now()>>>hotdate(d)hotdate(2014,3,4,21,34,3,661600)FormattingYou can use it to format dates:>>>hotdate().format()'2014-03-04T21:46:18'>>>hotdate().format('%c')'Tue Mar  4 21:47:03 2014'“How long ago?”>>>hotdate().from_now()'just now'>>>hotdate(2011).from_now()'2 years ago'>>>hotdate().add(minutes=30).from_now()'29 minutes from now'Calendar date formatting>>>hotdate().calendar()'Today at 09:50PM'>>>hotdate().add(days=1).calendar()'Tomorrow at 09:51PM'>>>hotdate().subtract(days=4).calendar()'Last Friday at 09:51PM'>>>hotdate(2011).calendar()'1/1/2011'Use it just like a datetime>>>hotdate().isoformat()'2014-03-05T17:00:28.699772'>>>hotdate.fromtimestamp(1311218002)hotdate(2011,7,20,23,13,22)>>>hotdate().timetuple()time.struct_time(tm_year=2014,tm_mon=3,tm_mday=5,tm_hour=17,tm_min=10,tm_sec=35,tm_wday=2,tm_yday=64,tm_isdst=-1)
Package: hot-diagnose
hot-diagnose是Python程序运行时诊断工具，也是唯一能够做到实时代码分析功能。它具有以下特点:运行时诊断(Runtime Diagnose): 它可以根据不同运行参数、上下文环境，动态诊断Python程序运行效果。同时，
由于Python的动态语言特性，该工具可以在程序运行时实时分析程序状态，更新诊断结果。插件化(Plug-in Support): 该工具通过插件的方式提供大部分业务功能。用户也可以通过API实现自己的诊断工具。无第三方依赖(No thrid-party dependency): 为了提高项目可维护性，最大发挥性能，该工具主体部分不依赖任何第三方包，
渲染依赖少量的JS包。安装目前该工具已上传pypi，可以通过pip安装该工具。同样也可以使用conda、pdm等方式:pip install hot-diagnose此外，也可以通过``setup.py``直接安装:python setup.py install使用基础hot-diagnose既支持Python脚本诊断，也支持Python包诊断。在诊断Python包时需要确定``PYTHONPATH``。
比如诊断Python脚本:python -m diagnose -s script.py args1 args2诊断Python包:python -m diagnose -s package_entrance.py -p pythonpath args1 args2更多详细的运行参数可以通过运行以下代码获得:python -m diagnose -h执行完毕后，hot-diagnose会自动弹出HTML页面展示诊断过程和结果。诊断脚本:诊断包:以上展示的是不包含任何插件的运行截图，通过插件可以实现代码覆盖率统计、Trace统计、Stack Frame统计等。高级hot-diagnose提供后端和前端两部分API为用户提供插件编写的接口(未完待续)贡献(未完待续)
Package: hotelling
Hotelling implements one and two sample Hotelling T^2 (T-squared) tests.
It also implements Hotelling Control Charts (Multivariate) and multiple
Univariate Control ChartsHotelling Control ChartUnivariate Control ChartFree software: MIT licenseDocumentation:https://dionresearch.github.io/hotelling/FeaturesStats module covering hotelling t^2 (t-squared) statistics, f-value
and p-valueplots module covering Univariate Control Chart and Hotelling Control
Chartwith the optionalplotlymodule, provides interactive charts:For this to work properly, you have to installplotlyversion 0.5 or greater. This is available from pypi, or through
the plotly channel for conda:conda install plotly -c plotlyCreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.5.0 (2021-07-20)Dask supportUpdate to latest plotly / matplotlibmany new tests0.4.3 (2021-03-28)plotly template(s) can be passed as argumentadded cusum and cusum optionsset last working matplotlib w/plotly mpl compatibility0.4.1 (2021-03-20)–chart option to cli–output <filename} or ‘stdout’  option to clisupport for sixel display with pysixelimproved documentationflake8 cleanup, automation0.4.0 (2020-07-26)matplotlib as requirementnow with optional plotly supportkeyword interactive for uni and multivariate control chartsbugfix, handling no outliers0.3.0 (2020-06-04)added multi and univariate control charts0.2.0 (2020-06-02)Added one sample T-squared test0.1.0 (2019-10-27)First release
Package: hotel-names
[![Build Status](https://travis-ci.com/partojkander/hotel-names.svg?branch=master)](https://travis-ci.com/partojkander/hotel-names)# hotel-names
Generate hotel namesHeavily inspired byhttps://github.com/treyhunner/names## UsageWhen installed, you can use it from command line:$ hotel_names
Urban Mountains InnTo use as a package:>>> from hotel_names import hotel_names
>>> hotel_names.get_hotel_name()
'Fancy Sea Hotel'
>>> hotel_names.get_hotel_name(suffix="by the sea")
'Happy Beach by the sea'## LicenseThis project is released under an MIT License.# Changes## 0.0.1 (2020-09-12)Initial release
Package: hot-fair-utilities
hot_fair_utilities ( Utilities for AI Assisted Mapping fAIr )Initially lib was developed during Open AI Challenge withOmdeena. Learn more about challenge fromherehot_fair_utilitiesInstallationInstalling all libraries could be pain so we suggest you to use docker , If you like to do it bare , You can follow.github/build.ymlClone repogit clone https://github.com/hotosm/fAIr-utilities.gitNavigate to fAIr-utilitiescd fAIr-utilitiesBuild Dockerdocker build --tag fairutils .Run Container with default Jupyter Notebook , Or addbashat end to see terminaldocker run -it --rm --gpus=all  -p 8888:8888 fairutils[Optional] If you have downloaded RAMP already , By Default tf is set as Ramp_Home , You can change that by attaching your ramp-home volume to container as tfif not you can skip this step , Ramp code will be downloaded on package_test.ipynb-v /home/hotosm/fAIr-utilities:/tfTest inside Docker Containerdocker run -it --rm --gpus=all  -p 8888:8888 fairutils bashpython test_app.pyTest Installation and workflowYou can runpackage_test.ipynbon your notebook from docker to test the installation and workflow with sample data provided , Or open withcollab and connect your runtime locallyGet started with developmentNow you can play with your data , use your own data , use different models for testing and also Help me Improve me !Version ControlFollowVersion Control Docsto publish and maintain new version
Package: hotfilefinder
Finds the ‘hottest’ files in a git repos history.Hottest is defined as number of lines changed in a file excluding those lines
changed during creation/deletion of the file.Output is a list of sorted filenames with their hotness score.Can be useful for finding files that are likely culprits for being too big or
full of bugs and needing some serious love.Installation$ pip install hotfilefinderUsage$ cd somegitrepo
$ hotfilefinder
README.md   21
hotfilefinder/__init__.py   8
setup.py    2Seehotfilefinder-hfor more options.
Package: hotfunc
hotfuncThis package provides a decorator for hot-reloading python functions.It allows to redefine the function in the source code and see the changes immediately without restarting the program.InstallationInstall withpip$python-mpipinstallhotfuncUsageThe following example uses the REPL, buthotfunccan be used in any python program.Begin with importing the module and decorating the function that you want to hot-reload.# myfile.pyfromhotfuncimporthotreloadname="Mike"@hotreloaddefsay():print(f"Hello world! My name is{name}.")Start python REPL, import the source file and call your function.>>> from myfile import say
>>> say()
Hello world! My name is Mike.Now, without stopping the interpreter, edit the source file changing the decorated function's body.# myfile.pyfromhotfuncimporthotreloadname="Mike"@hotreloaddefsay():print(f"Ciao mondo! Mi chiamo{name}.")Switch back to REPL and call the function again.>>> say()
Ciao mondo! Mi chiamo Mike.As you can see, the function has been redefined, but its local environment (namevariable defined outside the function) was preserved.CaveatsWhen hot-reloading a function, its source file is read, definition found and the function itself redefined. Currentyit is done on every call, so is rather slow.As of now, only top-level functions (defined at indentation level zero) are supported.By default, exceptions raised when redefining or calling hot-reloaded functions are not re-raised. Instead, they are printed tostdoutand the result of last successful function call is returned. This behaviour can be changed by enablingreraiseflag:@hotreload(reraise=True)defmyfunc():# ...LicenseCopyright (c) 2023 Michał SzajbeLicensed underThe MIT License.
Package: hot-import
HOW TO USE?STEP 1Importhot_importinto your python file withimport hot_importorfrom hot_import import HotImportSTEP 2Import the desired module as followingimport module_nameorfrom module_name import functionSTEP 3Create an object HotImport that you will use to manage your modules# main.pyfromhot_importimportHotImportimportmodulefrommodule2importfunctionmods=HotImport([module,function],auto_update=True)module=mods.get_module(module)STEP 4Check if it's working, to proceed, you have to editmodule.pywhile your code is running# module.pydefhello():return"Hello world!"# module2.pydeffunction():return"This is a function!"# main.pyfromhot_importimportHotImportimporttimeimportmodulefrommodule2importfunctionmods=EasyImport([module,function],auto_update=True)module=mods.get_module(module)whileTrue:print(module.hello())print(function2())time.sleep(1)STEP 5 (optional)You can add an event on_update to help you debugging# main.pyfromhot_importimportEasyImportimporttimeimportmodulemods=EasyImport([module],auto_update=True)module=mods.get_module(module)@mods.on_update()defon_update(module):print(f"The module{module.__name__}has been updated!")whileTrue:print(module.hello())time.sleep(1)DISCLAIMERThis library is new and may contain some errorsOtherwise, have fun with it as long as you declare my work
Package: hotjar-data-wrapper
Hotjar Data WrapperThis is a wrapper for Hotjar APIs to let you login and download survey data and metadata for your account.Supported APIs and docsHotjar Data WrapperSupported APIs and docsGet survey metadataGet survey questionsList all surveysGet all survey metadataGet survey metadataLogin and download metadata for a specific survey.importhotjar_data_wrapper.hotjar_apiashotmeta=hot.get_survey_metadata(survey_id=survey_id,site_id=site_id,username=username,password=password)meta.status_code# 200meta.content# prints contentGet survey questionsLogin and download questions for a specific survey.questions=hot.get_survey_questions(survey_id=survey_id,site_id=site_id,username=username,password=password)questions.contentList all surveysLogin and download list of all surveys for a given site ID.all_surveys=hot.get_list_all_surveys(site_id=site_id,username=username,password=password)all_surveys.contentGet all survey metadataLogin and download metadata for a list of surveys with survey IDs.hot.get_all_surveys_metadata(path="data/hotjar surveys",surveys_list=ids,site_id=site_id,username=username,password=password,)
Package: hotjb
hotjb-python# 使用客户端fromhotjb.clientimportHotJBClientasyncdefmain(loop):client=HotJBClient(host='127.0.0.1',port=30000)r=awaitclient.tokenize('中文分词库')print(r)if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(main(loop))# 使用压力测试fromloguruimportloggerfromhotjb.pressurorimportHotJBPressurorasyncdefmain(loop):''''''logger.remove()logger.add('logs/{time}.log',level='INFO',rotation='00:00',retention='7 days',)pressuror=HotJBPressuror(logger)awaitpressuror.pressure()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(main(loop))
Package: hotkeynet
Welcome tohotkeynetDocumentationOverviewHotkeyNet 是一个诞生于 2000 年左右, 并在 2009 年停止维护的键盘鼠标自动化软件, 只支持 Windows, 得益于 Windows 强大的兼容性, 它所依赖的底层 Windows API 都没有改动, 所以一直能稳定运行. 万一它真的不能用了, 我会考虑直接用 Windows API 自己实现一个基于 Python 的键盘鼠标自动化软件. 本项目是对 HotkeyNet 脚本用 Python 的二次封装. 使得你可以用更现代的 Python 编程语言来写 HotKeyNet 脚本, 大大提高了项目的可维护性和开发效率.HotkeyNet 脚本是一个类 XML 语法的 DSL (特定领域编程语言). 基于纯文本, 没有编辑器. 这使得代码复用和动态更改变得极其困难. 虽然它有Template语法允许你对文本进行替换, 但由于对 面向对象, If, Else 逻辑的缺失, 使得编程过程极为痛苦, 修改起来也非常麻烦. 不可能做到模块化. 早期我凭借着编程功底, 用Template做出来了一个相对可维护的脚本, 但是整个脚本还是极为臃肿. 由于 HotkeyNet 的设计原因, 它解析长脚本的速度极慢, 这使得原生脚本根本不可能适用于复杂多变的项目需求.这个项目的是用面向对象的语法, 对所有的 Block (代码块) 进行面向对象封装, 然后利用 Python 的类型推断, 自动补全功能, 大大提升了编程效率和编程体验. 避免了记忆原生语法中的那些命令, 而让 IDE 进行自动补全. 而且还能利用各种数据结构批量生成各种代码, 删除无用注释, 大大增加了代码可读性, 复用性和灵活性.在本项目的加持下, 编写 HotkeyNet 的流程就变成了:在 Python 中写 HotkeyNet 脚本运行 Python 生成最终脚本打开 HotkeyNet 软件并使用该脚本由于 HotkeyNet 官方网站已经不在了, 本项目在https://hotkeynet.readthedocs.io/index.html维护了一个文档的镜像, 以供查阅.Installhotkeynetis released on PyPI, so all you need is:$pipinstallhotkeynetTo upgrade to latest version:$pipinstall--upgradehotkeynet