termii-client


Nametermii-client JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryPython library for Termii API
upload_time2024-07-28 07:59:33
maintainerNone
docs_urlNone
authorGabriel Idenyi
requires_python>=3.8
licenseMIT License Copyright (c) 2024 Idenyi Gabriel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords python python3 termii
VCS
bugtrack_url
requirements certifi charset-normalizer idna requests urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
    <img title="Flutterwave" height="100" src="https://developer.termii.com/termii-logo.svg" width="30%" />
</p>

# Termii Python Library.

## Introduction

The python library provides easy access to `Termii` API for Python users. Accelerate development with our Python library by abstracting `Termii` API complexities and providing easy-to-use functions.

Please see [the docs](https://developer.termii.com/) for the most up-to-date documentation of `Termii` API.

Available features include:
- Campaigns: send, list and history
- Contacts: list, create(single/bulk) and delete
- Insights: balance, history, search and status
- Messaging: sms(single/bulk), template api, number api
- Phonebooks: list, create, update and delete
- SenderID: list, request
- Token: voice_call, voice_token, email_token, send, in_app, verify

## Table of Contents

1. [Requirements](#requirements)
2. [Installation](#installation)
3. [Initialization](#initialization)
4. [Usage](#usage)
6. [Debugging](#debugging)
7. [Support](#support)
8. [Contribution Guidelines](#contributing)
9. [License](#license)

<a name="requirements"></a>
## Requirements

1. Termii API Keys
2. Supported Python versions: >3.8

<a name="installation"></a>
## Installation

To install this library (preferably in an active virtual environment) simply run

```sh
pip3 install termii_client
```

<a name="initialization"></a>
## Initialization

Import entry class for this package from termii_client.

```py
from termii_client import Termii
```

With this you have access to all the features this library has to offer.
To initialize the library simply create a `Termii` object, while supplying the api key, you can find one in your `Termii` dashboard.

```
termii = Termii("Your API Key")
```

<a name="usage"></a>
## Usage

This is a documentation for all components on termii_client 

> **Note:**
> For convenience, this library will automatically populate the field ```api_key``` using the value specified during initialization.
> for every payload where it is required, but not provided.

### ```termii.campaigns```

This is used for handling all campaign related resources on termii.

Functions included are:

- ```.send```
- ```.list```
- ```.history```


#### ```.send(payload):```
Send a campaign. The payload is a dictionary containing campaign information, optionally excluding api_key.

- ```payload```
    - ```api_key (optional)```
    - ```country_code```
    - ```sender_id```
    - ```message```
    - ```channel```
    - ```message_type```
    - ```phonebook_id```
    - ```campaign_type```
    - ```schedule_sms_status```
    - ```schedule_time```

#### ```.list(pagination_url)```
Retrieve list of all campaigns.

- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.


#### ```.history(campaign_id, pagination_url)```
Retrieve history for specified campaign.

- ```campaign_id```: campaign id to retrieve it's history
- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

<br />

### ```termii.contacts```

This is used for handling contacts in termii phonebooks.

Functions included are:

- ```.list```
- ```.create```
- ```.create_bulk```
- ```.delete```

#### ```.list(phonebook_id, pagination_url):```
Retrieve list of all contacts in the specified phonebook.

- ```phonebook_id```: phone book id to retrieve it's contacts
- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.


#### ```.create(phonebook_id, payload):```
Create new contact in the specified phonebook

- ```phonebook_id```: phone book id to create contact on.
- ```payload```
    - ```api_key (optional)```
    - ```phone_number```
    - ```country_code```
    - ```email_address```
    - ```first_name```
    - ```last_name```
    - ```company```


#### ```.create_bulk(phonebook_id, payload):```
Create bulk of new contacts in the specified phonebook

- ```phonebook_id```: phone book id to create contact on.
- ```payload```
    - ```api_key (optional)```
    - ```contact_file```
    - ```country_code```


#### ```.delete(contact_id):```
Delete a specified contact

- ```contact_id```: id of contact to delete

<br />

### ```termii.insights```

This is used for handling resources related to insights

Functions included are:

- ```.balance```
- ```.history```
- ```.search```
- ```.status```

#### ```.balance():```
Retrieve termii account balance

#### ```.history(pagination_url):```
Retrieve reports for messages sent across the sms, voice & whatsapp channels.

- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.


#### ```.search(phone_number):```
Verify phone numbers and automatically detect their status as well as current network.

- ```phone_number```: phone number to detect status and current network


#### ```.status(phone_number, country_code):```
Verify if a number is fake or has ported to a new network.

- ```phone_number```: phone number to fake and ported status
- ```country_code```: phone number country code

<br />

### ```termii.messaging```

This is used for handling resources related to Messaging/SMS

Functions included are:

- ```.send```
- ```.send_bulk```
- ```.send_auto_message```
- ```.send_template_message```

#### ```.send_single(payload):```
Send single sms on termii api

- ```payload```
    - ```api_key (0ptional)```
    - ```to```
    - ```from```
    - ```sms```
    - ```type```
    - ```channel```
    - ```media (Optional Dict)```
        - ```url```
        - ```caption```

#### ```.send_bulk(payload):```
Send bulk sms on termii api

- ```payload```
    - ```api_key (0ptional)```
    - ```to```
    - ```from```
    - ```sms```
    - ```type```
    - ```channel```

#### ```.send_auto_message(payload):```
Send single sms on termii api with auto generated numbers

- ```payload```
    - ```api_key (0ptional)```
    - ```to```
    - ```from```

#### ```.send_template_message(payload):```
Set a template for the one-time-passwords (pins) sent to their customers via whatsapp or sms.

- ```payload```
    - ```api_key (0ptional)```
    - ```phone_number```
    - ```device_id```
    - ```template_id```
    - ```data```

<br />

### ```termii.phonebooks```

This is used for handling all phonebook related resources on termii.

Functions included are:

- ```.list```
- ```.create```
- ```.update```
- ```.delete```


#### ```.list(pagination_url)```
Retrieve list of all phonebooks

- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

#### ```.create(phonebook_name, description)```
Retrieve list of all phonebooks

- ```phonebook_name```
- ```description (optional)```

#### ```.update(phonebook_id, phonebook_name)```
Update existing phonebook

- ```phonebook_id```: Phonebook ID to update
- ```phonebook_name```: New phonebook name

#### ```.delete(phonebook_id)```
Delete existing phonebook

- ```phonebook_id```: Phonebook ID to delete

<br />

### ```termii.sender_id```

This is used for handling all phonebook related resources on termii.

Functions included are:

- ```.list```
- ```.request```


#### ```.list(pagination_url)```
Retrieve list of all sender ID's

- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.

#### ```.request(sender_id, usecase, company)```
Request for a sender id

- ```sender_id```: sender id being requested eg: CompanyName
- ```usecase```: a sample of the type of message to be sent.
- ```company```: name of the company with the sender ID

<br />

### ```termii.token```

This is used for handling all phonebook related resources on termii.

Functions included are:

- ```.voice_call```
- ```.email_token```
- ```.in_app```
- ```.send```
- ```.verify```
- ```.voice_token```


#### ```.voice_call(payload)```
Send messages from your application through our voice channel to a phone number.

- ```payload```
    - ```api_key (Optional)```
    - ```phone_number```
    - ```code```


#### ```.email_token(payload)```
Send one-time-passwords from your application through our email channel to an email address.

- ```payload```
    - ```api_key (Optional)```
    - ```email_address```
    - ```code```
    - ```email_configuration_id```


#### ```.in_app(payload)```
Returns OTP codes in JSON format which can be used within any web or mobile app.

- ```payload```
    - ```api_key (Optional)```
    - ```phone_number```
    - ```pin_attempts```
    - ```pin_time_to_live```
    - ```pin_length```


#### ```.send(payload)```
Send one-time-passwords (OTP) across any available messaging channel on Termii

- ```payload```
    - ```api_key (Optional)```
    - ```message_type```
    - ```to```
    - ```from```
    - ```channel```
    - ```pin_attempts```
    - ```pin_time_to_live```
    - ```pin_length```
    - ```pin_placeholder```
    - ```message_text```


#### ```.verify(payload)```
Check status of tokens sent to customers.

- ```payload```
    - ```api_key (Optional)```
    - ```pin_id```
    - ```pin```


#### ```.voice_token(payload)```
Generate and trigger one-time passwords (OTP) through the voice channel to a phone number.

- ```payload```
    - ```api_key (Optional)```
    - ```phone_number```
    - ```pin_attempts```
    - ```pin_time_to_live```
    - ```pin_length```


<a name="debugging"></a>
## Debugging Errors

I understand that you may run into some errors while integrating this library. Please open discussion on any problems you may have about this library

For authorization and validation error responses, double-check your API keys and request. If you get a server error, kindly engage the Termii for support @+234-8137751523.

<a name="support"></a>
## Support

For additional assistance using this library, feel free to reach out, i'll be looking forward to it.

You can also follow me on [twitter](https://x.com/idenyigabriel) and [github](https://github.com/idenyigabriel) and [linkedin](https://www.linkedin.com/in/gabriel-idenyi/). 😊.


<a name="license"></a>
## License

By contributing to this library, you agree that your contributions will be licensed under its MIT license.


<a name="contributing"></a>
## Contribution guidelines

Read more about our community contribution guidelines [here](./CONTRIBUTING.md)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "termii-client",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "python, python3, termii",
    "author": "Gabriel Idenyi",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/d4/c2/b62a94e9de901b41e5e739732b316d1b5faf962bfda86d48fda377c6bc7d/termii_client-1.0.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n    <img title=\"Flutterwave\" height=\"100\" src=\"https://developer.termii.com/termii-logo.svg\" width=\"30%\" />\n</p>\n\n# Termii Python Library.\n\n## Introduction\n\nThe python library provides easy access to `Termii` API for Python users. Accelerate development with our Python library by abstracting `Termii` API complexities and providing easy-to-use functions.\n\nPlease see [the docs](https://developer.termii.com/) for the most up-to-date documentation of `Termii` API.\n\nAvailable features include:\n- Campaigns: send, list and history\n- Contacts: list, create(single/bulk) and delete\n- Insights: balance, history, search and status\n- Messaging: sms(single/bulk), template api, number api\n- Phonebooks: list, create, update and delete\n- SenderID: list, request\n- Token: voice_call, voice_token, email_token, send, in_app, verify\n\n## Table of Contents\n\n1. [Requirements](#requirements)\n2. [Installation](#installation)\n3. [Initialization](#initialization)\n4. [Usage](#usage)\n6. [Debugging](#debugging)\n7. [Support](#support)\n8. [Contribution Guidelines](#contributing)\n9. [License](#license)\n\n<a name=\"requirements\"></a>\n## Requirements\n\n1. Termii API Keys\n2. Supported Python versions: >3.8\n\n<a name=\"installation\"></a>\n## Installation\n\nTo install this library (preferably in an active virtual environment) simply run\n\n```sh\npip3 install termii_client\n```\n\n<a name=\"initialization\"></a>\n## Initialization\n\nImport entry class for this package from termii_client.\n\n```py\nfrom termii_client import Termii\n```\n\nWith this you have access to all the features this library has to offer.\nTo initialize the library simply create a `Termii` object, while supplying the api key, you can find one in your `Termii` dashboard.\n\n```\ntermii = Termii(\"Your API Key\")\n```\n\n<a name=\"usage\"></a>\n## Usage\n\nThis is a documentation for all components on termii_client \n\n> **Note:**\n> For convenience, this library will automatically populate the field ```api_key``` using the value specified during initialization.\n> for every payload where it is required, but not provided.\n\n### ```termii.campaigns```\n\nThis is used for handling all campaign related resources on termii.\n\nFunctions included are:\n\n- ```.send```\n- ```.list```\n- ```.history```\n\n\n#### ```.send(payload):```\nSend a campaign. The payload is a dictionary containing campaign information, optionally excluding api_key.\n\n- ```payload```\n    - ```api_key (optional)```\n    - ```country_code```\n    - ```sender_id```\n    - ```message```\n    - ```channel```\n    - ```message_type```\n    - ```phonebook_id```\n    - ```campaign_type```\n    - ```schedule_sms_status```\n    - ```schedule_time```\n\n#### ```.list(pagination_url)```\nRetrieve list of all campaigns.\n\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n\n#### ```.history(campaign_id, pagination_url)```\nRetrieve history for specified campaign.\n\n- ```campaign_id```: campaign id to retrieve it's history\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n<br />\n\n### ```termii.contacts```\n\nThis is used for handling contacts in termii phonebooks.\n\nFunctions included are:\n\n- ```.list```\n- ```.create```\n- ```.create_bulk```\n- ```.delete```\n\n#### ```.list(phonebook_id, pagination_url):```\nRetrieve list of all contacts in the specified phonebook.\n\n- ```phonebook_id```: phone book id to retrieve it's contacts\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n\n#### ```.create(phonebook_id, payload):```\nCreate new contact in the specified phonebook\n\n- ```phonebook_id```: phone book id to create contact on.\n- ```payload```\n    - ```api_key (optional)```\n    - ```phone_number```\n    - ```country_code```\n    - ```email_address```\n    - ```first_name```\n    - ```last_name```\n    - ```company```\n\n\n#### ```.create_bulk(phonebook_id, payload):```\nCreate bulk of new contacts in the specified phonebook\n\n- ```phonebook_id```: phone book id to create contact on.\n- ```payload```\n    - ```api_key (optional)```\n    - ```contact_file```\n    - ```country_code```\n\n\n#### ```.delete(contact_id):```\nDelete a specified contact\n\n- ```contact_id```: id of contact to delete\n\n<br />\n\n### ```termii.insights```\n\nThis is used for handling resources related to insights\n\nFunctions included are:\n\n- ```.balance```\n- ```.history```\n- ```.search```\n- ```.status```\n\n#### ```.balance():```\nRetrieve termii account balance\n\n#### ```.history(pagination_url):```\nRetrieve reports for messages sent across the sms, voice & whatsapp channels.\n\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n\n#### ```.search(phone_number):```\nVerify phone numbers and automatically detect their status as well as current network.\n\n- ```phone_number```: phone number to detect status and current network\n\n\n#### ```.status(phone_number, country_code):```\nVerify if a number is fake or has ported to a new network.\n\n- ```phone_number```: phone number to fake and ported status\n- ```country_code```: phone number country code\n\n<br />\n\n### ```termii.messaging```\n\nThis is used for handling resources related to Messaging/SMS\n\nFunctions included are:\n\n- ```.send```\n- ```.send_bulk```\n- ```.send_auto_message```\n- ```.send_template_message```\n\n#### ```.send_single(payload):```\nSend single sms on termii api\n\n- ```payload```\n    - ```api_key (0ptional)```\n    - ```to```\n    - ```from```\n    - ```sms```\n    - ```type```\n    - ```channel```\n    - ```media (Optional Dict)```\n        - ```url```\n        - ```caption```\n\n#### ```.send_bulk(payload):```\nSend bulk sms on termii api\n\n- ```payload```\n    - ```api_key (0ptional)```\n    - ```to```\n    - ```from```\n    - ```sms```\n    - ```type```\n    - ```channel```\n\n#### ```.send_auto_message(payload):```\nSend single sms on termii api with auto generated numbers\n\n- ```payload```\n    - ```api_key (0ptional)```\n    - ```to```\n    - ```from```\n\n#### ```.send_template_message(payload):```\nSet a template for the one-time-passwords (pins) sent to their customers via whatsapp or sms.\n\n- ```payload```\n    - ```api_key (0ptional)```\n    - ```phone_number```\n    - ```device_id```\n    - ```template_id```\n    - ```data```\n\n<br />\n\n### ```termii.phonebooks```\n\nThis is used for handling all phonebook related resources on termii.\n\nFunctions included are:\n\n- ```.list```\n- ```.create```\n- ```.update```\n- ```.delete```\n\n\n#### ```.list(pagination_url)```\nRetrieve list of all phonebooks\n\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n#### ```.create(phonebook_name, description)```\nRetrieve list of all phonebooks\n\n- ```phonebook_name```\n- ```description (optional)```\n\n#### ```.update(phonebook_id, phonebook_name)```\nUpdate existing phonebook\n\n- ```phonebook_id```: Phonebook ID to update\n- ```phonebook_name```: New phonebook name\n\n#### ```.delete(phonebook_id)```\nDelete existing phonebook\n\n- ```phonebook_id```: Phonebook ID to delete\n\n<br />\n\n### ```termii.sender_id```\n\nThis is used for handling all phonebook related resources on termii.\n\nFunctions included are:\n\n- ```.list```\n- ```.request```\n\n\n#### ```.list(pagination_url)```\nRetrieve list of all sender ID's\n\n- ```pagination_url (optional)```: In order to transverse through pages (if any), simply pass the next or previous page url as the keyword argument pagination_url.\n\n#### ```.request(sender_id, usecase, company)```\nRequest for a sender id\n\n- ```sender_id```: sender id being requested eg: CompanyName\n- ```usecase```: a sample of the type of message to be sent.\n- ```company```: name of the company with the sender ID\n\n<br />\n\n### ```termii.token```\n\nThis is used for handling all phonebook related resources on termii.\n\nFunctions included are:\n\n- ```.voice_call```\n- ```.email_token```\n- ```.in_app```\n- ```.send```\n- ```.verify```\n- ```.voice_token```\n\n\n#### ```.voice_call(payload)```\nSend messages from your application through our voice channel to a phone number.\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```phone_number```\n    - ```code```\n\n\n#### ```.email_token(payload)```\nSend one-time-passwords from your application through our email channel to an email address.\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```email_address```\n    - ```code```\n    - ```email_configuration_id```\n\n\n#### ```.in_app(payload)```\nReturns OTP codes in JSON format which can be used within any web or mobile app.\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```phone_number```\n    - ```pin_attempts```\n    - ```pin_time_to_live```\n    - ```pin_length```\n\n\n#### ```.send(payload)```\nSend one-time-passwords (OTP) across any available messaging channel on Termii\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```message_type```\n    - ```to```\n    - ```from```\n    - ```channel```\n    - ```pin_attempts```\n    - ```pin_time_to_live```\n    - ```pin_length```\n    - ```pin_placeholder```\n    - ```message_text```\n\n\n#### ```.verify(payload)```\nCheck status of tokens sent to customers.\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```pin_id```\n    - ```pin```\n\n\n#### ```.voice_token(payload)```\nGenerate and trigger one-time passwords (OTP) through the voice channel to a phone number.\n\n- ```payload```\n    - ```api_key (Optional)```\n    - ```phone_number```\n    - ```pin_attempts```\n    - ```pin_time_to_live```\n    - ```pin_length```\n\n\n<a name=\"debugging\"></a>\n## Debugging Errors\n\nI understand that you may run into some errors while integrating this library. Please open discussion on any problems you may have about this library\n\nFor authorization and validation error responses, double-check your API keys and request. If you get a server error, kindly engage the Termii for support @+234-8137751523.\n\n<a name=\"support\"></a>\n## Support\n\nFor additional assistance using this library, feel free to reach out, i'll be looking forward to it.\n\nYou can also follow me on [twitter](https://x.com/idenyigabriel) and [github](https://github.com/idenyigabriel) and [linkedin](https://www.linkedin.com/in/gabriel-idenyi/). \ud83d\ude0a.\n\n\n<a name=\"license\"></a>\n## License\n\nBy contributing to this library, you agree that your contributions will be licensed under its MIT license.\n\n\n<a name=\"contributing\"></a>\n## Contribution guidelines\n\nRead more about our community contribution guidelines [here](./CONTRIBUTING.md)\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 Idenyi Gabriel  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Python library for Termii API",
    "version": "1.0.0",
    "project_urls": {
        "Changelog": "https://github.com/idenyigabriel/termii/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/idenyigabriel/termii/blob/main/README.md",
        "Homepage": "https://github.com/idenyigabriel/termii",
        "Issues": "https://github.com/idenyigabriel/termii/issues",
        "Repository": "https://github.com/idenyigabriel/termii"
    },
    "split_keywords": [
        "python",
        " python3",
        " termii"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f0643c5b412f67227742bbbcafb7264f38ec09d2e5e681eab52277627d6f602",
                "md5": "5b3c9033f70e43412d8d5d04e9de02fe",
                "sha256": "4601d405b5bc785f9fdbacc03f07a38f722c7c2968c9d40172f7b182fa6361ba"
            },
            "downloads": -1,
            "filename": "termii_client-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5b3c9033f70e43412d8d5d04e9de02fe",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 12671,
            "upload_time": "2024-07-28T07:59:31",
            "upload_time_iso_8601": "2024-07-28T07:59:31.390159Z",
            "url": "https://files.pythonhosted.org/packages/1f/06/43c5b412f67227742bbbcafb7264f38ec09d2e5e681eab52277627d6f602/termii_client-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d4c2b62a94e9de901b41e5e739732b316d1b5faf962bfda86d48fda377c6bc7d",
                "md5": "07094a5ce056dc042d031fb3c481a42a",
                "sha256": "e8029091e6f00e33f13c873a8a8bb7b3e6144d134fd2d8371053d67b52f5a472"
            },
            "downloads": -1,
            "filename": "termii_client-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "07094a5ce056dc042d031fb3c481a42a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 12084,
            "upload_time": "2024-07-28T07:59:33",
            "upload_time_iso_8601": "2024-07-28T07:59:33.240706Z",
            "url": "https://files.pythonhosted.org/packages/d4/c2/b62a94e9de901b41e5e739732b316d1b5faf962bfda86d48fda377c6bc7d/termii_client-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-28 07:59:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "idenyigabriel",
    "github_project": "termii",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2024.7.4"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.3.2"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.7"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.31.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.2.2"
                ]
            ]
        }
    ],
    "lcname": "termii-client"
}
        
Elapsed time: 0.67331s