# `pycld3`
Python bindings to the Compact Language Detector v3 (CLD3).
[![CircleCI](https://circleci.com/gh/bsolomon1124/pycld3.svg?style=svg)](https://circleci.com/gh/bsolomon1124/pycld3)
[![License](https://img.shields.io/github/license/bsolomon1124/pycld3.svg)](https://github.com/bsolomon1124/pycld3/blob/master/LICENSE)
[![PyPI](https://img.shields.io/pypi/v/pycld3.svg)](https://pypi.org/project/pycld3/)
[![Wheel](https://img.shields.io/pypi/wheel/pycld3)](https://img.shields.io/pypi/wheel/pycld3)
[![Status](https://img.shields.io/pypi/status/pycld3.svg)](https://pypi.org/project/pycld3/)
[![Python](https://img.shields.io/pypi/pyversions/pycld3.svg)](https://pypi.org/project/pycld3)
[![Implementation](https://img.shields.io/pypi/implementation/pycld3)](https://pypi.org/project/pycld3)
## Newer Alternative: `gcld3`
**Note**: Since the original publication of this `pycld3`, Google's `cld3` authors have published the Python package [gcld3](https://pypi.org/project/gcld3/), which are official Python bindings built with [pybind](https://github.com/pybind/pybind11). Please check that project out as it is part of the canonical `cld3` repository and will likely stay in better lock step with any `cld3` changes over time.
## Overview
This package contains Python bindings (via Cython) to Google's [CLD3](https://github.com/google/cld3/) library.
```python
>>> import cld3
>>> cld3.get_language("影響包含對氣候的變化以及自然資源的枯竭程度")
LanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)
```
The library outputs BCP-47-style language codes. For some languages, output is differentiated by script. Language and script names from Unicode CLDR. It supports over 100 languages/scripts. See full list of [supported languages/scripts](https://github.com/google/cld3/blob/master/README.md#supported-languages) in Google's CLD3 documentation.
## Installing with Wheels: Supported Versions and Platforms
This project supports **CPython versions 3.6 through 3.9.**
We publish [wheels](https://pypi.org/project/pycld3/#files) for the following matrix:
- **MacOS**: CPython 3.6 thru 3.9
- **Linux**: CPython 3.6 thru 3.9; ([manylinux1](https://www.python.org/dev/peps/pep-0513/#the-manylinux1-policy))
<sup>The wheels for both MacOS and manylinux1 include the external protobuf library copied into the wheel itself
via [auditwheel](https://github.com/pypa/auditwheel) or
[delocate](https://github.com/matthew-brett/delocate) so that you won't need to install any extra non-PyPI dependencies.</sup>
If you are installing on one of the variants listed above, you should **not** need to have `protoc` or `libprotobuf` installed:
```bash
python -m pip install -U pycld3
```
## Installing from Source: Prerequisites
If you are not on a platform variant that is eligible to use a wheel, you may still be able to use `pycld3` via its [source distribution](https://docs.python.org/3/distutils/sourcedist.html) (`tar.gz`), but a bit more work is required to install.
Namely, you'll also need:
- the Protobuf compiler (the `protoc` executable)
- the Protobuf development headers and `libprotoc` library
- a compiler, preferably `g++`
Please consult [the official protobuf repository](https://github.com/protocolbuffers/protobuf) for information on installing Protobuf.
The project contains an [Installation README](https://github.com/protocolbuffers/protobuf/tree/master/src) that covers installation
on Windows and Unix.
If for whatever reason you are on a Unix host but unable to use the wheels (for instance, if you have an i686 architecture), here is a quick-and-dirty guide to installing.
### Debian/Ubuntu
```bash
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends \
g++ \
protobuf-compiler \
libprotobuf-dev
python -m pip install -U pycld3
```
### Alpine Linux
_Note_:
[Alpine Linux does not support PyPI wheels](https://pythonspeed.com/articles/alpine-docker-python/)
as of April 2020. The steps below are mandatory on Alpine Linux because you will need
to install from the source distribution. If the situation permits, using a Debian distro
should be much easier (and faster).
```bash
apk --update add g++ protobuf protobuf-dev
python -m pip install -U pycld3
```
### CentOS/RHEL
Install from source, as root/UID 0:
```bash
sudo su -
set -ex
pushd /opt
PROTOBUF_VERSION='3.11.4'
yum update -y
yum install -y autoconf automake gcc-c++ glibc-headers gzip libtool make python3-devel zlib-devel
curl -Lo /opt/protobuf.tar.gz \
"https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz"
tar -xzvf protobuf.tar.gz
rm -f protobuf.tar.gz
pushd "protobuf-${PROTOBUF_VERSION}"
./configure --with-zlib --disable-debug && make && make install && ldconfig --verbose
popd && rm -rf "protobuf-${PROTOBUF_VERSION}" && popd && set +ex
python -m pip install -U pycld3
```
Note: the steps above are for CentOS 8. For earlier versions, you may need to replace:
- `gcc-c++` with `g++`
- `python3-devel` with `python-devel`
### MacOS/Homebrew
```bash
brew update
brew upgrade protobuf || brew install -v protobuf
python -m pip install -U pycld3
```
### Windows
Please consult Protobuf's
[C++ Installation - Windows](https://github.com/protocolbuffers/protobuf/tree/master/src#c-installation---windows)
section for help with installing Protobuf on Windows.
If you would like to help contribute Windows wheels (preferably as a job within the project's
CI/CD pipelines), please [file an issue](https://github.com/bsolomon1124/pycld3).
## Usage
`cld3` exports two module-level functions, `get_language()` and `get_frequent_languages()`:
```python
>>> import cld3
>>> cld3.get_language("影響包含對氣候的變化以及自然資源的枯竭程度")
LanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)
>>> cld3.get_language("This is a test")
LanguagePrediction(language='en', probability=0.9999980926513672, is_reliable=True, proportion=1.0)
>>> for lang in cld3.get_frequent_languages(
... "This piece of text is in English. Този текст е на Български.",
... num_langs=3
... ):
... print(lang)
...
LanguagePrediction(language='bg', probability=0.9173890948295593, is_reliable=True, proportion=0.5853658318519592)
LanguagePrediction(language='en', probability=0.9999790191650391, is_reliable=True, proportion=0.4146341383457184)
```
## FAQ
### `cld3` incorrectly detects my input. How can I fix this?
A first resort is to **preprocess (clean) your input text** based on conditions specific to your program.
A salient example is to remove URLs and email addresses from the input. **CLD3 (unlike [CLD2](https://github.com/CLD2Owners/cld2))
does almost none of this cleaning for you**, in the spirit of not penalizing other users with overhead that they may not need.
Here's such an example using a simplified URL regex from _Regular Expressions Cookbook, 2nd ed._:
```python
>>> import re
>>> import cld3
# cld3 does not ignore the URL components by default
>>> s = "Je veux que: https://site.english.com/this/is/a/url/path/component#fragment"
>>> cld3.get_language(s)
LanguagePrediction(language='en', probability=0.5319557189941406, is_reliable=False, proportion=1.0)
>>> url_re = r"\b(?:https?://|www\.)[a-z0-9-]+(\.[a-z0-9-]+)+(?:[/?].*)?"
>>> new_s = re.sub(url_re, "", s)
>>> new_s
'Je veux que: '
>>> cld3.get_language(new_s)
LanguagePrediction(language='fr', probability=0.9799421429634094, is_reliable=True, proportion=1.0)
```
<sup>_Note_: This URL regex aims for simplicity. It requires a domain name, and doesn't allow a username or password; it allows the scheme
(http or https) to be omitted if it can be inferred from the subdomain (www). Source: _Regular Expressions Cookbook, 2nd ed._ - Goyvaerts & Levithan.</sup>
**In some other cases, you cannot fix the incorrect detection.**
Language detection algorithms in general may perform poorly with very short inputs.
Rarely should you trust the output of something like `detect("hi")`. Keep this limitation in mind regardless
of what library you are using.
Please remember that, at the end of the day, this project is just a Python wrapper to the CLD3 C++ library that does the actual heavy-lifting.
### I'm seeing an error during `pip` installation. How can I fix this?
First, please make sure you have read the [installation](#installation-supported-versions-and-platforms) section that that you have
installed Protobuf if necessary.
If that doesn't help, please [file an issue](https://github.com/bsolomon1124/pycld3/issues) in this repository.
The build process for this project is somewhat complex because it involves both Cython and Protobuf, but I do my best
to make it work everywhere possible.
### Protobuf is installed, but I'm still seeing "cannot open shared object file"
If you've installed Protobuf, but are seeing an error such as:
```
ImportError: libprotobuf.so.22: cannot open shared object file: No such file or directory
```
This likely means that Python is not finding the `libprotobuf` shared object,
possibly because `ldconfig` didn't do what it was supposed to.
You may need to tell it where to look.
You can find where the library sits via:
```bash
$ find /usr -name 'libprotoc.so' \( -type l -o -type f \)
/usr/local/lib/libprotoc.so
```
Then, you can add the directory containing this file to `LD_LIBRARY_PATH`:
```bash
export LD_LIBRARY_PATH="$(dirname $(find /usr -name 'libprotoc.so' \( -type l -o -type f \))):$LD_LIBRARY_PATH"
```
You can quickly test that this worked:
```bash
$ python -c 'import cld3; print(cld3.get_language("影響包含對氣候的變化以及自然資源的枯竭程度"))'
LanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)
```
### Authors
This repository contains a fork of [`google/cld3`](https://github.com/google/cld3/) at commit 06f695f. The license for `google/cld3` can be found at
[LICENSES/CLD3\_LICENSE](https://github.com/bsolomon1124/pycld3/blob/master/LICENSES/CLD3_LICENSE).
This repository is a combination of changes [introduced](https://github.com/google/cld3/issues/15) by [various forks](https://github.com/google/cld3/network/members) of `google/cld3` by the following people:
- Johannes Baiter ([@jbaiter](https://github.com/jbaiter))
- Elizabeth Myers ([@Elizafox](https://github.com/Elizafox))
- Witold Bołt ([@houp](https://github.com/houp))
- Alfredo Luque ([@iamthebot](https://github.com/iamthebot))
- WISESIGHT ([@wisesight](https://github.com/wisesight))
- RNogales ([@RNogales94](https://github.com/RNogales94))
- Brad Solomon ([@bsolomon1124](https://github.com/bsolomon1124))
Raw data
{
"_id": null,
"home_page": "https://github.com/bsolomon1124/pycld3",
"name": "pycld3",
"maintainer": "",
"docs_url": null,
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"maintainer_email": "",
"keywords": "cld3,cffi,language,langdetect,cld,nlp",
"author": "Brad Solomon",
"author_email": "bsolomon@protonmail.com",
"download_url": "https://files.pythonhosted.org/packages/6b/d0/b180a38c983062877f72dffe876de58dad216a5be26d05b04f9ae4050e4b/pycld3-0.22.tar.gz",
"platform": "",
"description": "# `pycld3`\n\nPython bindings to the Compact Language Detector v3 (CLD3).\n\n[![CircleCI](https://circleci.com/gh/bsolomon1124/pycld3.svg?style=svg)](https://circleci.com/gh/bsolomon1124/pycld3)\n[![License](https://img.shields.io/github/license/bsolomon1124/pycld3.svg)](https://github.com/bsolomon1124/pycld3/blob/master/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/pycld3.svg)](https://pypi.org/project/pycld3/)\n[![Wheel](https://img.shields.io/pypi/wheel/pycld3)](https://img.shields.io/pypi/wheel/pycld3)\n[![Status](https://img.shields.io/pypi/status/pycld3.svg)](https://pypi.org/project/pycld3/)\n[![Python](https://img.shields.io/pypi/pyversions/pycld3.svg)](https://pypi.org/project/pycld3)\n[![Implementation](https://img.shields.io/pypi/implementation/pycld3)](https://pypi.org/project/pycld3)\n\n## Newer Alternative: `gcld3`\n\n**Note**: Since the original publication of this `pycld3`, Google's `cld3` authors have published the Python package [gcld3](https://pypi.org/project/gcld3/), which are official Python bindings built with [pybind](https://github.com/pybind/pybind11). Please check that project out as it is part of the canonical `cld3` repository and will likely stay in better lock step with any `cld3` changes over time.\n\n## Overview\n\nThis package contains Python bindings (via Cython) to Google's [CLD3](https://github.com/google/cld3/) library.\n\n```python\n>>> import cld3\n>>> cld3.get_language(\"\u5f71\u97ff\u5305\u542b\u5c0d\u6c23\u5019\u7684\u8b8a\u5316\u4ee5\u53ca\u81ea\u7136\u8cc7\u6e90\u7684\u67af\u7aed\u7a0b\u5ea6\")\nLanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)\n```\n\nThe library outputs BCP-47-style language codes. For some languages, output is differentiated by script. Language and script names from Unicode CLDR. It supports over 100 languages/scripts. See full list of [supported languages/scripts](https://github.com/google/cld3/blob/master/README.md#supported-languages) in Google's CLD3 documentation.\n\n## Installing with Wheels: Supported Versions and Platforms\n\nThis project supports **CPython versions 3.6 through 3.9.**\n\nWe publish [wheels](https://pypi.org/project/pycld3/#files) for the following matrix:\n\n- **MacOS**: CPython 3.6 thru 3.9\n- **Linux**: CPython 3.6 thru 3.9; ([manylinux1](https://www.python.org/dev/peps/pep-0513/#the-manylinux1-policy))\n\n<sup>The wheels for both MacOS and manylinux1 include the external protobuf library copied into the wheel itself\nvia [auditwheel](https://github.com/pypa/auditwheel) or\n[delocate](https://github.com/matthew-brett/delocate) so that you won't need to install any extra non-PyPI dependencies.</sup>\n\nIf you are installing on one of the variants listed above, you should **not** need to have `protoc` or `libprotobuf` installed:\n\n```bash\npython -m pip install -U pycld3\n```\n\n## Installing from Source: Prerequisites\n\nIf you are not on a platform variant that is eligible to use a wheel, you may still be able to use `pycld3` via its [source distribution](https://docs.python.org/3/distutils/sourcedist.html) (`tar.gz`), but a bit more work is required to install.\nNamely, you'll also need:\n\n- the Protobuf compiler (the `protoc` executable)\n- the Protobuf development headers and `libprotoc` library\n- a compiler, preferably `g++`\n\nPlease consult [the official protobuf repository](https://github.com/protocolbuffers/protobuf) for information on installing Protobuf.\nThe project contains an [Installation README](https://github.com/protocolbuffers/protobuf/tree/master/src) that covers installation\non Windows and Unix.\n\nIf for whatever reason you are on a Unix host but unable to use the wheels (for instance, if you have an i686 architecture), here is a quick-and-dirty guide to installing.\n\n### Debian/Ubuntu\n\n```bash\nsudo apt-get update -y\nsudo apt-get install -y --no-install-recommends \\\n g++ \\\n protobuf-compiler \\\n libprotobuf-dev\npython -m pip install -U pycld3\n```\n\n### Alpine Linux\n\n_Note_:\n[Alpine Linux does not support PyPI wheels](https://pythonspeed.com/articles/alpine-docker-python/)\nas of April 2020. The steps below are mandatory on Alpine Linux because you will need\nto install from the source distribution. If the situation permits, using a Debian distro\nshould be much easier (and faster).\n\n```bash\napk --update add g++ protobuf protobuf-dev\npython -m pip install -U pycld3\n```\n\n### CentOS/RHEL\n\nInstall from source, as root/UID 0:\n\n```bash\nsudo su -\nset -ex\npushd /opt\nPROTOBUF_VERSION='3.11.4'\nyum update -y\nyum install -y autoconf automake gcc-c++ glibc-headers gzip libtool make python3-devel zlib-devel\ncurl -Lo /opt/protobuf.tar.gz \\\n \"https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz\"\ntar -xzvf protobuf.tar.gz\nrm -f protobuf.tar.gz\npushd \"protobuf-${PROTOBUF_VERSION}\"\n./configure --with-zlib --disable-debug && make && make install && ldconfig --verbose\npopd && rm -rf \"protobuf-${PROTOBUF_VERSION}\" && popd && set +ex\n\npython -m pip install -U pycld3\n```\n\nNote: the steps above are for CentOS 8. For earlier versions, you may need to replace:\n\n- `gcc-c++` with `g++`\n- `python3-devel` with `python-devel`\n\n### MacOS/Homebrew\n\n```bash\nbrew update\nbrew upgrade protobuf || brew install -v protobuf\npython -m pip install -U pycld3\n```\n\n### Windows\n\nPlease consult Protobuf's\n[C++ Installation - Windows](https://github.com/protocolbuffers/protobuf/tree/master/src#c-installation---windows)\nsection for help with installing Protobuf on Windows.\n\nIf you would like to help contribute Windows wheels (preferably as a job within the project's\nCI/CD pipelines), please [file an issue](https://github.com/bsolomon1124/pycld3).\n\n## Usage\n\n`cld3` exports two module-level functions, `get_language()` and `get_frequent_languages()`:\n\n```python\n>>> import cld3\n\n>>> cld3.get_language(\"\u5f71\u97ff\u5305\u542b\u5c0d\u6c23\u5019\u7684\u8b8a\u5316\u4ee5\u53ca\u81ea\u7136\u8cc7\u6e90\u7684\u67af\u7aed\u7a0b\u5ea6\")\nLanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)\n\n>>> cld3.get_language(\"This is a test\")\nLanguagePrediction(language='en', probability=0.9999980926513672, is_reliable=True, proportion=1.0)\n\n>>> for lang in cld3.get_frequent_languages(\n... \"This piece of text is in English. \u0422\u043e\u0437\u0438 \u0442\u0435\u043a\u0441\u0442 \u0435 \u043d\u0430 \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438.\",\n... num_langs=3\n... ):\n... print(lang)\n...\nLanguagePrediction(language='bg', probability=0.9173890948295593, is_reliable=True, proportion=0.5853658318519592)\nLanguagePrediction(language='en', probability=0.9999790191650391, is_reliable=True, proportion=0.4146341383457184)\n```\n\n## FAQ\n\n### `cld3` incorrectly detects my input. How can I fix this?\n\nA first resort is to **preprocess (clean) your input text** based on conditions specific to your program.\n\nA salient example is to remove URLs and email addresses from the input. **CLD3 (unlike [CLD2](https://github.com/CLD2Owners/cld2))\ndoes almost none of this cleaning for you**, in the spirit of not penalizing other users with overhead that they may not need.\n\nHere's such an example using a simplified URL regex from _Regular Expressions Cookbook, 2nd ed._:\n\n```python\n>>> import re\n>>> import cld3\n\n# cld3 does not ignore the URL components by default\n>>> s = \"Je veux que: https://site.english.com/this/is/a/url/path/component#fragment\"\n>>> cld3.get_language(s)\nLanguagePrediction(language='en', probability=0.5319557189941406, is_reliable=False, proportion=1.0)\n\n>>> url_re = r\"\\b(?:https?://|www\\.)[a-z0-9-]+(\\.[a-z0-9-]+)+(?:[/?].*)?\"\n>>> new_s = re.sub(url_re, \"\", s)\n>>> new_s\n'Je veux que: '\n>>> cld3.get_language(new_s)\nLanguagePrediction(language='fr', probability=0.9799421429634094, is_reliable=True, proportion=1.0)\n```\n\n<sup>_Note_: This URL regex aims for simplicity. It requires a domain name, and doesn't allow a username or password; it allows the scheme\n(http or https) to be omitted if it can be inferred from the subdomain (www). Source: _Regular Expressions Cookbook, 2nd ed._ - Goyvaerts & Levithan.</sup>\n\n**In some other cases, you cannot fix the incorrect detection.**\nLanguage detection algorithms in general may perform poorly with very short inputs.\nRarely should you trust the output of something like `detect(\"hi\")`. Keep this limitation in mind regardless\nof what library you are using.\n\nPlease remember that, at the end of the day, this project is just a Python wrapper to the CLD3 C++ library that does the actual heavy-lifting.\n\n### I'm seeing an error during `pip` installation. How can I fix this?\n\nFirst, please make sure you have read the [installation](#installation-supported-versions-and-platforms) section that that you have\ninstalled Protobuf if necessary.\n\nIf that doesn't help, please [file an issue](https://github.com/bsolomon1124/pycld3/issues) in this repository.\nThe build process for this project is somewhat complex because it involves both Cython and Protobuf, but I do my best\nto make it work everywhere possible.\n\n### Protobuf is installed, but I'm still seeing \"cannot open shared object file\"\n\nIf you've installed Protobuf, but are seeing an error such as:\n\n```\nImportError: libprotobuf.so.22: cannot open shared object file: No such file or directory\n```\n\nThis likely means that Python is not finding the `libprotobuf` shared object,\npossibly because `ldconfig` didn't do what it was supposed to.\nYou may need to tell it where to look.\n\nYou can find where the library sits via:\n\n```bash\n$ find /usr -name 'libprotoc.so' \\( -type l -o -type f \\)\n/usr/local/lib/libprotoc.so\n```\n\nThen, you can add the directory containing this file to `LD_LIBRARY_PATH`:\n\n```bash\nexport LD_LIBRARY_PATH=\"$(dirname $(find /usr -name 'libprotoc.so' \\( -type l -o -type f \\))):$LD_LIBRARY_PATH\"\n```\n\nYou can quickly test that this worked:\n\n```bash\n$ python -c 'import cld3; print(cld3.get_language(\"\u5f71\u97ff\u5305\u542b\u5c0d\u6c23\u5019\u7684\u8b8a\u5316\u4ee5\u53ca\u81ea\u7136\u8cc7\u6e90\u7684\u67af\u7aed\u7a0b\u5ea6\"))'\nLanguagePrediction(language='zh', probability=0.999969482421875, is_reliable=True, proportion=1.0)\n```\n\n### Authors\n\nThis repository contains a fork of [`google/cld3`](https://github.com/google/cld3/) at commit 06f695f. The license for `google/cld3` can be found at\n[LICENSES/CLD3\\_LICENSE](https://github.com/bsolomon1124/pycld3/blob/master/LICENSES/CLD3_LICENSE).\n\nThis repository is a combination of changes [introduced](https://github.com/google/cld3/issues/15) by [various forks](https://github.com/google/cld3/network/members) of `google/cld3` by the following people:\n\n- Johannes Baiter ([@jbaiter](https://github.com/jbaiter))\n- Elizabeth Myers ([@Elizafox](https://github.com/Elizafox))\n- Witold Bo\u0142t ([@houp](https://github.com/houp))\n- Alfredo Luque ([@iamthebot](https://github.com/iamthebot))\n- WISESIGHT ([@wisesight](https://github.com/wisesight))\n- RNogales ([@RNogales94](https://github.com/RNogales94))\n- Brad Solomon ([@bsolomon1124](https://github.com/bsolomon1124))\n\n\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "CLD3 Python bindings",
"version": "0.22",
"project_urls": {
"Homepage": "https://github.com/bsolomon1124/pycld3"
},
"split_keywords": [
"cld3",
"cffi",
"language",
"langdetect",
"cld",
"nlp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0629675f3211c8e84898016ed04f6972e49da20b455d169019f2cbfeb99ed80f",
"md5": "8530899e92e8c9246846bc7c4f46a82f",
"sha256": "a5ed75d673719cd03174d4bd8f387933181fe64ad2482a975efc76c965a2709e"
},
"downloads": -1,
"filename": "pycld3-0.22-cp36-cp36m-macosx_10_14_x86_64.whl",
"has_sig": false,
"md5_digest": "8530899e92e8c9246846bc7c4f46a82f",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 1278397,
"upload_time": "2021-03-09T20:10:03",
"upload_time_iso_8601": "2021-03-09T20:10:03.240533Z",
"url": "https://files.pythonhosted.org/packages/06/29/675f3211c8e84898016ed04f6972e49da20b455d169019f2cbfeb99ed80f/pycld3-0.22-cp36-cp36m-macosx_10_14_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8447e1ad0fcd87fc1ab06356f280f1cccfebfa4338292ecac31705cb20752ae",
"md5": "b04355619df340e00b1724a8cc0a9d0f",
"sha256": "407ef96f7638ee499afb66d8b29c46ad3f86808c6ea9584b580b8b9c4bb029ef"
},
"downloads": -1,
"filename": "pycld3-0.22-cp36-cp36m-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "b04355619df340e00b1724a8cc0a9d0f",
"packagetype": "bdist_wheel",
"python_version": "cp36",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 13558787,
"upload_time": "2021-03-09T20:10:06",
"upload_time_iso_8601": "2021-03-09T20:10:06.906992Z",
"url": "https://files.pythonhosted.org/packages/b8/44/7e1ad0fcd87fc1ab06356f280f1cccfebfa4338292ecac31705cb20752ae/pycld3-0.22-cp36-cp36m-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1ae68655e29b5d0a430cdbeb3ebd088f4a896b8d0c682005e71f160be1ea8678",
"md5": "615e5c96cc2e11c5c3712cc335d50d04",
"sha256": "5572632b64911c3ecf8e3919fa70ed8f1ee7d595090fbc95ca640d6aec6ba1cc"
},
"downloads": -1,
"filename": "pycld3-0.22-cp37-cp37m-macosx_10_14_x86_64.whl",
"has_sig": false,
"md5_digest": "615e5c96cc2e11c5c3712cc335d50d04",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 1278508,
"upload_time": "2021-03-09T20:10:09",
"upload_time_iso_8601": "2021-03-09T20:10:09.374953Z",
"url": "https://files.pythonhosted.org/packages/1a/e6/8655e29b5d0a430cdbeb3ebd088f4a896b8d0c682005e71f160be1ea8678/pycld3-0.22-cp37-cp37m-macosx_10_14_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fb62be163710d231a8cfdba8c9036db039ec4dc8293fd44c49ed06c59917c909",
"md5": "747368a3cda0ce0c5b5895029ffdf6c9",
"sha256": "a1c55b2146ddd3c6294b4c1590eddafdf66cccfea0db95aa6194c08c36dcee8a"
},
"downloads": -1,
"filename": "pycld3-0.22-cp37-cp37m-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "747368a3cda0ce0c5b5895029ffdf6c9",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 13558471,
"upload_time": "2021-03-09T20:10:17",
"upload_time_iso_8601": "2021-03-09T20:10:17.174583Z",
"url": "https://files.pythonhosted.org/packages/fb/62/be163710d231a8cfdba8c9036db039ec4dc8293fd44c49ed06c59917c909/pycld3-0.22-cp37-cp37m-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9294e6a6370dbb1e0330a8ee393ebf6a69f18c5d7e160dc7d1e8f7ad3dcb5317",
"md5": "501add4238307e97c6404194f850e4a9",
"sha256": "d7327567bcbae275921fb441b037f815b76adcad7349e8b9451fb5dbfcf57b8a"
},
"downloads": -1,
"filename": "pycld3-0.22-cp38-cp38-macosx_10_14_x86_64.whl",
"has_sig": false,
"md5_digest": "501add4238307e97c6404194f850e4a9",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 1277822,
"upload_time": "2021-03-09T20:10:19",
"upload_time_iso_8601": "2021-03-09T20:10:19.050036Z",
"url": "https://files.pythonhosted.org/packages/92/94/e6a6370dbb1e0330a8ee393ebf6a69f18c5d7e160dc7d1e8f7ad3dcb5317/pycld3-0.22-cp38-cp38-macosx_10_14_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ac7e6c01ba26a82f19d23d1a1ba02308045a977d13975a77309cf39a89df14a",
"md5": "19e59baf4e703486d91df49ad8353f73",
"sha256": "903d33e62a717ff0cf3f75d7cfb835c786b78f5c78f309e2c0bb8ad1fd0e05b6"
},
"downloads": -1,
"filename": "pycld3-0.22-cp38-cp38-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "19e59baf4e703486d91df49ad8353f73",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 13562510,
"upload_time": "2021-03-09T20:10:22",
"upload_time_iso_8601": "2021-03-09T20:10:22.756236Z",
"url": "https://files.pythonhosted.org/packages/8a/c7/e6c01ba26a82f19d23d1a1ba02308045a977d13975a77309cf39a89df14a/pycld3-0.22-cp38-cp38-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ec6a8ee18d280c7f202959d43c5dc1c73cf2c4ac85c75dcb4afebbd1271101bb",
"md5": "d406b7f851095c9bc440b4d12bb46a63",
"sha256": "1e0c8d6e64e0f0ae5e464806af5793234c403e10a16bd796df742d910a1dd464"
},
"downloads": -1,
"filename": "pycld3-0.22-cp39-cp39-macosx_10_14_x86_64.whl",
"has_sig": false,
"md5_digest": "d406b7f851095c9bc440b4d12bb46a63",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 1278102,
"upload_time": "2021-03-09T20:10:24",
"upload_time_iso_8601": "2021-03-09T20:10:24.301784Z",
"url": "https://files.pythonhosted.org/packages/ec/6a/8ee18d280c7f202959d43c5dc1c73cf2c4ac85c75dcb4afebbd1271101bb/pycld3-0.22-cp39-cp39-macosx_10_14_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7275711b4642fccb0fd496509e9601d51f0ada1b7416da987a3bdcf349970ef2",
"md5": "e1cc7ca430b0615b92dd5abb6d1d3915",
"sha256": "d614a9d5fbd7e1286fc8f3061332d83d34bec52f6e9c627246c14f245f0a3852"
},
"downloads": -1,
"filename": "pycld3-0.22-cp39-cp39-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "e1cc7ca430b0615b92dd5abb6d1d3915",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 13556964,
"upload_time": "2021-03-09T20:10:27",
"upload_time_iso_8601": "2021-03-09T20:10:27.611677Z",
"url": "https://files.pythonhosted.org/packages/72/75/711b4642fccb0fd496509e9601d51f0ada1b7416da987a3bdcf349970ef2/pycld3-0.22-cp39-cp39-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6bd0b180a38c983062877f72dffe876de58dad216a5be26d05b04f9ae4050e4b",
"md5": "c41527f8ebe6c0063d78335f0d1b6c02",
"sha256": "2de0f6895342a116bce6032e6b5bea747de1dcad5d511c6583ae4343a0708dd5"
},
"downloads": -1,
"filename": "pycld3-0.22.tar.gz",
"has_sig": false,
"md5_digest": "c41527f8ebe6c0063d78335f0d1b6c02",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*",
"size": 726241,
"upload_time": "2021-03-09T20:10:29",
"upload_time_iso_8601": "2021-03-09T20:10:29.527336Z",
"url": "https://files.pythonhosted.org/packages/6b/d0/b180a38c983062877f72dffe876de58dad216a5be26d05b04f9ae4050e4b/pycld3-0.22.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-03-09 20:10:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bsolomon1124",
"github_project": "pycld3",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"circle": true,
"lcname": "pycld3"
}