Saravanan666/pypi-org huggingface dataset:
Package: ruobr-api
ruobr_apiPython модуль для доступа к APIэлектронного дневника Кемеровской области.ДисклеймерРазработчик не имеет никакого отношения к ООО "МИРИТ". Исходный код находится в открытом доступе, автор не несёт ответственности за последствия его использования.Установкаpipinstallruobr_apiИспользованиеPython 3.6+>>>fromruobr_apiimportRuobr>>>r=Ruobr('username','password')>>>r.get_user(){'status':'child','last_name':'Зубенко','school_terrirtory_id':1,'user_img':'https://ruobr.ru/mediac/avatars/48ba6326740e49d6a3c9ac01fedff9d7.JPEG','school_is_tourniquet':0,'user_id':115654529,'school_is_food':5,'school':'МБОУ "СОШ №69"','group':'11А','success':True,'push_settings':{'school_news':0,'attendance':0,'homework':0,'mau_balance':0,'tourniquet':1,'mark':1},'middle_name':'Петрович','id':4694228,'readonly':0,'first_name':'Михаил','birth_date':'2004-10-10','gps_tracker':False}ЗависимостиhttpxПримерыПримеры можно найти поссылке.
Package: ruobr-student
Модуль для парсинга Cabinet.ruobr.ru  наPython 3.10 и выше.УстановкаGitHubpip install git+https://github.com/QuoNaro/ruobr-student.gitPyPipip install ruobr-studentИспользованиеfromruobr_studentimportRuobrCookies,RuobrParsercookie=RuobrCookies('login','password')Ruobr=RuobrParser(cookie)ПримечаниеПарсер используется только дляhttps://cabinet.ruobr.ru/student/Полезные ссылкиAPI для Cabinet Ruobr для школьников и их родителей
Package: ruopenrefs
https://github.com/idlesign/ruopenrefsОписаниеОбщероссийские справочники из открытых источниковПакет позволяет получать данные различных справочников, используя [условно] открытые источники,
из вашего кода на Python.ЗависимостиPython 3.5+Ставятся при установке данного пакета:requests- для обращений в вебenvbox- для работы с настройкамиИсточники и справочникиПортал открытых данных Правительства МосквыРасположение:ruopenrefs.providers.mosruОбщероссийский классификатор стран мира (ОКСМ)Общероссийский классификатор валют (ОКВ)Общероссийский классификатор территорий муниципальных образований (ОКТМО)Общероссийский классификатор объектов административно-территориального деления (ОКАТО)Общероссийский классификатор единиц измерения (ОКЕИ)NoteДля доступа к данным этого поставщика требуется зарегистрироваться наhttps://apidata.mos.ru,
получить ключ доступа к API, и проставить его в переменную окружения (либо в.envфайле)RUOREFS_MOSRU_KEY.Примеры использования:# Импортируем нужный класс справочника нужного провайдераfromruopenrefs.providers.mosruimportOksmRef# Проходим по всем данным справочника (для примера справочник ОКСМ)foriteminOksmRef().iter_items():# Каждый item - это именованный кортеж.print(item)УстановкаПакет ставится обычным для пакетов Python способом при помощиpip.Дополнительная информация по установке находится в файлеINSTALL.Участие в разработкеК участию приглашаются все желающие.Больше подробностей о том как принять участие в разработке можно найти в файлеCONTRIBUTING.
Package: ruotvet
RuOtvetLibrary for searching answers to school questions in the big count of services.Installation:Download library using pip$pip3installruotvet-UUsage examples:Query with attachment saving example:fromruotvet.utilsimportget_attachmentfromruotvetimportYandexQimportasyncioasyncdefmain():questions=awaitYandexQ().get_answers("Что такое математика",count=1)forquestioninquestions:print("Answer: ",question.answer)ifquestion.attachments:print("Answer attachment: ",awaitget_attachment(attachment=question.attachments[0]))loop=asyncio.get_event_loop()loop.run_until_complete(main())Image OCR example:Before using OCR you need to install our sub-package for recognition and tesseract with language data for it.Install our subpackage:$pip3installruotvet[ocr].. and after that install tesseract:In macOS simply install it using brew:$brewinstalltesseract
$brewinstalltesseract-langIn unix-like you should do it like this:$sudoapt-getinstalltesseract-ocr
$sudoapt-getinstalltesseract-ocr-allFor using OCR in Windows, follow thisinstruction.fromruotvet.utilsimportOCRfromruotvetimportYandexQimportasyncioasyncdefmain():query=OCR().recognize("image.png")["text"]questions=awaitYandexQ().get_answers(query,count=1)forquestioninquestions:print("Answer: ",question.answer)loop=asyncio.get_event_loop()loop.run_until_complete(main())LicenseThe library is under the GNU LGPLv3 license.BE AWARE THAT THE AUTHORS ARE UNDER NO CIRCUMSTANCES RESPONSIBLE FOR CONSEQUENCES OF USE AND 
    ANY INTERACTION WITH THE LIBRARY. NOT LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 
    IN THE SOFTWARE. THE CODE IS PROVIDED FOR EDUCATION PURPOSES ONLY.Read theLICENSEfor more information.ContributingFeel free to contribute.
Package: rupdater
rupdaterrupdater is a super lightweight and dependency-free updater, that provide
remote version parsing, downloading and getting hash sum of an update.Installationrupdater can be install from PyPi by running:pipinstallrupdaterUsageFirst of all, create new instance of Updater. It takes 2 arguments:
current local version and URL of the remote version data file:fromrupdaterimportUpdaterupdater=Updater('1.0.0a0','https://example.com/remote_version.json',use_json=True)Now you can check for an update by calling thecheck()method:ifupdater.check():print('Update found!')After checking, you may want to download the update. This can be done
withdownload()method, that returns a file-like object (byte-mode)
of the downloaded update (it stores in a temp file).
You should use it only with context manager.withupdater.download()asupdate_file,open('update.zip','w+b')asf:f.write(update_file.read())This example will read the data from update_file and write it to the update.zip.More complicated example with chunk-by-chunk reading/writing:withupdater.download()asupdate_file,open('update.zip','w+b')asf:forchunkiniter(lambda:update_file.read(1024*16),b''):f.write(chunk)rupdater also has hash static method, that takes 2 required arguments and 1 optional:
file-like object, hashing algorithm (as string) and chunk size, which is
1024 * 16 by default. This is the example of usage:withupdater.download()asupdate_file:hashes_match=Updater.hash_file(update_file,updater.hash_algo)==updater.hashWarning! If you want to reuse the update file, you have toseek(0). Example:withupdater.download()asupdate_file,open('update.zip','w+b')asf:forchunkiniter(lambda:update_file.read(1024*16),b''):f.write(chunk)f.seek(0)assertUpdater.hash_file(f,updater.hash_algo)==updater.hashYou can also parse version data again manually by callingget_version_data().Portabilityrupdater.pyis absolutely independent of anything at the moment.
Python Standard Library is the only requirement. So if you need,
you can just copy this file and use it like a single module.Exceptions handlingrupdater does not catch any errors, you have to do it yourself as prefer.
In addition, rupdater may raise ValueError when incorrect input data was given
(version data file does not formatted properly, unknown hashing algorithm etc).
Package: rupee
Rupee is a simple, but fully-featured caching library for Python 3.EnginesRupee supports caching using process memory, Redis, and Memcached.For Redis support:pip install redisFor Memcached support, you can usepylibmc:pip install pylibmcorpython-memcache:pip install python-memcacheCache AccessYou can create cache instances like this:memory = rupee.engine.Memory()
memcached = rupee.engine.Memcached(['localhost:11211'])
redis = rupee.engine.Redis('localhost:6379')All instances conform to the same API, which offer the get/set/delete
operations you’d expect:cache = rupee.engine.Memcached(['localhost:11211'])
cache.set('foo', 'bar', ttl=3600)
cache.set_multi({'baz': 1, 'qux': 2})
cache.get('baz') == 1
cache.get_multi(['foo', 'qux']) == {'foo': 'bar', 'qux': 2}
cache.delete('qux')
cache.delete_all(['foo', 'baz'])
cache.delete_all_data()Cached DecoratorsYou can decorate functions to be cache their results:cache = rupee.engine.Redis('localhost:6379')

@rupee.cached(cache, ttl=3600)
def foo(bar, baz):
    return _some_expensive_thing(bar, baz)To clear the cache entry for a function call:foo.dirty(1, 2)For functions that perform bulk operations, you can use the multi-cache
decorator:@rupee.multi_cached(cache):
def get(items):
    return {item: _some_expensive_thing(item) for item in items}Functions decorated withmulti_cachedmust take a single list as an
argument and return a dictionary keyed on the items in that list. Then,
results for each item will be cached separately, and only the needed
items will be passed to the function. To illustrate:get([1, 2, 3]) # calls _some_expensive_thing on 1, 2, and 3
get([1, 2, 3]) # _some_expensive_thing is never called
get([2, 3, 4]) # calls _some_expensive_thing only on 4
Package: rupersonaagent
RuPersonaAgent.The purpose of the projectThe rupersonaagent library is designed for quick and easy development of a Russian-language personalized conversational agent with dynamic long-term memory. Each method and model can also be used separately for purposes other than developing a conversational agent.Table of ContentsCore featuresInstallationExamplesProject StructureDocumentationLicenseAcknowledgmentsContactsCitationCore featuresSpeech ExtractionGenerative ModelLong-term and Internet memoryPersona Knowledge ExtractionRule Based Information ExtractionInference OptimizationInstallationRuPersonaAgent can be installed withpip:$ pip install rupersonaagentExampleslink for usage examplesProject StructureStable version is located in the main branchRepo includes:generative_model - methods for creating and working with generative Russian language modelsspeech_extraction - methods for extracting the main characteristics of speech from datasets or individual cues, a method for assessing the similarity of speech characteristicsrule_based_information_extraction - methods for extracting important facts about a person from a text based on linguistic rulesDocumentationDocumentationLicenseLicenseAcknowledgmentsGratitude toITMO Universityfor sponsoring and supporting this projectContactsTelegram channelQ&A RuPersonaAgentCitationМатвеева А.А., Махныткина О.В. Метод аугментации текстовых данных с сохранением стиля речи и лексики персоны // Научно-технический вестник информационных технологий, механики и оптики. 2023. Т. 23, № 4. С. 743–749. doi: 10.17586/2226-1494-2023-23-4-743-749Посохов П.А., Рудалева Е.А., Скрыльников С.С., Махныткина О.В., Кабаров В.И. Извлечение информации о персоне из диалоговых данных на русском языке //Информационные технологии. - 2023. в печати
Package: ruphonetic
Russian Phonetic Analysis ModuleChange Log0.1.5 (13.04.2023)-Add package data0.1.4 (25.06.2022)-Add pie, bar plot support0.1.3 (25.06.2022)-Spacy model installation workaround0.1.2 (25.06.2022)-Fix bad accentuation import0.1.1 (25.06.2022)-Remove pprint0.1 (25.06.2022)-First Release
Package: ruphrase
ruphraseBuild the correct turn of phrase in RussianInstallationRunpip install ruphraseorpython -m pip install --user ruphraseUsage>>> from ruphrase import ruphrase
>>> 
>>> ruphrase('РћРїСѓР±Р»РёРєРѕРІР°РЅ/Р°/С‹', 42, 'РЅРѕРІРѕСЃС‚/СЊ/Рё/РµР№')
РћРїСѓР±Р»РёРєРѕРІР°РЅС‹ 42 РЅРѕРІРѕСЃС‚Рё

>>> ruphrase(None, 15, '/СЃРёСЏСЋС‰Р°СЏ Р·РІРµР·РґР°/СЃРёСЏСЋС‰РёРµ Р·РІРµР·РґС‹/СЃРёСЏСЋС‰РёС… Р·РІРµР·Рґ')
15 СЃРёСЏСЋС‰РёС… Р·РІРµР·Рґ

>>> ruphrase('Р—Р°СЃРµР»РµРЅ/С‹', 3001, 'РґРѕРј/Р°/РѕРІ', '')
Р—Р°СЃРµР»РµРЅ 3001 РґРѕРј
Package: ruppell
Ruppell: powerful Python text extractor toolkitWhat is it?Ruppellis a Python wrapper to help in documents' text extraction.Main FeaturesHere are just a few of the things that ruppell does well:Create datasets from multiple files.Extract documents' text (pdf, docx, jpeg, jpg, png).Create Pandas dataframe from documents' folder.Convert documents to .txt filesWhere to get itBinary installers for the latest released version are available at thePypi.pipinstallruppellRequisitesTo run Ruppell you needTesseract OCRPython >= 3.6How to useimportruppell# Configure your documents language, defaults to eng if not specified!ruppell.setup_language(language='eng')# Extract text from pdftext=ruppell.pdf_to_string(file_path='file_path.pdf')# Extract text from docxtext=ruppell.docx_to_string(file_path='file_path.docx')# Extract text from imagetext=ruppell.image_to_string(file_path='file_path.jpeg')# Create pandas dataframe from documents folderdataframe=ruppell.folder_to_dataframe(folder_path='folder_path')# Create dict from documents folderdict_out=ruppell.folder_to_dict(folder_path='folder_path')# Create .txt files from documents folder# A folder ./out_{now_in_timestamp} will created in the same path of folder_pathpath_to_out=ruppell.folder_to_txt(folder_path='folder_path')Example>>> import ruppell
>>> ruppell.image_to_string('image.png')
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer id bibendum sapien.'Supported LanguagesThe language codes areISO 639-2/BorISO 639-2/T.All languages codeshere.ContributingIf you think that we can do the Ruppell more powerful please contribute with this project. And let's improve it to help other developers.Create a pull request or let's talk about something in issues. Thanks a lot.AuthorJorge Melgarejo,melgarejo.colarte@gmail.comLicenseMIT
Package: ruprompts
ruPromptsruPromptsis a high-level yet extensible library for fast language model tuning via automatic prompt search, featuring integration with HuggingFace Hub, configuration system powered by Hydra, and command line interface.Prompt is a text instruction for language model, likeTranslate English to French:
cat =>For some tasks the prompt is obvious, but for some it isn't. WithruPromptsyou can define only the prompt format, like<P*10>{text}<P*10>, and train it automatically for any task, if you have a training dataset.You can currently useruPromptsfor text-to-text tasks, such as summarization, detoxification, style transfer, etc., and for styled text generation, as a special case of text-to-text.FeaturesModular structurefor convenient extensibilityIntegration withHF Transformers, support for all models with LM headIntegration withHF Hubfor sharing and loading pretrained promptsCLIand configuration system powered byHydraPretrained promptsforruGPT-3InstallationruPromptscan be installed withpip:pipinstallruprompts[hydra]SeeInstallationfor other installation options.UsageLoading a pretrained prompt for styled text generation:>>>importruprompts>>>fromtransformersimportpipeline>>>ppln_joke=pipeline("text-generation-with-prompt",prompt="konodyuk/prompt_rugpt3large_joke")>>>ppln_joke("Говорит кружка ложке")[{"generated_text":'Говорит кружка ложке: "Не бойся, не утонешь!".'}]For text2text tasks:>>>ppln_detox=pipeline("text2text-generation-with-prompt",prompt="konodyuk/prompt_rugpt3large_detox_russe")>>>ppln_detox("Опять эти тупые дятлы все испортили, чтоб их черти взяли")[{"generated_text":'Опять эти люди все испортили'}]Proceed toQuick Startfor a more detailed introduction or start usingruPromptsright now with ourColab Tutorials.LicenseruPromptsis Apache 2.0 licensed. See the LICENSE file for details.
Package: ru-proverbs
RU Proverbs AI moduleThis module provides API that allows generating Russian Proverbs with the power of AI.RequirementsFor Windows builds:In the current version we use Python 3.7.8, Tensorflow 2.3.1 and CUDA 10.1.Python 3.7.x x64 (tested withPython 3.7.6x64).Poetry.Install dependencies:2.1 Install dependencies and virtual env:poetry install.2.2 Optionally install and configure CUDA support.Configure CUDADownloadCUDA Toolkitand unpack into e.g.D:\DevTools\cuda\v10.1.Download matchingcuDNNversion (e.g. v7.6.5 for CUDA 10.1) and unpack under the
versioned CUDA folder, e.g.D:\DevTools\cuda\v10.1\cudnn.Add CUDA paths to environment variables andPATH:CreateCUDA_HOMEandCUDA_PATHSenv variables with the following values:SET CUDA_HOME=D:\DevTools\cuda\v10.1
SET CUDA_PATHS=%CUDA_HOME%\bin;%CUDA_HOME%\include;%CUDA_HOME%\extras;%CUDA_HOME%\libnvvp;%CUDA_HOME%\cudnn\bin;AddCUDA_PATHStoPATH:SET PATH=%CUDA_PATHS%;%PATH%.
Package: ruptures
Welcome to rupturesrupturesis a Python library for off-line change point detection.
This package provides methods for the analysis and segmentation of non-stationary signals.  Implemented algorithms include exact and approximate detection for various parametric and non-parametric models.rupturesfocuses on ease of use by providing a well-documented and consistent interface.
In addition, thanks to its modular structure, different algorithms and models can be connected and extended within this package.How to cite.If you userupturesin a scientific publication, we would appreciate citations to the following paper:C. Truong, L. Oudre, N. Vayatis. Selective review of offline change point detection methods.Signal Processing, 167:107299, 2020.[journal][pdf]Basic usage(Please refer to thedocumentationfor more advanced use.)The following snippet creates a noisy piecewise constant signal, performs a penalized kernel change point detection and displays the results (alternating colors mark true regimes and dashed lines mark estimated change points).importmatplotlib.pyplotaspltimportrupturesasrpt# generate signaln_samples,dim,sigma=1000,3,4n_bkps=4# number of breakpointssignal,bkps=rpt.pw_constant(n_samples,dim,n_bkps,noise_std=sigma)# detectionalgo=rpt.Pelt(model="rbf").fit(signal)result=algo.predict(pen=10)# displayrpt.display(signal,bkps,result)plt.show()General informationContactConcerning this package, its use and bugs, use theissue pageof theruptures repository. For other inquiries, you can contact mehere.Important linksDocumentationPypi package indexDependencies and installInstallation instructions can be foundhere.ChangelogSee thechangelogfor a history of notable changes toruptures.Thanks to all our contributorsLicenseThis project is under BSD license.BSD 2-Clause License

Copyright (c) 2017-2022, ENS Paris-Saclay, CNRS
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Package: ruptures-headless
Offline change point detection for Python.-------------------------------------__ruptures__ is a Python library for offline change point detection. This package provides methods for the analysis and segmentation of non-stationary signals. Implemented algorithms include exact and approximate detection for various parametric and non-parametric models. __ruptures__ focuses on ease of use by providing a well-documented and consistent interface. In addition, thanks to its modular structure, different algorithms and models can be connected and extended within this package.An extensive documentation is available ctruong.perso.math.cnrs.fr/ruptures.This version requires Python 3 or later.This is a modified version of ruptures, the original is here: https://pypi.org/project/ruptures/This alternative version make matplotlib an optional dependency, for those with such needs.
Package: rupy
rupyRandom Useful Python stuffWhat's inside?A collection of utilities I find useful.bufA bytearray-derived class with many useful methods, supporting bitwise operations and much more.>>>buf(10)buf(hex='00000000000000000000')>>>str(buf(b'hello'))# utf-8 decode'hello'>>>buf([1,2,3,4])buf(hex='01020304')>>>buf(hex="deadbeef")buf(hex='deadbeef')>>>print(buf.random(100).hexdump())#000000| 6568 15de cf7a ce7e  fb66 d9f3 cad4 d144 |eh...z.~.f.....D|#000010| bc0b c4fd 05c0 5fb5  eca1 870c 94e6 5b73 |......_.......[s|#000020| 3a86 322c 0ede de2e  dd4b d1a6 331d 3c1b |:.2,.....K..3.<.|#000030| 6eb2 27c4 3246 1526  56a8 85a6 8c06 2d91 |n.'.2F.&V.....-.|#000040| a8fc 821d f806 a442  93ff 3503 27fe b3dd |.......B..5.'...|#000050| 1a8e 0aef da63 8eba  8d4f 6da5 fd44 8634 |.....c...Om..D.4|#000060| 3a6e 2395                                |:n#.            |>>>b=buf(b"hello")>>>s=b.to_stream()>>>s.seek(0,2)>>>s.write(b" world")>>>print(b)helloworldAlso available:hexdump, which produces nice hexdumps.bitviewAllows for bit addressing and manipulation in-memory.>>>b=buf(hex='aa55')>>>print(b.bits)1010101001010101>>>print(b.bits[4:-4])# bit views support slicing10100101>>>b.bits.invert()>>>bbuf(hex='55aa')>>>b.bits[:8].set()# set bits to 1>>>bbuf(hex='ffaa')fieldsA small binary structure manipulation library, integrated nicely with thebufstructure, allowing for stuff like:>>>fromrupyimportbuf>>>b=buf(hex='12345678aabbccdd')>>>b.fields('i32 u8[4]')<2fields:[0]:2018915346[1]:(170,187,204,221)>>>>b.fields('foo: i32 bar: u8[4]')# named fieldsOut[4]:<2fields:foo=2018915346bar=(170,187,204,221)>>>>b.fields('foo: i32 bar: u8[4]').foo=5# in-memory change>>>bbuf(hex='05000000aabbccdd')>>>b.fields('foo: i32b bar: u8[4]').foo=5# big endian>>>bbuf(hex='00000005aabbccdd')>>>b.fields('foo: i32b bar: {a: u16 b: u16}')# nested structs<2fields:foo=5bar=<2fields:a=48042b=56780>>SeqInteger sequences. a class that behaves like a normal range() but also enables slicing, infinite ranges,
intuitive notation (e.g:Seq[1, 2, ..., 100]is likeSeq(1, 101)) and more.Seq is similar to builtin range() functions, except it also supports:
* Sub-slicing
* Unbounded ranges
* Series notation using ellipsis
* Arithmetic operations on ranges
* And much more!Usage examples:>>>print(Seq(10))# like range()Seq[0,1,...,9]>>>print(Seq(None))# no upper bound, infinite rangeSeq[0,1,2,...]>>>print(Seq(step=-1))Seq[0,-1,-2,...]>>>foriinSeq[1,2,...,10]:# sequence notation...print(i)12345678910>>>1024inSeq[2:32768:2]# fast containment checkTrue>>>foriinSeq[1,2,...]:...ifi==2**16:...print("No more!")...breakNomore!>>>print(Seq[0,...][2:12:2])# Seqs support slicingSeq[2,4,...,10]StreamA stream wrapper that allows blockwise iteration as well as slicing and single-byte indexing.>>>s=Stream.open("foo.bin","rb")>>>x=s[10:30]>>>x<StreamSlice[10:30]of'/tmp/bla.bin'>>>>buf(x)buf(hex='63a7349ca38cc6319f3430c72e9659e8aca27705')>>>s[:1000].copy(open('/tmp/bar.bi','wb'))# Write stream data to other stream (buffered)ppPretty-printing for large nested structures with Unicode trees and colors.CompatibilityThis package is compatible with Python versions 2.7 and 3.3+.