Underc0de

Programación Scripting => Python => Mensaje iniciado por: DtxdF en Diciembre 02, 2019, 04:23:38 AM

Título: argprogrammer: Parsear argumentos con esta pequeña librería
Publicado por: DtxdF en Diciembre 02, 2019, 04:23:38 AM
argprogrammer

Argprogrammer es una pequeña libreria para el control de los argumentos proporcionados por el usuario.

Instalación

Argprogrammer es fácil de instalar y no requiere de librerias externas

Código (bash) [Seleccionar]
git clone https://github.com/DtxdF/argprogrammer.git
cd argprogrammer
python3 # o python


Compatibilidad con Python2.x y Python3 :'D

A argprogrammer no le importa sí estás usando la versión 2 o 3, puedes usar todas sus funciones sin problemas

Tutorial

Te muestro un pequeño tutorial para crear nuestra primera aplicación de forma fácil y sencilla

Código (python) [Seleccionar]
import argprogrammer

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)

parser.add(['-t', '--text'], 'text', 'El texto a mostrar', require=True)

args = parser.parse_args()

text = args.text

print('Texto: %s' % (text))


Sí ejecutamos en la terminal: "python o python3 <script>.py -h o --help", veremos ésto:

Código (text) [Seleccionar]
  Parámetros principales:
  -----------------------

    -t, --text          El texto a mostrar

  opcionales:
  ----------

    -h, --help          Mostrar ayuda y sale


¿Eso es todo?

NO, además podemos especificar el tipo de dato y si lo requerimos o no.

Código (python) [Seleccionar]
import argprogrammer
import requests

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

# Opcionales

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)
parser.add(['-v', '--verbose'], 'verbose', 'Activar modo verboso', action=True, type=bool, group=group_optionals)
parser.add(['-H', '--headers'], 'headers', 'Cambiar los encabezados predeterminados', type=dict, group=group_optionals)

# Requeridos

parser.add(['-u', '--url'], 'url', 'Dirección URL', require=True)

args = parser.parse_args()

url = args.url
verbose = args.verbose
headers = args.headers

if (verbose):

print('Haciendo una petición a: {}'.format(url))

print('Datos obtenidos: {}'.format(requests.get(url, headers=headers, verify=False).text))


En la terminal podrias ejecutar la siguiente sentencia para ver algunos de tus datos cómo el "Agente de Usuaro":

Código (bash) [Seleccionar]
python3 <script>.py -u https://www.whatsmyua.info/api/v1/ua -v -H "User-Agent=Hello Friend :D"

Te lo muestra en formato: JSON

Podemos hasta incluso hacer que el usuario ingrese sólo algunos datos en un parámetro:

Código (python) [Seleccionar]
import argprogrammer

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

# Opcionales

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)

# Requeridos

parser.add(['-fruta'], 'fruta', 'Que te gusta comer entre: manzana, durazno, patila', uniqval=['manzana', 'durazno', 'patilla'], require=True)

args = parser.parse_args()

fruta = args.fruta

print('Te gusta comer: {}'.format(fruta))


Código (bash) [Seleccionar]
python3 <script>.py -fruta patilla
Te gusta comer: patilla


En caso de que el usuario no ingrese un valor correcto se muestra lo siguiente:

Código (bash) [Seleccionar]
python3 <script>.py -fruta banana
<script>: El valor "banana" no está permitido debido que no es igual a este/estos valor/es "manzana, durazno, patilla"


Se puede personalizar ese mensaje, tranquila/o

Tipos de datos

Argprogrammer acepta algunos tipos de datos, cómo:


Tal vez pienses, "¿Algunas cosas que mostraste no son funciones?", Sí, en Python, en argprogrammer No.

Objetivo

Es sólo una pequeña libreria que codifique para un proyecto personal y que comparto con la comunidad, no creo que se compare con "argparse" pero puede que sirva.

~ DtxdF
Título: Re:argprogrammer: Parsear argumentos con esta pequeña librería
Publicado por: Kasey00 en Diciembre 29, 2019, 04:56:43 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
argprogrammer

Argprogrammer es una pequeña libreria para el control de los argumentos proporcionados por el usuario.

Instalación

Argprogrammer es fácil de instalar y no requiere de librerias externas

Código (bash) [Seleccionar]
git clone https://github.com/DtxdF/argprogrammer.git
cd argprogrammer
python3 # o python


Compatibilidad con Python2.x y Python3 :'D

A argprogrammer no le importa sí estás usando la versión 2 o 3, puedes usar todas sus funciones sin problemas

Tutorial

Te muestro un pequeño tutorial para crear nuestra primera aplicación de forma fácil y sencilla

Código (python) [Seleccionar]
import argprogrammer

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)

parser.add(['-t', '--text'], 'text', 'El texto a mostrar', require=True)

args = parser.parse_args()

text = args.text

print('Texto: %s' % (text))


Sí ejecutamos en la terminal: "python o python3 <script>.py -h o --help", veremos ésto:

Código (text) [Seleccionar]
  Parámetros principales:
  -----------------------

    -t, --text          El texto a mostrar

  opcionales:
  ----------

    -h, --help          Mostrar ayuda y sale


¿Eso es todo?

NO, además podemos especificar el tipo de dato y si lo requerimos o no.

Código (python) [Seleccionar]
import argprogrammer
import requests

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

# Opcionales

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)
parser.add(['-v', '--verbose'], 'verbose', 'Activar modo verboso', action=True, type=bool, group=group_optionals)
parser.add(['-H', '--headers'], 'headers', 'Cambiar los encabezados predeterminados', type=dict, group=group_optionals)

# Requeridos

parser.add(['-u', '--url'], 'url', 'Dirección URL', require=True)

args = parser.parse_args()

url = args.url
verbose = args.verbose
headers = args.headers

if (verbose):

print('Haciendo una petición a: {}'.format(url))

print('Datos obtenidos: {}'.format(requests.get(url, headers=headers, verify=False).text))


En la terminal podrias ejecutar la siguiente sentencia para ver algunos de tus datos cómo el "Agente de Usuaro":

Código (bash) [Seleccionar]
python3 <script>.py -u https://www.whatsmyua.info/api/v1/ua -v -H "User-Agent=Hello Friend :D"

Te lo muestra en formato: JSON

Podemos hasta incluso hacer que el usuario ingrese sólo algunos datos en un parámetro:

Código (python) [Seleccionar]
import argprogrammer

group_optionals = 'opcionales'

parser = argprogrammer.Parser()

# Opcionales

parser.add(['-h', '--help'], 'help', 'Mostrar ayuda y sale', group=group_optionals)

# Requeridos

parser.add(['-fruta'], 'fruta', 'Que te gusta comer entre: manzana, durazno, patila', uniqval=['manzana', 'durazno', 'patilla'], require=True)

args = parser.parse_args()

fruta = args.fruta

print('Te gusta comer: {}'.format(fruta))


Código (bash) [Seleccionar]
python3 <script>.py -fruta patilla
Te gusta comer: patilla


En caso de que el usuario no ingrese un valor correcto se muestra lo siguiente:

Código (bash) [Seleccionar]
python3 <script>.py -fruta banana
<script>: El valor "banana" no está permitido debido que no es igual a este/estos valor/es "manzana, durazno, patilla"


Se puede personalizar ese mensaje, tranquila/o

Tipos de datos

Argprogrammer acepta algunos tipos de datos, cómo:


  • tuple
  • list
  • str
  • int
  • range
  • dict
  • hex
  • float
  • hex
  • oct

Tal vez pienses, "¿Algunas cosas que mostraste no son funciones?", Sí, en Python, en argprogrammer No.

Objetivo

Es sólo una pequeña libreria que codifique para un proyecto personal y que comparto con la comunidad, no creo que se compare con "argparse" pero puede que sirva.

~ DtxdF

Gracias por este programa, estaba encontrando algo como esto.
Título: Re:argprogrammer: Parsear argumentos con esta pequeña librería
Publicado por: DtxdF en Diciembre 29, 2019, 06:30:44 PM
@Kasey00 (https://underc0de.org/foro/index.php?action=profile;u=97718)

Un placer como siempre  :D