Skip to main content

Unicode segmentation and width for Python using Rust

Project description

unicode-segmentation-rs

Python bindings for the Rust unicode-segmentation, unicode-linebreak, and unicode-width crates, providing Unicode text segmentation and width calculation according to Unicode standards.

Features

  • Grapheme Cluster Segmentation: Split text into user-perceived characters
  • Word Segmentation: Split text into words according to Unicode rules
  • Sentence Segmentation: Split text into sentences
  • Line-Break Segmentation: Find legal wrapping opportunities according to Unicode Standard Annex #14
  • Display Width Calculation: Get the display width of text (for terminal/monospace display)
  • Gettext PO Wrapping: Wrap text for gettext PO files with proper handling of escape sequences and CJK characters

Installation

From PyPI

uv pip install unicode-segmentation-rs

From source

# Install maturin
pip install maturin

# Build and install the package
maturin develop --release

Usage

import unicode_segmentation_rs

# Grapheme clusters (user-perceived characters)
text = "Hello 👨‍👩‍👧‍👦 World"
clusters = unicode_segmentation_rs.graphemes(text, is_extended=True)
print(clusters)  # ['H', 'e', 'l', 'l', 'o', ' ', '👨‍👩‍👧‍👦', ' ', 'W', 'o', 'r', 'l', 'd']

# Get grapheme clusters with their byte indices
indices = unicode_segmentation_rs.grapheme_indices(text, is_extended=True)
print(indices)  # [(0, 'H'), (1, 'e'), ...]

# Word boundaries (includes punctuation and whitespace)
text = "Hello, world!"
words = unicode_segmentation_rs.split_word_bounds(text)
print(words)  # ['Hello', ',', ' ', 'world', '!']

# Unicode words (excludes punctuation and whitespace)
words = unicode_segmentation_rs.unicode_words(text)
print(words)  # ['Hello', 'world']

# Word indices
indices = unicode_segmentation_rs.split_word_bound_indices(text)
print(indices)  # [(0, 'Hello'), (5, ','), ...]

# Sentence segmentation
text = "Hello world. How are you? I'm fine."
sentences = unicode_segmentation_rs.unicode_sentences(text)
print(sentences)  # ['Hello world. ', 'How are you? ', "I'm fine."]

# Line-break opportunities use UTF-8 byte offsets
text = "你好世界"
breaks = unicode_segmentation_rs.line_breaks(text)
print(breaks)  # [(3, False), (6, False), (9, False), (12, True)]
units = unicode_segmentation_rs.line_break_units(text)
print(units)  # ['你', '好', '世', '界']

# Display width calculation
text = "Hello 世界"
width = unicode_segmentation_rs.text_width(text)
print(width)  # 10 (Hello=5, space=1, 世=2, 界=2, but depends on terminal)

# Character width
print(unicode_segmentation_rs.text_width('A'))    # 1
print(unicode_segmentation_rs.text_width('世'))   # 2
print(unicode_segmentation_rs.text_width('\t'))   # 1

Examples

Grapheme Cluster Segmentation

import unicode_segmentation_rs

# Complex emojis and combining characters
text = "Hello 👨‍👩‍👧‍👦 नमस्ते"
print(f"Text: {text}")
print(f"Graphemes: {unicode_segmentation_rs.graphemes(text, is_extended=True)}")
print(f"Length (graphemes): {len(unicode_segmentation_rs.graphemes(text, is_extended=True))}")
print(f"Length (chars): {len(text)}")

# With indices
print("Grapheme indices:")
for idx, cluster in unicode_segmentation_rs.grapheme_indices(text, is_extended=True):
    print(f"  {idx:3d}: {cluster!r}")

Word Segmentation

text = "Hello, world! How are you?"
print(f"Text: {text}")
print(f"Word bounds: {unicode_segmentation_rs.split_word_bounds(text)}")
print(f"Unicode words: {unicode_segmentation_rs.unicode_words(text)}")

# With indices
print("Word boundary indices:")
for idx, word in unicode_segmentation_rs.split_word_bound_indices(text):
    print(f"  {idx:3d}: {word!r}")

Sentence Segmentation

text = "Hello world. How are you? I'm fine, thanks! What about you?"
print(f"Text: {text}")
sentences = unicode_segmentation_rs.unicode_sentences(text)
print("Sentences:")
for i, sentence in enumerate(sentences, 1):
    print(f"  {i}. {sentence!r}")

Line-Break Segmentation

# Find legal wrapping opportunities without measuring or reformatting text
text = "Hello 世界"
print(unicode_segmentation_rs.line_breaks(text))
print(unicode_segmentation_rs.line_break_units(text))  # ['Hello ', '世', '界']

# A soft hyphen is preserved in the unit before its discretionary break
text = "foo\u00adbar"
print(unicode_segmentation_rs.line_break_units(text))  # ['foo\u00ad', 'bar']

Line-break segmentation reports opportunities only. The caller remains responsible for measuring widths, trimming whitespace for display, and rendering a visible hyphen when selecting a soft-hyphen break.

The underlying unicode-linebreak crate treats complex-context (SA) characters as ordinary alphabetic characters rather than performing dictionary-based segmentation. Consequently, scripts such as Thai, Lao, and Khmer do not receive language-specific word break opportunities.

Multilingual Examples

# Arabic
arabic = "مرحبا بك. كيف حالك؟"
print(f"Arabic: {arabic}")
print(f"Sentences: {unicode_segmentation_rs.unicode_sentences(arabic)}")

# Japanese
japanese = "こんにちは。お元気ですか?"
print(f"Japanese: {japanese}")
print(f"Sentences: {unicode_segmentation_rs.unicode_sentences(japanese)}")

# Mixed languages
mixed = "Hello世界! This is a test文章."
print(f"Mixed: {mixed}")
print(f"Words: {unicode_segmentation_rs.unicode_words(mixed)}")

Display Width Calculation

examples = [
    "Hello",
    "世界",
    "Hello 世界",
    "こんにちは",
    "🎉🎊",
    "Tab\there",
]

for text in examples:
    width = unicode_segmentation_rs.text_width(text)
    print(f"Text: {text!r:20} Width: {width:2} Chars: {len(text):2}")

# Character widths
chars = ['a', 'A', '1', ' ', '世', '界', 'あ', '🎉', '\t', '\n']
for c in chars:
    w = unicode_segmentation_rs.text_width(c)
    print(f"  {c!r:6} width: {w:2}")

Gettext PO File Wrapping

# Wrap text for PO files (default width is 77 characters)
text = "This is a long translation string that needs to be wrapped appropriately for a gettext PO file"
lines = unicode_segmentation_rs.gettext_wrap(text, 77)
for i, line in enumerate(lines, 1):
    print(f"Line {i}: {line}")

# Wrapping with CJK characters
text = "This translation contains 中文字符 (Chinese characters) and should wrap correctly"
lines = unicode_segmentation_rs.gettext_wrap(text, 40)
for line in lines:
    width = unicode_segmentation_rs.text_width(line)
    print(f"[{width:2d} cols] {line}")

# Escape sequences are preserved
text = "This has\\nline breaks\\tand tabs"
lines = unicode_segmentation_rs.gettext_wrap(text, 20)
print(lines)

API Reference

graphemes(text: str, is_extended: bool) -> list[str]

Split a string into grapheme clusters. Set is_extended=True for extended grapheme clusters (recommended).

grapheme_indices(text: str, is_extended: bool) -> list[tuple[int, str]]

Split a string into grapheme clusters with their byte indices.

split_word_bounds(text: str) -> list[str]

Split a string at word boundaries (includes punctuation and whitespace).

split_word_bound_indices(text: str) -> list[tuple[int, str]]

Split a string at word boundaries with byte indices.

unicode_words(text: str) -> list[str]

Get Unicode words from a string (excludes punctuation and whitespace).

unicode_sentences(text: str) -> list[str]

Split a string into sentences according to Unicode rules.

line_breaks(text: str) -> list[tuple[int, bool]]

Return every allowed or mandatory Unicode line-break opportunity as (utf8_byte_offset, mandatory). The boolean is True only for mandatory breaks. Non-empty input includes the mandatory end-of-text opportunity.

line_break_units(text: str) -> list[str]

Split a string at every allowed or mandatory Unicode line-break opportunity. Every input code point is preserved exactly, and the mandatory end-of-text opportunity does not add an empty unit.

text_width(text: str) -> int

Get the display width of a string in columns (as it would appear in a terminal). East Asian characters typically take 2 columns.

gettext_wrap(text: str, width: int) -> list[str]

Wrap text for gettext PO files. This function follows gettext's wrapping behavior:

  • Never breaks escape sequences (\n, \", etc.)
  • Prefers breaking after spaces
  • Handles CJK characters with proper width calculation
  • Breaks long words only when necessary

Building for Distribution

# Build wheel
maturin build --release

# Build and publish to PyPI
maturin publish

Running Tests

# Install test dependencies
pip install pytest

# Run tests
pytest tests/

License

This project is licensed under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unicode_segmentation_rs-0.3.0.tar.gz (32.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

unicode_segmentation_rs-0.3.0-cp314-cp314t-win_amd64.whl (169.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

unicode_segmentation_rs-0.3.0-cp314-cp314t-win32.whl (163.9 kB view details)

Uploaded CPython 3.14tWindows x86

unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl (508.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_i686.whl (540.8 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ i686

unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_armv7l.whl (580.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl (477.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (305.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (319.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (423.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (305.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (300.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (322.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.5+ i686

unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl (275.0 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_10_12_x86_64.whl (276.2 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

unicode_segmentation_rs-0.3.0-cp310-abi3-win_amd64.whl (172.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

unicode_segmentation_rs-0.3.0-cp310-abi3-win32.whl (165.8 kB view details)

Uploaded CPython 3.10+Windows x86

unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl (511.9 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_i686.whl (545.8 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl (584.0 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl (482.2 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (309.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (322.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (427.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (308.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (304.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (326.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_11_0_arm64.whl (280.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl (278.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file unicode_segmentation_rs-0.3.0.tar.gz.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6178f1097f3b1bf8098b43e35daea302c994a738f786b807890ef6ace21abf94
MD5 92f71e0bd8d5469f36abd563aada7bfd
BLAKE2b-256 4e7152f1a87120d92eafbd56c98e0d7abeb10d097bbd3dfb697bd8bc1dcd9070

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 5f4a1ff03eda8113f40852441f24f3e1302b0639dfd0b3cf075a258f02772a6c
MD5 1930662fc677ac07e7f18320ab7c6f20
BLAKE2b-256 b5dddd3381c105a532f1dd1a64cf8e2e86cf846d9cc14ec060f05b59db4685e8

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-win32.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 f7dfc0f2b568e88bf7bce846fb495ddf81cbc98b108df5cce8bcf6be5deb489d
MD5 b650f00c152588d9e68a4ac69aa7bd3d
BLAKE2b-256 5ab891bef62e00a6b9385ad9b769789ac449ceebd7f42e1b3d567c0c400f14ab

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d8d61e72b3d1ee469434af0680a9c381671101ea721dc1e690caa699ad5c297a
MD5 f72218c97a183290f9de614478d1f348
BLAKE2b-256 62dce5cbbb4048f2000bbd9dcb37e26a0df5a751c880f90abe0d986082555d62

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 95d723fc78e59b3326325b69f781eb8ed32b30cb4b7b1ad47ea0f705913c1a91
MD5 ae0287fd846a7bc2ea519deb86d2964b
BLAKE2b-256 25472357bb13bc18fe3ff7fbca205d9b78dca171cfd462f10b092f66bd294f7c

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 661e5c371448fd42501cb3331cf24f300246a9b38435c6d0411cf29dd28fc6d5
MD5 4fcb89e62db89245ab5480a09a90060c
BLAKE2b-256 f54f5b2126775e0554f33016eeb43540298bd752847f55030491ebf82f26543c

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5990ae58143978559b3fd7b906886e48eb019f9d2d59bd590d2bfd195c5b4510
MD5 1e8a3d1210a0f56a5dff6a577627c725
BLAKE2b-256 8fbb1fed354e653d25b0aa51eeb7fb11fe3187e59cb903e0d3856a7ee23a6c20

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b82cebca1184d2f4490963c8cd9de834f45e16c484c0ab2122492de46a4bc147
MD5 b580a6ba09cc3199ee3c2dbb64487117
BLAKE2b-256 fb14cb27bf046438a7b1d4c161b1b30a0c64c6573c526d4ccfee78388df28071

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5ced5e809017be181e84be69d0827c272a85e9b86381010c3370faec297eeea7
MD5 2a4e1303a7c51cffbff6537d29c3198b
BLAKE2b-256 4c40551270002aa61d626ea6876f538e9bdf52e0792467444739704dd2ed812b

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 dca9c4b216c61aed535aaefbed7dd387bff70e91ded8cb2c791d8725102c5710
MD5 decce79291b04cf8517908d2b0a1b57c
BLAKE2b-256 db991bbffdaebd6a1052cbadb0251cda915c079de67b520eb5bfc2a3cf1fbc7e

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a02660b5eba5c3f7308c09201153726b75501435b296657d44dc58bead92f2b0
MD5 faa945eddab56979693edeb0e4bd00bd
BLAKE2b-256 a6df1d8b0208e0772c612aa251267178b4a7a9c57b0c9879ffe45f10634812c4

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f660a3ee085c38ecf9af99a8a8e0290580114db7b48339ea2e3110cc22e33bcd
MD5 80bb8a6eb610b4f7c72a359017634a2e
BLAKE2b-256 730cc4f8566b42a541d0fcb7b29b720d333fe05f6177a37e7790658322459920

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 c70a8a70c446657701bd88025d09bc63864ae949c2683a46c6f65bada399745e
MD5 38c5cd2b2277d53baed45a2da7c26ff3
BLAKE2b-256 e4b86d300b8944b22a97a9208c59e8c25fc4a6466775da3331788e90db01b95f

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c0e1d79921189d10e412d386c7f991df82b19e781b2248b8e63809bebcc1c06
MD5 f0fa502ed25462ab102d0a43f4eddbf5
BLAKE2b-256 143098bfab026ad9715ce1d6e083ec62d4b336657711bf007943b0f453b7e809

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 013735c85203a54733a66a6b535a1307446cb4c4be6e37a0df8591b91b63471d
MD5 8e1a2c50f456473ef2213d164e0b0b75
BLAKE2b-256 1823fbe84a4387a75c72330777317cbb61907f7736cad9ea41a77208936558ec

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d64ec0cf82146edb104a2af37613bf7560bf12a7e7d2a78952ee973ebceb6b0
MD5 3d57e45eebee1d04ec8adfb14ee09e40
BLAKE2b-256 fcd36efc4813795a40fa225e693bd14243b101c4fba36dffbd7c38ca65089ea1

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-win32.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 46301eca6ca1c58923e324d16ea9f9e54f0466b79096ade3bcb11fddd1cb8ec9
MD5 914c45a08d391e590a496459d42d2e54
BLAKE2b-256 8f6ad04e662fea40c29769d15bfc3cef10b0d7bfd9586fb64c6e3446c3101a27

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a78959bbbcbf92808d2246e3863d2d0c4d48982ec9dbe74be22df1a5e423fc2
MD5 76bcc52f65fadf74a58d4af06e8160e8
BLAKE2b-256 561521d4bc3b010b6767b50e2ffe9b7e6f68cd492016cc5f09abb5bc26fd4bae

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0fe2fe207a953dcded833f19369cbae45b5fd72ea276809571de927ce1421a7e
MD5 ac5dc322997db9cc3a1838925a942fdf
BLAKE2b-256 8154483db2a79eb220437ab33ca45efa9db64e9298f2f9f8ff2837d1c8885c1a

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 529a591ba494ca8a5a51d3efc5d25fb521429badffcc379afb7905130f0ab6d9
MD5 955ffee99a797e6ac611f2d96b7bad48
BLAKE2b-256 dd9f0fa3e89e1dfce6cdf8c55cb6c6bddae04258fb6400fb34602a2e53424a6c

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6699b16fd984553aeedb0f24aefac8f6f72c40f3b436ea325c51810be47c8b5b
MD5 8c973b851c7ada44008d9d09695e75dd
BLAKE2b-256 19d244d9a03b0975994206c81a7ea39f19362daa4828b6ffdf5ab0e58188ded0

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9adfffe3887b9d4dcea4ca10ea883cecf668b65f4957a92ad4faeb31a994e1bd
MD5 0ba7e1ae3ee3565113da78d4402ad47d
BLAKE2b-256 89dc2c2be62f2d6f0c6a6f38723f8b1059021d89842196a227d414f2082267e5

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 daac8fc34c2007c15376e3df242fdafd87a9f97a2ac88d3f02fe7bc7a30e95b6
MD5 e85a9529c97e394ba4e5df47d9303c36
BLAKE2b-256 34cbddd2ef49dd8eccbfbc32be37bd49ccf28e29a180955e90186db458230993

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d86f3bc707cb643207e1b3532224d1607c23419da8f5ac56b9b2928b53ba1401
MD5 2d63a8ffd3d798f3a74f611f99aefeeb
BLAKE2b-256 04909cb0ad900583402084743c3eac79f22c48425b6c2fb34405136be95313fa

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 752a5d45285588dc5a07f0051608f4a22c69f47a8fb6bd2d8108cd30afff2aef
MD5 f54906a71930269b99f15e2587467fdc
BLAKE2b-256 9ff175821be31bfe98c2804b2bbbe3b4933b8769eeef12297f5b4051e8135641

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd18c7e2ecbab07ad9ef5129fad1d9b069ce1d3c17026b097f285d4aec44ec4a
MD5 10429ab88ba58442b0e3ab89adcda654
BLAKE2b-256 61dc52ca2a5ecb70163443eb4d96e3bb39f972f049c05c4a7cf07e277e244571

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 bcb73b96e7bfbfb8dd441c235037c381c3e7ef2c713bfb535378d54f2f940211
MD5 11e6ceb52deb5b3f18712d42915cddaf
BLAKE2b-256 0059d164a59db28b0c5f7d4c709e5934c4b7a4c41922d0b51cdc8251b774f408

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7482de79cb27c64e19547e5f49b467c8475774a292789aa32afdbdcc63dad1b
MD5 2ac2d9b428e36706b752e6224a9505bd
BLAKE2b-256 6834b3095e9eed563f9415fd5dfb572351d50580d3b658eaf4dc273b2e245f63

See more details on using hashes here.

File details

Details for the file unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for unicode_segmentation_rs-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 70e0102265c8f21d167d9edbd720fbc8a99f9868aa34cf6c1f0093cc22efeac7
MD5 110e62b21511e70da8c3aab31b477a1b
BLAKE2b-256 7cebabbddf5fbdbae1b12974c1ddc694364f6fe739ebb545b4e30fc1fa93c3a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page