Skip to main content

ruMorph

ruMorph

Russian Morphology - быстрый морфологический анализатор русского языка на Rust с API для Python

Документация · PyPI · crates.io · English

Версия Поддерживаемые версии Python Крейт Сборка Ruff Лицензия DOI


ruMorph - морфологический анализатор русского языка: ядро на Rust и API для Python. Для словоформы анализатор находит по словарю OpenCorpora варианты разбора - начальную форму (лемму), часть речи и признаки Universal Dependencies - упорядочивает их по вероятности и строит формы слова.

Разбор и лемматизация в 7-8 раз быстрее, чем в pymorphy3 с ускорением pymorphy3[fast], форма по признакам и согласование с количеством - в 17-18 раз; списки слов разбираются без GIL. Части речи, признаки и леммы следуют соглашениям трибанка SynTagRus, поэтому результат можно сравнивать с разметкой spaCy, Stanza и других инструментов на UD.

  • Анализатор - разборы словоформы по убыванию вероятности, разбор списков слов и лемматизация без GIL, проверка словоформы по словарю
  • Части речи и признаки UD - части речи, признаки и леммы в соглашениях SynTagRus; пометы OpenCorpora, у которых нет признака UD
  • Токены вне словаря - числа, знаки, латиница, инициалы и сокращения по правилам
  • Незнакомые слова - разборы по окончанию, слова через дефис и с приставками, формы угаданных слов
  • Словоизменение - формы лексемы, форма по признакам UD, согласование с количеством
  • Команда rumorph - разбор файлов и потоков: леммы, CoNLL-U, TSV и JSON Lines
  • Переход с pymorphy - соответствие вызовов pymorphy2 и pymorphy3, частей речи и граммем
  • Скорость и память - разбор, лемматизация и словоизменение в сравнении с pymorphy3, загрузка словаря и память

Установка

Требуется Python 3.11 или новее.

pip install rumorph

Или с помощью uv:

uv add rumorph

Колеса собираются для Linux (в том числе Alpine), macOS и Windows, включая Python 3.14t без GIL; Rust для установки не нужен, словарь входит в пакет. На других платформах pip соберет пакет из исходников - для этого нужен Rust 1.88 или новее. Подробнее - на странице Установка.

Для Rust - крейт rumorph со словарем (cargo add rumorph, документация - на docs.rs); команда rumorph без Python ставится через cargo install rumorph --features cli.

Быстрый старт

>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> morph.lemmatize("Мы стали друзьями в ковиде".split())
['мы', 'стать', 'друг', 'в', 'ковид']
>>> [(a.lemma, a.pos, a.feats.get("Case"), round(a.prob, 3)) for a in morph.analyze("стали")][:2]
[('стать', 'VERB', None, 0.975), ('сталь', 'NOUN', 'Gen', 0.011)]
>>> morph.analyze("кошка")[0].inflect(Case="Gen", Number="Plur")
'кошек'
>>> morph.analyze("рубль")[0].agree(5)
'рублей'

Анализатор достаточно создать один раз: при создании он загружает словарь, дальше им можно пользоваться во всей программе.

Возможности

Разбор словоформы

Метод analyze возвращает разборы словоформы по убыванию вероятности - объекты Analysis с леммой, частью речи, признаками UD, пометами словаря, вероятностью и источником разбора. Регистр не важен, буква «е» может обозначать «ё». Разборы неизменяемы: их можно сравнивать, класть в множества и сохранять через pickle.

>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> morph.analyze("стали")[0]
Analysis(word='стали', lemma='стать', pos='VERB', feats='Aspect=Perf|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Mid', labels='intr', prob=0.9753459013836056, source='dictionary')
>>> [len(analyses) for analyses in morph.analyze_many(["мама", "мыла", "раму"])]
[1, 4, 2]
>>> morph.is_known("Ежи"), morph.is_known("вайб")
(True, False)

Списки слов методы analyze_many и lemmatize разбирают без GIL, поэтому несколько потоков с одним анализатором работают параллельно; в Python 3.14t без GIL параллельно работают и analyze, inflect и agree. Анализатор и разборы сохраняются через pickle и работают с multiprocessing и joblib.

Подробнее - в документации: анализатор, разбор словоформы.

Части речи и признаки Universal Dependencies

Части речи и признаки следуют Universal Dependencies в соглашениях крупнейшего русского трибанка UD_Russian-SynTagRus. Отличия от частей речи OpenCorpora:

  • «который», «этот», «свой», «весь», «такой» и другие местоименные прилагательные - DET
  • «быть» и «бы» - AUX
  • вводные слова «однако», «например», «конечно» - ADV
  • «можно», «надо», «нельзя» - VERB без признаков
  • предлоги - ADP, сочинительные союзы - CCONJ, подчинительные - SCONJ, частицы - PART

Признаки: падеж, число, род, одушевленность, лицо, время, вид, наклонение, залог, форма глагола, степень, краткая форма, тип имени собственного, сокращение, притяжательность, тип числительного и его запись, тип местоимения, возвратность, несклоняемость, отрицание. Леммы тоже следуют SynTagRus: «Ивановой» - «иванова», «важнейшей» - «важнейший», «денег» - «деньги». Граммемы OpenCorpora, для которых в UD нет признака, - стиль, переходность, второй предложный падеж и другие - лежат в пометах labels.

>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> words = ["который", "был", "конечно", "можно", "Ивановой", "денег"]
>>> [(analyses[0].lemma, analyses[0].pos) for analyses in morph.analyze_many(words)]
[('который', 'DET'), ('быть', 'AUX'), ('конечно', 'ADV'), ('можно', 'VERB'), ('иванова', 'PROPN'), ('деньги', 'NOUN')]
>>> lesu = morph.analyze("лесу")[0]
>>> lesu.feats["Case"], lesu.labels
('Loc', frozenset({'loc2'}))

Подробнее - в документации; соответствие граммем OpenCorpora признакам UD - на странице Переход с pymorphy.

Токены вне словаря

Числа, знаки, латиницу и сокращения анализатор разбирает по правилам, source у таких разборов - "rule":

  • знаки препинания - PUNCT, символы %, $, № и эмодзи - SYM
  • числа цифрами - NUM; целое число может быть и порядковым ADJ, у годов это первый разбор
  • числа с окончанием «2005-го», «5-ти» - порядковые ADJ с падежом или количественные NUM, римские числа - порядковые ADJ
  • слова латиницей - X с Foreign=Yes
  • инициалы «А.» - имя, отчество или фамилия с Abbr=Yes
  • сокращения с точкой «т.», «им.» - разборы словарного сокращения, аббревиатуры капсом «НКО» - PROPN или NOUN с Abbr=Yes
  • наречия «по-бурятски», «по-молодому» - ADV
  • прочие токены «км/ч», «РосПил» - X без признаков, лемма - токен в нижнем регистре

Доли неоднозначных разборов взяты из частот в SynTagRus.

>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> [(a.lemma, a.pos, a.feats["NumType"], round(a.prob, 2)) for a in morph.analyze("2026")]
[('2026', 'ADJ', 'Ord', 0.94), ('2026', 'NUM', 'Card', 0.06)]
>>> [(a.lemma, a.pos, a.feats["Case"]) for a in morph.analyze("2005-го")][:1]
[('2005-й', 'ADJ', 'Gen')]
>>> [(a.pos, a.feats, a.source) for a in morph.analyze("iPhone")]
[('X', {'Foreign': 'Yes'}, 'rule')]

Подробнее - в документации.

Незнакомые слова

Разборы слова кириллицей, которого нет в словаре, анализатор угадывает по окончанию: берет формы словарных слов с тем же окончанием - их часть речи, признаки и словоизменение. source у таких разборов - "guess".

  • Слово в нижнем регистре угадывается как нарицательное, слово с заглавной буквы - в основном как имя собственное: фамилия, имя, топоним
  • Слово через дефис разбирается по последней части: «крэш-тестов» - «крэш-тест», «Мак-Киннона» - «мак-киннон»
  • Слово с известной приставкой - «эко», «анти», «супер», «микро» и другими - разбирается по словарному слову без нее: «экодомов» - «экодом»
  • У угаданного разбора есть формы, и они сохраняют заглавные буквы: «Мак-Киннона» в дательном падеже - «Мак-Киннону»
>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> [(a.lemma, a.pos, a.feats["Case"], a.source) for a in morph.analyze("чатботу")][:1]
[('чатбот', 'NOUN', 'Dat', 'guess')]
>>> guess = morph.analyze("Мартова")[0]
>>> guess.lemma, guess.pos, guess.feats["NameType"], guess.inflect(Case="Dat")
('мартов', 'PROPN', 'Sur', 'Мартову')
>>> morph.analyze("крэш-тестов")[0].lemma, morph.analyze("экодомов")[0].lemma
('крэш-тест', 'экодом')

Подробнее - в документации.

Словоизменение

Каждый разбор знает свою лексему - все формы слова с той же леммой:

  • forms - формы лексемы в порядке словаря
  • inflect - форма с заданными признаками UD; признаки, которые не названы, по возможности сохраняются
  • agree - форма существительного, прилагательного или причастия, согласованная с количеством: «1 рубль», «2 рубля», «5 рублей», «2 суток»

Если у лексемы нет нужной формы, inflect и agree бросают FormNotFoundError, а на опечатку в признаке inflect бросает ValueError со списком допустимых значений.

>>> from rumorph import Analyzer

>>> morph = Analyzer()
>>> cat = morph.analyze("кошка")[0]
>>> [form.word for form in cat.forms()][:5]
['кошка', 'кошки', 'кошке', 'кошку', 'кошкой']
>>> cat.inflect(Case="Gen"), cat.inflect(Case="Gen", Number="Plur")
('кошки', 'кошек')
>>> verb = morph.analyze("читал")[0]
>>> verb.inflect(Gender="Fem"), verb.inflect(Tense="Pres", Person="3", Number="Plur")
('читала', 'читают')
>>> ruble = morph.analyze("рубль")[0]
>>> [f"{n} {ruble.agree(n)}" for n in (1, 2, 5, 21)]
['1 рубль', '2 рубля', '5 рублей', '21 рубль']

Подробнее - в документации.

Команда rumorph

Команда ставится вместе с пакетом и разбирает текст из файлов или стандартного ввода: леммы, CoNLL-U, TSV или JSON Lines со всеми разборами. На входе - текст, токены по одному в строке или CoNLL-U, в котором заполняются LEMMA, UPOS и FEATS.

$ echo "Мы стали друзьями в ковиде." | rumorph
мы стать друг в ковид .
$ rumorph --format conllu text.txt > text.conllu

Подробнее - в документации: параметры, форматы и коды выхода.

Переход с pymorphy

ruMorph работает с тем же словарем OpenCorpora, что pymorphy2 и pymorphy3, но API у него свое: части речи и признаки UD вместо граммем OpenCorpora, вероятность вместо score, словоформы строкой, исключения вместо None. Здесь morph - анализатор, p - разбор pymorphy, a - разбор ruMorph:

pymorphy2, pymorphy3 ruMorph
MorphAnalyzer() Analyzer()
morph.parse(word) morph.analyze(word)
[morph.parse(w)[0].normal_form for w in words] morph.lemmatize(words)
morph.word_is_known(word) morph.is_known(word)
p.normal_form, p.tag.POS, p.score a.lemma, a.pos, a.prob
p.tag.case, p.tag.number a.feats.get("Case"), a.feats.get("Number")
p.lexeme a.forms()
p.inflect({"gent", "plur"}).word a.inflect(Case="Gen", Number="Plur")
p.make_agree_with_number(n).word a.agree(n)

Подробнее - в документации: все вызовы, части речи и граммемы.

Скорость и память

Тысяч слов или разборов в секунду, больше - лучше:

Операция ruMorph pymorphy3 pymorphy3[fast]
Разбор словоформы 732 20 105
Лемматизация 1 404 22 170
Лемматизация в 4 потоках 4 275 - -
Форма по признакам 1 399 76 76
Согласование с количеством 1 417 85 85

Импорт и загрузка словаря занимают 4 мс против 30 мс у pymorphy3, прирост памяти процесса - 16,0 МБ против 25,5 МБ у pymorphy3[fast]; процессы делят словарь, и каждый следующий добавляет 1,4 МБ. Замер - на 128 251 словоформе тестовой части UD_Russian-SynTagRus, Apple M3 Pro, Python 3.11.

Подробнее - в документации: все операции и как они измерены.

Разработка

Проект использует uv для управления зависимостями, maturin для сборки модуля на Rust и ruff для линтинга и форматирования. Нужен Rust 1.88 или новее.

git clone https://github.com/SergeyShk/ruMorph.git
cd ruMorph

make deps        # создать окружение, установить зависимости и собрать модуль на Rust
make dictionary  # собрать словарь из pymorphy3-dicts-ru
make test        # запустить тесты Python, примеры из докстрингов (doctest) и тесты Rust
make lint        # ruff, mypy, rustfmt и clippy

Полный список команд - make help. Документация двуязычная: русские страницы docs/*.md, английские - docs/*.en.md рядом с ними; при правке страницы обновляйте обе версии.

Перед отправкой изменений стоит установить хуки, которые прогонят линтеры на коммите и тесты на пуше:

uv run pre-commit install

Участие в проекте

Баг-репорты, идеи и пул-реквесты приветствуются - issues открыты. Как устроен процесс и что проверить перед отправкой пул-реквеста - в CONTRIBUTING.md; правила общения - в кодексе поведения.

Структура проекта
  • crates/rumorph - ядро анализатора на Rust: формат словаря, сборка, разбор и словоизменение
  • crates/rumorph-build - сборка словаря из выгрузки pymorphy3-dicts-ru и перевод тегов OpenCorpora в UD
  • crates/rumorph-dict-ru - крейт со словарем для rumorph на crates.io
  • crates/rumorph-py - модуль Python rumorph._rumorph на PyO3
  • python/rumorph - пакет Python
  • scripts - выгрузка словаря pymorphy3-dicts-ru и проверка установленного пакета перед публикацией
  • docs - документация MkDocs на русском и английском
  • tests - тесты пакета Python

Авторы

Лицензия

Код распространяется под лицензией MIT. Словарь в пакете собран из словаря OpenCorpora и распространяется по лицензии CC BY-SA 3.0 (LICENSE-DICTIONARY.txt).

Цитирование

Если вы используете ruMorph в исследованиях или программах, пожалуйста, цитируйте библиотеку по следующей записи BibTeX - это помогает развитию и поддержке проекта. Те же метаданные лежат в CITATION.cff - GitHub показывает их по кнопке «Cite this repository». Concept DOI 10.5281/zenodo.23520738 на Zenodo указывает на все версии библиотеки; DOI конкретной версии - на странице релиза.

@software{ruMorph,
  author = {Sergey Shkarin},
  title = {{ruMorph, a fast morphological analyzer for Russian}},
  year = 2026,
  doi = {10.5281/zenodo.23520738},
  url = {https://github.com/SergeyShk/ruMorph}
}

Metadata

Release files for rumorph 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rumorph 0.2.0
File Size Uploaded Provenance
rumorph-0.2.0.tar.gz 6.6 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for rumorph 0.2.0
File
rumorph-0.2.0-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
rumorph-0.2.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
rumorph-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
rumorph-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
rumorph-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
rumorph-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
rumorph-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
rumorph-0.2.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
rumorph-0.2.0-cp311-abi3-win_arm64.whl CPython 3.11 abi3 Windows ARM64 Details
rumorph-0.2.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
rumorph-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl CPython 3.11 abi3 Linux musl 1.2+ x86-64 Details
rumorph-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl CPython 3.11 abi3 Linux musl 1.2+ ARM64 Details
rumorph-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
rumorph-0.2.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 abi3 Linux glibc 2.17+ ARM64 Details
rumorph-0.2.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details
rumorph-0.2.0-cp311-abi3-macosx_10_12_x86_64.whl CPython 3.11 abi3 macOS 10.12+ x86-64 Details

Total release size: 115.0 MB

Release files / rumorph-0.2.0.tar.gz

Download URL rumorph-0.2.0.tar.gz
Size 6.6 MB
Tags Source
SHA-256 checksum
How to use checksums
bf5925b1633da68f253843e6853abeb91166c50977458819dec4aa74cecd87ca
BLAKE2b-256 checksum
How to use checksums
20f195dae07cf8c879cca718da79beae54c91b224bd75ecf1ee17966202ed7c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-win_arm64.whl

Download URL rumorph-0.2.0-cp314-cp314t-win_arm64.whl
Size 6.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
75dcdee2470a006a00fa14f027b7860098f823d9dada22a80eacd37ebfa33f50
BLAKE2b-256 checksum
How to use checksums
7f2bbfec045dccc27406467889d4b32d3b536fef0c32a7d3c62aafb8f0e9977a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-win_amd64.whl

Download URL rumorph-0.2.0-cp314-cp314t-win_amd64.whl
Size 6.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
377b39faca2a22323267ae8831c0a01ea5492e17ce20459eb7c35a495fee6e40
BLAKE2b-256 checksum
How to use checksums
9bcb414b643e3b04f17b071f94cc6280e2f28dcafeca212ac5a69d5bad686cbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL rumorph-0.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 7.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ba49b0a6f49ba0d766519498ee403a14fb620923e114cf79ff9a3fe71f839a3a
BLAKE2b-256 checksum
How to use checksums
9465078d1eb4613b733e22ca7abffcf21b864adaad18dc67a3527e18f7ddf4c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL rumorph-0.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 6.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
1f24945fa6944f412c3489173844c07f91249dc84af9b92bf26854416571ac43
BLAKE2b-256 checksum
How to use checksums
3d3a507846952a2405f14141d694ebe6d17c4aeb00f14a2553a88ad211365912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rumorph-0.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a95df31b19483df1cef3fd943836f0d4b4c885eaecc782f684f752db8ecc3420
BLAKE2b-256 checksum
How to use checksums
ec8235ca2df68868592b466d420ee4aac0e86d493986c990a5f1bc44259c2fe9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rumorph-0.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 6.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
5a2d4c37f1b2640e9b8ad48aad6c35cb9fa52b364ee6165361bcdf8c13865a28
BLAKE2b-256 checksum
How to use checksums
ba12aa57dd29e85d3b1aaad02073ff5034e20cdceef61568add0432ac3294fa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL rumorph-0.2.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 6.7 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
66727b6858a4d4383496f58611365b20fa1ed39462a1d7fbf387e570ede73e41
BLAKE2b-256 checksum
How to use checksums
0150459d2359b7125d530ac5729be208b3a994305c05ef461131539b006a844e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL rumorph-0.2.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 6.7 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2efe364a2a2d02868e084d0070682b8c4bf9287adebcff96f31cc51286160cb0
BLAKE2b-256 checksum
How to use checksums
a2bfdc160edadea8c1a48af4916b890b09a051d354e1f36ac0637bb387442d9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-win_arm64.whl

Download URL rumorph-0.2.0-cp311-abi3-win_arm64.whl
Size 6.6 MB
Tags CPython 3.11 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
c6db851ae0a438b46bc7cdf74d42f748db0cee8e97208b175f1c3d0c954e66ca
BLAKE2b-256 checksum
How to use checksums
b40b7b4dc45aba182b687d0ce902c3761578bdb43291dff227ad35f47c731948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-win_amd64.whl

Download URL rumorph-0.2.0-cp311-abi3-win_amd64.whl
Size 6.7 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
b6b368f3ab4af6291531e27e8c52ccb36683bb0167dd5b3696585b4156323d85
BLAKE2b-256 checksum
How to use checksums
4d080babe0da73eb9ffe969b1c0d19729726ce9a29d6075e3cdb640edd784c73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl

Download URL rumorph-0.2.0-cp311-abi3-musllinux_1_2_x86_64.whl
Size 7.0 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
ce4c5336dee6fe5007db20bd19cca1715239d50f19b219591b6d36c3e23e8a1b
BLAKE2b-256 checksum
How to use checksums
9bdae2e105bdf83903170e5b9b9599a454401975dbf1aa816554e5d91ecd52e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl

Download URL rumorph-0.2.0-cp311-abi3-musllinux_1_2_aarch64.whl
Size 6.9 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
dd12da52b86f47c5fd87efcf2e35f8f653e5ac872fa5f2278dedfe30be6bf3c9
BLAKE2b-256 checksum
How to use checksums
efed6ce1c50945cffa1275886d680cfcf5cbf6d6e2f913ff7b1a27f60b389a5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rumorph-0.2.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 6.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
c43b8a2113ae7fb5742622402b447df725498922e1774d44435e4e79f2364240
BLAKE2b-256 checksum
How to use checksums
c39992651e7c4a3a4917d182a1118012cd5affecdd68e2bd54bf4e922fb4c6d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rumorph-0.2.0-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 6.8 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
8b66def346a6bd0db0d5772b6671f348866c0ad3d7d3cac65027f6cda114db45
BLAKE2b-256 checksum
How to use checksums
bb1becd9f98ac8335d515d963b2ca56c305bb67cc1848ba2bd1d03986f8c0303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL rumorph-0.2.0-cp311-abi3-macosx_11_0_arm64.whl
Size 6.7 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5902cb3a9ad02408d07acadb86a47f02611997f0300f3f78cc6feb2b040346ee
BLAKE2b-256 checksum
How to use checksums
8327c93c26a3db6aaadcb27d50255bc277b29f86f78ab7ce8c2f701a239a02db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rumorph-0.2.0-cp311-abi3-macosx_10_12_x86_64.whl

Download URL rumorph-0.2.0-cp311-abi3-macosx_10_12_x86_64.whl
Size 6.7 MB
Tags CPython 3.11 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
28c3e88261df6545c9e2a6357c33180e7a7b9489568ce0baa84dc05d088dad33
BLAKE2b-256 checksum
How to use checksums
6d17d53685dc7b0e8cc72bb89a861f4c6594df89e1eb550b079e27ea4f5f2f8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for rumorph 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page