Package: simple-form
Simple FormPequena biblioteca para facilitar formulários em CLI.Cliqueaquipara acessar o repositório.InstalaçãoVocê pode baixar pelo pip:pip install simple-formComo usar?Em seu projeto, importe a biblioteca e crie um objeto:# Importando a bibliotecafromsimpleFormimportForm# Criando um objetomyForm=Form("Título do meu formulário")Para adicionar elementos ao formulário, use o métodoadd:# Adicionando um campo de textomyForm.add(name={"type":str,"description":"Digite seu nome"})Para executar o formulário, chame a instância doobjeto:myForm()Para acessar os dados do formulário, use a propriedadevalues:print(myForm.values)O que existe no pacote?ClasseFormClasse principal, responsável por criar o formulário e executá-lo.PacotescriptsPacote 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 classeFormA classeFormfunciona 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 uso1.__init__(title:str,separator:str,separatorSize:int)Instancia a classeForm.2.add(**kwargs)Adiciona uma quantidade indeterminada de campos ao formulário.Cliqueaquipara entender o que cada elemento a ser adicionado pode e precisa ter.3.__call__()Executa o formulário.4.values->dictRetorna 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 serstr,int,float,bool, eiteráveis.Se forbool, o elemento vai receber um valor booleano, e o usuário usará o teclado para definirTrueouFalse, sendo esses representados poryen, respectivamente.Se foriterá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.defaultExclusivo para typestrenumerais.É o valor padrão do elemento, que vai ser usado caso o usuário não digite nada.4.minExclusivo para typestrenumerais.É o valor mínimo que o elemento pode receber. Caso ominexista num input destr, ele vai ser usado para definir o tamanho mínimo da string. E caso seja um numeral(intefloat), ele vai ser usado para definir o valor mínimo que o elemento pode receber.5.maxExclusivo para typestrenumerais.É o valor máximo que o elemento pode receber. Caso omaxexista num input destr, ele vai ser usado para definir o tamanho máximo da string. E caso seja um numeral(intefloat), ele vai ser usado para definir o valor máximo que o elemento pode receber.6.validateExclusivo para typestr.É 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.optionsExclusivo para typeiteráveis, ou seja, tipos que possuem o método__iter__embutido ao tipo, como por exemplo,list,tuple,setedict.É 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 bibliotecafromsimpleFormimportForm# Criando o formuláriox=Form("Olá, formulário!",spacing=4)# Adicionando os camposx.add(# Campo Nomename={"type":str,"description":"Nome","default":"John Doe","min":3,"max":10},# Campo Felizhappy={"type":bool,"description":"Feliz"},# Campo Idadeage={"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 Emailemail={"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áriox()# Imprimindo os valoresprint(x.values)