# Complementizer 🛠️
Autor: [`Ismael Guedes`](https://github.com/ismaelvguedes/)
O `Complementizer` facilita a criação e preenchimento de formulários automatizados para interações com APIs. Vamos analisar os diferentes componentes e seu funcionamento.
## Instalação
```cmd
pip install complementizer
```
## 1. Complementizer Class 🔑
- **`Complementizer`** é uma classe que se conecta a uma API e autentica o usuário. Se a API requer um token de autenticação, ela faz uma requisição para obter o token e o armazena.
- **Atributos principais:**
- `url_base`: URL base da API. 🌐
- `username` e `password`: Credenciais de autenticação. 🔐
- `has_token` e `path_auth`: Determina se a autenticação requer um token e o caminho da autenticação. 📜
- **Método `populate`**:
- Este método envia uma requisição POST para um endpoint específico, utilizando os dados gerados a partir de um formulário (`Form`). Ele imprime os dados gerados e a resposta da API. 📨
## 2. Form Class 📝
- **`Form`** é uma classe que representa um formulário vinculado a uma tabela específica. Ela utiliza a biblioteca `Faker` para gerar dados fictícios (como nomes, endereços, etc.) conforme o tipo do campo (`TypeField`).
- **Método `createField`**:
- Cria um campo no formulário com base no tipo (`TypeField`) e outros parâmetros opcionais (`info`). O método retorna o campo criado. ✏️
- **Método `createDefault`**:
- Cria um campo com valor padrão que não depende de geração de dados fictícios. 🏷️
- **Método `createDependency`**:
- Cria uma dependência que busca dados a partir de uma API e armazena os valores possíveis. 🔄
- **Método `generate`**:
- Gera um dicionário com os dados de todos os campos, padrões e dependências do formulário. 📊
## 3. Field Class 📋
- **`Field`** representa um campo no formulário, como `nome_completo`, `cpf`, `data_nascimento`, etc. A classe utiliza a biblioteca `Faker` para gerar valores para esses campos dependendo do tipo (`TypeField`).
- **Construtor**:
- O campo é inicializado com um nome, tipo e um valor gerado automaticamente pelo `Faker`, dependendo do tipo do campo (ex.: nome, endereço, CPF, etc.). ⚙️
## 4. TypeField Enum 🔢
- **`TypeField`** é um enumerador que define os diferentes tipos de campos que podem ser gerados no formulário, como `NAME_FULL`, `ADDRESS`, `DATE_OF_BIRTH`, `CPF`, etc. 📋
## 5. Uso do Complementizer 🚀
No código principal:
- **Instância de `Complementizer`**:
- Cria uma instância de `Complementizer` que conecta a uma API. 🌐
- **Laço `for`**:
- Para cada iteração, cria um novo formulário (`Form`) para a tabela `participante`. 📝
- Adiciona diversos campos ao formulário, como `nome_completo`, `cpf`, `data_nascimento`, etc. 📋
- Usa a função `populate` para enviar os dados gerados para a API. 📤
## Resumo 📑
Este código é projetado para automatizar o preenchimento e envio de formulários para uma API. Ele facilita a criação de dados fictícios para testes, gerenciamento de dependências entre campos, e autenticação da API, tornando-o útil para cenários onde é necessário simular múltiplas submissões de formulários com dados variados. ✅
Raw data
{
"_id": null,
"home_page": "https://github.com/ismaelvguedes/Complementizer",
"name": "complementizer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Ismael Guedes",
"author_email": "ismael.basic@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/04/24/e4c7bca6863fb0efc9633c7cdec4c48e77e4f5bfb3f0c8015e5a2e3d7f73/complementizer-1.2.2.tar.gz",
"platform": null,
"description": "# Complementizer \ud83d\udee0\ufe0f \nAutor: [`Ismael Guedes`](https://github.com/ismaelvguedes/)\n\nO `Complementizer` facilita a cria\u00e7\u00e3o e preenchimento de formul\u00e1rios automatizados para intera\u00e7\u00f5es com APIs. Vamos analisar os diferentes componentes e seu funcionamento.\n\n## Instala\u00e7\u00e3o\n```cmd\npip install complementizer\n```\n\n## 1. Complementizer Class \ud83d\udd11\n\n- **`Complementizer`** \u00e9 uma classe que se conecta a uma API e autentica o usu\u00e1rio. Se a API requer um token de autentica\u00e7\u00e3o, ela faz uma requisi\u00e7\u00e3o para obter o token e o armazena.\n\n - **Atributos principais:**\n - `url_base`: URL base da API. \ud83c\udf10\n - `username` e `password`: Credenciais de autentica\u00e7\u00e3o. \ud83d\udd10\n - `has_token` e `path_auth`: Determina se a autentica\u00e7\u00e3o requer um token e o caminho da autentica\u00e7\u00e3o. \ud83d\udcdc\n\n - **M\u00e9todo `populate`**:\n - Este m\u00e9todo envia uma requisi\u00e7\u00e3o POST para um endpoint espec\u00edfico, utilizando os dados gerados a partir de um formul\u00e1rio (`Form`). Ele imprime os dados gerados e a resposta da API. \ud83d\udce8\n\n## 2. Form Class \ud83d\udcdd\n\n- **`Form`** \u00e9 uma classe que representa um formul\u00e1rio vinculado a uma tabela espec\u00edfica. Ela utiliza a biblioteca `Faker` para gerar dados fict\u00edcios (como nomes, endere\u00e7os, etc.) conforme o tipo do campo (`TypeField`).\n\n - **M\u00e9todo `createField`**:\n - Cria um campo no formul\u00e1rio com base no tipo (`TypeField`) e outros par\u00e2metros opcionais (`info`). O m\u00e9todo retorna o campo criado. \u270f\ufe0f\n \n - **M\u00e9todo `createDefault`**:\n - Cria um campo com valor padr\u00e3o que n\u00e3o depende de gera\u00e7\u00e3o de dados fict\u00edcios. \ud83c\udff7\ufe0f\n \n - **M\u00e9todo `createDependency`**:\n - Cria uma depend\u00eancia que busca dados a partir de uma API e armazena os valores poss\u00edveis. \ud83d\udd04\n\n - **M\u00e9todo `generate`**:\n - Gera um dicion\u00e1rio com os dados de todos os campos, padr\u00f5es e depend\u00eancias do formul\u00e1rio. \ud83d\udcca\n\n## 3. Field Class \ud83d\udccb\n\n- **`Field`** representa um campo no formul\u00e1rio, como `nome_completo`, `cpf`, `data_nascimento`, etc. A classe utiliza a biblioteca `Faker` para gerar valores para esses campos dependendo do tipo (`TypeField`).\n\n - **Construtor**:\n - O campo \u00e9 inicializado com um nome, tipo e um valor gerado automaticamente pelo `Faker`, dependendo do tipo do campo (ex.: nome, endere\u00e7o, CPF, etc.). \u2699\ufe0f\n\n## 4. TypeField Enum \ud83d\udd22\n\n- **`TypeField`** \u00e9 um enumerador que define os diferentes tipos de campos que podem ser gerados no formul\u00e1rio, como `NAME_FULL`, `ADDRESS`, `DATE_OF_BIRTH`, `CPF`, etc. \ud83d\udccb\n\n## 5. Uso do Complementizer \ud83d\ude80\n\nNo c\u00f3digo principal:\n\n- **Inst\u00e2ncia de `Complementizer`**:\n - Cria uma inst\u00e2ncia de `Complementizer` que conecta a uma API. \ud83c\udf10\n\n- **La\u00e7o `for`**:\n - Para cada itera\u00e7\u00e3o, cria um novo formul\u00e1rio (`Form`) para a tabela `participante`. \ud83d\udcdd\n - Adiciona diversos campos ao formul\u00e1rio, como `nome_completo`, `cpf`, `data_nascimento`, etc. \ud83d\udccb\n - Usa a fun\u00e7\u00e3o `populate` para enviar os dados gerados para a API. \ud83d\udce4\n\n## Resumo \ud83d\udcd1\n\nEste c\u00f3digo \u00e9 projetado para automatizar o preenchimento e envio de formul\u00e1rios para uma API. Ele facilita a cria\u00e7\u00e3o de dados fict\u00edcios para testes, gerenciamento de depend\u00eancias entre campos, e autentica\u00e7\u00e3o da API, tornando-o \u00fatil para cen\u00e1rios onde \u00e9 necess\u00e1rio simular m\u00faltiplas submiss\u00f5es de formul\u00e1rios com dados variados. \u2705\n",
"bugtrack_url": null,
"license": null,
"summary": "Complementizer makes it easy to create and fill out automated forms for interactions with APIs.",
"version": "1.2.2",
"project_urls": {
"Homepage": "https://github.com/ismaelvguedes/Complementizer"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4e0f7179a856af6c6c16dcb3c80af029378322c4e20a35a84f86e6724ca7bd04",
"md5": "d42076db714c579db835e2a2e3c97a48",
"sha256": "ed73ebe69aa18f39a87aa74ece8cf0e7695d5cb200b69fb0cf81199c69648e66"
},
"downloads": -1,
"filename": "complementizer-1.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d42076db714c579db835e2a2e3c97a48",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6115,
"upload_time": "2024-08-21T23:30:07",
"upload_time_iso_8601": "2024-08-21T23:30:07.757344Z",
"url": "https://files.pythonhosted.org/packages/4e/0f/7179a856af6c6c16dcb3c80af029378322c4e20a35a84f86e6724ca7bd04/complementizer-1.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0424e4c7bca6863fb0efc9633c7cdec4c48e77e4f5bfb3f0c8015e5a2e3d7f73",
"md5": "45df5218114010bca0874844a32236c1",
"sha256": "23ab10fdd9fe6b54029cdd770a630e290814fb0a3f86da7e03e997c622fe87de"
},
"downloads": -1,
"filename": "complementizer-1.2.2.tar.gz",
"has_sig": false,
"md5_digest": "45df5218114010bca0874844a32236c1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 5324,
"upload_time": "2024-08-21T23:30:09",
"upload_time_iso_8601": "2024-08-21T23:30:09.089402Z",
"url": "https://files.pythonhosted.org/packages/04/24/e4c7bca6863fb0efc9633c7cdec4c48e77e4f5bfb3f0c8015e5a2e3d7f73/complementizer-1.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-21 23:30:09",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ismaelvguedes",
"github_project": "Complementizer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "complementizer"
}