Saravanan666/pypi-org huggingface dataset:
Package: ru-soundex
# Soundex for RussianRussian, English and Finnish Phonetic algorithm based on Soundex.Package has both implemented phoneme transformation into letter-number sequence and distance engine for comparison of Soundex sequences (based on Levenstein distance).### Quick start1. Install this package via ```pip``````pythonpip install ru-soundex```2. Import Soundex algorithm.Package supports a lot of opportunities, it's possible to cut a result sequence (like in the original Soundex version) or also code vowels.```pythonfrom ru_soundex.soundex import RussianSoundexsoundex = RussianSoundex(delete_first_letter=True)soundex.transform('ёлочка')...J070530soundex = Soundex(delete_first_letter=True, code_vowels=True)soundex.transform('ёлочка')...JA7A53A```> A structure of the library is scalable, `RussianSoundex` class inherits basic class `Soundex` (original for English language). In order to extend our algorithm, you need just inherit own class from `Soundex` and override methods.3. Import Soundex distance for usage of string comparision```pythonfrom ru_soundex.distance import SoundexDistancesoundex = RussianSoundex(delete_first_letter=True)soundex_distance = SoundexDistance(soundex)soundex_distance.distance('ёлочка', 'йолочка')...0```
Package: ruspy
RusPy - Rust-Powered Data AnalysisRusPy is a library implemented in Rust for Python that provides powerful data analysis capabilities.FeaturesFast and efficient numerical computations.Integration with Python for seamless usage.Support for complex numbers and advanced mathematical operations.High-performance array manipulation and linear algebra routines.InstallationRusPy can be installed via pip:pip install ruspyUsageOnce installed, you can import and use RusPy in your Python projects:import ruspy as rp

data = rp.array([1, 2, 3, 4])
frequencies = rp.fft(data)For more information and detailed documentation, please visithttps://github.com/manas-verma/ruspy
Package: russel-python-interface
Russel - Python - InterfaceRussel communication wrapper allows easier integration into other projects.Contact:revol-xut@protonmail.com##Install$pip3installrussel-python-interface##DependenciesOnly some standard python libraries like base64, jsonUnittests$python3-munittestdiscover-vtest##ExamplesSee theRussel-Benchmark-Repositoryfor examples.##CompatibilityCompatible with Russel Versionv0.1fand higherChange Logv0.1b(2020.x.x)v0.1a(2020.7.2)Pypi ConfigurationAdded internal BenchmarksAdded Task, Routine, Template, Socket and Engine Classes asOther core functionalities
Package: russh
russhAn SSH library for Python; written in Rust.Aboutrusshis an easy-to-use SSH library for Python, written in Rust usingPyO3.This library aims to be as similar toparamikoas possible (for ease of use and familiarity), while also adding some opiniated features/improvements.
Currently, this library supports the SSHv2 protocol by leveraginglibssh2(using thessh2crate).This library does not aim to replace paramiko, or any other Python SSH library. Rather, it's just a proof-of-concept to test the viability of a Python library written in Rust.NOTE 1: This library is currently a work-in-progress, and should not be used in production scenarios.NOTE 2: This library is not related to/affiliated with therusshcrate. The similarity in the names of both projects is purely coincidental.FeaturesSupports the SSHv2 protocol.Supports SFTP.Supports Python 3.7 and above.Cross-platform (Windows, macOS and GNU/Linux).Simple and easy to use.Fast and memory-safe, thanks to the underlying Rust core.Extensible and well-documented.Stubs are included with proper type-annotations for all symbols.ContributingTODO
Package: russian-cost
Описание модуля russian_costОглавлениеОбщая информацияПомещение данных в класс и их выводФормат вывода данныхПример использования в шаблонизаторахОбщая информацияМодуль russian_cost служит для преобразования стоимости в строку с использованием различных форматов вывода. Например:Исходные данныеВывод-0.11- 11 копеек-0.11минус одиннадцать копеек0.72семьдесят две копейки100020сто тысяч двадцать рублей1.12один рубль 12 копеек23.12двадцать три рубля 12 копеекПомещение данных в класс и их выводПредположим что у вас есть число, которое нужно преобразовать в стоимость:fromrussian_costimportRussianCostcost=RussianCost(-4.24)print(cost)# минус четыре рубля двадцать четыре копейкиПервым аргументов в конструктор класса передается сама стоимость, вторым аргументом передается формат вывода стоимости, по умолчанию он%S %R %P. Стоимость и формат вывода можно указывать при инициализации экземпляра класса:frompprintimportpprintfromrussian_costimportRussianCostcost=[RussianCost(-4.24),RussianCost(-999.1,out_format='%s%R %p'),RussianCost(-43.23,out_format='%s%r%p'),RussianCost(-43.23,out_format='%S %R и на сдачу %p'),RussianCost(0.23,out_format='Ваша сдача %p'),]pprint(cost)# [минус четыре рубля двадцать четыре копейки,#  - девятьсот девяносто девять рублей 10 копеек,#  - 43 рубля 23 копейки,#  минус сорок три рубля и на сдачу 23 копейки,#  Ваша сдача 23 копейки]Так и после объявления экземпляра класса:fromrussian_costimportRussianCostcost=RussianCost(-4.24)print(cost)# минус четыре рубля двадцать четыре копейкиcost.out_format='%s%R %p'print(cost)# - четыре рубля 24 копейкиcost.cost=34353.1print(cost)# тридцать четыре тысячи триста пятьдесят три рубля 10 копеекcost.out_format='Ваша сдача %p (%P)'print(cost)# Ваша сдача 10 копеек (десять копеек)Так же классRussianCostподдерживает методstrfcost, который позволяет вывести стоимость в нужном формате, без изменения формата ввода классаout_format:fromrussian_costimportRussianCostcost=RussianCost(-4.24)print(cost)# минус четыре рубля двадцать четыре копейкиprint(cost.strfcost('%s%R %p'))# - четыре рубля 24 копейкиФормат вывода данныхДирективаЗначениеПример%SЗнак в текстовом видеминус%sЗнак в символьном виде-%RРубли в текстовом видечетыре рубля%rРубли в символьном виде4 рубля%PКопейки в текстовом видедвадцать четыре копейки%pКопейки в символьном виде24 копейкиПример использования в шаблонизаторахimportjinja2fromdocxtplimportDocxTemplatefromrussian_costimportstrfcostcontext=dict(cost=12.34)jinja_env=jinja2.Environment()jinja_env.filters.update(strfcost=strfcost)doc=DocxTemplate(template_path)doc.render(context,jinja_env)doc.save(result_path)Внутри шаблона{{cost|strfcost}}
....
{{cost|strfcost('%S %R и на сдачу %p')}}
Package: russianCVparser
General informationParser extracts as many as possible information from the CV text. It usesnatashalibrary for
entities recognition andyargyparser for rule-based parsing.Information that can be extracted:socdem:name,gender,date_of_birth,age,locationcareer:period,org_name,occupationeducation:year,name,specializationhobby:nameInstallationpip install russianCVparserUsageParser supports documents indocx, pdf and txtformats.from russianCVparser import CVparser, Document, show_json

parser = CVparser()
document = Document('path/to/doc.pdf')
data = parser.parse_text(document.text) # returns an OrderedDict instance
show_json(data)Examplefrom russianCVparser import CVparser, Document, show_json

parser = CVparser()
document = Document('CV.pdf')
data = parser.parse_text(document.text)
show_json(data)Output:{
  "socdem": {
    "name": "Иванов Иван Иванович",
    "gender": "male",
    "date_of_birth": {
      "year": 1981,
      "month": 5,
      "day": 2
    },
    "age": "39 лет",
    "location": {
      "name": "Казань"
    }
  },
  "career": [
    {
      "period": {
        "from_date": {
          "month": 12,
          "year": 2017
        }
      },
      "org_name": "ООО "Инвест-консалт"",
      "occupation": "Ведущий специалист"
    },
    {
      "period": {
        "from_date": {
          "month": 2,
          "year": 2011
        },
        "to_date": {
          "month": 6,
          "year": 2017
        }
      },
      "org_name": "Казгорсеть",
      "occupation": "Ведущий специалист"
    },
    {
      "period": {
        "from_date": {
          "month": 2,
          "year": 2010
        },
        "to_date": {
          "month": 2,
          "year": 2011
        }
      },
      "org_name": "ООО Адванс",
      "occupation": "Аналитик"
    }
  ],
  "education": [
    {
      "year": 2015,
      "name": "Российский государственный аграрный университет"
    },
    {
      "year": 2016,
      "name": "Московский Государственный Технический Университет"
    }
  ],
  "hobby": [
    {
      "name": [
        "футбол",
        "рыбалка",
        "шахматы"
      ]
    }
  ]
}
Package: russian-names
Library for generation of russian names. Cyrillic and latin alphabet.
Useful for test, mocks etc.InstallationInstall with pip:$ pip install russian-namesUsageImport package:>>> from russian_names import RussianNamesBasic examplePrint random name:>>> RussianNames().get_person()

Владислав Николаевич ИльинBatchCreate batch of persons. Set size incountoption.>>> rn = RussianNames(count=5, patronymic=False, name_reduction=True)
>>> batch = rn.get_batch()
>>> print(batch)

('Л. Ходилова', 'А. Креткова', 'Р. Тишанов', 'И. Закудряев', 'В. Демчин')GeneratorUse russian names as generator>>> rn = RussianNames(count=7, patronymic=False, transliterate=True)
>>> for person in rn:
        print(person)

    Valeriy Forunin
    Pavel Senakosov
    Violetta Scherbovskaya
    Natalya Furshtatova
    Violetta Chuhontseva
    Polina Aksentsova
    Galina BotovaOptionsList of options:optiondescriptiontypedefaultnameboolTruename_reductionAnna -> A.boolFalsename_max_lenint10patronymicboolTruepatronymic_reductionFedorovich -> F.boolFalsepatronymic_max_lenint10surnameboolTruesurname_reductionIvanov -> I.boolFalsesurname_max_lenint10countint10genderfloat0.5transliteratecyrillic to latinboolFalseoutput_typeoutput data format‘str’ or ‘list’ or
‘tuple’ or ‘dict’‘str’seedrandom seedintNonerareuse non popular namesboolFalseuppercaseset uppercase to all namesboolFalseExamples of optionsFor credit cards:>>> RussianNames(count=3, patronymic=False, transliterate=True, uppercase=True).get_batch()
    ('SEMEN SISYKIN', 'LYBOV POLEZAEVA', 'MIHAIL KAMAGOROV')For polls:>>> RussianNames(count=3, surname_reduction=True).get_batch()
    ('Анатолий Юрьевич Ш.', 'Софья Ивановна Т.', 'Валерия Валерьевна Н.')Only women:>>> RussianNames(count=3, gender=0.0).get_batch()
    ('Кристина Петровна Тоншина', 'Клавдия Эдуардовна Караулова', 'Лариса Викторовна Короткина')List of dicts:>>> RussianNames(count=3, output_type='dict').get_batch()
    (
        {'name': 'Кирилл', 'patronymic': 'Денисович', 'surname': 'Дрожжов'},
        {'name': 'Андрей', 'patronymic': 'Кириллович', 'surname': 'Шувиков'},
        {'name': 'Роман', 'patronymic': 'Евгеньевич', 'surname': 'Малеванкин'}
    )Get current optionPrint options>>> rn = RussianNames(count=10, gender=0.5, surname_max_len=15,
                      transliterate=True, uppercase=True)
>>> print(rn)

    RussianNames settings:
         name: True
         name_reduction: False
         name_max_len: 10
         patronymic: True
         patronymic_reduction: False
         patronymic_max_len: 10
         surname: True
         surname_reduction: False
         surname_max_len: 15
         count: 10
         gender: 0.5
         transliterate: True
         output_type: str
         seed: None
         rare: False
         uppercase: TrueTests$ pytest -v tests/*LicenseThis project is licensed under the MIT License - see theLICENSE.txtfile for details
Package: russian-numerals
Пакет Python для работы с количественными числительными русского языка.Установкаpipinstallrussian-numerals# orpipinstallgit+https://gitlab.com/djbaldey/russian-numerals.git@master#egg=russian-numeralsИспользование в консолиrussian-numerals"1234567890"russian-numerals--handler=tons"1234567890.123456"russian-numerals"восемь девятьсот двадцать четыре шестьсот сорок четыре девяносто девять сорок четыре"russian-numerals--helpИспользование в коде Pythonfromrussian_numeralsimportprepareprint(prepare("1234567890"))print(prepare("1234567890.123456","tons"))print(prepare("восемь девятьсот двадцать четыре шестьсот сорок четыре девяносто девять сорок четыре"))
Package: russian-protowhat
protowhatprotowhatis a utility package required byshellwhatandsqlwhatpackages, used for writing Submission Correctness Tests SCTs for interactive Shell and SQL exercises on DataCamp. It contains shared functionality related to SCT syntax, selectors and state manipulation.If you are new to teaching on DataCamp, check outhttps://instructor-support.datacamp.com.If you want to learn what SCTs are and how they work, visitthis articlespecifically.For a deep dive inprotowhat, consulthttps://protowhat.readthedocs.io.Installationpyenv local 3.9.0
pip3.9 install protowhat   # install from pypi
make install            # install from sourceTestingpip3.9 install -e .
pytestLicense
Package: russian-quotes
russian_quotesInstallationpipinstallrussian-quotesUsageSyncfromrussian_quotesimportget_quotetext,author=get_quote()print(f'Text:{text}Author:{author}')Asyncimportasynciofromrussian_quotesimportget_quote_coroasyncdefmain():returnawaitget_quote_coro()text,author=asyncio.run(main())print(f'Text:{text}Author:{author}')Catch exceptionimportrussian_quotestry:text,author=russian_quotes.get_quote()print(text,author)exceptrussian_quotes.ServerError:print('Error!')DependenciesPython >=3.7LegalMIT
Package: russian-tagsets
russian-tagsets- библиотека для преобразования между
различными форматами обозначения грамматической информации
для слов русского языка. Лицензия - MIT.На данный момент поддерживается (с разной степенью корректности)
преобразование между следующими форматами:OpenCorpora(в.т.ч. русские словариpymorphy2);aot.ru(в.т.ч.pymorphy0.5.6);Диалог-2010;A Positional Tagset for Russian(Jirka Hana and Anna Feldman, 2010);НКРЯ;Universal Dependencies(v1.4, v2.0,Dialog-2017);Идея такая: для каждого формата в библиотеке определяется
несколько функций, которые преобразуют тег в другие форматы;
если какое-то преобразование явным образом не определено,russian-tagsetsпытается построить цепочку преобразований,
приводящую к нужному результату.WarningПреобразование почти никогда не выходит осуществить без потерь;
если можно эту библиотеку не использовать, то лучше и не использовать.Установкаpip install russian-tagsetsИспользование“Автоматический” режим (библиотека пытается найти пути преобразования):>>> from russian_tagsets import converters
>>> to_aot = converters.converter('opencorpora-int', 'aot')
>>> to_aot("NOUN,anim,masc plur,nomn")
С,од,мр,мн,имПоддерживаемые напрямую форматы:>>> converters.get_supported()
[('positional', 'aot'),
 ('aot', 'positional'),
 ('aot', 'dialog2010'),
 ('dialog2010', 'aot'),
 ('opencorpora-int', 'opencorpora-ext'),
 ('opencorpora-int', 'ruscorpora'),
 ('opencorpora-int', 'ud14'),
 ('opencorpora-int', 'ud20'),
 ('opencorpora-int', 'dialog2017'),
 ('opencorpora-ext', 'opencorpora-int'),
 ('opencorpora-ext', 'aot')]“Ручной” режим (быстрее, преобразование только напрямую):>>> import russian_tagsets
>>> russian_tagsets.aot.to_positional(u"С,од,мр,мн,им")
Tag("NNMAP1-------A--")РазработкаИсходный код:https://github.com/kmike/russian-tagsetsБаг-трекер:https://github.com/kmike/russian-tagsets/issuesДля запуска тестов выполнитеtoxиз папки с репозиторием.Changes0.6 (2017-06-18)OpenCorpora -> Universal Dependencies conversion support (UD 1.4, UD 2.0,
Dialog 2017 tagset).convertfunction accepts optionalwordargument - conversion rules
may now depend on a word itself, not only on its tag;Python 3.2, 3.3 and 2.6 support is dropped;packaging improvements.0.5.2 (2014-08-19)Handle “abbr” grammeme in OpenCorpora -> RusCorpora conversion.0.5.1 (2014-04-23)Added support for Init OpenCorpora grammeme.0.5 (2014-04-22)Added support for initials in OpenCorpora -> RusCorpora conversion rules;small code cleanup.0.4 (2014-03-14)Improved OpenCorpora -> RusCorpora rules;Anph grammeme is added to OpenCorpora rules.0.3.1 (2013-04-12)Improved OpenCorpora -> RusCorpora rules.0.3 (2013-03-21)Improved OpenCorpora -> RusCorpora rules.0.2 (2013-02-07)OpenCorpora -> RusCorpora conversion;DSL for writing conversion routines.0.1 (2012-10-07)Initial release
Package: russound
# Russound Python API
Implements a Python API for selected commands to the Russound system using the RNET protocol predominantly developed to
provide Russound support within home-assistant.io.
The class is designed to maintain a connection to the Russound controller, and reads the state directly
from the controller using RNET.  In principle supported models include the CAS44, CAA66, CAM6.6 and CAV6.6.
Although testing has only been done on CAA66 and CAV6.6.  Function to control Russound implemented are:####For a zone:
* set_power
* set_volume
* set_source
* toggle_mute
* get_power
* get_volume
* get_source####Controller level
* all_on_offtest_harness.py shows some examples of usage.
Package: russound-rio
This is the new home for the Russound Rio Python package, forked from @wickerwaka’s excellent work athttps://github.com/wickerwaka/russound_rio.This module implements a Python client for the Russound I/O (RIO) protocol used to control Russound audio controllers. RIO supports a superset of the RNET feature set, allows for push notifications of system changes and supports TCP/IP and RS232 communication.
Package: russtress
The tool based on LSTM predicts stress position in each word in russian text depending on the word context.
For more details about the tool see«Automated Word Stress Detection in Russian», EMNLP-2017, Copenhagen, Denmark.InstallationSimple installation with pippip install russtressUsage exampleTo put stress marks to your text>>> from russtress import Accent
>>> accent = Accent()
>>> text = 'Проставь, пожалуйста, ударения'
>>> accented_text = accent.put_stress(text)
>>> accented_text
"Проста'вь, пожа'луйста, ударе'ния"DatasetsThe repo contains samples from UD treebanks annotated with word stress for the Russian, Ukranian and Belorusian languages. For more details about the tool see VarDial paper (coming soon).
Package: rustack-esu
rustack-esurustack-esuявляется Python библиотекой для работы с публичным облакомСБКлауд.УстановкаМинимальная версия Python для установки пакета: 3.5.$pipinstallrustack-esuПримеры использованияСоздание ВЦОДfromesuimportManager,Project,Vdctoken='72321013a102d2d3da2eaa79f0a613d40cf642fb'manager=Manager(token=token)client=manager.get_all_clients()[0]project=Project(name='Новый проект',client=client,token=token)project.create()hypervisor=next(hforhinproject.get_available_hypervisors()\ifh.type=='kvm')vdc=Vdc(name='Новый ВЦОД',hypervisor=hypervisor,project=project,token=token)vdc.create()print(f'ID нового ВЦОД:{vdc.id}')Напечатает:IDновогоВЦОД:62a2df46-5412-4ca2-9d60-f6fcbe5f4b5fСоздание сервераfromesuimportManager,Project,Vdcvdc=Vdc.get_object('62a2df46-5412-4ca2-9d60-f6fcbe5f4b5f',token=token)vm=vdc.create_vm('Новый сервер','KVM Ubuntu 18','xj3$mNW11')print(f'ID нового сервера:{vm.id}')print(f'URL VNC консоли:{vm.get_vnc_url()}')# login: ubuntuНапечатает:IDновогосервера:6c53c690-bd65-4fa5-888a-c9f8054a8ddcURLVNCконсоли:https://...ДокументацияБолее подробную информация можно получить вдокументации.
Package: rust-arenaclient
rust-arenaclientrust-arenaclient was created forai-arenato act as a proxy between
bots and StarCraft II. It was originally written entirely in Python,
but due to performance concerns, was rewritten using Rust +pyo3.It can be used as a stand-alone binary or as a Python library for convenience.InstallationYou can install rust_arenaclient using:pipinstallrust_arenaclientor alternatively build a binary from source usingcargobuild--binrust_ac_binUsagePythonfromrust_acimportServerserver=Server("127.0.0.1:8642")server.run()BinaryCurrently the proxy server starts on127.0.0.1:8642when launched. Future updates will enable the user to specify
host and port using command line arguments, after which this README will be updated.Running a gamerust_arenaclient was made for the purpose of being part of a bigger system
to run StarCraft II
games. The system will interact with the rust_arenaclient through websockets and is known
as a supervisor. rust_arenaclient only acts as a proxy between bots and StarCraft II.
The starting of bots and creating game config
is the supervisor's job. Example of an extremely basic supervisor script in Python:importos,subprocess,asyncio,aiohttpfromrust_acimportServerfromrust_ac.match_runnerimportMatchRunnerfromrust_acimportGameConfigm=MatchRunner(bot_directory=r"D:\desktop backup\aiarenaclient\aiarena-client\aiarena-test-bots")result=m.run_game(game=GameConfig('AutomatonLE','loser_bot','MicroMachine'))# One gamegames=[GameConfig('AutomatonLE','loser_bot','basic_bot')for_inrange(20)]results=m.run_games_multiple(games=games,instances=3)# Multiple games - Run 3 games at a timeLoggingLogging is done via the handlypyo3-logcrate. To get the Rust logs in Python, initialize the logging library before importing rust-arenaclient, i.e.importos,subprocess,asyncio,aiohttpimportlogging# Needs to be imported before importing rust_aclogging.getLogger().setLevel(logging.DEBUG)# Set debugging levellogging.basicConfig(filename="log.txt",level=logging.DEBUG,filemode="w+")# Write logs to a file called "log.txt"logging.info("")# Needed to initialize loggingfromrust_acimportServerfromrust_ac.match_runnerimportMatchRunnerfromrust_acimportGameConfigm=MatchRunner(bot_directory=r"D:\desktop backup\aiarenaclient\aiarena-client\aiarena-test-bots")...ContributingPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.Please make sure to update tests as appropriate.LicenseGNU GPLv3
Package: rustcsv
ContentsBIG DISCLAIMERInstallationExamplesCSVReader instance from pathCSVReader instance from a binary file objectDevelopmentRequirementsInstall Python dependenciesBuild therustcsv._rustcsvextensionRun testsRun benchmarksBenchmarksReferencesBIG DISCLAIMERThis is not a production-ready library.I’m not a production-ready Rust programmer.Either Python 3’scsvstdlib module is pretty %#!& fast or my Rust code
is %#!& slow.InstallationpipinstallrustcsvExamplesCSVReader instance from pathexamples/reader_from_path.py:importtempfilefromrustcsvimportCSVReader# Create a temporary file to put our CSV content in,# automatically delete it once we're done.withtempfile.NamedTemporaryFile(mode="w")aswritable_fd:writable_fd.write("""\
spam1,spam2,spam3
spam4,spam5,spam6
""")writable_fd.flush()forrow_number,rowinenumerate(CSVReader(writable_fd.name),start=1):print("row #{row_number}:{row}".format(row_number=row_number,row=row))# Prints:# row #1: ("spam1", "spam2", "spam3")# row #2: ("spam4", "spam5", "spam6")CSVReader instance from a binary file objectexamples/reader_from_file_object.py:importtempfilefromrustcsvimportCSVReader# Create a temporary file to put our CSV content in,# automatically delete it once we're done.withtempfile.NamedTemporaryFile(mode="w")aswritable_fd:writable_fd.write("""\
spam1,spam2,spam3
spam4,spam5,spam6
""")writable_fd.flush()readable_fd=open(writable_fd.name,"rb")forrow_number,rowinenumerate(CSVReader(readable_fd),start=1):print("row #{row_number}:{row}".format(row_number=row_number,row=row))# Prints:# row #1: ("spam1", "spam2", "spam3")# row #2: ("spam4", "spam5", "spam6")DevelopmentDevelopment InstallationInstall and build the extension locally from e.g. a git checkout.RequirementsPipenv.Python 3.6.Rust and Cargo nightly (1.30 as of now) -https://rustup.rs/.Install Python dependenciespipenvinstall--devBuild therustcsv._rustcsvextensionEitherUsing the “debug” cargo profile, ormakedevelop-debugUsing the “release” cargo profilemakedevelop-releaseRun testsmaketestRun benchmarksmakebenchmarkNote:make benchmarkwill always build the extension using the “release”
cargo profile.BenchmarksBenchmarks are executed as the last step in theTravis CI project.You can also run it yourself, seeDevelopmentandRun benchmarks.Referenceshttps://github.com/python/cpython/blob/master/Modules/_csv.chttps://pyo3.rs/v0.4.1/class.html