werpy


Namewerpy JSON
Version 2.1.2 PyPI version JSON
download
home_pageNone
SummaryA powerful yet lightweight Python package to calculate and analyze the Word Error Rate (WER).
upload_time2024-04-05 05:03:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseBSD 3-Clause License Copyright (c) 2023-2024, Analytics in Motion Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords wer word error rate python python package stt speech-to-text levenshtein distance nlp metrics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
![werpy-logo-word-error-rate](https://user-images.githubusercontent.com/52817125/235063664-2f21629c-0fad-46b6-a487-c2b5ef6f80e9.png)

<h1 align="center">Word Error Rate for Python
<a href="https://twitter.com/intent/tweet?text=Introducing%20%23werpy%20-%20the%20Python%20package%20for%20fast%20and%20accurate%20Word%20Error%20Rate%20(WER)%20calculation.%20Analyze%20text%20accuracy%2C%20enhance%20%23NLP%20models%2C%20and%20improve%20%23SpeechRecognition%20systems.%20Try%20it%20now%3A%20&url=https://github.com/analyticsinmotion/werpy&via=analyticsmotion&hashtags=PythonPackage,WordErrorRate,WER,NLP">
    <img src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social" alt="Tweet">
  </a>
</h1>

<!-- badges: start -->

| | |
| --- | --- |
| Meta | [![Python Version](https://img.shields.io/badge/python-3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue?logo=python&logoColor=ffdd54)](https://www.python.org/downloads/)&nbsp;&nbsp; [![werpy License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://github.com/analyticsinmotion/werpy/blob/main/LICENSE)&nbsp;&nbsp;<!-- ![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)&nbsp;&nbsp;--> [![Black Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)&nbsp;&nbsp; [![Analytics in Motion](https://raw.githubusercontent.com/analyticsinmotion/.github/main/assets/images/analytics-in-motion-github-badge-rounded.svg)](https://www.analyticsinmotion.com) |
| Testing | [![CodeQL](https://github.com/analyticsinmotion/werpy/actions/workflows/codeql.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/codeql.yml)&nbsp;&nbsp; [![Codacy Security Scan](https://github.com/analyticsinmotion/werpy/actions/workflows/codacy.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/codacy.yml)&nbsp;&nbsp; [![CodeFactor](https://www.codefactor.io/repository/github/analyticsinmotion/werpy/badge)](https://www.codefactor.io/repository/github/analyticsinmotion/werpy)&nbsp;&nbsp; <!--[![Pylint](https://github.com/analyticsinmotion/werpy/actions/workflows/pylint.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/pylint.yml)&nbsp;&nbsp;--> <!--[![Bandit](https://github.com/analyticsinmotion/werpy/actions/workflows/bandit.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/bandit.yml)&nbsp;&nbsp;--> [![CircleCI](https://dl.circleci.com/status-badge/img/gh/analyticsinmotion/werpy/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/analyticsinmotion/werpy/tree/main)&nbsp;&nbsp; [![codecov](https://codecov.io/gh/analyticsinmotion/werpy/graph/badge.svg?token=GGT823AVM8)](https://codecov.io/gh/analyticsinmotion/werpy) |
| Package | [![Pypi](https://img.shields.io/pypi/v/werpy?label=PyPI&color=blue)](https://pypi.org/project/werpy/)&nbsp;&nbsp; [![PyPI Downloads](https://img.shields.io/pypi/dm/werpy?label=PyPI%20downloads)](https://pypi.org/project/werpy/)&nbsp;&nbsp; [![Downloads](https://static.pepy.tech/badge/werpy)](https://pepy.tech/project/werpy)&nbsp;&nbsp;<!--[![sourcerank](https://img.shields.io/librariesio/sourcerank/pypi/werpy)](https://libraries.io/pypi/werpy)&nbsp;&nbsp;--> [![Documentation Status](https://readthedocs.org/projects/werpy/badge/?version=latest)](https://werpy.readthedocs.io/en/latest/?badge=latest)&nbsp;&nbsp; |


<!-- badges: end -->

## What is werpy?
**werpy** is a powerful yet lightweight Python package that rapidly calculates and analyzes the Word Error Rate (WER) between two sets of text. 
It has been designed with the flexibility to handle multiple input data types such as strings, lists and NumPy arrays.<br />

The package also includes a full set of features such as normalizing the input text to account for data collection variability and the capability to easily assign different weights/penalties to specific error classifications (insertions, deletions, and substitutions).
Additionally, the summary function provides a comprehensive breakdown of the calculated results to assist in analyzing the specific errors quickly and in more detail.
<br />

## Functions available in werpy
The following table provides an overview of the functions that can be used in werpy.

| Function  | Description | 
| ------------- | ------------- |
| normalize(text)  | Preprocess input text to remove punctuation, remove duplicated spaces, leading/trailing blanks and convert all words to lowercase. |
| wer(reference, hypothesis)  | Calculate the overall Word Error Rate for the entire reference and hypothesis texts. |
| wers(reference, hypothesis)  | Calculates a list of the Word Error Rates for each of the reference and hypothesis texts. |
| werp(reference, hypothesis)  | Calculates a weighted Word Error Rate for the entire reference and hypothesis texts. |
| werps(reference, hypothesis)  | Calculates a list of weighted Word Error Rates for each of the reference and hypothesis texts. |
| summary(reference, hypothesis)  | Provides a comprehensive breakdown of the calculated results including the WER, Levenshtein Distance and all the insertion, deletion and substitution errors. |
| summaryp(reference, hypothesis)  | Delivers an in-depth breakdown of the results, covering metrics like WER, Levenshtein Distance, and a detailed account of insertion, deletion, and substitution errors, inclusive of the weighted WER. |


## Installation
You can install the latest **werpy** release with Python's pip package manager:

```python
# Install werpy from PyPi
pip install werpy
```


## Usage
**Import the werpy package**

*Python Code:*
```python
import werpy
```
<br />

**Example 1 - Normalize a list of text**

*Python Code:*
```python
input_data = ["It's very popular in Antarctica.","The Sugar Bear character"]
reference = werpy.normalize(input_data)
print(reference)
```

*Results Output:*
```
['its very popular in antarctica', 'the sugar bear character']
```
<br />

**Example 2 - Calculate the overall Word Error Rate on a set of strings**

*Python Code:*
```python
wer = werpy.wer('i love cold pizza', 'i love pizza')
print(wer)
```

*Results Output:*
```
0.25
```
<br />

**Example 3 - Calculate the overall Word Error Rate on a set of lists**

*Python Code:*
```python
ref = ['i love cold pizza','the sugar bear character was popular']
hyp = ['i love pizza','the sugar bare character was popular']
wer = werpy.wer(ref, hyp)
print(wer)
```

*Results Output:*
```
0.2
```
<br />

**Example 4 - Calculate the Word Error Rates for each set of texts**

*Python Code:*
```python
ref = ['no one else could claim that','she cited multiple reasons why']
hyp = ['no one else could claim that','she sighted multiple reasons why']
wers = werpy.wers(ref, hyp)
print(wers)
```

*Results Output:*
```
[0.0, 0.2]
```
<br />

**Example 5 - Calculate the weighted Word Error Rates for the entire set of text**

*Python Code:*
```python
ref = ['it was beautiful and sunny today']
hyp = ['it was a beautiful and sunny day']
werp = werpy.werp(ref, hyp, insertions_weight=0.5, deletions_weight=0.5, substitutions_weight=1)
print(werp)
```

*Results Output:*
```
0.25
```
<br />

**Example 6 - Calculate a list of weighted Word Error Rates for each of the reference and hypothesis texts**

*Python Code:*
```python
ref = ['it blocked sight lines of central park', 'her father was an alderman in the city government']
hyp = ['it blocked sightlines of central park', 'our father was an elder man in the city government']
werps = werpy.werps(ref, hyp, insertions_weight = 0.5, deletions_weight = 0.5, substitutions_weight = 1)
print(werps)
```

*Results Output:*
```
[0.21428571428571427, 0.2777777777777778]
```
<br />

**Example 7 - Provide a complete breakdown of the Word Error Rate calculations for each of the reference and hypothesis texts**

*Python Code:*
```python
ref = ['it is consumed domestically and exported to other countries', 'rufino street in makati right inside the makati central business district', 'its estuary is considered to have abnormally low rates of dissolved oxygen', 'he later cited his first wife anita as the inspiration for the song', 'no one else could claim that']
hyp = ['it is consumed domestically and exported to other countries', 'rofino street in mccauti right inside the macasi central business district', 'its estiary is considered to have a normally low rates of dissolved oxygen', 'he later sighted his first wife anita as the inspiration for the song', 'no one else could claim that']
summary = werpy.summary(ref, hyp)
print(summary)
```

*Results Output:*
<!-- <img src=".github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png" width=100% height=100%> -->
<!-- <img src="https://github.com/analyticsinmotion/werpy/blob/main/.github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png" width=100% height=100%> -->
<!-- ![werpy summary DataFrame](.github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png)-->

![werpy-example-summary-results-word-error-rate-breakdown](https://user-images.githubusercontent.com/52817125/234950114-7efcce9b-7a76-4413-830f-7deda20cad75.png)

<br />

**Example 8 - Provide a complete breakdown of the Weighted Word Error Rate for each of the input texts**

*Python Code:*
```python
ref = ['the tower caused minor discontent because it blocked sight lines of central park', 'her father was an alderman in the city government', 'he was commonly referred to as the blacksmith of ballinalee']
hyp = ['the tower caused minor discontent because it blocked sightlines of central park', 'our father was an alderman in the city government', 'he was commonly referred to as the blacksmith of balen alley']
weighted_summary = werpy.summaryp(ref, hyp, insertions_weight = 0.5, deletions_weight = 0.5, substitutions_weight = 1)
print(weighted_summary)
```

*Results Output:*

![werpy-example-summaryp-results-word-error-rate-breakdown](https://github.com/analyticsinmotion/werpy/assets/52817125/e6678997-d797-4767-bd8a-c141331b034b)

<br />

## Dependencies
- <a href="https://www.numpy.org">NumPy</a> - Provides an assortment of routines for fast operations on arrays
- <a href="https://pandas.pydata.org/">Pandas</a> - Powerful data structures for data analysis, time series, and statistics

## Licensing

``werpy`` is released under the terms of the BSD 3-Clause License. Please refer to the <a href="https://github.com/analyticsinmotion/werpy/blob/main/LICENSE">LICENSE</a> file for full details.

This project also includes third-party packages distributed under the BSD-3-Clause license (NumPy, Pandas) and the Apache License 2.0 (Cython).

The full NumPy, Pandas and Cython licenses can be found in the <a href="https://github.com/analyticsinmotion/werpy/tree/main/LICENSES">LICENSES</a> directory in this repository. 

They can also be found directly in the following source codes:

- NumPy - <a href="https://github.com/numpy/numpy/blob/main/LICENSE.txt">https://github.com/numpy/numpy/blob/main/LICENSE.txt</a>
- Pandas - <a href="https://github.com/pandas-dev/pandas/blob/main/LICENSE">https://github.com/pandas-dev/pandas/blob/main/LICENSE</a>
- Cython - <a href="https://github.com/cython/cython/blob/master/LICENSE.txt">https://github.com/cython/cython/blob/master/LICENSE.txt</a>


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "werpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "wer word error rate python python package stt speech-to-text levenshtein distance nlp metrics",
    "author": null,
    "author_email": "Ross Armstrong <ross.armstrong@analyticsinmotion.com>",
    "download_url": "https://files.pythonhosted.org/packages/c8/44/272bf9df917228ca28c152c420aa0e432e2ac8d4b3e2a5194e720cba0af1/werpy-2.1.2.tar.gz",
    "platform": null,
    "description": "\n![werpy-logo-word-error-rate](https://user-images.githubusercontent.com/52817125/235063664-2f21629c-0fad-46b6-a487-c2b5ef6f80e9.png)\n\n<h1 align=\"center\">Word Error Rate for Python\n<a href=\"https://twitter.com/intent/tweet?text=Introducing%20%23werpy%20-%20the%20Python%20package%20for%20fast%20and%20accurate%20Word%20Error%20Rate%20(WER)%20calculation.%20Analyze%20text%20accuracy%2C%20enhance%20%23NLP%20models%2C%20and%20improve%20%23SpeechRecognition%20systems.%20Try%20it%20now%3A%20&url=https://github.com/analyticsinmotion/werpy&via=analyticsmotion&hashtags=PythonPackage,WordErrorRate,WER,NLP\">\n    <img src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" alt=\"Tweet\">\n  </a>\n</h1>\n\n<!-- badges: start -->\n\n| | |\n| --- | --- |\n| Meta | [![Python Version](https://img.shields.io/badge/python-3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue?logo=python&logoColor=ffdd54)](https://www.python.org/downloads/)&nbsp;&nbsp; [![werpy License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://github.com/analyticsinmotion/werpy/blob/main/LICENSE)&nbsp;&nbsp;<!-- ![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg)&nbsp;&nbsp;--> [![Black Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)&nbsp;&nbsp; [![Analytics in Motion](https://raw.githubusercontent.com/analyticsinmotion/.github/main/assets/images/analytics-in-motion-github-badge-rounded.svg)](https://www.analyticsinmotion.com) |\n| Testing | [![CodeQL](https://github.com/analyticsinmotion/werpy/actions/workflows/codeql.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/codeql.yml)&nbsp;&nbsp; [![Codacy Security Scan](https://github.com/analyticsinmotion/werpy/actions/workflows/codacy.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/codacy.yml)&nbsp;&nbsp; [![CodeFactor](https://www.codefactor.io/repository/github/analyticsinmotion/werpy/badge)](https://www.codefactor.io/repository/github/analyticsinmotion/werpy)&nbsp;&nbsp; <!--[![Pylint](https://github.com/analyticsinmotion/werpy/actions/workflows/pylint.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/pylint.yml)&nbsp;&nbsp;--> <!--[![Bandit](https://github.com/analyticsinmotion/werpy/actions/workflows/bandit.yml/badge.svg)](https://github.com/analyticsinmotion/werpy/actions/workflows/bandit.yml)&nbsp;&nbsp;--> [![CircleCI](https://dl.circleci.com/status-badge/img/gh/analyticsinmotion/werpy/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/analyticsinmotion/werpy/tree/main)&nbsp;&nbsp; [![codecov](https://codecov.io/gh/analyticsinmotion/werpy/graph/badge.svg?token=GGT823AVM8)](https://codecov.io/gh/analyticsinmotion/werpy) |\n| Package | [![Pypi](https://img.shields.io/pypi/v/werpy?label=PyPI&color=blue)](https://pypi.org/project/werpy/)&nbsp;&nbsp; [![PyPI Downloads](https://img.shields.io/pypi/dm/werpy?label=PyPI%20downloads)](https://pypi.org/project/werpy/)&nbsp;&nbsp; [![Downloads](https://static.pepy.tech/badge/werpy)](https://pepy.tech/project/werpy)&nbsp;&nbsp;<!--[![sourcerank](https://img.shields.io/librariesio/sourcerank/pypi/werpy)](https://libraries.io/pypi/werpy)&nbsp;&nbsp;--> [![Documentation Status](https://readthedocs.org/projects/werpy/badge/?version=latest)](https://werpy.readthedocs.io/en/latest/?badge=latest)&nbsp;&nbsp; |\n\n\n<!-- badges: end -->\n\n## What is werpy?\n**werpy** is a powerful yet lightweight Python package that rapidly calculates and analyzes the Word Error Rate (WER) between two sets of text. \nIt has been designed with the flexibility to handle multiple input data types such as strings, lists and NumPy arrays.<br />\n\nThe package also includes a full set of features such as normalizing the input text to account for data collection variability and the capability to easily assign different weights/penalties to specific error classifications (insertions, deletions, and substitutions).\nAdditionally, the summary function provides a comprehensive breakdown of the calculated results to assist in analyzing the specific errors quickly and in more detail.\n<br />\n\n## Functions available in werpy\nThe following table provides an overview of the functions that can be used in werpy.\n\n| Function  | Description | \n| ------------- | ------------- |\n| normalize(text)  | Preprocess input text to remove punctuation, remove duplicated spaces, leading/trailing blanks and convert all words to lowercase. |\n| wer(reference, hypothesis)  | Calculate the overall Word Error Rate for the entire reference and hypothesis texts. |\n| wers(reference, hypothesis)  | Calculates a list of the Word Error Rates for each of the reference and hypothesis texts. |\n| werp(reference, hypothesis)  | Calculates a weighted Word Error Rate for the entire reference and hypothesis texts. |\n| werps(reference, hypothesis)  | Calculates a list of weighted Word Error Rates for each of the reference and hypothesis texts. |\n| summary(reference, hypothesis)  | Provides a comprehensive breakdown of the calculated results including the WER, Levenshtein Distance and all the insertion, deletion and substitution errors. |\n| summaryp(reference, hypothesis)  | Delivers an in-depth breakdown of the results, covering metrics like WER, Levenshtein Distance, and a detailed account of insertion, deletion, and substitution errors, inclusive of the weighted WER. |\n\n\n## Installation\nYou can install the latest **werpy** release with Python's pip package manager:\n\n```python\n# Install werpy from PyPi\npip install werpy\n```\n\n\n## Usage\n**Import the werpy package**\n\n*Python Code:*\n```python\nimport werpy\n```\n<br />\n\n**Example 1 - Normalize a list of text**\n\n*Python Code:*\n```python\ninput_data = [\"It's very popular in Antarctica.\",\"The Sugar Bear character\"]\nreference = werpy.normalize(input_data)\nprint(reference)\n```\n\n*Results Output:*\n```\n['its very popular in antarctica', 'the sugar bear character']\n```\n<br />\n\n**Example 2 - Calculate the overall Word Error Rate on a set of strings**\n\n*Python Code:*\n```python\nwer = werpy.wer('i love cold pizza', 'i love pizza')\nprint(wer)\n```\n\n*Results Output:*\n```\n0.25\n```\n<br />\n\n**Example 3 - Calculate the overall Word Error Rate on a set of lists**\n\n*Python Code:*\n```python\nref = ['i love cold pizza','the sugar bear character was popular']\nhyp = ['i love pizza','the sugar bare character was popular']\nwer = werpy.wer(ref, hyp)\nprint(wer)\n```\n\n*Results Output:*\n```\n0.2\n```\n<br />\n\n**Example 4 - Calculate the Word Error Rates for each set of texts**\n\n*Python Code:*\n```python\nref = ['no one else could claim that','she cited multiple reasons why']\nhyp = ['no one else could claim that','she sighted multiple reasons why']\nwers = werpy.wers(ref, hyp)\nprint(wers)\n```\n\n*Results Output:*\n```\n[0.0, 0.2]\n```\n<br />\n\n**Example 5 - Calculate the weighted Word Error Rates for the entire set of text**\n\n*Python Code:*\n```python\nref = ['it was beautiful and sunny today']\nhyp = ['it was a beautiful and sunny day']\nwerp = werpy.werp(ref, hyp, insertions_weight=0.5, deletions_weight=0.5, substitutions_weight=1)\nprint(werp)\n```\n\n*Results Output:*\n```\n0.25\n```\n<br />\n\n**Example 6 - Calculate a list of weighted Word Error Rates for each of the reference and hypothesis texts**\n\n*Python Code:*\n```python\nref = ['it blocked sight lines of central park', 'her father was an alderman in the city government']\nhyp = ['it blocked sightlines of central park', 'our father was an elder man in the city government']\nwerps = werpy.werps(ref, hyp, insertions_weight = 0.5, deletions_weight = 0.5, substitutions_weight = 1)\nprint(werps)\n```\n\n*Results Output:*\n```\n[0.21428571428571427, 0.2777777777777778]\n```\n<br />\n\n**Example 7 - Provide a complete breakdown of the Word Error Rate calculations for each of the reference and hypothesis texts**\n\n*Python Code:*\n```python\nref = ['it is consumed domestically and exported to other countries', 'rufino street in makati right inside the makati central business district', 'its estuary is considered to have abnormally low rates of dissolved oxygen', 'he later cited his first wife anita as the inspiration for the song', 'no one else could claim that']\nhyp = ['it is consumed domestically and exported to other countries', 'rofino street in mccauti right inside the macasi central business district', 'its estiary is considered to have a normally low rates of dissolved oxygen', 'he later sighted his first wife anita as the inspiration for the song', 'no one else could claim that']\nsummary = werpy.summary(ref, hyp)\nprint(summary)\n```\n\n*Results Output:*\n<!-- <img src=\".github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png\" width=100% height=100%> -->\n<!-- <img src=\"https://github.com/analyticsinmotion/werpy/blob/main/.github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png\" width=100% height=100%> -->\n<!-- ![werpy summary DataFrame](.github/assets/images/werpy-example-summary-results-word-error-rate-breakdown.png)-->\n\n![werpy-example-summary-results-word-error-rate-breakdown](https://user-images.githubusercontent.com/52817125/234950114-7efcce9b-7a76-4413-830f-7deda20cad75.png)\n\n<br />\n\n**Example 8 - Provide a complete breakdown of the Weighted Word Error Rate for each of the input texts**\n\n*Python Code:*\n```python\nref = ['the tower caused minor discontent because it blocked sight lines of central park', 'her father was an alderman in the city government', 'he was commonly referred to as the blacksmith of ballinalee']\nhyp = ['the tower caused minor discontent because it blocked sightlines of central park', 'our father was an alderman in the city government', 'he was commonly referred to as the blacksmith of balen alley']\nweighted_summary = werpy.summaryp(ref, hyp, insertions_weight = 0.5, deletions_weight = 0.5, substitutions_weight = 1)\nprint(weighted_summary)\n```\n\n*Results Output:*\n\n![werpy-example-summaryp-results-word-error-rate-breakdown](https://github.com/analyticsinmotion/werpy/assets/52817125/e6678997-d797-4767-bd8a-c141331b034b)\n\n<br />\n\n## Dependencies\n- <a href=\"https://www.numpy.org\">NumPy</a> - Provides an assortment of routines for fast operations on arrays\n- <a href=\"https://pandas.pydata.org/\">Pandas</a> - Powerful data structures for data analysis, time series, and statistics\n\n## Licensing\n\n``werpy`` is released under the terms of the BSD 3-Clause License. Please refer to the <a href=\"https://github.com/analyticsinmotion/werpy/blob/main/LICENSE\">LICENSE</a> file for full details.\n\nThis project also includes third-party packages distributed under the BSD-3-Clause license (NumPy, Pandas) and the Apache License 2.0 (Cython).\n\nThe full NumPy, Pandas and Cython licenses can be found in the <a href=\"https://github.com/analyticsinmotion/werpy/tree/main/LICENSES\">LICENSES</a> directory in this repository. \n\nThey can also be found directly in the following source codes:\n\n- NumPy - <a href=\"https://github.com/numpy/numpy/blob/main/LICENSE.txt\">https://github.com/numpy/numpy/blob/main/LICENSE.txt</a>\n- Pandas - <a href=\"https://github.com/pandas-dev/pandas/blob/main/LICENSE\">https://github.com/pandas-dev/pandas/blob/main/LICENSE</a>\n- Cython - <a href=\"https://github.com/cython/cython/blob/master/LICENSE.txt\">https://github.com/cython/cython/blob/master/LICENSE.txt</a>\n\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License  Copyright (c) 2023-2024, Analytics in Motion  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "A powerful yet lightweight Python package to calculate and analyze the Word Error Rate (WER).",
    "version": "2.1.2",
    "project_urls": {
        "Bug tracker": "https://github.com/analyticsinmotion/werpy/issues",
        "Documentation": "https://werpy.readthedocs.io/",
        "Repository": "https://github.com/analyticsinmotion/werpy"
    },
    "split_keywords": [
        "wer",
        "word",
        "error",
        "rate",
        "python",
        "python",
        "package",
        "stt",
        "speech-to-text",
        "levenshtein",
        "distance",
        "nlp",
        "metrics"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "91ca742aec714b9c411d2275968bcbdc46d6a4ce58a396fec3897fbe29968099",
                "md5": "cc92e3b3becb4cda9a68274d9c7a9f5c",
                "sha256": "e87d354aee5f4fe5150b7130cc83dd84963f80c43a66654145d81682f1db1f5e"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cc92e3b3becb4cda9a68274d9c7a9f5c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 39767,
            "upload_time": "2024-04-05T05:02:39",
            "upload_time_iso_8601": "2024-04-05T05:02:39.400084Z",
            "url": "https://files.pythonhosted.org/packages/91/ca/742aec714b9c411d2275968bcbdc46d6a4ce58a396fec3897fbe29968099/werpy-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2548d5f9f02c769d66a8e8f90689bb6cb5772da963a66fc215081beeed89b158",
                "md5": "4d6aa04dd3c2d923f8506740acec2301",
                "sha256": "d259f7032496e5adf3f18ada991a62f33537618f95db9db9c0b00244ad117270"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4d6aa04dd3c2d923f8506740acec2301",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 46262,
            "upload_time": "2024-04-05T05:02:41",
            "upload_time_iso_8601": "2024-04-05T05:02:41.331464Z",
            "url": "https://files.pythonhosted.org/packages/25/48/d5f9f02c769d66a8e8f90689bb6cb5772da963a66fc215081beeed89b158/werpy-2.1.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "04c5e4f1b1c7c4292911af7bb18134577e5b8776a1ef68e071208fb665de6528",
                "md5": "d01e8e9c308bd4a954d5a3483ae622cb",
                "sha256": "16064bfb56509f114c3fc2dbea26ef64ef650dff83009b74789f99df82280ed8"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d01e8e9c308bd4a954d5a3483ae622cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 47440,
            "upload_time": "2024-04-05T05:02:43",
            "upload_time_iso_8601": "2024-04-05T05:02:43.200742Z",
            "url": "https://files.pythonhosted.org/packages/04/c5/e4f1b1c7c4292911af7bb18134577e5b8776a1ef68e071208fb665de6528/werpy-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e962f2264e6edbd7a3b903d53cbc402909350589aefecf5cf5ed6bcfe05bf4f2",
                "md5": "1ac0eea50682e213ceafc6ffd6434c72",
                "sha256": "de6b686fac67b7cb27e29a8093b50b16b70ca7220f677c2dff2b72ec56b1f094"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1ac0eea50682e213ceafc6ffd6434c72",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 57233,
            "upload_time": "2024-04-05T05:02:44",
            "upload_time_iso_8601": "2024-04-05T05:02:44.469956Z",
            "url": "https://files.pythonhosted.org/packages/e9/62/f2264e6edbd7a3b903d53cbc402909350589aefecf5cf5ed6bcfe05bf4f2/werpy-2.1.2-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d300703ca5a6d3a19410783e6dfc26af2933bdb7d58c74f7e65b15c1c4e6941",
                "md5": "71ca3201be4ea539f6ca1b27e4a508bc",
                "sha256": "bfb038c68c603c8b2c786cd03e5c17807f184f2fe032133bbcc2b0f6eade020d"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "71ca3201be4ea539f6ca1b27e4a508bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 39599,
            "upload_time": "2024-04-05T05:02:45",
            "upload_time_iso_8601": "2024-04-05T05:02:45.719905Z",
            "url": "https://files.pythonhosted.org/packages/7d/30/0703ca5a6d3a19410783e6dfc26af2933bdb7d58c74f7e65b15c1c4e6941/werpy-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea5fb2eac0ca228b321e61d27d5d0f1ce5ad51d4bddb22cb88f54c4d933149b7",
                "md5": "fea55a748ccbe2da5c6c2c9d108c5059",
                "sha256": "46db2a7f676fc7fe715fa80ea39ad0362801f96d5e15eff586d08fdbfbfb071d"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fea55a748ccbe2da5c6c2c9d108c5059",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 47064,
            "upload_time": "2024-04-05T05:02:47",
            "upload_time_iso_8601": "2024-04-05T05:02:47.363406Z",
            "url": "https://files.pythonhosted.org/packages/ea/5f/b2eac0ca228b321e61d27d5d0f1ce5ad51d4bddb22cb88f54c4d933149b7/werpy-2.1.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b314078aca1fe7139f4c8eb9f33a86104dd95783e93e24992fccecf454ca1eb3",
                "md5": "9e99457eb125bf1e81550541eef53fe6",
                "sha256": "bf53fa60b9dd6bb1e3ff3bc163d5c0b291929cf2a82d7fde364796c64bd3c51f"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9e99457eb125bf1e81550541eef53fe6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 47069,
            "upload_time": "2024-04-05T05:02:49",
            "upload_time_iso_8601": "2024-04-05T05:02:49.081957Z",
            "url": "https://files.pythonhosted.org/packages/b3/14/078aca1fe7139f4c8eb9f33a86104dd95783e93e24992fccecf454ca1eb3/werpy-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f12adb32f82cdd7313355b6b4b480cfcb22f1eba72c745e0c4b30059898a8e3a",
                "md5": "7861604ed576d00f0780512cf3cd7ba7",
                "sha256": "ce48e29f3f083480211a268cd359e85fbc9e6cc09241b0d363b801f2ea333100"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "7861604ed576d00f0780512cf3cd7ba7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 57782,
            "upload_time": "2024-04-05T05:02:50",
            "upload_time_iso_8601": "2024-04-05T05:02:50.375223Z",
            "url": "https://files.pythonhosted.org/packages/f1/2a/db32f82cdd7313355b6b4b480cfcb22f1eba72c745e0c4b30059898a8e3a/werpy-2.1.2-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12fae6da27111c603cdfa2ff58baee8d956feb04db076f429def44e93890a254",
                "md5": "c934c7e03bce9b475e81efb97eca1541",
                "sha256": "2a3442efefe7cfdf3a4bc55f19d334a0e39e27414abb7303d0ca643113e9ed91"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c934c7e03bce9b475e81efb97eca1541",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 39983,
            "upload_time": "2024-04-05T05:02:51",
            "upload_time_iso_8601": "2024-04-05T05:02:51.986596Z",
            "url": "https://files.pythonhosted.org/packages/12/fa/e6da27111c603cdfa2ff58baee8d956feb04db076f429def44e93890a254/werpy-2.1.2-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61c2ec8c3aea4c9fa105b0599547b70fa653d6430c30a8ecd676960da701608d",
                "md5": "48d4a1e897257173d2c20b371a1011f9",
                "sha256": "a83a06f503397cedd78e803b27f6ce8e1c2de96958787706bf284675ccc497f9"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "48d4a1e897257173d2c20b371a1011f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 47136,
            "upload_time": "2024-04-05T05:02:53",
            "upload_time_iso_8601": "2024-04-05T05:02:53.558555Z",
            "url": "https://files.pythonhosted.org/packages/61/c2/ec8c3aea4c9fa105b0599547b70fa653d6430c30a8ecd676960da701608d/werpy-2.1.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8251e02cbf870f1a002a6425ced64f88961ec87d5b3f2702545619f5d8f23c03",
                "md5": "b393eb1d930cab8440cbc58e55cc65c2",
                "sha256": "084577da5039b5d8087cb42ddff7441f7f0fa5a2f5d1235e79e3ff48c5a7d0ed"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b393eb1d930cab8440cbc58e55cc65c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 47699,
            "upload_time": "2024-04-05T05:02:54",
            "upload_time_iso_8601": "2024-04-05T05:02:54.778656Z",
            "url": "https://files.pythonhosted.org/packages/82/51/e02cbf870f1a002a6425ced64f88961ec87d5b3f2702545619f5d8f23c03/werpy-2.1.2-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "396283e9fe7817c135f4ee1535187717b6d2c4318348f57b9815eaf532bedb65",
                "md5": "bce113b147792f9e3a14e56938761eca",
                "sha256": "8d8d753132994aae987ea9600a87b523ad38821267dae5eb768e02d842819e41"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "bce113b147792f9e3a14e56938761eca",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 58263,
            "upload_time": "2024-04-05T05:02:56",
            "upload_time_iso_8601": "2024-04-05T05:02:56.488919Z",
            "url": "https://files.pythonhosted.org/packages/39/62/83e9fe7817c135f4ee1535187717b6d2c4318348f57b9815eaf532bedb65/werpy-2.1.2-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "224136a1dee9124142888f503c470a613c5f05ed8fc2dc7a77d2f4e314025208",
                "md5": "edbd8aaf9d5b9bdadec91ba89c633413",
                "sha256": "e24ecc1e1be3710da4e9822d1f80f5b14ca7ae0f4816f730c65c13afe4af2279"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "edbd8aaf9d5b9bdadec91ba89c633413",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 39813,
            "upload_time": "2024-04-05T05:02:58",
            "upload_time_iso_8601": "2024-04-05T05:02:58.166172Z",
            "url": "https://files.pythonhosted.org/packages/22/41/36a1dee9124142888f503c470a613c5f05ed8fc2dc7a77d2f4e314025208/werpy-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "274895a9c0a33d2d15e68ffdd27f76f3f6c6ea7f60e93481d454b4def0c80c43",
                "md5": "59db66454b193c85b0c85ce15e408a85",
                "sha256": "aa8ff7726db6317e1779defdf767375dcc0a88a780a5ba1645ba8c31fa7229bc"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "59db66454b193c85b0c85ce15e408a85",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 46707,
            "upload_time": "2024-04-05T05:02:59",
            "upload_time_iso_8601": "2024-04-05T05:02:59.858474Z",
            "url": "https://files.pythonhosted.org/packages/27/48/95a9c0a33d2d15e68ffdd27f76f3f6c6ea7f60e93481d454b4def0c80c43/werpy-2.1.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12878c9ea3cee9318cbbd7a3a6ede3a4faa765876966f52e1bc2fecdf1f88642",
                "md5": "eadc516ce31656df7892d7acf0c31e97",
                "sha256": "2b1ec4a2790f492e8500dc41d8f691e367f438e7128bfea79797180245559004"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "eadc516ce31656df7892d7acf0c31e97",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 47389,
            "upload_time": "2024-04-05T05:03:01",
            "upload_time_iso_8601": "2024-04-05T05:03:01.489851Z",
            "url": "https://files.pythonhosted.org/packages/12/87/8c9ea3cee9318cbbd7a3a6ede3a4faa765876966f52e1bc2fecdf1f88642/werpy-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "00ccb21bc399c8fa514fe6a054f7fd94077ff6761910462122621881a68333d9",
                "md5": "54e0a28605dc8e2a1b6e02bb9494c55d",
                "sha256": "acc0cf184f07cc645d417dbe93f88138a26837bc19df76d3e745352115daa373"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "54e0a28605dc8e2a1b6e02bb9494c55d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 57267,
            "upload_time": "2024-04-05T05:03:02",
            "upload_time_iso_8601": "2024-04-05T05:03:02.939463Z",
            "url": "https://files.pythonhosted.org/packages/00/cc/b21bc399c8fa514fe6a054f7fd94077ff6761910462122621881a68333d9/werpy-2.1.2-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0cf19e5027d08659a233425901da4cf6a5bca4bc76bd6826c17416da38b69c31",
                "md5": "d2d9a460ace68c6ecc6a40a1751ba775",
                "sha256": "c31ce4109a642a21b76ee254edf61dbf6c8f8b6f5754b6dea15a444215a156a9"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d2d9a460ace68c6ecc6a40a1751ba775",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 39764,
            "upload_time": "2024-04-05T05:03:04",
            "upload_time_iso_8601": "2024-04-05T05:03:04.972826Z",
            "url": "https://files.pythonhosted.org/packages/0c/f1/9e5027d08659a233425901da4cf6a5bca4bc76bd6826c17416da38b69c31/werpy-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8d0bf2199e8a968137c11fa2f9cdbfe3c8a78c9fb1529d9ccfc73d506320c498",
                "md5": "9ff0ef82e110b42db46a90ed4d52227a",
                "sha256": "6d74b7d28b49c57f7734383f2946ee7f7664a4d22356e6762496e97afc0f4153"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ff0ef82e110b42db46a90ed4d52227a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 46255,
            "upload_time": "2024-04-05T05:03:06",
            "upload_time_iso_8601": "2024-04-05T05:03:06.815015Z",
            "url": "https://files.pythonhosted.org/packages/8d/0b/f2199e8a968137c11fa2f9cdbfe3c8a78c9fb1529d9ccfc73d506320c498/werpy-2.1.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba10f9206c3b5e24e8c4e855a9b8b5eb9be5d219493cdb8705955cfe6f8de392",
                "md5": "05bbd3eda7a975c1b38b5caed84031bc",
                "sha256": "96db7a629c9ae817072a61986a4ad4c67f0671649df7b55a30863b96d8de78f8"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "05bbd3eda7a975c1b38b5caed84031bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 47435,
            "upload_time": "2024-04-05T05:03:08",
            "upload_time_iso_8601": "2024-04-05T05:03:08.499459Z",
            "url": "https://files.pythonhosted.org/packages/ba/10/f9206c3b5e24e8c4e855a9b8b5eb9be5d219493cdb8705955cfe6f8de392/werpy-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a8c646a93de35a47894a49751c31e4e8b77ed2c4db170b3c60dd324f7bae6a5e",
                "md5": "e952e7b8d0deb1a59e9ad2398c4c85fb",
                "sha256": "f6f4359e03fe81df8ef21e6296743d283d7466dbe3dfe5085a9bcf898dd263d4"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e952e7b8d0deb1a59e9ad2398c4c85fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 57226,
            "upload_time": "2024-04-05T05:03:09",
            "upload_time_iso_8601": "2024-04-05T05:03:09.987164Z",
            "url": "https://files.pythonhosted.org/packages/a8/c6/46a93de35a47894a49751c31e4e8b77ed2c4db170b3c60dd324f7bae6a5e/werpy-2.1.2-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c844272bf9df917228ca28c152c420aa0e432e2ac8d4b3e2a5194e720cba0af1",
                "md5": "1109e01317196efaf17fc886628fd3f7",
                "sha256": "3ee97c798da48435b15f6b57906e3e6725a92017ec9a3f524de7aa5f49edbcf8"
            },
            "downloads": -1,
            "filename": "werpy-2.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1109e01317196efaf17fc886628fd3f7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 219165,
            "upload_time": "2024-04-05T05:03:17",
            "upload_time_iso_8601": "2024-04-05T05:03:17.156236Z",
            "url": "https://files.pythonhosted.org/packages/c8/44/272bf9df917228ca28c152c420aa0e432e2ac8d4b3e2a5194e720cba0af1/werpy-2.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-05 05:03:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "analyticsinmotion",
    "github_project": "werpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "circle": true,
    "lcname": "werpy"
}
        
Elapsed time: 0.25378s