simple-form


Namesimple-form JSON
Version 1.4 PyPI version JSON
download
home_pagehttps://github.com/Hoyasumii/SimpleForm
SummaryPequena biblioteca para facilitar formulários em CLI com Python
upload_time2024-04-01 05:30:42
maintainerNone
docs_urlNone
authorAlan Reis Anjos
requires_pythonNone
licenseGPL-3.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## [Simple Form](https://pypi.org/project/simple-form/)
- Pequena biblioteca para facilitar formulários em CLI.
- Clique [**aqui**](https://github.com/Hoyasumii/SimpleForm) para acessar o repositório.
---
## Instalação
- Você pode baixar pelo pip:
```
pip install simple-form
```
---
## Como usar?
- Em seu projeto, importe a biblioteca e crie um objeto: 
```python
# Importando a biblioteca
from simpleForm import Form

# Criando um objeto
myForm = Form("Título do meu formulário")
```
- Para adicionar elementos ao formulário, use o método `add`:
```python
# Adicionando um campo de texto
myForm.add(name={
    "type": str,
    "description": "Digite seu nome"
})
```
- Para executar o formulário, chame a instância do `objeto`:
```python
myForm()
```
- Para acessar os dados do formulário, use a propriedade `values`:
```python
print(myForm.values)
```
---
## O que existe no pacote?
- Classe `Form`
> Classe principal, responsável por criar o formulário e executá-lo.
- Pacote `scripts`
> Pacote com scripts que são utilizados para simplificar a criação da classe principal, entretanto que podem ser úteis em alguns casos, mesmo que específicos.
---
## Conhecendo a classe `Form`
- A classe `Form` funciona de uma maneira que seu construtor recebe as informações gerais do futuro formulário, e que a criação dos campos se dá através do método `add`. Para executar o formulário, basta chamar a instância do objeto como função(`__call__`).
---
## Métodos e propriedades disponíveis para uso
#### 1. `__init__`(`title`: `str`, `separator`: `str`, `separatorSize`: `int`)
- Instancia a classe `Form`.
#### 2. `add`(`**kwargs`)
- Adiciona uma quantidade indeterminada de campos ao formulário.
- Clique [**aqui**](#o-que-cada-elemento-a-ser-adicionado-pode-e-precisa-ter) para entender o que cada elemento a ser adicionado pode e precisa ter.
#### 3. `__call__`()
- Executa o formulário.
#### 4. `values` -> `dict`
- Retorna um dicionário com os valores dos campos do formulário.
---
## O que cada elemento a ser adicionado pode e precisa ter?
- Cada elemento a ser adicionado precisa ser um dicionário, e precisa ter os seguintes atributos:
- Caso um determinado elemento possua uma exclamação(`!`) ao lado de seu nome, significa que ele é obrigatório.
#### 1. `type`!
- É o tipo de dado que o elemento vai receber. Pode ser `str`, `int`, `float`, `bool`, e `iteráveis`.
- Se for `bool`, o elemento vai receber um valor booleano, e o usuário usará o teclado para definir `True` ou `False`, sendo esses representados por `y` e `n`, respectivamente.
- Se for `iteráveis`, o elemento vai receber uma lista de valores, e o usuário vai poder escolher um deles.
#### 2. `description`!
- É a descrição do elemento, que vai ser mostrada ao usuário.
#### 3. `default`
- Exclusivo para type `str` e `numerais`.
- É o valor padrão do elemento, que vai ser usado caso o usuário não digite nada.
#### 4. `min`
- Exclusivo para type `str` e `numerais`.
- É o valor mínimo que o elemento pode receber. Caso o `min` exista num input de `str`, ele vai ser usado para definir o tamanho mínimo da string. E caso seja um numeral(`int` e `float`), ele vai ser usado para definir o valor mínimo que o elemento pode receber.
#### 5. `max`
- Exclusivo para type `str` e `numerais`.
- É o valor máximo que o elemento pode receber. Caso o `max` exista num input de `str`, ele vai ser usado para definir o tamanho máximo da string. E caso seja um numeral(`int` e `float`), ele vai ser usado para definir o valor máximo que o elemento pode receber.
#### 6. `validate`
- Exclusivo para type `str`.
- É uma expressão regular que vai ser usada para validar o valor do elemento. Caso o valor não seja válido, o usuário vai ter que digitar novamente.
#### 7. `options`
- Exclusivo para type `iteráveis`, ou seja, tipos que possuem o método `__iter__` embutido ao tipo, como por exemplo, `list`, `tuple`, `set` e `dict`.
- É uma lista de valores que o usuário vai poder escolher.
- Na hora de mostrar as opções para o usuário, o programa vai mostrar o índice de cada valor, e o usuário vai ter que digitar o índice do valor que ele quer.
---
## Exemplo
```python
# Importando a biblioteca
from simpleForm import Form

# Criando o formulário
x = Form("Olá, formulário!", spacing=4)

# Adicionando os campos
x.add(
    # Campo Nome
    name={
        "type": str,
        "description": "Nome",
        "default": "John Doe",
        "min": 3,
        "max": 10
    }, 
    # Campo Feliz
    happy={
        "type": bool,
        "description": "Feliz"
    }, 
    # Campo Idade
    age={
        "type": int,
        "description": "Idade",
        "min": 1,
        "max": 100,
        "default": 18
    }, 
    # Campo Ação (Iteráveis exceto dicionários)
    action={
        "type": list,
        "description": "Escolha a ação",
        "options": [
            "Pular",
            "Correr",
            "Andar"
        ],
    },
    # Campo Email
    email={
        "type": str,
        "description": "Email",
        "default": "account@email.com",
        "validate": r"^[a-zA-Z0-9\._]{4,}@\w.{2,}\w{2,}$"
    }, 
    # Campo Opção (Dicionário)
    option={
        "type": dict,
        "description": "Opção",
        "options": {
            "Pular": "E pulou",
            "Correr": "E correu",
            "Andar": "E andou"
        }
    }
)

# Chamando o formulário
x()

# Imprimindo os valores
print(x.values)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Hoyasumii/SimpleForm",
    "name": "simple-form",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Alan Reis Anjos",
    "author_email": "alanreisanjo@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ed/91/51d424e367f39086fa2bdc8cd2fc68376bf71318580a98b2a1c969814a60/simple-form-1.4.tar.gz",
    "platform": null,
    "description": "## [Simple Form](https://pypi.org/project/simple-form/)\n- Pequena biblioteca para facilitar formul\u00e1rios em CLI.\n- Clique [**aqui**](https://github.com/Hoyasumii/SimpleForm) para acessar o reposit\u00f3rio.\n---\n## Instala\u00e7\u00e3o\n- Voc\u00ea pode baixar pelo pip:\n```\npip install simple-form\n```\n---\n## Como usar?\n- Em seu projeto, importe a biblioteca e crie um objeto: \n```python\n# Importando a biblioteca\nfrom simpleForm import Form\n\n# Criando um objeto\nmyForm = Form(\"T\u00edtulo do meu formul\u00e1rio\")\n```\n- Para adicionar elementos ao formul\u00e1rio, use o m\u00e9todo `add`:\n```python\n# Adicionando um campo de texto\nmyForm.add(name={\n    \"type\": str,\n    \"description\": \"Digite seu nome\"\n})\n```\n- Para executar o formul\u00e1rio, chame a inst\u00e2ncia do `objeto`:\n```python\nmyForm()\n```\n- Para acessar os dados do formul\u00e1rio, use a propriedade `values`:\n```python\nprint(myForm.values)\n```\n---\n## O que existe no pacote?\n- Classe `Form`\n> Classe principal, respons\u00e1vel por criar o formul\u00e1rio e execut\u00e1-lo.\n- Pacote `scripts`\n> Pacote com scripts que s\u00e3o utilizados para simplificar a cria\u00e7\u00e3o da classe principal, entretanto que podem ser \u00fateis em alguns casos, mesmo que espec\u00edficos.\n---\n## Conhecendo a classe `Form`\n- A classe `Form` funciona de uma maneira que seu construtor recebe as informa\u00e7\u00f5es gerais do futuro formul\u00e1rio, e que a cria\u00e7\u00e3o dos campos se d\u00e1 atrav\u00e9s do m\u00e9todo `add`. Para executar o formul\u00e1rio, basta chamar a inst\u00e2ncia do objeto como fun\u00e7\u00e3o(`__call__`).\n---\n## M\u00e9todos e propriedades dispon\u00edveis para uso\n#### 1. `__init__`(`title`: `str`, `separator`: `str`, `separatorSize`: `int`)\n- Instancia a classe `Form`.\n#### 2. `add`(`**kwargs`)\n- Adiciona uma quantidade indeterminada de campos ao formul\u00e1rio.\n- Clique [**aqui**](#o-que-cada-elemento-a-ser-adicionado-pode-e-precisa-ter) para entender o que cada elemento a ser adicionado pode e precisa ter.\n#### 3. `__call__`()\n- Executa o formul\u00e1rio.\n#### 4. `values` -> `dict`\n- Retorna um dicion\u00e1rio com os valores dos campos do formul\u00e1rio.\n---\n## O que cada elemento a ser adicionado pode e precisa ter?\n- Cada elemento a ser adicionado precisa ser um dicion\u00e1rio, e precisa ter os seguintes atributos:\n- Caso um determinado elemento possua uma exclama\u00e7\u00e3o(`!`) ao lado de seu nome, significa que ele \u00e9 obrigat\u00f3rio.\n#### 1. `type`!\n- \u00c9 o tipo de dado que o elemento vai receber. Pode ser `str`, `int`, `float`, `bool`, e `iter\u00e1veis`.\n- Se for `bool`, o elemento vai receber um valor booleano, e o usu\u00e1rio usar\u00e1 o teclado para definir `True` ou `False`, sendo esses representados por `y` e `n`, respectivamente.\n- Se for `iter\u00e1veis`, o elemento vai receber uma lista de valores, e o usu\u00e1rio vai poder escolher um deles.\n#### 2. `description`!\n- \u00c9 a descri\u00e7\u00e3o do elemento, que vai ser mostrada ao usu\u00e1rio.\n#### 3. `default`\n- Exclusivo para type `str` e `numerais`.\n- \u00c9 o valor padr\u00e3o do elemento, que vai ser usado caso o usu\u00e1rio n\u00e3o digite nada.\n#### 4. `min`\n- Exclusivo para type `str` e `numerais`.\n- \u00c9 o valor m\u00ednimo que o elemento pode receber. Caso o `min` exista num input de `str`, ele vai ser usado para definir o tamanho m\u00ednimo da string. E caso seja um numeral(`int` e `float`), ele vai ser usado para definir o valor m\u00ednimo que o elemento pode receber.\n#### 5. `max`\n- Exclusivo para type `str` e `numerais`.\n- \u00c9 o valor m\u00e1ximo que o elemento pode receber. Caso o `max` exista num input de `str`, ele vai ser usado para definir o tamanho m\u00e1ximo da string. E caso seja um numeral(`int` e `float`), ele vai ser usado para definir o valor m\u00e1ximo que o elemento pode receber.\n#### 6. `validate`\n- Exclusivo para type `str`.\n- \u00c9 uma express\u00e3o regular que vai ser usada para validar o valor do elemento. Caso o valor n\u00e3o seja v\u00e1lido, o usu\u00e1rio vai ter que digitar novamente.\n#### 7. `options`\n- Exclusivo para type `iter\u00e1veis`, ou seja, tipos que possuem o m\u00e9todo `__iter__` embutido ao tipo, como por exemplo, `list`, `tuple`, `set` e `dict`.\n- \u00c9 uma lista de valores que o usu\u00e1rio vai poder escolher.\n- Na hora de mostrar as op\u00e7\u00f5es para o usu\u00e1rio, o programa vai mostrar o \u00edndice de cada valor, e o usu\u00e1rio vai ter que digitar o \u00edndice do valor que ele quer.\n---\n## Exemplo\n```python\n# Importando a biblioteca\nfrom simpleForm import Form\n\n# Criando o formul\u00e1rio\nx = Form(\"Ol\u00e1, formul\u00e1rio!\", spacing=4)\n\n# Adicionando os campos\nx.add(\n    # Campo Nome\n    name={\n        \"type\": str,\n        \"description\": \"Nome\",\n        \"default\": \"John Doe\",\n        \"min\": 3,\n        \"max\": 10\n    }, \n    # Campo Feliz\n    happy={\n        \"type\": bool,\n        \"description\": \"Feliz\"\n    }, \n    # Campo Idade\n    age={\n        \"type\": int,\n        \"description\": \"Idade\",\n        \"min\": 1,\n        \"max\": 100,\n        \"default\": 18\n    }, \n    # Campo A\u00e7\u00e3o (Iter\u00e1veis exceto dicion\u00e1rios)\n    action={\n        \"type\": list,\n        \"description\": \"Escolha a a\u00e7\u00e3o\",\n        \"options\": [\n            \"Pular\",\n            \"Correr\",\n            \"Andar\"\n        ],\n    },\n    # Campo Email\n    email={\n        \"type\": str,\n        \"description\": \"Email\",\n        \"default\": \"account@email.com\",\n        \"validate\": r\"^[a-zA-Z0-9\\._]{4,}@\\w.{2,}\\w{2,}$\"\n    }, \n    # Campo Op\u00e7\u00e3o (Dicion\u00e1rio)\n    option={\n        \"type\": dict,\n        \"description\": \"Op\u00e7\u00e3o\",\n        \"options\": {\n            \"Pular\": \"E pulou\",\n            \"Correr\": \"E correu\",\n            \"Andar\": \"E andou\"\n        }\n    }\n)\n\n# Chamando o formul\u00e1rio\nx()\n\n# Imprimindo os valores\nprint(x.values)\n```\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Pequena biblioteca para facilitar formul\u00e1rios em CLI com Python",
    "version": "1.4",
    "project_urls": {
        "Homepage": "https://github.com/Hoyasumii/SimpleForm"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ed9151d424e367f39086fa2bdc8cd2fc68376bf71318580a98b2a1c969814a60",
                "md5": "18da43801d0c22a87127c15da011df0d",
                "sha256": "58fb2463d3c0fcd9010f1a723989170bc0664c07083778cb09ab48cea2957a74"
            },
            "downloads": -1,
            "filename": "simple-form-1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "18da43801d0c22a87127c15da011df0d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 20025,
            "upload_time": "2024-04-01T05:30:42",
            "upload_time_iso_8601": "2024-04-01T05:30:42.970101Z",
            "url": "https://files.pythonhosted.org/packages/ed/91/51d424e367f39086fa2bdc8cd2fc68376bf71318580a98b2a1c969814a60/simple-form-1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-01 05:30:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Hoyasumii",
    "github_project": "SimpleForm",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "simple-form"
}
        
Elapsed time: 0.69591s