Saravanan666/pypi-org huggingface dataset:
Package: aligned-textgrid
Aligned TextGridThe aligned-textgrid package provides a python interface for
representing and operating on TextGrids produced by forced aligners likeFAVEor theMontreal Forced
Aligner.
Classes provided by aligned-textgrid represent hierarchical and
precedence relationships among data stored in TextGrid formats allowing
for simplified and more accessible analysis of aligned speech data.Example Use CasesYou want to quickly loop through the Phone tier of a Textgrid, andalsoaccess information about the word it is a part of.You want to quickly loop over the Word tier of a Textgrid and quickly
count how many phones it has.You want to programmatically merge together adjacent Textgrid
intervals.For examples on how to use the pacakge, see theUsagepages.InstallationTo install aligned-textgrid using pip, run the following command in your
terminal:pipinstallaligned-textgridNot another TextGrid implementationThere are several other packages that parse Praat Textgrids, includingpraatiotextgridaligned-textgrid’s goal is to capture hierarchical and sequential
relationships represented in many TextGrids, and to make them easilly
accessible to users via an intuitive interface. The goal is that from
any arbitrary location within a TextGrid, users can easilly access
information with minimally defensive coding.ExampleAs an example, we’ll read in a textgrid produced with forced alignment
that contains a single speaker with a word and phone tier.fromaligned_textgridimportAlignedTextGrid,Word,Phonetg=AlignedTextGrid(textgrid_path='doc_src/usage/resources/josef-fruehwald_speaker.TextGrid',entry_classes=[Word,Phone])Then, we can access an arbitrary phone interval.arbitrary_interval=tg[0].Phone[20]From this aribitrary interval, we can access information about the
intervals preceding and following with the.prevand.folattributes.print(arbitrary_interval.prev.label)print(arbitrary_interval.label)print(arbitrary_interval.fol.label)R
EY1
NWe can also access information about the word this interval is nested
within with the.inwordattribute.print(arbitrary_interval.inword.label)raindropsThe object returned by.inwordis just another interval, meaning we
can access informaton aboutit’scontext with the.prevand.folattributes as well.print(arbitrary_interval.inword.prev.label)print(arbitrary_interval.inword.label)print(arbitrary_interval.inword.fol.label)strikes
raindrops
inFor moreTo start jumping in, check outthe
quickstartTo learn more about navigating TextGrids and intervals, check out the
usage pages onnavigating
TextGridsandnavgiating
sequencesTo learn more about the attributes you can access from textgrids and
sequences, see the usage pages onTextGrid
attributesandinterval
attributesYou can also directly read up onthe function and class
references.
Package: aligned-text-table
Aligned text tableA parser for tables in plain text that are aligned with spaces, e.g.:This is     Column two   This one
column one               is column
                         threeUsage>>> from aligned_text_table import parse_row

>>> parse_row(
...     lines=[
...         "This is     Column two   This one ",
...         "column one               is column",
...         "three    "
...     ],
...     keys=["one", "two", "three"]
... )

{
    "one": "This is column one",
    "two": "Column two",
    "three": "This one is column three"
}TestsTo run tests, install and run Tox:pip3 install tox
tox
Package: aligner-pytorch
Aligner - PyTorchSequence alignement methods with helpers for PyTorch.Installpipinstallaligner-pytorchUsageMASMAS (Monotonic Alignment Search) from GlowTTS. This can be used to get the alignment of any (similarity) matrix. Implementation in optimized Cython.fromaligner_pytorchimportmassim=torch.rand(1,4,6)# [batch_size, x_length, y_length]alignment=mas(sim)"""sim = tensor([[[0.2, 0.8, 0.9, 0.9, 0.9, 0.4],[0.6, 0.8, 0.9, 0.7, 0.1, 0.4],[1.0, 0.4, 0.4, 0.2, 1.0, 0.7],[0.1, 0.3, 0.1, 0.7, 0.6, 0.9]]])alignment = tensor([[[1, 0, 0, 0, 0, 0],[0, 1, 1, 1, 0, 0],[0, 0, 0, 0, 1, 0],[0, 0, 0, 0, 0, 1]]], dtype=torch.int32)"""XY Embedding to AlignmentUsed during training to get the alignement of ax_embeddingwithy_embedding, computes the log probability from a normal distribution and the alignment with MAS.fromaligner_pytorchimportget_alignment_from_embeddingsx_embedding=torch.randn(1,4,10)y_embedding=torch.randn(1,6,10)alignment=get_alignment_from_embeddings(x_embedding=torch.randn(1,4,10),# [batch_size, x_length, features]y_embedding=torch.randn(1,6,10),# [batch_size, y_length, features])# [batch_size, x_length, y_length]"""alignment = tensor([[[1, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0],[0, 0, 1, 0, 0, 0],[0, 0, 0, 1, 1, 1]]], dtype=torch.int32)"""Duration Embedding to AlignmentUsed during inference to compute the alignment from a trained duration embedding.fromaligner_pytorchimportget_alignment_from_duration_embeddingalignment=get_alignment_from_duration_embedding(embedding=torch.randn(1,5),# Embedding: [batch_size, x_length]scale=1.0,# Duration scaley_length=10# (Optional) fixes maximum output y_length)# Output alignment [batch_size, x_length, y_length]"""alignment  = tensor([[[1, 1, 1, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 1, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 1, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 1, 1, 1, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 1, 0]]])"""CitationsMonotonic Alignment Search@misc{2005.11129,Author={Jaehyeon Kim and Sungwon Kim and Jungil Kong and Sungroh Yoon},Title={Glow-TTS: A Generative Flow for Text-to-Speech via Monotonic Alignment Search},Year={2020},Eprint={arXiv:2005.11129},}
Package: aligni-python
Aligni PythonSource Code:https://github.com/mnorman-dev/aligni-pythonPyPI:https://pypi.org/project/aligni-python/Python library for interfacing to the Aligni (PLM/MRP) API v2Full documentation of the underlying API is available at:https://api.aligni.com/v2/index.htmlWARNINGThis code should be considered beta level at best.  A good understanding of the underlying api is required to understand the data available for each datatype.UsageBelow is a simple example of how to use this interface to query the parts in a library.  This example uses the demo Aligni site athttps://demo.aligni.com/.importaligni.apiif__name__=="__main__":sitename="demo"# Replace with sitename of Aligni accountapikey="oid3vLgynoy_Yl1gZkrgkLEq3J"# Replace with API Key created from Aligni accountaligni_api=aligni.api.API(sitename,apikey)aligni_parts=aligni_api.parts.get_list()aligni_total_part_count=len(aligni_parts)print("Aligni Part Count =",aligni_total_part_count)Refer to tests to see further examples.Installationpipinstallaligni-pythonDevelopmentClone this repositoryRequirements:PoetryPython 3.7+Create a virtual environment and install the dependenciespoetryinstallActivate the virtual environmentpoetryshellTestingpytestPre-commitPre-commit hooks run all the auto-formatters (e.g.black,isort), linters (e.g.mypy,flake8), and other quality
checks to make sure the changeset is in good shape before a commit/push happens.You can install the hooks with (runs for each commit):pre-commitinstallOr if you want them to run only for each push:pre-commitinstall-tpre-pushOr if you want e.g. want to run all checks manually for all files:pre-commitrun--all-files
Package: alignment
Alignment is a native Python library for generic sequence alignment. It is
useful in cases where your alphabet is arbitrarily large and you cannot use
traditional biological sequence analysis tools. It supports global and local
pairwise sequence alignment. I also plan to add support for profile-profile
alignments, but who knows when.InstallationYou can install the most recent release using pip:pip install alignmentUsageTypical usage looks like this:from alignment.sequence import Sequence
from alignment.vocabulary import Vocabulary
from alignment.sequencealigner import SimpleScoring, GlobalSequenceAligner

# Create sequences to be aligned.
a = Sequence('what a beautiful day'.split())
b = Sequence('what a disappointingly bad day'.split())

# Create a vocabulary and encode the sequences.
v = Vocabulary()
aEncoded = v.encodeSequence(a)
bEncoded = v.encodeSequence(b)

# Create a scoring and align the sequences using global aligner.
scoring = SimpleScoring(2, -1)
aligner = GlobalSequenceAligner(scoring, -2)
score, encodeds = aligner.align(aEncoded, bEncoded, backtrace=True)

# Iterate over optimal alignments and print them.
for encoded in encodeds:
    alignment = v.decodeSequenceAlignment(encoded)
    print alignment
    print 'Alignment score:', alignment.score
    print 'Percent identity:', alignment.percentIdentity()
    printTODO ListProfile-profile alignment is not working yet.
Package: alignmentrs
alignmentrsQuickly read and manipulate multiple sequence alignments in PythonInstallationpip install alignmentrsQuickstartImport alignment into Python>>>importalignmentrsasrs>>>aln=rs.Alignment.from_fasta('hiv.fna','HIV_alignment')>>>alnAlignment(nsamples=10,nsites=120,nmarkers=0)>>>aln.sample_ids['sample01','sample02','sample03','sample04','sample05','sample06''sample07','sample08','sample09','sample10']Select sites to remove from the alignment>>>sites_to_remove=[iforiinrange(120)if(i-2)%3!=0]# remove 1st and 2nd position in codon triplet>>>aln.remove_sites(sites_to_remove,copy=False)# manipulate inplace, copy=True returns a new copyAlignment(nsamples=10,nsites=40,nmarkers=0)Select sites to retain in the alignment>>>sites_to_retain=list(range(2,3,120))# third position in codon triplet>>>aln.retain_sites(sites_to_retain,copy=False)# manipulate inplace, copy=True returns a new copyAlignment(nsamples=10,nsites=40,nmarkers=0)Get a subset of samples and sites>>>sub_aln=aln.subset(samples=['sample01','sample03','sample05'],sites=list(range(2,3,120)))>>>sub_alnAlignment(nsamples=3,nsites=40,nmarkers=0)LicenseMIT License
Package: alignparse
alignparseis a Python package written bythe Bloom lab.
It is designed to align long sequencing reads (such as those from PacBio circular consensus sequencing) to targets, filter these alignments based on user-provided specifications, and parse out user-defined sequence features.
For each read that passes the filters, information about the features (e.g. accuracy, sequence, mutations) is retained for further analyses.See thealignparse documentationfor details on how to install and usealignparse.Pleasecite alignparseif you use it in your work.The source code ison GitHub.To contribute to this package, read the instructions inCONTRIBUTING.rst.To report issues or seek support, please use theGitHub issue tracker.
Package: align-phonemes
# Phoneme Forced AlignerThis package was designed to intake human data from Makin Lab (.txt and .wav file from the block needed phoneme alignment) and ouput a JSON file with the mike-on and mike-off times and the alignments (start time, transcription method, production 1, phoneme list 1, production 2, phoneme list 2).## Getting StartedThese instructions will give you a copy of the project up and running onyour local machine for development and testing purposes.### InstallingThis is a pip installable package. Therefore, run the following command:____________________________________________________## Functions### get_forced_aligment()input: block txt path, block wav path, output transcription json path, transcription method, critical error threshold, verbosefunctionality:- determine which transcript will be used based on transcription method input (Critical Error, Wav2Vec, Original)- run Montreal Forced aligner (input trials directory and verbose and returns text grid)- demarcate JSON- clean directories____________________________________________________### demarcate_to_json()input: trial directory, block path, text grid directory, output json file pathfunctionality:- read textgrid- use ER-demarcation Algorithm to denote phoneme split- use ER-demarcation to denote transcript split- write to Phoneme Json (see output format)____________________________________________________### clean_directories()input: list of temp directories createdfunctionality: clean and remove directory____________________________________________________### parse_block()input: wav file path, txt file path, trials directory, verbosefunctionality:- create a Trial Directory (same name as the label): each trial is a .wav and a .txt- Trial Directory:Trials dir:trial.wavtrial.txt...Trial transcription method .jsonTranscriptionMethod.json format:{trial start-time (float): method ('wav2vec' or 'original'),...}____________________________________________________## NotesFor a more in depth explanation in the methods used in this package, as well as the reasoning behind, refer back to the paper.## Authors- **James Willian Stonebridge**- **Herbert Alexander de Bruyn**- **Tyler Dierckman**## LicenseThis project is licensed under the MIT License.## Acknowledgments- Varun implemented the original code for Wav2Vec2 based transcription used in this package.
Package: alignreg
AlignRegAlignment Regularization with Data AugmentationImplementation of the AlignReg package associated with the following paper:Haohan Wang, Zeyi Huang, Xindi Wu, and Eric P. Xing. 2022.Toward Learning Robust and Invariant Representations with Alignment Regular- ization and Data Augmentation. In Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD ’22), August 14–18, 2022, Washington, DC, USA. ACM, New York, NY, USA,The package is organized by Hanru YanInstallationOne can direclty install the package withpip install alignregOr one can download the code and use it locally.Usage TutorialOne can use the package in simply one line of code.Please visit theiPython examplefor usage instructions in both TensorFlow and PyTorch.Replication:This repository serves for the purpose to guide others to use our tool, if you are interested in the scripts to replicate our results in paper, please contact us and we will share the repository for replication.ContactHaohan Wang·Hanru Yan
Package: alignunformeval
AlignUnformEvalThis is a python tool to evaluate alignment and uniformity of sentence embedding likeSimCSE paper.SimCSE paperexplains alignment and uniformity as below:Given a distribution of positive
pairs p_pos, alignment calculates expected distance between embeddings of the paired instances (assuming representations are already normalized):On the other hand, uniformity measures how well
the embeddings are uniformly distributed:> where p_data denotes the data distribution.Installby pippip install alignuniformevalby sourcepip install https://github.com/akiFQC/AlignUnformEvalUsageYou can easily evaluate alignment and uniformity with this library.This is a minimal example that evaluate alignment and uniformity of STS Benchmark.from alignunformeval import STSBEval

evaluator = STSBEval(sentence_encoder)
# sentence_encoder is a callable from List[str] to numpy.array. The output numpy.array must be [dimention_of_sentence_vector].
result = evaluator.eval_summary()
# result =  {"alignment": value_of_aligenment, "uniformity": value_of_uniformity}STSBEvalget callable whose input islistofstrand output is n dimentionalnumpy.array.DatasetSTS BenchmarkThis dataset (especially,sts-dev.csv) was used inSimCSE paper. In the paper, the threshold of similarity score was st at 4.0;  pairs of sentences whose similarity score is higher than 4.0 are used for evaluation of alignment. You can set other threshold as the following example.from alignunformeval import STSBEval
# sentence_encoder : some function List[str] to np.array[dimention_of_sentence_vector]
evaluator = STSBEval(sentence_encoder, threshold=3.0) # set threshold at 3.0
result = evaluator.eval_summary()Please seetest/test_stsb.pyif you want more details.Tokyo Metropolitan University Paraphrase Corpus (TMUP)Tokyo Metropolitan University Paraphrase Corpus (TMUP)is a Japanese paraphrase dataset.from alignunformeval import TMUPEval
# sentence_encoder : some function List[str] to np.array[dimention_of_sentence_vector]
evaluator = TMUPEval(sentence_encoder)
result = evaluator.eval_summary()LicenseThe license of this tool follows each dataset. Please read the documents of datasets you use.Referencehttps://arxiv.org/pdf/2104.08821.pdfhttps://ixa2.si.ehu.eus/stswiki/index.php/STSbenchmarkhttps://github.com/tmu-nlp/paraphrase-corpus
Package: aligo
aligo🚀🔥 简单、易用、可扩展的阿里云盘API 接口库 👍👍wiki 文档+examples文档写得很简单，详情请查看 代码提示 + 文档注释有任何疑问 请issue或 加入aligo交流反馈群（群二维码在底部）附带一份文档阿里云盘开放平台文档安装pipinstall-Ualigo
pipinstallgit+https://github.com/foyoux/aligo.git快速入门"""快速入门"""fromaligoimportAligoif__name__=='__main__':ali=Aligo()# 第一次使用，会弹出二维码，供扫描登录user=ali.get_user()# 获取用户信息print(user.user_name,user.nick_name,user.phone)# 打印用户信息file_list=ali.get_file_list()# 获取网盘根目录文件列表forfileinfile_list:# 遍历文件列表# 注意：print(file) 默认只显示部分信息，但是实际上file有很多的属性print(file.file_id,file.name,file.type)# 打印文件信息https://user-images.githubusercontent.com/35125624/150529002-c2f1b80b-fb11-4e0a-9fd7-6f57f678ccf5.mp4基本功能完全的代码提示持久化登录、多帐户登录福利码兑换文件夹同步在线解压缩支持功能扩展搜索文件/标签获取重复文件列表文件（夹）重命名文件（夹）上传下载文件（夹）移动复制文件（夹）删除恢复获取文档在线预览接口文件（夹）分享 保存 收藏文件（夹）自定义分享（无限制）获取帐户、云盘（容量）等基本信息相册 创建 删除 修改 添加文件 获取文件Notes：由于秒传链接的失效，自定分享信息的有效期只有4个小时。阿里云盘不同于其他网盘或系统，其定位文件不是基于文件名（路径），而是通过file_id，这才是唯一定位文件的方式，aligo中提供了简便函数get_file_by_path/get_folder_by_path，通过网盘路径获取文件对象，通过 其上的file_id属性即可获取所需文件标识。但不建议频繁使用此方法，因为内部是通过get_file_list遍历得到的。在保存超大分享时（分享中的文件特别多），执行保存全部的方法 -share_file_save_all_to_drive，它会立刻执行完毕，但是文件不会立刻被保存到网盘中，阿里云盘服务器会帮你在后台陆续将所有文件存到你的网盘中；所有当你使用share_file_save_all_to_drive保存超大分享时，却只看到一部分文件时，不用疑惑，这是正常情况。登录网页扫码登录fromaligoimportAligo# 提供 port 参数即可, 之后打开浏览器访问 http://<YOUR_IP>:<port>ali=Aligo(port=8080)发送登录二维码到邮箱（推荐）最佳实践：建议将邮箱绑定到微信，这样能实时收到提醒，登录过期后也可以第一时间收到登录请求。fromaligoimportAligo,EMailConfigif__name__=='__main__':email_config=EMailConfig(email='<接收登录邮件的邮箱地址>',# 自配邮箱user='',password='',host='',port=0,)ali=Aligo(email=email_config)如何操作资源盘fromaligoimportAligoif__name__=='__main__':ali=Aligo()drives=ali.list_my_drives()# resource_drive_id = [drive.drive_id for drive in drives if drive.drive_name == 'resource'][0]v2_user=ali.v2_user_get()resource_drive_id=v2_user.resource_drive_id# 如果后续默认操作资源盘# ali.default_drive_id = resource_drive_idfile_list=ali.get_file_list(drive_id=resource_drive_id)forfileinfile_list:print(file)如何自定义配置文件路径fromaligoimportset_config_folder,Aligoif__name__=='__main__':# 创建 Aligo 对象前，先设置配置文件目录，默认是 <用户目录>/.aligoset_config_folder('/home/aligo')# 会创建 /home/aligo/一号服务器.json 配置文件ali=Aligo(name='一号服务器')关于扩展功能一般步骤：1. 使用浏览器或其他抓包工具，观察通信过程；
2. 获取 url/path + 请求体；
3. 继承 `Aligo`, 使用现有的方法 `self._post` 等，进行发送请求；会自动维护token, 你只需关注如何发送请求即可扩展功能举栗🌰 - 配有视频和代码如何彻底删除文件？无需先移动文件到回收站此功能太危险，aligo未直接提供。不过这里扩展了该功能，请小心使用！声明此项目仅供学习交流，若有不妥之处，侵联必删。❤️‍🔥欢迎加入🤝🏼😃 添加时，请附上留言消息 “aligo” 😜本来是群二维码，但是加进来发广告的太多了，所以改成了个人二维码。
Package: aligo-rest-client
Python 사용자를 위한AligoREST API 모듈입니다.공식 client가 아닌 관계로 이용 중 발생한 문제에 대해 책임지지 않습니다.설치pipinstallaligo-rest-client기능SMS 발송LMS 발송MMS 발송상세전송 결과 확인발송가능 건수 확인일부 에러코드 Exception 랩핑사용법초기화fromaligo.clientimportAligoclient=Aligo(auth_key={발급받은API키},user_id={사용자계정},is_test={테스트모드여부True|False})발송client.sms_send(sender='01012341234',receiver='01012341234',msg='테스트 메시지')client.lms_send(sender='01012341234',receiver='01012341234',msg='테스트 메시지',title='테스트 타이틀')client.mms_send(sender='01012341234',receiver='01012341234',msg='테스트 메시지',title='테스트 타이틀',image={이미지데이터})상세전송 결과 확인client.status(msg_id={발송후전달받은메시지아이디})발송가능 건수 확인client.remain()개발환경 및 테스트 설정pip install requests할 일전송내역조회테스트문서화
Package: ali-kms-sdk
English | [简体中文](README-CN.md)![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)## AlibabaCloud Encryption SDK for Python[Overview](https://www.alibabacloud.com/help/doc-detail/189340.htm)[Quick Start](https://www.alibabacloud.com/help/doc-detail/201599.html)[Sample Code](/examples/README.md)## Install`shell git clonehttps://github.com/aliyun/alibabacloud-encryption-sdk-python.gitcdalibabacloud-encryption-sdk-pythonpython setup.py install `## License[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
Package: alimata
AlimataWhat is it?Alimata is a python library used to simplify the implementation offirmetixlibraryRequirementspython 3.7 or higherFirmetixFimetix4ArduinoInstallingFirmetixTo install Fimetix on Linux (including Raspberry Pi) and macOS computers, open a terminal window and type:sudo pip3 install firmetixFor Windows users type:pip install firmetixFirmetix arduino librarieOpen the Arduino IDE and select Tools/Manage LibrariesSearch for "Firmetix"InstallFirmetix also requires other library just install all of them.Open the Firmetix/Firmetix4Arduino exampleIf you plan to use multiple arduino use#define ARDUINO_INSTANCE_ID 1Flash it to the arduinoCode structureBoardCreating a new boardboard = Board()Making the setup and loop function and starting the boarddefsetup():#Code here is run oncepassdefloop():#Code here is run in a looppass#Starting the board by passing the setup and loop functionboard.start(setup,loop)#Shuting the board downboard.shutdown()All options of the board#Create the new board (optional board_id and COM_port)board=Board(board_id,COM_port)#Starting the board setup and loop async functionboard.start(setup,loop)#Use to set the pin mode with the type (INPUT, OUTPUT, ANALOG, PWM, SONAR)board.set_pin_mode(pin,type,callback,differential,echo_pin,timeout,sensor_type,min_pulse,max_pulse)#Use to write to a pin with the type (ANALOG, PWM, DIGITAL, TONE, TONE_CONTINUOUS, TONE_STOP, SERVO, STEPPER)board.write_pin(pin,value,type,duration,step)SensorsCreating a new sensor object (button in this case)button1 = Button(board, 2)ActuatorsCreating a new actuator object (led in this case)led1 = Led(board, 3)
Package: alime
Alime: Animated anti-bot email obfuscation for your websiteStops email scraping bots that don't understand CSS transforms and page layoutWorks without JavaScript (JavaScript is only used to make a clickable mailto: link)Demo pageUsageInstall the tool from PyPI:python3-mpipinstallalimeRun alime with your email:python3-malime'my.email@example.com'alime-example.html, alime.css, and alime.js are created in the current directory.Copy alime.css and alime.js (optional for mailto: hyperlink support) to your website.Copy the marked contents of alime-example.html into your webpage HTML source.More options are available by using alime from Python code:importalimehelp(alime.Alime)gen=alime.Alime('my.email@example.com')gen.generated_html,gen.generated_css,gen.generated_jsgen.save()
Package: alimits
alimitsProvides asyncio-compatible implementations of thelimitslibrarystorage and strategy options.
Used in theslowapilibrary.Documentation is availablehere.Available on PyPi atalimits.StrategiesThis library implements a couple asyncio limiting strategies:Fixed window → (alimits.strategies.AsyncFixedWindowRateLimiter)Moving window → (alimits.strategies.AsyncMovingWindowRateLimiter)Fixed window with elastic expiration → (alimits.strategies.AsyncFixedWindowElasticRateLimiter)Resourceshttps://limits.readthedocs.io/en/stable/strategies.htmlhttps://medium.com/figma-design/an-alternative-approach-to-rate-limiting-f8a06cf7c94chttps://cloud.google.com/architecture/rate-limiting-strategies-techniquesStorage BackendsEach of the above rate limiters support a couple different storage backends:Memory (in-memory, volatile) → (alimits.storage.AsyncMemoryStorage)Redis (on-disk or in-memory, persistent) → (alimits.storage.AsyncRedisStorage)Other storage backends are a WIP.LicenseCopyright (c) 2021 Elias Gabriel, 2020 Laurent Savaete, 2015 Ali-Akber SaifeeThis software is licensed under theMIT License.This package isTreeware. If you use it in production, then we ask that youbuy the world a treeto thank us for our work. By contributing to the forest you’ll be creating employment for local families and restoring wildlife habitats.