gpti


Namegpti JSON
Version 2.1 PyPI version JSON
download
home_pagehttps://github.com/yandricr/gpti-py/
SummaryThis package simplifies your interaction with various GPT models, removing the need for tokens or other methods to access GPT
upload_time2024-11-14 04:55:10
maintainerNone
docs_urlNone
authoryandricr
requires_pythonNone
licenseMIT
keywords gpt gpt-3 gpt-3.5 gpt-4 gpti gpt-free ai blackbox prodia bing chat stream dalle generate-image llama-3.1 gpt-4o
VCS
bugtrack_url
requirements requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# GPTI

![Downloads](https://img.shields.io/pypi/dw/gpti?style=for-the-badge) ![License](https://img.shields.io/pypi/l/gpti?style=for-the-badge) [![Contributors](https://img.shields.io/github/contributors/yandricr/gpti-py?style=for-the-badge)](https://github.com/yandricr/gpti-py/graphs/contributors) [![Size Package](https://img.shields.io/github/languages/code-size/yandricr/gpti-py?style=for-the-badge)](https://github.com/yandricr/gpti-py) ![Python](https://img.shields.io/badge/python-%233776AB.svg?style=for-the-badge&logo=python&logoColor=white)

This package simplifies your interaction with various GPT models, eliminating the need for tokens or other methods to access GPT. It also allows you to use three artificial intelligences to generate images: DALL·E, Prodia and more, all of this without restrictions or limits

## Installation

You can install the package via PIP

```bash
pip install gpti
```

## Available Models

GPTI provides access to a variety of artificial intelligence models to meet various needs. Currently, the available models include:

- [**ChatGPT**](#gpt)
- [**GPT-3.5-Turbo**](#gpt-v2)
- [**ChatGPT Web**](#gptweb)
- [**GPT-4o**](#gpt-4o)
- [**Bing**](#bing)
- [**LLaMA-3.1**](#llama-3.1)
- [**Blackbox**](#blackbox)
- [**AI Images**](#ai-images)

## Api key

If you want to access the premium models, enter your credentials. You can obtain them by [clicking here](https://nexra.aryahcr.cc/api-key/en).

```python
from gpti import nexra

nexra("user-xxxxxxxx", "nx-xxxxxxx-xxxxx-xxxxx");
```

<a id="gpt"></a>
## Usage GPT

```python
import json
from gpti import gpt

res = gpt.v1(messages=[
    {
        "role": "assistant",
        "content": "Hello! How are you today?"
    },
    {
        "role": "user",
        "content": "Hello, my name is Yandri."
    },
    {
        "role": "assistant",
        "content": "Hello, Yandri! How are you today?"
    }
], prompt="Can you repeat my name?", model="GPT-4", markdown=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    print(json.dumps(res.result()))
```

#### Models

Select one of these available models in the API to enhance your experience.

- gpt-4
- gpt-4-0613
- gpt-4-32k
- gpt-4-0314
- gpt-4-32k-0314
- gpt-3.5-turbo
- gpt-3.5-turbo-16k
- gpt-3.5-turbo-0613
- gpt-3.5-turbo-16k-0613
- gpt-3.5-turbo-0301
- text-davinci-003
- text-davinci-002
- code-davinci-002
- gpt-3
- text-curie-001
- text-babbage-001
- text-ada-001
- davinci
- curie
- babbage
- ada
- babbage-002
- davinci-002

<a id="gpt-v2"></a>
## Usage GPT v2

It's quite similar, with the difference that it has the capability to generate real-time responses via streaming using gpt-3.5-turbo.

```python
import json
from gpti import gpt

res = gpt.v2(messages=[
    {
        "role": "assistant",
        "content": "Hello! How are you today?"
    },
    {
        "role": "user",
        "content": "Hello, my name is Yandri."
    },
    {
        "role": "assistant",
        "content": "Hello, Yandri! How are you today?"
    },
    {
        "role": "user",
        "content": "Can you repeat my name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    print(json.dumps(res.result()))
```

## Usage GPT v2 Streaming

```python
import json
from gpti import gpt

res = gpt.v2(messages=[
    {
        "role": "assistant",
        "content": "Hello! How are you today?"
    },
    {
        "role": "user",
        "content": "Hello, my name is Yandri."
    },
    {
        "role": "assistant",
        "content": "Hello, Yandri! How are you today?"
    },
    {
        "role": "user",
        "content": "Can you repeat my name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    for chunk in res.stream():
        print(json.dumps(chunk))
```

<a id="gptweb"></a>
## Usage GPT Web

GPT-4 has been enhanced by me, but errors may arise due to technological complexity. It is advisable to exercise caution when relying entirely on its accuracy for online queries.

```python
import json
from gpti import gpt

res = gpt.web(prompt="Are you familiar with the movie Wonka released in 2023?", markdown=False)

if res.error() != None:
    print(json.dumps(res.error()))
else: 
    print(json.dumps(res.result()))
```

<a id="gpt-4o"></a>
## Usage GPT-4o

```python
import json
from gpti import gpt

res = gpt.v3(messages=[
    {
        "role": "assistant",
        "content": "Hello! How are you today?"
    },
    {
        "role": "user",
        "content": "Hello, my name is Yandri."
    },
    {
        "role": "assistant",
        "content": "Hello, Yandri! How are you today?"
    },
    {
        "role": "user",
        "content": "Can you repeat my name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    print(json.dumps(res.result()))
```

## Usage GPT-4o Streaming

```python
import json
from gpti import gpt

res = gpt.v3(messages=[
    {
        "role": "assistant",
        "content": "Hello! How are you today?"
    },
    {
        "role": "user",
        "content": "Hello, my name is Yandri."
    },
    {
        "role": "assistant",
        "content": "Hello, Yandri! How are you today?"
    },
    {
        "role": "user",
        "content": "Can you repeat my name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    for chunk in res.stream():
        print(json.dumps(chunk))
```

<a id="bing"></a>
## Usage Bing

```python
import json
from gpti import bing

res = bing(messages=[
    {
        "role" => "assistant",
        "content" => "Hello! How can I help you today? 😊"
    },
    {
        "role": "user",
        "content": "Can you tell me how many movies you've told me about?"
    }
], conversation_style="Balanced", markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    print(json.dumps(res.result()))
```

## Usage Bing Streaming

```python
import json
from gpti import bing

res = bing(messages=[
    {
        "role" => "assistant",
        "content" => "Hello! How can I help you today? 😊"
    },
    {
        "role": "user",
        "content": "Can you tell me how many movies you've told me about?"
    }
], conversation_style="Balanced", markdown=False, stream=True)

if res.error() != None:
    print(json.dumps(res.error()))
else:
    for chunk in res.stream():
        print(json.dumps(chunk))
```

#### Parameters

| Parameter          | Default  | Description                                                                                             |
|--------------------|----------|---------------------------------------------------------------------------------------------------------|
| conversation_style | Balanced | You can use between: "Balanced", "Creative" and "Precise"                                               |
| markdown           | false    | You can convert the dialogues into continuous streams or not into Markdown                                |
| stream             | false    | You are given the option to choose whether you prefer the responses to be in real-time or not            |

<a id="llama-3.1"></a>
## Usage LLaMA 3.1

```python
import json
from gpti import llama

res = llama(messages=[
    {
        "role": "user",
        "content": "Hello! How are you? Could you tell me your name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else: 
    print(json.dumps(res.result()))
```

## Usage LLaMA 3.1 Streaming

```python
import json
from gpti import llama

res = llama(messages=[
    {
        "role": "user",
        "content": "Hello! How are you? Could you tell me your name?"
    }
], markdown=False, stream=True)

if res.error() != None:
    print(json.dumps(res.error()))
else: 
    for chunk in res.stream():
        print(json.dumps(chunk))
```

<a id="blackbox"></a>
## Usage Blackbox

```python
import json
from gpti import blackbox

res = blackbox(messages=[
    {
        "role": "user",
        "content": "Hello! How are you? Could you tell me your name?"
    }
], markdown=False, stream=False)

if res.error() != None:
    print(json.dumps(res.error()))
else: 
    print(json.dumps(res.result()))
```

## Usage Blackbox Streaming

```python
import json
from gpti import blackbox

res = blackbox(messages=[
    {
        "role": "user",
        "content": "Hello! How are you? Could you tell me your name?"
    }
], markdown=False, stream=True)

if res.error() != None:
    print(json.dumps(res.error()))
else: 
    for chunk in res.stream():
        print(json.dumps(chunk))
```

<a id="ai-images"></a>
## AI Images

```python
import json
from gpti import imageai

res = imageai(prompt="cat color red", model="dalle", response="url" | "base64", data={})

if res.error() != None:
    print(json.dumps(res.error()))
else:
    print(json.dumps(res.result()))
```

## API Reference

Currently, some models require your credentials to access them, while others are free. For more details and examples, please refer to the complete [documentation](https://nexra.aryahcr.cc/).

#### Code Errors

These are the error codes that will be presented in case the API fails.

| Code | Error                  | Description                                           |
|------|------------------------|-------------------------------------------------------|
| 400  | BAD_REQUEST            | Not all parameters have been entered correctly        |
| 500  | INTERNAL_SERVER_ERROR  | The server has experienced failures                   |
| 200  |                        | The API worked without issues                          |
| 403  | FORBIDDEN              | Your API key has expired and needs to be renewed      |
| 401  | UNAUTHORIZED           | API credentials are required                          |

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yandricr/gpti-py/",
    "name": "gpti",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "gpt gpt-3 gpt-3.5 gpt-4 gpti gpt-free ai blackbox prodia bing chat stream dalle generate-image llama-3.1 gpt-4o",
    "author": "yandricr",
    "author_email": "yandribret@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/51/29/8dfe15f5b30e5f42c70ffe873817706e5e05874b4da5c6d1ca607927294c/gpti-2.1.tar.gz",
    "platform": null,
    "description": "\r\n# GPTI\r\n\r\n![Downloads](https://img.shields.io/pypi/dw/gpti?style=for-the-badge) ![License](https://img.shields.io/pypi/l/gpti?style=for-the-badge) [![Contributors](https://img.shields.io/github/contributors/yandricr/gpti-py?style=for-the-badge)](https://github.com/yandricr/gpti-py/graphs/contributors) [![Size Package](https://img.shields.io/github/languages/code-size/yandricr/gpti-py?style=for-the-badge)](https://github.com/yandricr/gpti-py) ![Python](https://img.shields.io/badge/python-%233776AB.svg?style=for-the-badge&logo=python&logoColor=white)\r\n\r\nThis package simplifies your interaction with various GPT models, eliminating the need for tokens or other methods to access GPT. It also allows you to use three artificial intelligences to generate images: DALL\u00b7E, Prodia and more, all of this without restrictions or limits\r\n\r\n## Installation\r\n\r\nYou can install the package via PIP\r\n\r\n```bash\r\npip install gpti\r\n```\r\n\r\n## Available Models\r\n\r\nGPTI provides access to a variety of artificial intelligence models to meet various needs. Currently, the available models include:\r\n\r\n- [**ChatGPT**](#gpt)\r\n- [**GPT-3.5-Turbo**](#gpt-v2)\r\n- [**ChatGPT Web**](#gptweb)\r\n- [**GPT-4o**](#gpt-4o)\r\n- [**Bing**](#bing)\r\n- [**LLaMA-3.1**](#llama-3.1)\r\n- [**Blackbox**](#blackbox)\r\n- [**AI Images**](#ai-images)\r\n\r\n## Api key\r\n\r\nIf you want to access the premium models, enter your credentials. You can obtain them by [clicking here](https://nexra.aryahcr.cc/api-key/en).\r\n\r\n```python\r\nfrom gpti import nexra\r\n\r\nnexra(\"user-xxxxxxxx\", \"nx-xxxxxxx-xxxxx-xxxxx\");\r\n```\r\n\r\n<a id=\"gpt\"></a>\r\n## Usage GPT\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.v1(messages=[\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello, my name is Yandri.\"\r\n    },\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello, Yandri! How are you today?\"\r\n    }\r\n], prompt=\"Can you repeat my name?\", model=\"GPT-4\", markdown=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n#### Models\r\n\r\nSelect one of these available models in the API to enhance your experience.\r\n\r\n- gpt-4\r\n- gpt-4-0613\r\n- gpt-4-32k\r\n- gpt-4-0314\r\n- gpt-4-32k-0314\r\n- gpt-3.5-turbo\r\n- gpt-3.5-turbo-16k\r\n- gpt-3.5-turbo-0613\r\n- gpt-3.5-turbo-16k-0613\r\n- gpt-3.5-turbo-0301\r\n- text-davinci-003\r\n- text-davinci-002\r\n- code-davinci-002\r\n- gpt-3\r\n- text-curie-001\r\n- text-babbage-001\r\n- text-ada-001\r\n- davinci\r\n- curie\r\n- babbage\r\n- ada\r\n- babbage-002\r\n- davinci-002\r\n\r\n<a id=\"gpt-v2\"></a>\r\n## Usage GPT v2\r\n\r\nIt's quite similar, with the difference that it has the capability to generate real-time responses via streaming using gpt-3.5-turbo.\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.v2(messages=[\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello, my name is Yandri.\"\r\n    },\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello, Yandri! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you repeat my name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## Usage GPT v2 Streaming\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.v2(messages=[\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello, my name is Yandri.\"\r\n    },\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello, Yandri! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you repeat my name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    for chunk in res.stream():\r\n        print(json.dumps(chunk))\r\n```\r\n\r\n<a id=\"gptweb\"></a>\r\n## Usage GPT Web\r\n\r\nGPT-4 has been enhanced by me, but errors may arise due to technological complexity. It is advisable to exercise caution when relying entirely on its accuracy for online queries.\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.web(prompt=\"Are you familiar with the movie Wonka released in 2023?\", markdown=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse: \r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n<a id=\"gpt-4o\"></a>\r\n## Usage GPT-4o\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.v3(messages=[\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello, my name is Yandri.\"\r\n    },\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello, Yandri! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you repeat my name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## Usage GPT-4o Streaming\r\n\r\n```python\r\nimport json\r\nfrom gpti import gpt\r\n\r\nres = gpt.v3(messages=[\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello, my name is Yandri.\"\r\n    },\r\n    {\r\n        \"role\": \"assistant\",\r\n        \"content\": \"Hello, Yandri! How are you today?\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you repeat my name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    for chunk in res.stream():\r\n        print(json.dumps(chunk))\r\n```\r\n\r\n<a id=\"bing\"></a>\r\n## Usage Bing\r\n\r\n```python\r\nimport json\r\nfrom gpti import bing\r\n\r\nres = bing(messages=[\r\n    {\r\n        \"role\" => \"assistant\",\r\n        \"content\" => \"Hello! How can I help you today? \ud83d\ude0a\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you tell me how many movies you've told me about?\"\r\n    }\r\n], conversation_style=\"Balanced\", markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## Usage Bing Streaming\r\n\r\n```python\r\nimport json\r\nfrom gpti import bing\r\n\r\nres = bing(messages=[\r\n    {\r\n        \"role\" => \"assistant\",\r\n        \"content\" => \"Hello! How can I help you today? \ud83d\ude0a\"\r\n    },\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Can you tell me how many movies you've told me about?\"\r\n    }\r\n], conversation_style=\"Balanced\", markdown=False, stream=True)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    for chunk in res.stream():\r\n        print(json.dumps(chunk))\r\n```\r\n\r\n#### Parameters\r\n\r\n| Parameter          | Default  | Description                                                                                             |\r\n|--------------------|----------|---------------------------------------------------------------------------------------------------------|\r\n| conversation_style | Balanced | You can use between: \"Balanced\", \"Creative\" and \"Precise\"                                               |\r\n| markdown           | false    | You can convert the dialogues into continuous streams or not into Markdown                                |\r\n| stream             | false    | You are given the option to choose whether you prefer the responses to be in real-time or not            |\r\n\r\n<a id=\"llama-3.1\"></a>\r\n## Usage LLaMA 3.1\r\n\r\n```python\r\nimport json\r\nfrom gpti import llama\r\n\r\nres = llama(messages=[\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello! How are you? Could you tell me your name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse: \r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## Usage LLaMA 3.1 Streaming\r\n\r\n```python\r\nimport json\r\nfrom gpti import llama\r\n\r\nres = llama(messages=[\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello! How are you? Could you tell me your name?\"\r\n    }\r\n], markdown=False, stream=True)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse: \r\n    for chunk in res.stream():\r\n        print(json.dumps(chunk))\r\n```\r\n\r\n<a id=\"blackbox\"></a>\r\n## Usage Blackbox\r\n\r\n```python\r\nimport json\r\nfrom gpti import blackbox\r\n\r\nres = blackbox(messages=[\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello! How are you? Could you tell me your name?\"\r\n    }\r\n], markdown=False, stream=False)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse: \r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## Usage Blackbox Streaming\r\n\r\n```python\r\nimport json\r\nfrom gpti import blackbox\r\n\r\nres = blackbox(messages=[\r\n    {\r\n        \"role\": \"user\",\r\n        \"content\": \"Hello! How are you? Could you tell me your name?\"\r\n    }\r\n], markdown=False, stream=True)\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse: \r\n    for chunk in res.stream():\r\n        print(json.dumps(chunk))\r\n```\r\n\r\n<a id=\"ai-images\"></a>\r\n## AI Images\r\n\r\n```python\r\nimport json\r\nfrom gpti import imageai\r\n\r\nres = imageai(prompt=\"cat color red\", model=\"dalle\", response=\"url\" | \"base64\", data={})\r\n\r\nif res.error() != None:\r\n    print(json.dumps(res.error()))\r\nelse:\r\n    print(json.dumps(res.result()))\r\n```\r\n\r\n## API Reference\r\n\r\nCurrently, some models require your credentials to access them, while others are free. For more details and examples, please refer to the complete [documentation](https://nexra.aryahcr.cc/).\r\n\r\n#### Code Errors\r\n\r\nThese are the error codes that will be presented in case the API fails.\r\n\r\n| Code | Error                  | Description                                           |\r\n|------|------------------------|-------------------------------------------------------|\r\n| 400  | BAD_REQUEST            | Not all parameters have been entered correctly        |\r\n| 500  | INTERNAL_SERVER_ERROR  | The server has experienced failures                   |\r\n| 200  |                        | The API worked without issues                          |\r\n| 403  | FORBIDDEN              | Your API key has expired and needs to be renewed      |\r\n| 401  | UNAUTHORIZED           | API credentials are required                          |\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "This package simplifies your interaction with various GPT models, removing the need for tokens or other methods to access GPT",
    "version": "2.1",
    "project_urls": {
        "Documentation": "https://nexra.aryahcr.cc/",
        "Homepage": "https://github.com/yandricr/gpti-py/",
        "Source": "https://github.com/yandricr/gpti-py/"
    },
    "split_keywords": [
        "gpt",
        "gpt-3",
        "gpt-3.5",
        "gpt-4",
        "gpti",
        "gpt-free",
        "ai",
        "blackbox",
        "prodia",
        "bing",
        "chat",
        "stream",
        "dalle",
        "generate-image",
        "llama-3.1",
        "gpt-4o"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f2c965b99cc3190d9b38a1c306a2e9bb84937624e80790c6a39925a3e816bac",
                "md5": "c6db66b5d96fb43a81eacb6862a12fbd",
                "sha256": "a3703948295533fe5513991acadcacab2436bda5902ee14a5be4e0719ff5968e"
            },
            "downloads": -1,
            "filename": "gpti-2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c6db66b5d96fb43a81eacb6862a12fbd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7630,
            "upload_time": "2024-11-14T04:55:08",
            "upload_time_iso_8601": "2024-11-14T04:55:08.561948Z",
            "url": "https://files.pythonhosted.org/packages/0f/2c/965b99cc3190d9b38a1c306a2e9bb84937624e80790c6a39925a3e816bac/gpti-2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "51298dfe15f5b30e5f42c70ffe873817706e5e05874b4da5c6d1ca607927294c",
                "md5": "2830a542bb371cb2d21fde994e4e6302",
                "sha256": "bcc6d50250edc2e6213117238b2945f97ebe4701df8b438b3305015a77699d85"
            },
            "downloads": -1,
            "filename": "gpti-2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2830a542bb371cb2d21fde994e4e6302",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 9934,
            "upload_time": "2024-11-14T04:55:10",
            "upload_time_iso_8601": "2024-11-14T04:55:10.176633Z",
            "url": "https://files.pythonhosted.org/packages/51/29/8dfe15f5b30e5f42c70ffe873817706e5e05874b4da5c6d1ca607927294c/gpti-2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-14 04:55:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yandricr",
    "github_project": "gpti-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": []
        }
    ],
    "lcname": "gpti"
}
        
Elapsed time: 0.46093s