Skip to main content

Python version of Sudachi, the Japanese Morphological Analyzer

Project description

SudachiPy

PyPi version Documentation

SudachiPy is a Python version of Sudachi, a Japanese morphological analyzer.

This is not a pure Python implementation, but bindings for the Sudachi.rs.

Binary wheels

We provide binary builds for macOS (10.14+), Windows and Linux only for x86_64 architecture. x86 32-bit architecture is not supported and is not tested. MacOS source builds seem to work on ARM-based (Aarch64) Macs, but this architecture also is not tested and require installing Rust toolchain and Cargo.

More information here.

TL;DR

$ pip install sudachipy sudachidict_core

$ echo "高輪ゲートウェイ駅" | sudachipy
高輪ゲートウェイ駅	名詞,固有名詞,一般,*,*,*	高輪ゲートウェイ駅
EOS

$ echo "高輪ゲートウェイ駅" | sudachipy -m A
高輪	名詞,固有名詞,地名,一般,*,*	高輪
ゲートウェイ	名詞,普通名詞,一般,*,*,*	ゲートウェー
駅	名詞,普通名詞,一般,*,*,*	駅
EOS

$ echo "空缶空罐空きカン" | sudachipy -a
空缶	名詞,普通名詞,一般,*,*,*	空き缶	空缶	アキカン	0
空罐	名詞,普通名詞,一般,*,*,*	空き缶	空罐	アキカン	0
空きカン	名詞,普通名詞,一般,*,*,*	空き缶	空きカン	アキカン	0
EOS
from sudachipy import Dictionary, SplitMode

tokenizer = Dictionary().create()

morphemes = tokenizer.tokenize("国会議事堂前駅")
print(morphemes[0].surface())  # '国会議事堂前駅'
print(morphemes[0].reading_form())  # 'コッカイギジドウマエエキ'
print(morphemes[0].part_of_speech())  # ['名詞', '固有名詞', '一般', '*', '*', '*']

morphemes = tokenizer.tokenize("国会議事堂前駅", SplitMode.A)
print([m.surface() for m in morphemes])  # ['国会', '議事', '堂', '前', '駅']

Setup

You need SudachiPy and a dictionary.

Step 1. Install SudachiPy

pip install sudachipy

Step 2. Get a Dictionary

You can get dictionary as a Python package. It may take a while to download the dictionary file (around 70MB for the core edition).

pip install sudachidict_core

Alternatively, you can choose other dictionary editions. See this section for the detail.

Usage: As a command

There is a CLI command sudachipy.

$ echo "外国人参政権" | sudachipy
外国人参政権	名詞,普通名詞,一般,*,*,*	外国人参政権
EOS
$ echo "外国人参政権" | sudachipy -m A
外国	名詞,普通名詞,一般,*,*,*	外国
人	接尾辞,名詞的,一般,*,*,*	人
参政	名詞,普通名詞,一般,*,*,*	参政
権	接尾辞,名詞的,一般,*,*,*	権
EOS
$ sudachipy tokenize -h
usage: sudachipy tokenize [-h] [-r file] [-m {A,B,C}] [-o file] [-s string]
                          [-a] [-d] [-v]
                          [file [file ...]]

Tokenize Text

positional arguments:
  file           text written in utf-8

optional arguments:
  -h, --help     show this help message and exit
  -r file        the setting file in JSON format
  -m {A,B,C}     the mode of splitting
  -o file        the output file
  -s string      sudachidict type
  -a             print all of the fields
  -d             print the debug information
  -v, --version  print sudachipy version

Note: The Debug option (-d) is disabled in version 0.6.*

Output

Columns are tab separated.

  • Surface
  • Part-of-Speech Tags (comma separated)
  • Normalized Form

When you add the -a option, it additionally outputs

  • Dictionary Form
  • Reading Form
  • Dictionary ID
    • 0 for the system dictionary
    • 1 and above for the user dictionaries
    • -1 if a word is Out-of-Vocabulary (not in the dictionary)
  • Synonym group IDs
  • (OOV) if a word is Out-of-Vocabulary (not in the dictionary)
$ echo "外国人参政権" | sudachipy -a
外国人参政権	名詞,普通名詞,一般,*,*,*	外国人参政権	外国人参政権	ガイコクジンサンセイケン	0	[]
EOS
echo "阿quei" | sudachipy -a
阿	名詞,普通名詞,一般,*,*,*				-1	[]	(OOV)
quei	名詞,普通名詞,一般,*,*,*	quei	quei		-1	[]	(OOV)
EOS

Usage: As a Python package

API

See API reference page.

Example

from sudachipy import Dictionary, SplitMode

tokenizer_obj = Dictionary().create()
# Multi-granular Tokenization

# SplitMode.C is the default mode
[m.surface() for m in tokenizer_obj.tokenize("国家公務員", SplitMode.C)]
# => ['国家公務員']

[m.surface() for m in tokenizer_obj.tokenize("国家公務員", SplitMode.B)]
# => ['国家', '公務員']

[m.surface() for m in tokenizer_obj.tokenize("国家公務員", SplitMode.A)]
# => ['国家', '公務', '員']
# Morpheme information

m = tokenizer_obj.tokenize("食べ")[0]

m.surface() # => '食べ'
m.dictionary_form() # => '食べる'
m.reading_form() # => 'タベ'
m.part_of_speech() # => ['動詞', '一般', '*', '*', '下一段-バ行', '連用形-一般']
# Normalization

tokenizer_obj.tokenize("附属", mode)[0].normalized_form()
# => '付属'
tokenizer_obj.tokenize("SUMMER", mode)[0].normalized_form()
# => 'サマー'
tokenizer_obj.tokenize("シュミレーション", mode)[0].normalized_form()
# => 'シミュレーション'

(With 20210802 core dictionary. The results may change when you use other versions)

Dictionary Edition

There are three editions of Sudachi Dictionary, namely, small, core, and full. See WorksApplications/SudachiDict for the detail.

SudachiPy uses sudachidict_core by default.

Dictionaries can be installed as Python packages sudachidict_small, sudachidict_core, and sudachidict_full.

The dictionary files are not in the package itself, but it is downloaded upon installation.

Dictionary option: command line

You can specify the dictionary with the tokenize option -s.

$ pip install sudachidict_small
$ echo "外国人参政権" | sudachipy -s small
$ pip install sudachidict_full
$ echo "外国人参政権" | sudachipy -s full

Dictionary option: Python package

You can specify the dictionary with the Dicionary() argument; config or dict.

class Dictionary(config=None, resource_dir=None, dict=None)
  1. config
    • You can specify the file path to the setting file with config (See [Dictionary in The Setting File](#Dictionary in The Setting File) for the detail).
    • If the dictionary file is specified in the setting file as systemDict, SudachiPy will use the dictionary.
  2. dict
    • You can also specify the dictionary type with dict.
    • The available arguments are small, core, full, or a path to the dictionary file.
    • If different dictionaries are specified with config and dict, a dictionary defined dict overrides those defined in the config.
from sudachipy import Dictionary

# default: sudachidict_core
tokenizer_obj = Dictionary().create()

# The dictionary given by the `systemDict` key in the config file (/path/to/sudachi.json) will be used
tokenizer_obj = Dictionary(config="/path/to/sudachi.json").create()

# The dictionary specified by `dict` will be used.
tokenizer_obj = Dictionary(dict="core").create()  # sudachidict_core (same as default)
tokenizer_obj = Dictionary(dict="small").create()  # sudachidict_small
tokenizer_obj = Dictionary(dict="full").create()  # sudachidict_full

# The dictionary specified by `dict` overrides those defined in the config.
# In the following code, `sudachidict_full` will be used regardless of a dictionary defined in the config file.
tokenizer_obj = Dictionary(config="/path/to/sudachi.json", dict="full").create()

Dictionary in The Setting File

Alternatively, if the dictionary file is specified in the setting file, sudachi.json, SudachiPy will use that file.

{
    "systemDict" : "relative/path/from/resourceDir/to/system.dic",
    ...
}

The default setting file is sudachi.json. You can specify your sudachi.json with the -r option.

$ sudachipy -r path/to/sudachi.json

User Dictionary

To use a user dictionary, user.dic, place sudachi.json to anywhere you like, and add userDict value with the relative path from sudachi.json to your user.dic.

{
    "userDict" : ["relative/path/to/user.dic"],
    ...
}

Then specify your sudachi.json with the -r option.

$ sudachipy -r path/to/sudachi.json

You can build a user dictionary with the subcommand ubuild.

$ sudachipy ubuild -h
usage: sudachipy ubuild [-h] [-o file] [-d string] -s file file [file ...]

Build User Dictionary

positional arguments:
  file        source files with CSV format (one or more)

options:
  -h, --help  show this help message and exit
  -o file     output file (default: user.dic)
  -d string   description comment to be embedded on dictionary

required named arguments:
  -s file     system dictionary path

About the dictionary file format, please refer to this document (written in Japanese, English version is not available yet).

Customized System Dictionary

$ sudachipy build -h
usage: sudachipy build [-h] [-o file] [-d string] -m file file [file ...]

Build Sudachi Dictionary

positional arguments:
  file        source files with CSV format (one of more)

optional arguments:
  -h, --help  show this help message and exit
  -o file     output file (default: system.dic)
  -d string   description comment to be embedded on dictionary

required named arguments:
  -m file     connection matrix file with MeCab's matrix.def format

To use your customized system.dic, place sudachi.json to anywhere you like, and overwrite systemDict value with the relative path from sudachi.json to your system.dic.

{
    "systemDict" : "relative/path/to/system.dic",
    ...
}

Then specify your sudachi.json with the -r option.

$ sudachipy -r path/to/sudachi.json

For Developers

Build from source

Install sdist via pip

  1. Install python module setuptools and setuptools-rust.
  2. Run ./build-sdist.sh in python dir.
    • source distribution will be generated under python/dist/ dir.
  3. Install it via pip: pip install ./python/dist/SudachiPy-[version].tar.gz

Install develop build

  1. Install python module setuptools and setuptools-rust.
  2. Run python3 -m pip install -e . to install sudachipy (editable install).
  3. Now you can import the module by import sudachipy.

ref: setuptools-rust

Test

Run build_and_test.sh to run the tests.

Contact

Sudachi and SudachiPy are developed by WAP Tokushima Laboratory of AI and NLP.

Open an issue, or come to our Slack workspace for questions and discussion.

https://sudachi-dev.slack.com/ (Get invitation here)

Enjoy tokenization!

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

sudachipy-0.6.9.tar.gz (164.2 kB view details)

Uploaded Source

Built Distributions

SudachiPy-0.6.9-cp313-cp313-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.13 Windows x86-64

SudachiPy-0.6.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp313-cp313-macosx_10_12_universal2.whl (3.0 MB view details)

Uploaded CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64)

SudachiPy-0.6.9-cp312-cp312-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.12 Windows x86-64

SudachiPy-0.6.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp312-cp312-macosx_10_12_universal2.whl (3.0 MB view details)

Uploaded CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64)

SudachiPy-0.6.9-cp311-cp311-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11 Windows x86-64

SudachiPy-0.6.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp311-cp311-macosx_10_12_universal2.whl (3.0 MB view details)

Uploaded CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64)

SudachiPy-0.6.9-cp310-cp310-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

SudachiPy-0.6.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp310-cp310-macosx_10_12_universal2.whl (3.0 MB view details)

Uploaded CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64)

SudachiPy-0.6.9-cp39-cp39-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

SudachiPy-0.6.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp39-cp39-macosx_10_12_universal2.whl (3.0 MB view details)

Uploaded CPython 3.9 macOS 10.12+ universal2 (ARM64, x86-64)

SudachiPy-0.6.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

SudachiPy-0.6.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

File details

Details for the file sudachipy-0.6.9.tar.gz.

File metadata

  • Download URL: sudachipy-0.6.9.tar.gz
  • Upload date:
  • Size: 164.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sudachipy-0.6.9.tar.gz
Algorithm Hash digest
SHA256 131fc9521f2d538be9d5f276e69efc64a2b38dd6489af5dfe1e7161c3efaebb6
MD5 621566cf0364008c027817b7b1dfb869
BLAKE2b-256 7365a389277043901d3a6566d4463c2f96e0a102cc4bb5b59a44c3bd7a947ab7

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0494b04d864f7788309975aeca4dc5d7b61b3c3d987d058c71e2bf4ba3a6daca
MD5 fff041347735932aae38d61e1533d85d
BLAKE2b-256 a32e1b4abe308ab44cb0ad485a053d67493a56df3c196b9479a8a3a4ccb18f66

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c369062289e32e7e11d377c55e3349d73496b84a84fd8bf07ff68ca6b1d1da9c
MD5 c8bf50b120603780a5def900643a4c69
BLAKE2b-256 48e5f999d65406ad96b6b637265badcd5a089cff83d391d9e7b2e0b37989d94d

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp313-cp313-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp313-cp313-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ddc3620503af8cbefe897a59a802a964b5f0bc41791b313fa3f7d28fd461ddbb
MD5 14d3d5d3e74635aadf847667c53eab36
BLAKE2b-256 e500790f77cfe05ace70cac154240872de619562d79c08708a7f5605685c5642

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f1355e3a17e68c54aedba4275c8799233792139df2082becc9b4af82f21195ac
MD5 93de5665e0e813488026b7219560c26b
BLAKE2b-256 5669449697aa51bfeaf56cb58cf6f3b7e4344996d2fcad3bfaa80dd7e18568fc

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 666f2817a9ced479610ebdfc21cbfd0ac13e97fe81e0484b314399d8dfaff90f
MD5 4ce2f4dac7db7a795e0984b664e49da1
BLAKE2b-256 5db30b8e7fa9747c6122801f174ca0120cf75d940381b5d32630849f1fcca40d

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp312-cp312-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp312-cp312-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 4a9571e93b2be900d26f1d1713b62ae567e3a31d4654ec7d1ac472a16efd017e
MD5 6afc1657abab324fc45eb047859aa82f
BLAKE2b-256 b0ee532cea9e81ce64637a69158d4327485ce60a4bff928045b6033a97808c59

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8bd595bb3809d4c4c262710a8736dd2150fe39b04f48925247e3f6fa3e90f8dd
MD5 9b8c948c502bfa302981be804f0dfd2f
BLAKE2b-256 2af01fdbd5ae2682c55b0f05c8af73318a97431912312de78165c96f2117799e

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32c3010b14855ed0c325d4170f97803a0cb85d0dc04b19b684c08ccd8daea87a
MD5 7a9127dedff5b65465b88928024d123a
BLAKE2b-256 73f32a7e7f14c1a7c44fbd457e08b153d504e101a48b487595ff888ac7107315

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp311-cp311-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp311-cp311-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 5a071585b760bee824309922a84646a4b0c2612bc0176a3fe91121500354c730
MD5 bb95a36814b5da8e6efb3159bbf3f97a
BLAKE2b-256 959d29608505326b762777c5c8b11c95099b3a86adc5c91ecf17a46691deeff5

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1269228d76c63aa1ff2298e4ff8b9973fa71779ae36bef9a648c545049447f7b
MD5 f5b9a18896d1c0819d5c29989005e280
BLAKE2b-256 acf9bfb1cb9c0d99a96845d10b5ceeea3b8651b922c6650a6f77c76e900b698c

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4738f85668054c8c03c1062969eacba6426ed50b5f299879987bd6fa17ee6e99
MD5 4e9c5aef74d52900bac5bee8834de22f
BLAKE2b-256 2b6fdccbe14455c364a6a6fff2c021cc3aa4530bcc4716be9f3c93dec933f5f4

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp310-cp310-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp310-cp310-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 3695bd94c46bff43690e7bb18821e12cd21c36e849f1cb889abe11436315f5ae
MD5 bd7f7574492416d7fbe2bab26edc0838
BLAKE2b-256 8333c132693439c47f43e25835887cf34b90ab49b0d4add55c1c70ba8ef68509

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: SudachiPy-0.6.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for SudachiPy-0.6.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 27a9ab42787a4337f74c8187dd69298f50879d6dc548cc912a9d2d27faaf0bcc
MD5 26156995a6133f3375c4e2ce44cac890
BLAKE2b-256 618eed1cda0891e630622d0a37722f20485822b5df12b4817fcea753fe7d81f4

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 726cc266ef33e2604f02392cfbc6e94ff41c17450433330475afe02924f8477f
MD5 a718b0ce72d468ca0676feccf1c0d1b5
BLAKE2b-256 5b486b6b8e5b4863c644e28f26e72780e0462b30fda8850ea424dd5e7ea21fae

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp39-cp39-macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp39-cp39-macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 5908e68157a9478a597d94c388a62e5d072047843f4419dc2ee815e88fd4d250
MD5 596d989f680c17658c37333e4d7b6fbb
BLAKE2b-256 8d93859b7f304a3c852cd958186023c59ddde783aebf9fe8d44e6c3c40a0a248

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a1497ba2cdc538fd1c4ac8487ef26e9c6e5560fbdcd4a77385b110d9fc33f7b
MD5 2af0989bdb06da0e3b1b755fdc65b455
BLAKE2b-256 d722f45feea5bcaaf1edaad0fcd5c402fa77c3b1200fda7d4659427fe1057ab1

See more details on using hashes here.

File details

Details for the file SudachiPy-0.6.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SudachiPy-0.6.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9191ac46a2134e05a1a85df33c43ba9b1e9dab257db5f7a1c5d59ad6961873d
MD5 9f623c23a2e67337952f814fef60c3cc
BLAKE2b-256 63e557557d0e9d1e66dd79bdbdf26a773e403250ed20014a265ffcf07c352ad0

See more details on using hashes here.

Supported by

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