Saravanan666/pypi-org huggingface dataset:
Package: duplicateindexer
Find duplicates in multiple lists and return their indices and values.Tested against Windows 10 / Python 3.10 / Anacondapip install duplicateindexerFind duplicates in multiple lists and return their indices and values.This function takes multiple lists as input and finds the common elements among them.
It then returns a list of dictionaries, where each dictionary corresponds to a common element.
Each dictionary contains keys for the input lists (0, 1, 2, ...), and the values are nested dictionaries.
These nested dictionaries have keys 'indices' and 'value', which represent the indices of the common
element in the input lists and the values of that common element in the input lists, respectively.Args:*args:Multiplelistscontainingelementstobecompared.Returns:Listofdictionaries,whereeachdictionaryrepresentsacommonelementanditsindicesandvaluesintheinputlists.Examples:>>>aa=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]>>>bb=[...[1,2,3],...[4,5,6],...[7,8,9],...[10,11,12],...[13,14,15],...[1,2,3],...[4,5,6],...[7,8,9],...[10,11,12],...[13,14,15],...]>>>l=find_duplicates_in_multiple_lists(aa,bb)>>>print(l)[{0:{0:{'indices':[1],'value':[4,5,6]},1:{'indices':[1,6],'value':[4,5,6]}}},{1:{0:{'indices':[0],'value':[1,2,3]},1:{'indices':[0,5],'value':[1,2,3]}}},{2:{0:{'indices':[2],'value':[7,8,9]},1:{'indices':[2,7],'value':[7,8,9]}}},{3:{0:{'indices':[3],'value':[10,11,12]},1:{'indices':[3,8],'value':[10,11,12]}}}]>>>cc=list(range(1,20))>>>dd=list(range(11,30))>>>l1=find_duplicates_in_multiple_lists(cc,dd)>>>print(l1)[{0:{0:{'indices':[10],'value':11},1:{'indices':[0],'value':11}}},{1:{0:{'indices':[11],'value':12},1:{'indices':[1],'value':12}}},{2:{0:{'indices':[12],'value':13},1:{'indices':[2],'value':13}}},{3:{0:{'indices':[13],'value':14},1:{'indices':[3],'value':14}}},{4:{0:{'indices':[14],'value':15},1:{'indices':[4],'value':15}}},{5:{0:{'indices':[15],'value':16},1:{'indices':[5],'value':16}}},{6:{0:{'indices':[16],'value':17},1:{'indices':[6],'value':17}}},{7:{0:{'indices':[17],'value':18},1:{'indices':[7],'value':18}}},{8:{0:{'indices':[18],'value':19},1:{'indices':[8],'value':19}}}]
Package: duplicates
duplicatesScan for identical files (duplicates) in subdirectories.RequirementsPython >= 3.6MS Windows is not supportedDescriptionTo find files with identical content the given directories will be scanned and
for files of same size their SHA-256 fingerprints are calculated and compared.
Two files with identical fingerprints are considered to have the same content.
There is a tiny chance for two files with same fingerprint to have different
content, but this chance isvery
remote.Symbolic links and hidden entries are ignored by default, this behaviour can
be changed with CLI options--follow/--hiddenand constructor optionsignore_hidden/ignore_symlinks.CLI examplesThis one will give you a short command overview:$duplicates--helpScan directoriesdirA,dirBanddirCfor duplicates and report all found
identical files:$duplicatesdirAdirBdirCdirA/file01dirA/file01.bakdirB/file.bakdirA/file02dirB/file02~The oldest file is printed without indent, all identical files are printed
indented by a tab character. The oldest file is supposed to be the original.If you are willing to take risks, you can delete all duplicates at once.
I wouldn't dare, but you get the picture:$duplicates--dups-onlydirAdirB|whilereaddups;doxargs-0rm$dups;doneWith--dups-onlyall duplicates for one original are output on one line,
separated by\0(ASCII code zero).Forfish shellit looks almost identical:$duplicates--dups-onlydirAdirB|whileread-ladups;xargs-0rm$dups;endPython examplesimportduplicatesdf=duplicates.DupFinder(verbose=True)uniq,dups=df.scan(".")uniqis a list of unique file objects.dupsis a list of identical files,
which in turn are lists of file objects, the first being the oldest element
and thus the supposed original.A file object is a dict consisting of the following elements:path: a pathlib.Path objectage: modification time in seconds (Unix time)size: file size in byteshash: the SHA-256 fingerprint (not calculated for unique files)
Package: dupliganger
DupligängerDupligängeris a reference-based, UMI-aware, 5’-trimming-aware PCR duplicate
removal pipeline.Usage: dupliganger [options] <command> [<args>…]Dupligängeris a pipeline.  Each stage of the pipeline is run by passing a
‘command’ toDupligänger.  The commands / pipeline-steps (in order) are as
follows:remove-umi         1. Annotate read names with UMIs (clip inline UMIs if needed).
remove-adapter     2. Remove adapters ('Cutadapt' wrapper).
qtrim              3. Quality trim ('Trimmomatic' wrapper).
annotate-qtrim     4. Annotates quality trimmed file(s).
align              5. Align reads to a reference genome assembly (performed manually by user).
dedup              6. Use the alignment to remove PCR duplicates.While generally used only by the developers ofDupligänger, the ‘dedup’
command is comprised of the followingDupligängercommands run in the
following order:build-read-db      1. Build a database of aligned reads.
build-location-db  2. Build a database of locations of aligned reads.
build-dup-db       3. Build a database of PCR duplicates.Options:-o OUT_DIR      Place results in directory OUT_DIR.
--compress      Compress output.Note:Dupligängersupports (and autodetects) input FASTQ files that are gzipped.See ‘dupliganger help <command>’ for more information on a specific command.DocumentationFor further information onDupligänger, please see the full documentation athttps://github.com/uoregon-postlethwait/dupligangerAuthorsJason Sydes - Conceptual Design and Software EngineeringPeter Batzel - Conceptual DesignJohn H. Postlethwait - Project AdvisorFundingDupligängerhas been funded by the following grants:NIH R01 OD011116 - Resources for Teleost Gene Duplicates and Human DiseaseNIH R24 OD011199 - Advancing the Scientific Potential of Transcriptomics in Aquatic ModelsNIH R24 OD018555 - Development of Aquatic Model Resources for Therapeutic ScreensNSF PLR-1543383 - Antarctic Fish and MicroRNA Control of Development and Physiology
Package: dupln
DupLngithub.com/biojet1/duplnpypi.org/project/duplnHard link files with same contentInstall> pip install duplnUsagehard link files with same content> dupln link '/tmp/dupln'
INFO: Scanning: '/tmp/dupln'
INFO: ++ '/tmp/dupln/as/ci/i_letters' [2]
INFO:  - '/tmp/dupln/as/cii_letters' - '/tmp/dupln/as/tmp7uwq0r4l' [1]
INFO:  - '/tmp/dupln/as/ci/i_/letters' - '/tmp/dupln/as/ci/i_/tmp0beeaxht' [0]
INFO: ++ '/tmp/dupln/as/ci/i_uppercase' [2]
INFO:  - '/tmp/dupln/as/ci/i_/uppercase' - '/tmp/dupln/as/ci/i_/tmpcsykrlv5' [1]
INFO:  - '/tmp/dupln/as/cii_uppercase' - '/tmp/dupln/as/tmp5knmbazf' [0]
INFO: ++ '/tmp/dupln/as/ci/i_/lowercase' [2]
INFO:  - '/tmp/dupln/as/ci/i_lowercase' - '/tmp/dupln/as/ci/tmpxeegm9eu' [1]
INFO:  - '/tmp/dupln/as/cii_lowercase' - '/tmp/dupln/as/tmp8ra1cf6z' [0]
INFO: ++ '/tmp/dupln/di/gits' [1]
INFO:  - '/tmp/dupln/di/gi/ts' - '/tmp/dupln/di/gi/tmp80gznyej' [0]
INFO: ++ '/tmp/dupln/he/xd/ig/its' [2]
INFO:  - '/tmp/dupln/he/xd/igits' - '/tmp/dupln/he/xd/tmpg3jm_ttb' [1]
INFO:  - '/tmp/dupln/he/xdigits' - '/tmp/dupln/he/tmp2nqxy47g' [0]
INFO: ++ '/tmp/dupln/oc/td/igits' [2]
INFO:  - '/tmp/dupln/oc/tdigits' - '/tmp/dupln/oc/tmpodvxqodo' [1]
INFO:  - '/tmp/dupln/oc/td/ig/its' - '/tmp/dupln/oc/td/ig/tmp1um7nupk' [0]
INFO: ++ '/tmp/dupln/pr/intable' [2]
INFO:  - '/tmp/dupln/pr/in/ta/ble' - '/tmp/dupln/pr/in/ta/tmploz2qhry' [1]
INFO:  - '/tmp/dupln/pr/in/table' - '/tmp/dupln/pr/in/tmptf8egynt' [0]
INFO: ++ '/tmp/dupln/pu/nc/tu/ation' [2]
INFO:  - '/tmp/dupln/pu/nctuation' - '/tmp/dupln/pu/tmp4yjomdni' [1]
INFO:  - '/tmp/dupln/pu/nc/tuation' - '/tmp/dupln/pu/nc/tmpp0hsusw1' [0]
INFO: ++ '/tmp/dupln/wh/it/es/pace' [2]
INFO:  - '/tmp/dupln/wh/it/espace' - '/tmp/dupln/wh/it/tmpd2plpkm7' [1]
INFO:  - '/tmp/dupln/wh/itespace' - '/tmp/dupln/wh/tmpg7bw47b1' [0]
INFO: Total disk_size 564b; files 35; inodes 35; linked 17; same_hash 9; same_size 8; size 1.1k; uniq_hash 9;list unique file content> dupln unique_files '/tmp/dupln'
INFO: Scanning: '/tmp/dupln'
/tmp/dupln/as/ci/i_/letters
/tmp/dupln/ascii_letters
/tmp/dupln/as/cii_uppercase
/tmp/dupln/as/cii_lowercase
/tmp/dupln/ascii_lowercase
/tmp/dupln/ascii_uppercase
/tmp/dupln/di/gi/ts
/tmp/dupln/digits
/tmp/dupln/he/xd/igits
/tmp/dupln/hexdigits
/tmp/dupln/oc/td/igits
/tmp/dupln/octdigits
/tmp/dupln/pr/in/table
/tmp/dupln/printable
/tmp/dupln/pu/nctuation
/tmp/dupln/punctuation
/tmp/dupln/wh/itespace
/tmp/dupln/whitespace
INFO: Total devices 1; disk_size 564b; files 35; inodes 18; same_ino 9; size 1.1k; unique_size 8;show stats about duplicate files> dupln stat '/tmp/dupln'
INFO: Scanning: '/tmp/dupln'
INFO: Total disk_size 564b; files 35; inodes 18; same_ino 9; same_size 8; size 1.1k;stats meaningdisk_size - total size excluding duplicate filessize - total size including duplicate filesfiles - total files foundinodes - total unique i-nodes foundsame_ino - total unique i-nodes found at least twicesame_size - total unique size found at least twicesame_hash - total unique hash found at least twiceunique_size - total unique size founduniq_hash - total unique file hash found
Package: dupload
duploadEasily upload to services, get urls and automate your projects with uploads!Version 0.0.4.2.
Fixed Starfiles APICreated byDwifteJBandCrafterPikaHow to installInstall python via your package manager or atPython.orgInstall pip withpython3 -m ensurepipInstall this module using:pip install duploadHow to use:from dupload import *
starfiles.upload("pathto/file.extension")
anonfiles.upload("pathto/file.extension")
fileio.upload("pathto/file.extension")
filepipe.upload("pathto/file.extension")To gather links for further use, use this:from dupload import *
link = starfiles.upload("pathto/file.extension")

print(link)
Package: duplocloud-client
Duplocloud Py Clientduploctlis a package that spawns service clients that work with Duplocloud. It is a CLI for interacting with Duplocloud resources, such as Tenants, and is designed to work seamlessly within CLI-based CI/CD pipelines. It is a fully extensible package and can be used as both a Python module and a CLI.InstallationFrom PyPi:pip install duplocloud-clientUsageUseduploctlas a CLI or as a standalone Python module called by your custom script.ConfigurationUse the following syntax for these global arguments:ArgEnv VarDescriptionDefaultRequired--host, -HDUPLO_HOSTThe host to connect toYes--token, -TDUPLO_TOKENThe token to use for authYes--tenant, -tDUPLO_TENANTThe tenant to use for authdefaultNoCLICLI command syntax for invokingduploctlduploctl<resource><command><args...>Example UsagesFull documentation is in the Wiki section.Configureduploctlaccess with environment variables:exportDUPLO_HOST=https://example.duplocloud.netexportDUPLO_TOKEN=AQAAA...exportDUPLO_TENANT=dev01List the services in a tenant:duploctlservicelistGet AWS Console URL:duploctljitawsGet Kubernetes config:duploctljitupdate_kubeconfigmyinfraPython ModuleSpawn your client from a Python script using theDuploClient.from_env()method and arguments. The second return value are the unparsed arguments from the command line.duplo,args=DuploClient.from_env()out=duplo("tenant","list")Spawn a client with a custom host and token from a Python script.duplo=DuploClient(host="https://example.duplocloud.com",token="mytoken")tenants=duplo.load("tenant")t=tenants.find("mytenant")print(t)
Package: duplremover
【天使去重】可以做什么？资料文件夹越来越臃肿？
自己存的照片文档和小电影复制来复制去占了一大堆空间又不知道删除哪些好？
多个备份文件夹和文件有重叠但又不敢随便删除又懒得一个个查看而导致浪费空间？让 【天使去重】 拯救你！无差别去重：不限制文件类型，去除一切重复文件，图片视频音乐文档等等，安全又高效。多个模式可选，可以设置：自动检测并处理重复文件，自动检测只返回重复文件（不删除），交互模式下自动删除，交互模式下提示删除速度快：可设置编码抽样或者多进程，转眼就完成懒人福音有木有！预先提醒！这个版本确认删除后不可恢复！请谨慎操作！！！（之后版本会增加恢复功能敬请期待）怎么安装？$ pip install duplremover或者直接下载 duplremover 文件夹到你的项目目录下也行怎么使用导入并实例化：fromduplremover.duplicate_removerimportDuplRmDR=DuplRm(directory='your file path',# 需要去重的文件夹地址recursive_traversal=True,# 是否检查子文件夹，默认是types=None,# 指定检查的文件类型列表，例如['jpg', 'png']，默认为None，即检查所有类型sampling_matching=True,# 是否以文件二进制抽样的方式去重，默认是interactive_mode=False,# 是否以交互模式调用，默认否auto_delete=False,# 是否允许自动删除，默认否remove_zero_size_file=False,# 是否自动删除0kb的废文件，默认否remove_empty_dirs=False,# 是否自动删除空白文件夹，默认否multiprocess=False,# 是否启用多进程（启用后日志输入有影响），默认否log_level=None,# 日志级别，默认info级别)在实例化时指定相应的选项，设置相关功能，特别说明以下这几个：recursive_traversal     如果子文件夹的内容是其他的东西，或者肯定没有重复的，那可以设置为False比较保险
sampling_matching       以二进制抽样的方式去重，当待去重的文件之间的区别较小的时候（例如超高速连拍的照片），建议设置为False，否则在抽样时很可能错过这些微小的差别，当然速度会慢很多很多。
interactive_mode        交互模式下，输出是终端打印（非交互模式输出的是log）。一些情况下需要手动输入字符进行操作确认
auto_delete             建议仅在目标文件夹内的文件是非重要的，或者自动化部署时使用（再次提醒！本次版本删除后文件暂时无法恢复，数据无价，谨慎！）
multiprocess            启用多进程时，日志输出不正常（将来版本改进），建议在自动化部署时考虑使用一般情况下，如果只是想确认一下文件夹内是否包含重复文件，只需要设置一个或两个参数即可:fromduplremover.duplicate_removerimportDuplRmDR=DuplRm('your file path')# 只检查并输出重复文件，不进行任何操作DR_2=DuplRm('your file path',interactive_mode=True)# 检查重复，并且在提示下输入操作字符完成操作实例化完成后，便可以直接调用对象的start方法即可:DR.start()为了更好的说明效果，我弄了一些测试用的文件（环境是windows，当然linux下也是不成问题的）。
文件夹结构如下，有一些jpg，mp3，mp4和ini文件，有些是重复的，有些重复文件在子文件夹sub下面：以交互模式下实例化并传入文件夹路径：fromduplremover.duplicate_removerimportDuplRmDR=DuplRm('E:\\test\\',interactive_mode=True)DR.start()输出如下图：程序成功检查出文件夹内的文件类型和对应的数目，这时候你可以冒号后面输入想要去重的文件类型的编号，例如“0”，或者多种类型，用任意符号分割：“0,2,3”，
直接回车，或者输入其他字符（包括不在选项内的数字，例如“5”），将跳过手动选择，自动选择全部的文件类型。接下来我要检查全部的文件的重复情况，下图是直接按下回车键的效果：可以看见程序开始执行去重检查，先检查了ini文件类型，并且发现了重复的文件，一个位于test文件夹下，另一个位于其子文件夹sub下，
接下来可以选择需要保留的文件，"0" 或者 "0,1"，逻辑与上一步一样，留空则保留所有文件。注意如果一旦输入了要保留的文件编号，未被选中的将会被删除输入“1”按下回车：程序提示是否确认删除，输入“yes”或者“y”，文件会立马被删除，其他任意字符则或直接回车则跳过输入“y”并按下回车：程序提示文件已经被成功删除掉了，并且立即进入下一个重复文件检测循环，发现ini文件只有这两个重复，则自动进入下一个类型的判断中（JPG类型）。后面的操作都大同小异，只是确认输入的编号是正确的就行。最后处理完成，程序会提示总共删除的文件个数：如果在交互模式下，auto_delete参数也设置为True的话，除了在开始类型选择时有提示输入检测类型之外，后面的删除都是自动完成，将不会给输入的选项：非交互模式下，auto_delete设置为False的输出效果如下：此前如果你用一个变量接收调用start方法返回的数据的话，你会发现它是一个字典（如果不是这个模式，返回的使个None值），包含了检测到的重复文件的类型和路径，例如：fromduplremover.duplicate_removerimportDuplRmDR=DuplRm('E:\\test\\',interactive_mode=False,auto_delete=False)res=DR.start()print(res)res的值为：{'jpg':['E:\\test\\sub\\IMG_0003 - 副本.JPG','E:\\test\\IMG_0003 - 副本.JPG','E:\\test\\sub\\IMG_0003.JPG','E:\\test\\IMG_0003.JPG'],'mp3':['E:\\test\\test_mp3_file_4.8Mb - 副本.mp3','E:\\test\\test_mp3_file_4.8Mb.mp3'],'mp4':['E:\\test\\test_mp4_file_20Mb - 副本.mp4','E:\\test\\test_mp4_file_20Mb.mp4']}最后一种模式，非交互模式下启用自动删除，仅建议在非重要数据或者自动程序调用时使用，输出效果如下：最后再啰嗦一下，数据高无价，操作需谨慎！（删错了重要文件别找我╮（╯＿╰）╭，争取下个版本增加恢复功能）
===="# duplremover"
Package: dupont-contraction
This package provides tools to work with Sullivan forms, Dupont forms, and the
Dupont contraction from Sullivan to Dupont forms. In particular, it allows for
the computation of the transferred homotopy commutative structure on Dupont
forms.Please find the full package documentation in the original Githubrepository.
We recommend the use of a LaTeX viewer for Github.VersionComments1.0.0First productive version.1.0.1No code changes, version to generate DOI.1.0.2Minor changes/bug fixes:Fixed sign error in a_infinity_product.Improved README.md2.0.0Cleaned import structure. NowDupontFormandSullivanFormimport fromdupontcontraction.simplicial(in preparation for
cubical version; to come in a future version).2.1.0Implemented cubical Sullivan and Dupont forms in thedupontcontraction.cubicalmodule. Documentation will follow in
a later update.Other changes/bug fixes:Fixed bug in __repr__.
Package: duptextfinder
Duplicate Text Finderduptextfinderis a python library to detect duplicated zones in text. Primarily meant to detect
copy/paste across medical documents. Should be faster than python's built-indifflibalgorithm and more robust to whitespace, newlines and other irrelevant
characters.Installationduptextfindercan be installed through pip:pip install duptextfinderUsagefrompathlibimportPathfromduptextfinderimportCharFingerprintBuilder,DuplicateFinder# load some text filestexts=[p.read_text()forpinPath("some/dir").glob("*.txt")]# init fingerprint and duplicate finderfingerprintBuilder=CharFingerprintBuilder(fingerprintLength=15)duplicateFinder=DuplicateFinder(fingerprintBuilder,minDuplicateLength=15)# call findDuplicates() on each filefori,textinenumerate(texts):id=f"D{i}"duplicates=duplicateFinder.findDuplicates(id,text)forduplicateinduplicates:print(f"sourceDoc={duplicate.sourceDocId}, "f"sourceStart={duplicate.sourceSpan.start}, "f"sourceEnd={duplicate.sourceSpan.end}, "f"targetStart={duplicate.targetSpan.start}, "f"targetEnd={duplicate.targetSpan.end}")duplicated_text=text[duplicate.targetSpan.start:duplicate.targetSpan.end]print(duplicated_text)WordFingerprintBuildercan be used instead ofCharFingerprintBuilder. For
more details, refer to the docstrings ofDuplicateFinder,CharFingerprintBuilderandWordFingerprintBuilder.How to run testsInstall package in editable mode with test and extra dependencies by runningpip install -e ".[tests, ncls, intervaltree]"in the repo directoryLaunchpytest tests/About ncls and intervaltreeThis tool can be used without any additional dependencies, but performance can
be improved when using interval trees. To benefit from this you well need to
install either thenclspackage or theintervaltreepackage.ReferencesEvaluating the Impact of Text Duplications on a Corpus of More than 600,000 Clinical Narratives in a French Hospital.https://www.hal.inserm.fr/hal-02265124/
Package: duqo
DUQO:DesignUncertaintyQuantification andOptimization frameworkThe repo is under ongoing development. Breaking changes may occur in next versions.Current stable version can be installed using pippip install duqoAlternatively, clone the master branch and usepip install -e .Seeexamplesfor example usage. Documentation is on its way.Reliability Analysis and Reliability-based Robust Design OptimizationGenerally, given one or more limit state functions of formas well as  the input distributionsas parametrized by,
uncertainty quantification, i.e. reliability-analysis, seeks to compute the probability of failureTo solve the uncertainty optimization, i.e. reliability-based robust design optimization, problem, the evaluation ofas well as the expectations and variances of the objective functionsand possible deterministic constraintswith respect to the distribution parametersis required. Besides the input distributions,duqotakes the objectives,
the limit statesand the constraintsas input and wraps them withproblem.obj_conto be used by a generic gradient-free optimization algorithm.CitationIf this repo helped you, I would appreciate citations:C. Bogoclu, T. Nestorović, D. Roos;Local Latin Hypercube Refinement for Multi-objective Design Uncertainty Optimization,
Applied Soft Computing (2021)ContributionContributions welcome as there is a long road ahead to make this research code to a usable one.
Package: duqtools
DuqtoolsDuqtoolsis a tool forDynamicUndertaintyQuantification for Tokamak reactor simulations modelling.Features:Set up 100s of simulation runs from a single templateLaunch standard sets of sensitivity tests with minimal programmingBatch job submission and status trackingSupports the Standardized Interface Data Structures (IDSs) data directoryCompare and visualize 100s of simulations in one overviewDisplay simulation results as confidence ranges and distributionsDuqtoolsis currently under active development. It runs on linux only and requires theITERIntegrated Modeling and Analysis Suite (IMAS).To install:pip install duqtoolsThe source code is available fromGithub.Suggestions, improvements, and edits are most welcome.DevelopmentCheck out ourContributing Guidelinesto get started with development.
Package: durable-call
Durable call is a library for implementing durable functions
from fragile functions.A function is said to be fragile
if any of the following conditions are true:
a) the function may fail intermittently,
b) the function call has side effects,
and thus for a given input it should only be run once.A durable function is a fault tolerant and idempotent version
of a fragile function.
This fault tolerance and idempotency is implemented by the runtime.
When a durable function is called,
the runtime system first saves the parameters of the function call
onto a file on disk.
Next it repeatedly tries to call the function
until it is able to execute it.
Once the function has been executed,
the result is also saved
onto a file on disk.
If the function is called in the future with the same arguments,
the system will just return the saved result
from the previous invocation.Durable function call persists across process invocations.
If a durable function call is initiated,
and the process dies before it has been completed,
the runtime with continue to execute it
if the process is restarted.
Package: durable-rules-tools
durable_rules_magicMagic to simplify working with durable.rules in educational contexts, initially when working with "subject, predicate, object" triple style reasoning.Install as:pip install --upgrade git+https://github.com/innovationOUtside/durable_rules_magic.gitSee thedemo.ipynbfor usage.Additional NotesIf we define:fromIPython.displayimportJavascriptclassSpeech():defsay(self,txt):display(Javascript(f'speechSynthesis.speak(new SpeechSynthesisUtterance("{txt}"))'))then we can get Python to speak...For example:speaker=Speech()speaker.say('hello')This means we can hear the reasoning using rules of the form:@when_all(Subject('eats','worms'))defbird(c):speaker.say(f'if{c.m.subject}eats worms')Set(c,'? : is : bird')speaker.say(f'{c.m.subject}is a bird')which would make the rules both accessible and easier to follow.Could we perhaps create a decorator to the rules that would provide such spoken annotations?
Package: durakonline.py
Durak Online API on PythonA customizable, fast and user-friendly framework for working with the Durak OnlineInstallYou can install the latest version using the command:pipinstalldurakonline.pyImport and Authfromdurakonlineimportdurakonlineclient=durakonline.Client()client.authorization.signin_by_access_token("access token")How to get a tokenSee more examples!ContributingPR is supported! We are pleased to see your contribution to the development of the framework.Ask questions in the Issues block or in theTelegram!