Skip to main content

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é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 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

# 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)

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)

Uploaded Source

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

Hashes for simple-form-1.4.tar.gz
Algorithm Hash digest
SHA256 58fb2463d3c0fcd9010f1a723989170bc0664c07083778cb09ab48cea2957a74
MD5 18da43801d0c22a87127c15da011df0d
BLAKE2b-256 ed9151d424e367f39086fa2bdc8cd2fc68376bf71318580a98b2a1c969814a60

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.4 This release

1 file

1.3

1 file

1.2

1 file

1.1

1 file

1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page