preprocessing-pgp


Namepreprocessing-pgp JSON
Version 0.2.10.post1 PyPI version JSON
download
home_page
SummaryPreprocessing required data for customer service purpose
upload_time2023-08-15 03:44:46
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMIT License
keywords nlp text preprocessing
VCS
bugtrack_url
requirements absl-py astroid astunparse attrs autopep8 black bleach build bumpver cachetools certifi cffi charset-normalizer click colorama commonmark cryptography dill docutils exceptiongroup flashtext flatbuffers gast google-auth google-auth-oauthlib google-pasta grpcio h5py halo idna importlib-metadata iniconfig isort jaraco-classes jeepney keras keyring lazy-object-proxy lexid libclang log-symbols markdown markupsafe mccabe more-itertools mypy-extensions numpy oauthlib opt-einsum packaging pandas pathlib2 pathspec pep517 pip-tools pkginfo platformdirs pluggy protobuf pyarrow pyasn1 pyasn1-modules pycodestyle pycparser pygments pylint pyparsing pytest python-dateutil pytz readme-renderer regex requests requests-oauthlib requests-toolbelt rfc3986 rich rsa secretstorage six spinners tensorboard tensorboard-data-server tensorboard-plugin-wit tensorflow tensorflow-estimator tensorflow-io-gcs-filesystem termcolor toml tomli tomlkit tqdm twine typing-extensions unidecode urllib3 webencodings werkzeug wheel wrapt zipp
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# preprocessing_pgp

[![PyPI](https://shields.io/pypi/v/preprocessing-pgp)](https://pypi.org/project/preprocessing-pgp)
[![Python](https://img.shields.io/pypi/pyversions/preprocessing-pgp.svg?style=plastic)](https://badge.fury.io/py/preprocessing-pgp)
[![License](https://img.shields.io/github/license/quangvuminh2000/preprocessing-pgp)](https://raw.githubusercontent.com/quangvuminh2000/preprocessing-pgp/main/LICENSE.txt)
[![Downloads](https://img.shields.io/pypi/dm/preprocessing-pgp?label=pypi%20downloads)](https://pepy.tech/project/preprocessing-pgp)
[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint)

**preprocessing_pgp** -- The Preprocessing library for any kind of data -- is a suit of *open source Python modules, preprocessing techniques* supporting research and development in Machine Learning. preprocessing_pgp requires Python version **3.6, 3.7, 3.8, 3.9, 3.10**

---

## Installation

To install the **current release**:

```shell
pip install preprocessing-pgp
```

To install the release with **specific version** (e.g. 0.1.3):

```shell
pip install preprocessing-pgp==0.2.9
```

To upgrade package to **latest version**:

```shell
pip install --upgrade preprocessing-pgp
```

---

## Features

### 1. Vietnamese Naming Functions

#### 1.1. Preprocessing Names

```shell
python
```

```python
>>> from preprocessing_pgp.name.preprocess import basic_preprocess_name
>>> basic_preprocess_name('Phan Thị    Thúy    Hằng *$%!@#')
Phan Thị Thúy Hằng
```

#### 1.2. Enrich Vietnamese Names (Pending...)

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.name.enrich_name import process_enrich
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> enrich_data = process_enrich(data, name_col='name')

Cleansing Takes 0m0s


Enrich names takes 5m10s

>>> enrich_data.columns
Index(['name', 'predict', 'final'], dtype='object')
```

#### 1.3. Extract customer type from name (New Feature)

In big data platform, user might enter not just there name into the name field but many others.

This module currently support detection of following type:

1. **customer** : The name of the *customer*
2. **company** : The name of any *company related*
3. **biz** : The name of any *business related*
4. **edu** : The name of any type of *education related*
5. **medical** : The name of any *medical related*

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.name.type.extractor import process_extract_name_type
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> extracted_data = process_extract_name_type(data, name_col='name')


Cleansing names takes 0m0s


Formatting names takes 0m0s


Extracting customer's type takes 0m0s


>>> extracted_data.columns
Index(['username', 'customer_type'], dtype='object')
```

### 2. Extracting Vietnamese Phones

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.phone.extractor import process_convert_phone
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> extracted_data = process_convert_phone(data, phone_col='phone')


Converting phones takes 0m1s


>>> extracted_data.columns
Index(['phone', 'is_phone_valid', 'is_mobi', 'is_new_mobi',
       'is_old_mobi', 'is_new_landline', 'is_old_landline',
       'phone_convert', 'phone_vendor', 'tail_phone_type'],
      dtype='object')
```

### 3. Verify Vietnamese Card IDs

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.card.validation import process_verify_card
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> verified_data = process_verify_card(data, card_col='card_id')
Process cleaning card id...


Verifying card id takes 0m3s


>>> verified_data.columns
Index(['card_id', 'clean_card_id', 'is_valid', 'is_personal_id', 'is_passport',
       'is_driver_license'],
      dtype='object')
```

### 4. Extract Information in Vietnamese Address

> All the region codes traced are retrieve from [Đơn Vị Hành Chính Việt Nam](http://tongdieutradanso.vn/don-vi-hanh-chinh-viet-nam.html)

Apart from original columns of **dataframe**, we also generate columns with specific meanings:

* **cleaned_*<address_col>*** : The *cleaned address* retrieve from the raw address column
* **level 1** : The raw city extracted from the *cleaned address*
* **best level 1** : The *beautified city* traced from extracted raw city
* **level 1 code** : The generated *city code*
* **level 2** : The raw district extracted from the *cleaned address*
* **best level 2** : The *beautified district* traced from extracted raw district
* **level 2 code** : The generated *district code*
* **level 3** : The raw ward extracted from the *cleaned address*
* **best level 3** : The *beautified ward* traced from extracted raw ward
* **level 3 code** : The generated *ward code*
* **remained address** : The *remaining address* not being extracted

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.address.extractor import extract_vi_address
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> extracted_data = extract_vi_address(data, address_col='address')
Cleansing takes 0m0s


Extracting takes 0m22s


Code generation takes 0m3s

>>> extracted_data.columns
Index(['address', 'cleaned_address', 'level 1', 'best level 1', 'level 2',
       'best level 2', 'level 3', 'best level 3', 'remained address',
       'level 1 code', 'level 2 code', 'level 3 code'],
      dtype='object')
```

### 5. Validate email address

A valid email is consist of:

1. Large company email's address (@gmail, @yahoo, @outlook, etc.)
2. Common email address (contains at least a alphabet character in email's name)
3. Education email (can start with a number)
4. Not auto-email

Apart from original columns of **dataframe**, we also generate columns with specific meanings:

* **is_email_valid** : indicator of whether the email is valid or not

```shell
python
```

```python
>>> import pandas as pd
>>> from preprocessing_pgp.email.validator import process_validate_email
>>> data = pd.read_parquet('/path/to/data.parquet')
>>> validated_data = process_validate_email(data, email_col='email')
Cleansing email takes 0m0s


Validating email takes 0m22s
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "preprocessing-pgp",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "nlp,text,preprocessing",
    "author": "",
    "author_email": "quangvm9 <quangvm9@fpt.com.vn>",
    "download_url": "https://files.pythonhosted.org/packages/e6/1d/6ea22cf470b7d11d2ace15fe879b8955e5cbddcc8481a18e2c566c965b33/preprocessing-pgp-0.2.10.post1.tar.gz",
    "platform": null,
    "description": "\n# preprocessing_pgp\n\n[![PyPI](https://shields.io/pypi/v/preprocessing-pgp)](https://pypi.org/project/preprocessing-pgp)\n[![Python](https://img.shields.io/pypi/pyversions/preprocessing-pgp.svg?style=plastic)](https://badge.fury.io/py/preprocessing-pgp)\n[![License](https://img.shields.io/github/license/quangvuminh2000/preprocessing-pgp)](https://raw.githubusercontent.com/quangvuminh2000/preprocessing-pgp/main/LICENSE.txt)\n[![Downloads](https://img.shields.io/pypi/dm/preprocessing-pgp?label=pypi%20downloads)](https://pepy.tech/project/preprocessing-pgp)\n[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint)\n\n**preprocessing_pgp** -- The Preprocessing library for any kind of data -- is a suit of *open source Python modules, preprocessing techniques* supporting research and development in Machine Learning. preprocessing_pgp requires Python version **3.6, 3.7, 3.8, 3.9, 3.10**\n\n---\n\n## Installation\n\nTo install the **current release**:\n\n```shell\npip install preprocessing-pgp\n```\n\nTo install the release with **specific version** (e.g. 0.1.3):\n\n```shell\npip install preprocessing-pgp==0.2.9\n```\n\nTo upgrade package to **latest version**:\n\n```shell\npip install --upgrade preprocessing-pgp\n```\n\n---\n\n## Features\n\n### 1. Vietnamese Naming Functions\n\n#### 1.1. Preprocessing Names\n\n```shell\npython\n```\n\n```python\n>>> from preprocessing_pgp.name.preprocess import basic_preprocess_name\n>>> basic_preprocess_name('Phan Th\u1ecb    Th\u00fay    H\u1eb1ng *$%!@#')\nPhan Th\u1ecb Th\u00fay H\u1eb1ng\n```\n\n#### 1.2. Enrich Vietnamese Names (Pending...)\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.name.enrich_name import process_enrich\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> enrich_data = process_enrich(data, name_col='name')\n\nCleansing Takes 0m0s\n\n\nEnrich names takes 5m10s\n\n>>> enrich_data.columns\nIndex(['name', 'predict', 'final'], dtype='object')\n```\n\n#### 1.3. Extract customer type from name (New Feature)\n\nIn big data platform, user might enter not just there name into the name field but many others.\n\nThis module currently support detection of following type:\n\n1. **customer** : The name of the *customer*\n2. **company** : The name of any *company related*\n3. **biz** : The name of any *business related*\n4. **edu** : The name of any type of *education related*\n5. **medical** : The name of any *medical related*\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.name.type.extractor import process_extract_name_type\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> extracted_data = process_extract_name_type(data, name_col='name')\n\n\nCleansing names takes 0m0s\n\n\nFormatting names takes 0m0s\n\n\nExtracting customer's type takes 0m0s\n\n\n>>> extracted_data.columns\nIndex(['username', 'customer_type'], dtype='object')\n```\n\n### 2. Extracting Vietnamese Phones\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.phone.extractor import process_convert_phone\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> extracted_data = process_convert_phone(data, phone_col='phone')\n\n\nConverting phones takes 0m1s\n\n\n>>> extracted_data.columns\nIndex(['phone', 'is_phone_valid', 'is_mobi', 'is_new_mobi',\n       'is_old_mobi', 'is_new_landline', 'is_old_landline',\n       'phone_convert', 'phone_vendor', 'tail_phone_type'],\n      dtype='object')\n```\n\n### 3. Verify Vietnamese Card IDs\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.card.validation import process_verify_card\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> verified_data = process_verify_card(data, card_col='card_id')\nProcess cleaning card id...\n\n\nVerifying card id takes 0m3s\n\n\n>>> verified_data.columns\nIndex(['card_id', 'clean_card_id', 'is_valid', 'is_personal_id', 'is_passport',\n       'is_driver_license'],\n      dtype='object')\n```\n\n### 4. Extract Information in Vietnamese Address\n\n> All the region codes traced are retrieve from [\u0110\u01a1n V\u1ecb H\u00e0nh Ch\u00ednh Vi\u1ec7t Nam](http://tongdieutradanso.vn/don-vi-hanh-chinh-viet-nam.html)\n\nApart from original columns of **dataframe**, we also generate columns with specific meanings:\n\n* **cleaned_*<address_col>*** : The *cleaned address* retrieve from the raw address column\n* **level 1** : The raw city extracted from the *cleaned address*\n* **best level 1** : The *beautified city* traced from extracted raw city\n* **level 1 code** : The generated *city code*\n* **level 2** : The raw district extracted from the *cleaned address*\n* **best level 2** : The *beautified district* traced from extracted raw district\n* **level 2 code** : The generated *district code*\n* **level 3** : The raw ward extracted from the *cleaned address*\n* **best level 3** : The *beautified ward* traced from extracted raw ward\n* **level 3 code** : The generated *ward code*\n* **remained address** : The *remaining address* not being extracted\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.address.extractor import extract_vi_address\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> extracted_data = extract_vi_address(data, address_col='address')\nCleansing takes 0m0s\n\n\nExtracting takes 0m22s\n\n\nCode generation takes 0m3s\n\n>>> extracted_data.columns\nIndex(['address', 'cleaned_address', 'level 1', 'best level 1', 'level 2',\n       'best level 2', 'level 3', 'best level 3', 'remained address',\n       'level 1 code', 'level 2 code', 'level 3 code'],\n      dtype='object')\n```\n\n### 5. Validate email address\n\nA valid email is consist of:\n\n1. Large company email's address (@gmail, @yahoo, @outlook, etc.)\n2. Common email address (contains at least a alphabet character in email's name)\n3. Education email (can start with a number)\n4. Not auto-email\n\nApart from original columns of **dataframe**, we also generate columns with specific meanings:\n\n* **is_email_valid** : indicator of whether the email is valid or not\n\n```shell\npython\n```\n\n```python\n>>> import pandas as pd\n>>> from preprocessing_pgp.email.validator import process_validate_email\n>>> data = pd.read_parquet('/path/to/data.parquet')\n>>> validated_data = process_validate_email(data, email_col='email')\nCleansing email takes 0m0s\n\n\nValidating email takes 0m22s\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Preprocessing required data for customer service purpose",
    "version": "0.2.10.post1",
    "project_urls": {
        "homepage": "https://github.com/quangvuminh2000/preprocessing-pgp"
    },
    "split_keywords": [
        "nlp",
        "text",
        "preprocessing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b3fbff2d8be3d7c2c8aec9bcdf9a7131c6e339b5987484edcfeea52e7e802a80",
                "md5": "1ec62cb8a3d2b4786fb946bd8bff6805",
                "sha256": "4fd1965382ed66876dbea086d411e2f6895fe90ab5deeffa8c2942b38a2ea9e4"
            },
            "downloads": -1,
            "filename": "preprocessing_pgp-0.2.10.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1ec62cb8a3d2b4786fb946bd8bff6805",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 79499958,
            "upload_time": "2023-08-15T03:44:37",
            "upload_time_iso_8601": "2023-08-15T03:44:37.612854Z",
            "url": "https://files.pythonhosted.org/packages/b3/fb/ff2d8be3d7c2c8aec9bcdf9a7131c6e339b5987484edcfeea52e7e802a80/preprocessing_pgp-0.2.10.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e61d6ea22cf470b7d11d2ace15fe879b8955e5cbddcc8481a18e2c566c965b33",
                "md5": "b70378605452242557ba39facec2192a",
                "sha256": "e2dea855d2c84fb2bb97ba7f1968a5e6b591645707b4603c6919095562da89eb"
            },
            "downloads": -1,
            "filename": "preprocessing-pgp-0.2.10.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "b70378605452242557ba39facec2192a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 79449257,
            "upload_time": "2023-08-15T03:44:46",
            "upload_time_iso_8601": "2023-08-15T03:44:46.183011Z",
            "url": "https://files.pythonhosted.org/packages/e6/1d/6ea22cf470b7d11d2ace15fe879b8955e5cbddcc8481a18e2c566c965b33/preprocessing-pgp-0.2.10.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-15 03:44:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "quangvuminh2000",
    "github_project": "preprocessing-pgp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "absl-py",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "astroid",
            "specs": [
                [
                    "==",
                    "2.12.13"
                ]
            ]
        },
        {
            "name": "astunparse",
            "specs": [
                [
                    "==",
                    "1.6.3"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "22.1.0"
                ]
            ]
        },
        {
            "name": "autopep8",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    "==",
                    "22.10.0"
                ]
            ]
        },
        {
            "name": "bleach",
            "specs": [
                [
                    "==",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "build",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "bumpver",
            "specs": [
                [
                    "==",
                    "2022.1119"
                ]
            ]
        },
        {
            "name": "cachetools",
            "specs": [
                [
                    "==",
                    "5.2.0"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2022.9.24"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.15.1"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.3"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "commonmark",
            "specs": [
                [
                    "==",
                    "0.9.1"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "38.0.3"
                ]
            ]
        },
        {
            "name": "dill",
            "specs": [
                [
                    "==",
                    "0.3.6"
                ]
            ]
        },
        {
            "name": "docutils",
            "specs": [
                [
                    "==",
                    "0.19"
                ]
            ]
        },
        {
            "name": "exceptiongroup",
            "specs": [
                [
                    "==",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "flashtext",
            "specs": [
                [
                    "==",
                    "2.7"
                ]
            ]
        },
        {
            "name": "flatbuffers",
            "specs": [
                [
                    "==",
                    "22.10.26"
                ]
            ]
        },
        {
            "name": "gast",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "google-auth",
            "specs": [
                [
                    "==",
                    "2.14.1"
                ]
            ]
        },
        {
            "name": "google-auth-oauthlib",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "google-pasta",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "grpcio",
            "specs": [
                [
                    "==",
                    "1.51.0"
                ]
            ]
        },
        {
            "name": "h5py",
            "specs": [
                [
                    "==",
                    "3.7.0"
                ]
            ]
        },
        {
            "name": "halo",
            "specs": [
                [
                    "==",
                    "0.0.31"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.4"
                ]
            ]
        },
        {
            "name": "importlib-metadata",
            "specs": [
                [
                    "==",
                    "5.0.0"
                ]
            ]
        },
        {
            "name": "iniconfig",
            "specs": [
                [
                    "==",
                    "1.1.1"
                ]
            ]
        },
        {
            "name": "isort",
            "specs": [
                [
                    "==",
                    "5.10.1"
                ]
            ]
        },
        {
            "name": "jaraco-classes",
            "specs": [
                [
                    "==",
                    "3.2.3"
                ]
            ]
        },
        {
            "name": "jeepney",
            "specs": [
                [
                    "==",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "keras",
            "specs": [
                [
                    "==",
                    "2.11.0"
                ]
            ]
        },
        {
            "name": "keyring",
            "specs": [
                [
                    "==",
                    "23.11.0"
                ]
            ]
        },
        {
            "name": "lazy-object-proxy",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "lexid",
            "specs": [
                [
                    "==",
                    "2021.1006"
                ]
            ]
        },
        {
            "name": "libclang",
            "specs": [
                [
                    "==",
                    "14.0.6"
                ]
            ]
        },
        {
            "name": "log-symbols",
            "specs": [
                [
                    "==",
                    "0.0.14"
                ]
            ]
        },
        {
            "name": "markdown",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "markupsafe",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "mccabe",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "more-itertools",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "mypy-extensions",
            "specs": [
                [
                    "==",
                    "0.4.3"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.23.4"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": [
                [
                    "==",
                    "3.2.2"
                ]
            ]
        },
        {
            "name": "opt-einsum",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "21.3"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "pathlib2",
            "specs": [
                [
                    "==",
                    "2.3.7.post1"
                ]
            ]
        },
        {
            "name": "pathspec",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "pep517",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "pip-tools",
            "specs": [
                [
                    "==",
                    "6.9.0"
                ]
            ]
        },
        {
            "name": "pkginfo",
            "specs": [
                [
                    "==",
                    "1.8.3"
                ]
            ]
        },
        {
            "name": "platformdirs",
            "specs": [
                [
                    "==",
                    "2.5.4"
                ]
            ]
        },
        {
            "name": "pluggy",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "3.19.6"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    "==",
                    "10.0.0"
                ]
            ]
        },
        {
            "name": "pyasn1",
            "specs": [
                [
                    "==",
                    "0.4.8"
                ]
            ]
        },
        {
            "name": "pyasn1-modules",
            "specs": [
                [
                    "==",
                    "0.2.8"
                ]
            ]
        },
        {
            "name": "pycodestyle",
            "specs": [
                [
                    "==",
                    "2.9.1"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.21"
                ]
            ]
        },
        {
            "name": "pygments",
            "specs": [
                [
                    "==",
                    "2.13.0"
                ]
            ]
        },
        {
            "name": "pylint",
            "specs": [
                [
                    "==",
                    "2.15.8"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "3.0.9"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "7.2.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2022.6"
                ]
            ]
        },
        {
            "name": "readme-renderer",
            "specs": [
                [
                    "==",
                    "37.3"
                ]
            ]
        },
        {
            "name": "regex",
            "specs": [
                [
                    "==",
                    "2022.10.31"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.1"
                ]
            ]
        },
        {
            "name": "requests-oauthlib",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "0.10.1"
                ]
            ]
        },
        {
            "name": "rfc3986",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "12.6.0"
                ]
            ]
        },
        {
            "name": "rsa",
            "specs": [
                [
                    "==",
                    "4.9"
                ]
            ]
        },
        {
            "name": "secretstorage",
            "specs": [
                [
                    "==",
                    "3.3.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "spinners",
            "specs": [
                [
                    "==",
                    "0.0.24"
                ]
            ]
        },
        {
            "name": "tensorboard",
            "specs": [
                [
                    "==",
                    "2.11.0"
                ]
            ]
        },
        {
            "name": "tensorboard-data-server",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "tensorboard-plugin-wit",
            "specs": [
                [
                    "==",
                    "1.8.1"
                ]
            ]
        },
        {
            "name": "tensorflow",
            "specs": [
                [
                    "==",
                    "2.11.0"
                ]
            ]
        },
        {
            "name": "tensorflow-estimator",
            "specs": [
                [
                    "==",
                    "2.11.0"
                ]
            ]
        },
        {
            "name": "tensorflow-io-gcs-filesystem",
            "specs": [
                [
                    "==",
                    "0.28.0"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "toml",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "tomli",
            "specs": [
                [
                    "==",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "tomlkit",
            "specs": [
                [
                    "==",
                    "0.11.6"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.64.1"
                ]
            ]
        },
        {
            "name": "twine",
            "specs": [
                [
                    "==",
                    "4.0.1"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.4.0"
                ]
            ]
        },
        {
            "name": "unidecode",
            "specs": [
                [
                    "==",
                    "1.3.6"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.12"
                ]
            ]
        },
        {
            "name": "webencodings",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "werkzeug",
            "specs": [
                [
                    "==",
                    "2.2.2"
                ]
            ]
        },
        {
            "name": "wheel",
            "specs": [
                [
                    "==",
                    "0.38.4"
                ]
            ]
        },
        {
            "name": "wrapt",
            "specs": [
                [
                    "==",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "zipp",
            "specs": [
                [
                    "==",
                    "3.10.0"
                ]
            ]
        }
    ],
    "lcname": "preprocessing-pgp"
}
        
Elapsed time: 0.41043s