Skip to main content

A syntactic patching library with char-level granularity

Project description

¶ ⠶ textum

PyPI crates.io documentation MIT/Apache-2.0 licensed pre-commit.ci status

A syntactic patching library with character-level granularity.

Installation

pip install textum

Quick Start

import textum

# Create a simple patch
patch = textum.Patch.from_literal_target(
    file="example.txt",
    needle="old text",
    mode="include",
    replacement="new text"
)

# Apply to string content
content = "This is old text in a file"
result = patch.apply_to_string(content)
print(result)  # "This is new text in a file"

# Apply to a file and get result without writing
result = patch.apply_to_file()
print(result)  # File content with patch applied

# Or write directly to disk
patch.write_to_file()

Working with Multiple Patches

import textum

# Create multiple patches
patchset = textum.PatchSet()

patch1 = textum.Patch.from_literal_target(
    file="example.txt",
    needle="foo",
    mode="include",
    replacement="FOO"
)

patch2 = textum.Patch.from_literal_target(
    file="example.txt",
    needle="bar",
    mode="include",
    replacement="BAR"
)

patchset.add(patch1)
patchset.add(patch2)

# Get results for inspection
results = patchset.apply_to_files()
for file, content in results.items():
    print(f"{file}: {content}")

# Or write all changes to disk
patchset.write_to_files()

Advanced Usage

Using Snippets and Boundaries

# Create a target
target = textum.Target.literal("hello")

# Create a boundary with mode
boundary = textum.Boundary(target, "include")

# Create a snippet
snippet = textum.Snippet.at(boundary)

# Create a patch with the snippet
patch = textum.Patch(
    file="test.txt",
    snippet=snippet,
    replacement="goodbye"
)

Line-based Patching

# Replace lines 5-10 (start inclusive, end exclusive)
patch = textum.Patch.from_line_range(
    file="large_file.txt",
    start_line=5,
    end_line=10,
    replacement="new content\n"
)

# Delete lines 5-10
patch = textum.Patch.from_line_range(
    file="large_file.txt",
    start_line=5,
    end_line=10,
    replacement=""
)

Between Markers

# Replace content between HTML comments
start = textum.Boundary(
    textum.Target.literal("<!-- start -->"),
    "exclude"
)
end = textum.Boundary(
    textum.Target.literal("<!-- end -->"),
    "exclude"
)

snippet = textum.Snippet.between(start, end)

patch = textum.Patch(
    file="template.html",
    snippet=snippet,
    replacement="new content"
)

# Preview the change
result = patch.apply_to_file()
print(result)

# Apply if satisfied
patch.write_to_file()

Pattern Matching with Regex

# Use regex patterns to match targets
target = textum.Target.pattern(r"version = \"\d+\.\d+\.\d+\"")
boundary = textum.Boundary(target, "include")
snippet = textum.Snippet.at(boundary)

patch = textum.Patch(
    file="pyproject.toml",
    snippet=snippet,
    replacement='version = "2.0.0"'
)

JSON Import/Export

# Load patches from JSON
json_data = '''[{
    "file": "test.txt",
    "snippet": {
        "At": {
            "target": {"Literal": "old"},
            "mode": "Include"
        }
    },
    "replacement": "new"
}]'''
patches = textum.load_patches_from_json(json_data)

# Apply loaded patches
patchset = textum.PatchSet()
for patch in patches:
    patchset.add(patch)
patchset.write_to_files()

# Save patches to JSON
json_str = textum.save_patches_to_json(patches)

API Overview

Patch Methods

  • apply_to_string(content: str) -> str - Apply patch to string content
  • apply_to_file() -> str - Read file, apply patch, return result (doesn't write)
  • write_to_file() -> None - Read file, apply patch, write back to disk

PatchSet Methods

  • add(patch: Patch) -> None - Add a patch to the set
  • apply_to_files() -> dict[str, str] - Apply all patches, return results (doesn't write)
  • write_to_files() -> None - Apply all patches and write to disk

Target Types

  • Target.literal(text: str) - Match exact text
  • Target.pattern(regex: str) - Match using regex
  • Target.line(line_number: int) - Match specific line
  • Target.char(char_index: int) - Match character position
  • Target.position(line: int, col: int) - Match line:column position

Boundary Modes

  • "include" - Include the matched target in the replacement range
  • "exclude" - Exclude the matched target from the replacement range

Licensing

Textum is MIT licensed, a permissive open source license.

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

textum-0.3.0.tar.gz (89.8 kB view details)

Uploaded Source

Built Distributions

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

textum-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

textum-0.3.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.2 MB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

textum-0.3.0-cp39-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

textum-0.3.0-cp39-abi3-win32.whl (938.5 kB view details)

Uploaded CPython 3.9+Windows x86

textum-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl (1.3 MB view details)

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

textum-0.3.0-cp39-abi3-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

textum-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

textum-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

textum-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

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

textum-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

textum-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

textum-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

textum-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

textum-0.3.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.5+ i686

textum-0.3.0-cp39-abi3-macosx_11_0_arm64.whl (983.5 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

textum-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: textum-0.3.0.tar.gz
  • Upload date:
  • Size: 89.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for textum-0.3.0.tar.gz
Algorithm Hash digest
SHA256 460c5a15382f66b8d0cf99e6a2db381f07d142bbbba5d140c420da7b40f6a2e8
MD5 9a4cf8833059054af31b349db2d2cb59
BLAKE2b-256 bc84d0c4dceea869a6555d82fccffa3b32abdce4a74b2b287429fdce35f4a0fc

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b9810815c9b81c43c9cbb4225d65556fc8d02ffe45dc6dadbc1446946f6715f
MD5 d328bcb2e14b1c57464dd4fac11197a3
BLAKE2b-256 ba6b8b69e9aaa7b24eb2e5a5db928d567e371fa84418d342b08cb50af6e288ad

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 22ebfe17e19734e13d55d2cb77cd4e202ab6f98c4baf518ae02beed0584d142d
MD5 473c010214eac574aa44a0db34da9dfa
BLAKE2b-256 c7b2e62144b00c9292526792d48032b23b7530b8c0fbccac2329ec3b2d06c4e9

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 08318cabc013e1d8a9ba20249fb5692811904020e3cf50407d72722e60c23223
MD5 24ae54e4802e46f7f0b0d3f962a2840c
BLAKE2b-256 adc221cce9817a46a48f33b9e157bc8b57def3aeff1ef2cbb92b45d4fb7b4bb0

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 46714387340417bca8da0ca851cd27cce270ee5d8b02b0747a480f564529c8ef
MD5 012457f1947a36adff8c5da91d1ae84f
BLAKE2b-256 c069d46ef978e3358bb0d708126a03633314025553ed47aeb2b5ec6674318664

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 501493eda398b9c3160d11bc248cb6b6d6f5a27e48c93ad3f277ff321c5bc560
MD5 16352c6b8a6ca36c564c483faa5e313f
BLAKE2b-256 881934d161ae6d97f2a66fda8cb7b83e7a3d3ba714541b5a2490accf5f18c7db

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 863198a03ad7bf5966dee7f384d1f3057f4ae1f00c24c28259f6b8761b1843f0
MD5 4cbf5405ef9bf6c15de35e179c766a13
BLAKE2b-256 aa60825f877684e5c80a08dc30e3bf114676e09fe8ccab871d94ea8c4fe89b03

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fbfe80965cb65eb3d05bd1691ed4a31a2ad7a824dc71dce798b103782a0d588a
MD5 47c4b406ff7a65d53f26d508e074655f
BLAKE2b-256 66de56dee0d61d0366ba51550728904fe8869f0867ad5f57d969f8aaae8d5eff

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5eb6fbe84ee764ec9916207484fdc5020f06150f23145c5be75c02baebf0a546
MD5 12f43346dfc72a5252df1969189a6248
BLAKE2b-256 9041fb1da0b773aea209cb32c0128b1644c9ec635dc0df59a79e1afa541107f4

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 638a49bdac4ba5ce49313803c71410e5b34b028718099424e6e9323c5fe9b809
MD5 5f5d976acfacefa0c8ddd5e7b8345708
BLAKE2b-256 b2e0f33da1b4a25a83395af99a980995eadf1524df2a5cc380ed86d145e3ce7f

See more details on using hashes here.

File details

Details for the file textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15de93b8dd8ba1c5031ae718973f13b1fa5dd800569215d461143f914326d5de
MD5 1201e13836e23df7755e61c30b8c6ce2
BLAKE2b-256 4751cfc08c01c99ccc3dbe53d2cb8ce72c72837c99d41b5734ed177e00ca7123

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: textum-0.3.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for textum-0.3.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a824d04431344ad8aa1032a7d8dc59a23fa2b8e1cc3adc2d0c5a232bd316dfa5
MD5 a3820a6cb7dd339e685ba91228dcbbad
BLAKE2b-256 fc08bb3f174bb0678d8edc2d2a918189654e483bda0e31792b054ac301e20060

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-win32.whl.

File metadata

  • Download URL: textum-0.3.0-cp39-abi3-win32.whl
  • Upload date:
  • Size: 938.5 kB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.10.2

File hashes

Hashes for textum-0.3.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 6cf8e2344a350dad6782fb6e033b8a047012c12b059175b4518e3c09b43ddd5a
MD5 d8a6377435b0a8190127eadf6e18af5c
BLAKE2b-256 6a1a343a66cdb9b2e233ef55d4076a305090b42ce5073259926f12f0f917cbe8

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f73a034f47f8098cb6b47a160069d25f14feda756e9a07c00abd63ff116cc427
MD5 153340dbb7bb3cf4b7fe7cced39a001a
BLAKE2b-256 663abe16b9591cfcf7a050619e406c1bd43b58ee48f3066c07b23557e14a0c9b

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 249092686aa1236c5f15255e132d5739f4f24f86b36f45841cb96fd1a60c6e0a
MD5 800a773106e3ec772a54b8341392c433
BLAKE2b-256 26e411d94237f899262663f90bc234be5a18748f395f2c6da119add723e93f62

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5dc07cd5559202c437b8220a8847c951033f96b3480e461ffc4e81e852d827a1
MD5 3235361572cbc386a43605cc8c5632b4
BLAKE2b-256 72568081962f8d92faaa8ab06f236b3adf330bdf162c6a160a8e1815124876b6

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 382ddbc309c04814143a53709b250886d56d9f0a4c8deb8e47e9b9482d1dd977
MD5 c3585b598e3dca8582cf8310a907053d
BLAKE2b-256 441aa6ae5cb3745728826397e9ca007b9cfb3f0d56bbd625dc44f5cc53593762

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c80e27dc1adef6033a0454e72f5512020aaafa2b954f2f884c34c737210b287
MD5 6013e3ff7b0c8adf4f0484ed33c7e81e
BLAKE2b-256 64325ec3b28cbc5f870b30c117ea68f27cbd61c067dc0e1e2b63ab26e6f74213

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e1546c58abff3b0a0c33cc7fdefcc10a58c55fcec783254cddda567e977efa86
MD5 ba32ee15b23a765bff00105e2c2b06f6
BLAKE2b-256 caa4ea2e89171ca840e28c672f52307cb0af191b6d3e2d48eea23ce0645c7f9c

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7d5f2e1551052af99d9967cff79c3b2f70cee6e17b36514dd655dac1ff183be2
MD5 ffb61e564901357c4357f77a756110bb
BLAKE2b-256 0efb4ce77dfa6f4b794120dc5c3803dd1273af049d7720c2961ef8b298314e3b

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 33ed43866c623c159738d8c69bdf0d7bdaf806a2513f9a17904af54abd6f2319
MD5 6043f3a066883e3f8e563452c3bbea18
BLAKE2b-256 b430c66ede073b4e25e9fddf2f5eff00d1e97cf9c464c6f4baa63da650398fe2

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe8a36a76ca6392c7b3e7954c99e34c1dc077d53fe75b926c8c5b7dcee6ed6ca
MD5 426c3bb71e1cd4fad0c543d827416ce5
BLAKE2b-256 76996ffa58a3f0eaabf2d4d51e32f400c97e1bf4bfd6a37b04e821184b56f4d2

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 4b0545b5ba31a8da9269e04013327e739af163a4b81c72999b65f28a57fbaccb
MD5 f30bafad12b01b45241e662120b4c35a
BLAKE2b-256 8339a841fdf7b5a85d759d668d3c0cf083cceb4e78a6acfdebee05c0a1eea03e

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d845e7de50f4162f011f975db0b96668ed985936c58dd2e27ff97708100cf1bf
MD5 d969ab1533e353f51fef4b18bc7b3e00
BLAKE2b-256 6b1e824bdddcfff804d3e80164bf2ef94daa20d8367eef2c920349fc5e886244

See more details on using hashes here.

File details

Details for the file textum-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for textum-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 37d1b8376452930c641260b96304d51e0776a8fd4a6539a11c7f82518149e3bf
MD5 3f30503240bef84e1ffdfc49d0f68360
BLAKE2b-256 705320084ff883a9661ec1a4a80de40f2399a62469672faae59061cc168e457a

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