Saravanan666/pypi-org huggingface dataset:
Package: hrmcompiler
HRM Compiler============Work-in-progress compiler to have an high-level toolto reason about problems in Human Resources Machines.I hate pseudo-assembly, and I want to write a compiler.## Install```virtualenv .hrmsource .hrm/bin/activatepip install -e .```## Usage`hrmc <script>`## ExamplesThere is no formal doc about the accepted grammar (check _parser.py_),but you can find some examples in the `examples` folder.## Development### Run testsTo run the unit tests, execute `pytest`.### Run differential testingTo check that a new optimization does not introduces bugs, it is possible touse [hrm-interpreter](https://github.com/alfateam123/hrm-interpreter)and a custom script to compile the examples with different flags and run the differentbuilds.To be able to perform this kind of testing:1. install rust and cargo via rustup2. clone and build `hrm-interpreter` in the parent directory of this repository3. run `run_all_on_interpreter.py`If something is wrong, you should see an AssertionError.
Package: hrmes-python
HRMESA consistency-preserving api of the HRMES storage model (Highly Reliable Mobile Edge Storage).
It offloads the mission-critical stateful applications to the edge and ensures the reliable tail latency and strong consistency guarantees.Installationpip install hrmes-pythonGet startedHow to create the section:# import hrmes-python as hrmes# Prepare the url and port of the server you'd like to connect to# And give the keys of data that you want to cache as a parameterurl="url"port=1337keys=["a-key","b-key"]# id = hrmes.create_section(url, port, keys)How to access to the cache:# Read the data from the cachekey="a-key"# hrmes.read_data(id, key)value="a-new-value"# write the data to the cache# hrmes.write_data(id, key, value)How to commit the updates to the server:# Read the data from the cache# hrmes.commit(id)
Package: hrm-interpreter
Human Resource Machine interpreterThis is a Python interpreter for programs from theHuman Resource Machinegame fromTomorrow Corporation.
Within the game, one may copy/paste the source code that is edited visually.
This library features a parser for this code, and CLI/TUI interpreters.>>>fromhrmimportHRM>>>hrm=HRM.parse('level-2.hrm')>>>hrm([1,0,-2,'D',0,0,8,9])1 0 -2 D 0 0 8 9InstallationJust runpip install hrm-interpreteror clone the git repository and runpip install.LanguageIf not copied from the game, a program may be written from scratch:each command is given on a single lineempty line and spacing are non-significantcomments start with--and extend up to the end of the linecode is case insensitive (in the implementation at least)available commands are:inboxgrab a value from the INBOXoutboxput the value at hand to the OUTBOXcopyfrom Nput a copy of the value at hand onto floor tileNcopyto Ngrab a copy of the value stored on floor tileN.add Nadd the value stored on tileNto that at hand,
the result goes to handssub Nsubstract the value stored on tileNfrom that at hand,
the result goes to hands. This operation is valid on letters in which
case it computes the distance between two letters in the alphabetbumpup Nincrements the value stored on tileNand copies to result
to handsbumpdn Ndecrements the value stored on tileNand copies to result
to handsjump Ljump to labelLthat should be defined somewhere asL:alone on its linejumpz Ljump to labelLif the value at hand is zerojumpn Ljump to labelLif the value at hand is less that zeroif a tile numberNis[A], the tile from which the value is copied
is that whose number is stored on tileAlabels are defined usingNAME:Copying code from the game may yield other elements (like drawn tiles labels and comments), but they are ignored in this implementation.APIClasshrm.HRMis the interpreter itself, it is initialised as either:HRM(prog)creates an instance to run an already parsed programprogHRM.parse(source)creates an instance by parsing source codesource, it can be a file path, an opened file, or source code given as astrHRM.from_level(number)load a level from the game and returns the corresponding instance, together with a valid inbox and tiles initial state to run itAnHRMinstancehrmcan execute the program for various inputs using methodhrm(inbox, floor=[], verbose=False)which runs the program withinbox(listof integers or uppercase characters).
Ifflooris provided, it initialised the tiles on the floor.
IfverboseisTrue, program execution is traced.Limitationsthe parser is not very robustDifferences with the game:the number of available tiles is not limitedindirection[A]is not limited tocopyfroma label may be jumped to from several locations in the program, which is never the case in code copied from the game as each jump is attached to exactly one targetBorrowed filesthe content of directorysolutionsis fromatesgoral.github.io/hrm-solutionsfilehrm/levels.jsonis fromgithub.com/atesgoral/hrm-level-dataLicenceAppart from the borrowed files above, this package is (C) 2023 Franck Pommereaufranck.pommereau@univ-evry.frand released under the MIT Licence, seeLICENCEfor details.
Package: hrml
hrml: 超莉沫酱自慰语言你还在为编写html度过一个个孤独难耐的夜晚吗？寂寞长夜，你想找个好的编程语言，来宽慰一下自己吗？hrml是Python风格的自慰语言，可以容易地编译成html。样例hrml:div#all:
    div.my_class1:
        span:
            今天天气不错，来散步自慰吧。
        a href='https://散步自慰':
            go!html:<divid='all'><divclass='my_class1'><span>今天天气不错，来散步自慰吧。</span><ahref='https://散步自慰'>go!</a></div></div>使用方法只要用pip安装——pipinstallhrml然后运行命令就行了——python-mhrml{输入hrml文件名}-o{输出html文件名}也可以import它来使用——importhrmlwithopen('xxx.hrml')asf:print(hrml.masturbate(f.read()))接口只有masturbate这一个，输入一个hrml的字符串，将它转为html。defmasturbate(s:str):...语法每一行表示一个元素，缩进表示嵌套的元素。当元素以冒号或分号结尾时，是一个节点。分号为自闭节点。元素的属性和html一样地写在后面，不会被更改。不以冒号:或分号;结尾的是文字。hrml:div:
    你好
img src='1.jpg';html:<div>你好</div><imgsrc='1.jpg'/>class和id用 小点.和 井号#表示元素的class和id，这些要紧跟在名字的后面。class和id没有顺序和数量的限制。hrml:div.a.b#c:
    你好html:<divclass='a b'id='c'>你好</div>注释使用Python风格注释，如# 我是注释。注释并不会变成html的注释。嵌入html内容可以用文字的形式直接嵌入html内容。这要求嵌入的内容本身没有缩进。hrml:div:
    <a href='折跃门'>折跃！</a>html:<div><ahref='折跃门'>折跃！</a></div>如果有缩进则会产生错误:# 这会产生编译错误。
div:
    <a href='折跃门'>
        折跃！
    </a>
# 因为hrml认为「折跃！」是「<a href='折跃门'>」的子节点。
# 但是「<a href='折跃门'>」是文本节点，不能含有子节点。
Package: hrm-py
Human Resource Machine InterpreterHuman Resource Machine is a game where you play an employee controlled by a block-like "programming language".
The goal of this repository is to create an interpreter for this "programming language".The syntax is kind of clause to assembly, using jumps for controlling the flow.
The inbox and outbox correspond to argument and return value.
For each level, a prompt is given and the player code is tested with multiple values.Overflow occurs when the value is lower than -999 or bigger than 999.HRM interpreted LanguageThe HRM language will follow these specificities:Comment will be defined using#on an empty line.inboxwill give an integer value from a given stack ranging from -999 to 999outboxwill be yield from therunfunction.every value within square bracket will be considered as a number corresponding to a slot id, or a label that identify a slot.jumpwill have an argument to the instruction to teleport the pointer to. blank & comment line will not count.slotallow to define slot name given an id and a string.
Package: hrmpython
hrmPyA simple python package to handle High Resolution Melting (HRM) experiment data analysis. For full functionality seetutorial.ipynb.Quick startInstall dependenciespip install -r requirements.txt
pip install hrmpythonCreate simple visulization with clusteringfrom hrmpy import HRM
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('./Sample-HRM-p50-genotyping.csv')

hrm = HRM(df)
hrm.subset((75,88))
hrm.clustering('kmeans', 3)
data = hrm.diff()

palette = ['red', 'blue', 'green']

for i in range(len(data.columns)):
    column = data.columns[i]
    plt.plot(hrm.temp, data[column], color=palette[hrm.cluster[i]])

plt.xlabel('Temperature (°C)')
plt.ylabel('-d(norm RFU)/dT')Find sample Tmhrm.tm()Sample  Temperature
0      G6         81.0
1      G7         82.2
2      G8         82.2
3      G9         82.2
4     G10         82.2
...
31    J10         82.2
32    J11         82.4
33    J12         81.0
34    J13         82.2
35    J14         82.2Data inputTechnically melting data from any instrument should work, as long it is formatted correctlly.Remove empty columns or empty rowsFirst column should be 'Temperature' and the rest is  melting data with sample or 'well' as column name.Please seeSample-HRM-p50-genotyping.csvfor input example.Credithrmpy is implementation and improvement of liuyigh'sPyHRMexample input Sample-HRM-p50-genotyping.csv is created by liuyigh
Package: hrmserve
hrmserveBring some service to hrmtools. This is a separate packages because it contain some eavy dependencies (dash)install> pip install hrmservefrom sources> git clone git@gricad-gitlab.univ-grenoble-alpes.fr:guieus/hrmserve.git
> cd hrmserve
> python setup.py installuse> hrmDeviceListServer HRM-00485_HCS_deviceList-3.xlsxAnd then open the web pagehttp://127.0.0.1:8050/
Package: hrmtools
HRM toolsCollection of tools for HARMONI.So far only one tool is made to read and handle device listInstallationFrom pip> pip install hrmtoolsfrom sources> git clone git@gricad-gitlab.univ-grenoble-alpes.fr:guieus/hrmtools.git
> cd hrmtools
> python setup.py installExemplefromhrmtools.devices.clsimportDevicesdevices=Devices.from_xls('/path/to/HRM-00485_HCS_deviceList-3.xlsx')print(devices.RWROT.unique_letter)# same asprint(devices['RWROT']['unique_letter'])print(repr(devices['RWROT']))
Package: hrobot
Hybrid Robot基于 RobotFramework 的二次封装注意该方案是对 RobotFramework 的二次封装，以减轻中国用户使用符合欧美用户习惯的原生 RobotFramework 时的不适，因此，该方案并不适合所有场景。针对技术能力暂时薄弱、英文能力差的中小团队，可能具有一定的疗效。重点改造描述用 Excel 取代 .robot 文件进行测试用例的编写增加命令行脚手架工具，一键初始化测试项目，不需要额外学习如何自己搭建目录结构精简固化用法，高级用法被封装隐藏集成 Allure 测试报告框架检测到系统为非 Windows/Mac 系统时，将增加环境变量HROBOT_BROWSER_MODE=headless，Chrome 将不启动图形界面安装时会集成常用于测试场景的 Python 库，如: requests, selenium, paramiko快速开始安装pipinstallhrobot执行hrobot检查hrobot
  init     初始化项目目录
  run      执行测试用例
  debug    调试测试用例，支持选择用例集、测试用例、标签
  report   生成并展示测试报告
  version  显示版本信息初始化测试用例项目使用hrobot init初始化项目目录hrobot init 
  -p    project  定义一个测试项目目录的名称进入到项目目录中后，文件树接口如下：<projectName>
├── testcases
│   └── suites.xlsx
├── keywords
│   └── keywords.xlsx
└── variables
    └── variables.xlsxPS: keywords 暂无实际作用编写测试用例通过 Excel 打开 testcases 目录中的 suite.xlsx 文件，有 5 个 Sheet，每个 Sheet 有自己的表头:用例变量前置后置可用关键字例子：ABCDEFGH1用例标题标签用例描述关键字库关键字参数2SSH远程后再调用 HTTP 接口远程执行rootpasswordwhoami3接口GEThttps://xxx/api/info{"Content-Type":"application/json"}4HTTP 接口请求后断言接口POSThttps://xxx/api/products{"Content-Type":"application/json{"project_owner":"jing"}5接口响应.断言status_code等于2006接口响应.断言body.data.0.name等于hrobot7HTTP 返回值获取接口POSThttps://xxx/api/login{"Content-Type":"application/json"}{"username":"jing"}8接口响应.取值body.tokenAUTH9接口GEThttps://xxx/api/info{"Content-Type":"application/json","Authorization":"${AUTH}"}10接口响应.断言status_code等于20011接口响应.断言body.username等于jing执行用例cd<projectName>
hrobotrun生成报告hrobotreport定义变量变量有三个级别：用例、用例集、全局，均可以在测试用例的 Excel 编写中通过关键字定义。除此之外，也可以在用例集的 Excel 的 "变量" Sheet 中提前定义好用例集级别的变量。全局变量还可以在 variables 目录下的 Excel 中定义，该处定义的全局变量会在报告的环境信息段落中展现。自定义关键字待设计
Package: hrot-cli-tools
hrot-cli-toolshrot-cli-tools is a set of command line tools for working with HROT PAK files.Installation$pipinstallhrot-cli-toolsToolspak: Add files to a PAK file.unpak: Extract files from a PAK file.ContributingHave a bug fix or a new feature you'd like to see in quake-cli-tools? Send it our way! Please make sure you create an issue that addresses your fix/feature so we can discuss the contribution.Fork this repo!Create your feature branch:git checkout -b features/add-cool-new-toolCommit your changes:git commit -m 'Adding must have new tool!'Push the branch:git push origin features/add-cool-new-toolSubmit a pull request.Create anissue.LicenseMITSee thelicensedocument for the full text.
Package: hroute
hroute------simple HTTP proxy based on `tproxy <http://github.com/benoitc/tproxy>`_.Features++++++++- location rewriting- links rewriting to handle proxy / paths- simple configuration- vhosts support- logging (coming)- authentification (coming)Requirements------------- `Python <http://python.org>`_ 2.6 and sup (Python 3 not suppported yet)- `gevent <http://gevent.org>`_ >= 0.13.4- `setproctitle <http://code.google.com/p/py-setproctitle/>`_ >= 1.1.2- `tproxy  <http://github.com/benoitc/http-parser>`_ >= 0.5.2- `http-parser <http://github.com/benoitc/http-parser>`_ >= 0.3.3- `lxml <http://lxml.de>`_Install-------::$ pip install -r https://github.com/downloads/benoitc/hroute/requirements.txt$ pip install hrouteUsage-----Create a configuration file named **route** in /var/spool/hroute(default path) or any folder you want, for example in /tmp, put thefollowing configuration::{"all": {"routes": {"/": {"remote": "benoitc.io:80","rewrite_response": true},"/local": {"remote": "127.0.0.1:8000"},"/google": {"remote": "google.com:80"},"/gunicorn": {"remote": "gunicorn.org:80","rewrite_response": true},"/googles": {"remote": "encrypted.google.com:443","ssl": true,"rewrite_response": true}}}}then launch hroute::$ hroute -s /tmp -w 3and go on `http://127.0.0.1:5000/gunicorn<http://127.0.0.1:5000/gunicorn>`_. You should see the gunicorn.orgwebsite.More features soon.
Package: hr-piano-sdk
piano_sdkOur Python SDK for Piano's APIMerge/Continous DeliveryThis SDK has a deployment pipeline running on the Team City server that will
automatically package new merges to Master and deploy to PyPI. This requires
that all merges to Master have an incremented version compared to previous
merges.At this time, there is no enforcement in the build pipeline, and will result in
a failed deployment on Team City as PyPI will not let you deploy an existing
version (without workarounds that are not currently used, and which break the
paradigm of semantic versioning).So ensure that all PRs contain a version bump, and please adhere toSemantic
versioningUsage examplesimport piano_sdk

piano_sdk.aid = '<aid>'
piano_sdk.api_token = '<api_token>'


data = ('p7p3HxV20qHo3loRA36dJ1W2Y45taSpB7DXvJHImnuZuIre3j3x5HQ1B89YDWJkEIyWGCbsv_E25KqkV_8'
        '4v8VxgkxLaBEMqyOvNe_KSo1FDj7Upxv5Mgh8O7nGBEfQMVNE8XcbSKxwc-2kO4riLFoePVs9M4K3zMEmU'
        '5sJ7lKQL7S6bRsxm0MJtTV5gWEhKm85tPZcI2DewZVittlW1kOSAUBWzUPIO9iLh27n9CXKOUmbdXs4lAG'
        'O0U6ut_v2ApR-izNVo5mEzQygGsBCDWHvnmN2gx301XdM_vbGcfT0~~~NFxQCAc3j9Q7C_6j7z0P_wMSW3'
        'Lo22g1VlOdbvtNyj0')

descrypted = piano_sdk.SecurityUtils.decrypt(PRIVATE_KEY, data)

app = piano_sdk.App.retrieve('4Jqhagel8p')
apps = piano_sdk.App.list()

conversion = piano_sdk.Conversion.retrieve('TCC8DQTNPPK6')
conversions = piano_sdk.Conversion.list()

export = piano_sdk.Export.retrieve('URP2EVQIEEC3')
exports = piano_sdk.Export.list()

inquires = piano_sdk.Inquiry.list(uid='PNIIkVWiLprzb1b')

offer = piano_sdk.Offer.retrieve('OFU5ZE7R3O7U')
offers = piano_sdk.Offer.list()

promotion = piano_sdk.Promotion.retrieve('PN7BQW44LNMD')
promotions = piano_sdk.Promotion.list()

resource = piano_sdk.Resource.retrieve('BRDGIBNP')
resources = piano_sdk.Resource.list()

subscriptions = piano_sdk.Subscription.list()

offer_template = piano_sdk.OfferTemplate.retrieve('OTAI93QQ8MU5')
offer_templates = piano_sdk.OfferTemplate.list()

term = piano_sdk.Term.retrieve('TMQ93DOA69O3')
terms = piano_sdk.Term.list()

user = piano_sdk.User.retrieve('PNIIkVWiLprzb1b')
access_check = user.access_check(rid='BRDGIBNP')
accesses = user.access_list(access_id='7hOudV6FD1zZ')
subscriptions = user.subscriptions()
users = piano_sdk.User.list(limit=2)

for user in users.auto_paging_iter():
    print('{}: {} {}'.format(user['uid'], user['first_name'], user['last_name']))

webhook = piano_sdk.Webhook.retrieve('WERKQKWQYRSJYULWMCLA')
webhooks = piano_sdk.Webhook.list()
Package: hrrrb
Thehrrrbpackage on PyPI has been moved toherbie-data.Instead ofpipinstallhrrrbdopipinstallherbie-dataThanks!Herbie: Retrieve NWP Model DataTheNOAA Big Data Programhas made weather data more accessible than ever before.Herbieis a python package that downloads recent and archived numerical weather prediction (NWP) model output from different cloud archive sources. Herbie helps you discover and download High Resolution Rapid Refresh (HRRR), Rapid Refresh (RAP), Global Forecast System (GFS), National Blend of Models (NBM), and Rapid Refresh Forecast System - Prototype (RRFS). NWP data is usually in GRIB2 format and can be read with xarray/cfgrib.📔Herbie DocumentationInstallRequires cURL andPython 3.8+with requests, numpy, pandas, xarray, and cfgrib. Optional packages are matplotlib, cartopy, andCarpenter Workshop.pipinstallhrrrb

pipinstallgit+https://github.com/blaylockbk/Herbie.gitOr, create the providedconda environment.CapabilitiesSearch different data sources for model output.Download full GRIB2 filesDownload subset GRIB2 files (by grib field)Read data with xarrayPlot data with Cartopy (very early development)fromherbie.archiveimportHerbie# Herbie object for the HRRR model 6-hr surface forecast productH=Herbie('2021-01-01 12:00',model='hrrr',product='sfc',fxx=6)# Download the full GRIB2 fileH.download()# Download a subset, like all fields at 500 mbH.download(":500 mb")# Read subset with xarray, like 2-m temperature.H.xarray("TMP:2 m")Data SourcesHerbie downloads model data from the following sources, but can be extended to include others:NOMADSBig Data Program Partners (AWS, Google, Azure)University of Utah CHPC Pando archiveHistoryDuring my PhD at the University of Utah, I created, at the time, theonly publicly-accessible archive of HRRR data. In the later half of 2020, this data was made available through theNOAA Big Data Program. This package organizes and expands my original download scripts into a more coherent package with the ability to download HRRR and RAP model data from different data sources. It will continue to evolve at my own leisure.I originally released this package under the name "HRRR-B" because it only dealt with the HRRR data set, but I have addeed ability to download RAP data. Thus, it was rebranded with the name "Herbie" as a model download assistant. For now, it is still called "hrrrb" on PyPI because "herbie" is already taken. Maybe someday, with some time and an enticing reason, I'll add additional download capabilities.Alternative Download ToolsAs an alternative you can usercloneto download files from AWS or GCP. I quite like rclone. Here is ashort rclone tutorialThanks for using Herbie, and Happy Racing 🏎🏁- Brian👨🏻‍💻Contributing Guidelines💬GitHub Discussions🚑GitHub Issues🌐Personal Webpage🌐University of Utah HRRR archive✒ Pando HRRR Archive citation:Blaylock B., J. Horel and S. Liston, 2017: Cloud Archiving and Data Mining of High Resolution Rapid Refresh Model Output. Computers and Geosciences. 109, 43-50.https://doi.org/10.1016/j.cageo.2017.08.005P.S. If you like Herbie, check out myGOES-2-gopackage to download GOES-East/West data andSynopticPyto download mesonet data from the Synoptic API.
Package: hrt
HTTP Request TranslatorHTTP Request Translator is a python standalone tool that will help you
translate any raw HTTP requests into the language of your choice.It supports the following languages:BashPHPPythonRubyHTTP Request Translator can be used via its CLI or be imported from your own
python project (actively supported version 2.7 and 3.3+).Installation$ git clonehttps://github.com/owtf/http-request-translator$ cd./http-request-translator/$ make installNote: The last step might require root privileges.UsageCommand Line InterfaceHTTP Request Translator provides a complete command line interface (CLI) to
make it easy for you to use it.usage:hrt[-h][--languageLANGUAGE][--proxy[PROXY]][--search_stringSEARCH_STRING|--search_regexSEARCH_REGEX][--interactive][--dataDATA][--requestREQUEST|--fileFILE]RequestTranslatorisastandalonetoolthatcantranslaterawHTTPrequestsintobash/python/php/rubyscriptsoptionalarguments:-h,--helpshowthishelpmessageandexit--languageLANGUAGE,-lLANGUAGEGeneratesascriptinlanguage'language'forgivenHTTPrequest.Ifyouwanttogeneratemultiplescripts,separatethescript's name with a <,>.
                        Available languages: bash, php, python, ruby
  --proxy [PROXY], -p [PROXY]
                        Generates command/script with relevant, specified
                        proxy
  --search_string SEARCH_STRING, -ss SEARCH_STRING
                        Sends the request and searches for the required string
                        in the response (i.e literal match)
  --search_regex SEARCH_REGEX, -se SEARCH_REGEX
                        Sends the request and searches for the required regex
                        in the response (i.e regex match)
  --interactive, -i     Interactive mode: read raw HTTP request from keyboard,
                        hit enter when ready. Type 'Ctrl+D' or 'Ctrl+C'toexitfromtheinteractivemode.--dataDATA,-dDATAAddthedatathatyouwanttosendalongwiththeheader--requestREQUEST,-rREQUESTInputtheHTTPrequest--fileFILE,-fFILEInputfileforHTTPrequest
Package: hr-tddschn
hr-tddschnFork ofhr.py, with python3 support.The good oldhrin python3.hr-tddschnWhy fork?IntroInspirationInstallHow to use it?From the command-line:From another python script (it could happen, right?)RequirementsWhy fork?Version 0.1 of the originalhr.py(the current latest version ofhronPyPI) doesn't work with python3,this project adds python3 support and properly configured entry point so thathris added to your$PATHafter installation.Read moreIntroHorizontal rule for your terminal - in python3!Tired of not finding things in your terminal because there's a lot of logs and
garbage? Tired of destroying the Enter key by creating a "void zone" in your
terminal so that you can see the error that you're trying to debug?Use the old<hr />tag, but in your terminal.InspirationThe original version of the hr script was implement in bash (https://github.com/LuRsT/hr), and I thought, "why not have a python version?". So here we are!Install$ pip install hr-tddschnOr, if you only want to use it as a CLI app:$ pipx install hr-tddschnThen run it withhr.How to use it?From the command-line:$ hr
################################## # Till the end of your terminal window
$

$ hr '*'
********************************** # Till the end of your terminal window
$You can also make "beautiful" ASCII patterns$ hr - '#' -
----------------------------------
##################################
----------------------------------
$ hr '-#-' '-' '-#-'
-#--#--#--#--#--#--#--#--#--#--#--
----------------------------------
-#--#--#--#--#--#--#--#--#--#--#--From another python script (it could happen, right?)>>> from hr_tddschn import hr
>>> hr()
################################## # Till the end of your terminal window
>>> hr('*')
********************************** # Till the end of your terminal window
>>> hr('-', '#', '-')
----------------------------------
##################################
----------------------------------
>>> hr('-#-', '-', '-#-')
-#--#--#--#--#--#--#--#--#--#--#--
----------------------------------
-#--#--#--#--#--#--#--#--#--#--#--RequirementsThe only requirement is python2.7+ or python3 (tested in python 3.10)