Pequena biblioteca para facilitar formulários em CLI com Python
Project description
Simple Form
- Pequena biblioteca para facilitar formulários em CLI.
- Clique aqui 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:
# 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
:
# 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
:
myForm()
- Para acessar os dados do formulário, use a propriedade
values
:
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étodoadd
. 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 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
, eiteráveis
. - Se for
bool
, o elemento vai receber um valor booleano, e o usuário usará o teclado para definirTrue
ouFalse
, sendo esses representados pory
en
, 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
enumerais
. - É o valor padrão do elemento, que vai ser usado caso o usuário não digite nada.
4. min
- Exclusivo para type
str
enumerais
. - É o valor mínimo que o elemento pode receber. Caso o
min
exista num input destr
, ele vai ser usado para definir o tamanho mínimo da string. E caso seja um numeral(int
efloat
), ele vai ser usado para definir o valor mínimo que o elemento pode receber.
5. max
- Exclusivo para type
str
enumerais
. - É o valor máximo que o elemento pode receber. Caso o
max
exista num input destr
, ele vai ser usado para definir o tamanho máximo da string. E caso seja um numeral(int
efloat
), 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
edict
. - É 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
# 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)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
simple-form-1.4.tar.gz
(20.0 kB
view details)
File details
Details for the file simple-form-1.4.tar.gz
.
File metadata
- Download URL: simple-form-1.4.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58fb2463d3c0fcd9010f1a723989170bc0664c07083778cb09ab48cea2957a74 |
|
MD5 | 18da43801d0c22a87127c15da011df0d |
|
BLAKE2b-256 | ed9151d424e367f39086fa2bdc8cd2fc68376bf71318580a98b2a1c969814a60 |