lunes, 13 de noviembre de 2023

 



C贸digo Python a la Velocidad de la Luz:

Automatizaci贸n para Desarrolladores Exigentes

馃殌 Automatizando el desarrollo con Python: Autocompletado de c贸digo

¡Saludos, comunidad de desarrolladores!

Hoy quiero compartir con ustedes una herramienta que he desarrollado para facilitar el trabajo en la creaci贸n de clases y m茅todos en Python. Este conjunto de funciones Python te permite generar autom谩ticamente fragmentos de c贸digo relacionados con la conexi贸n a bases de datos, la creaci贸n de clases, la verificaci贸n de usuarios y contrase帽as, y la escritura en archivos.



pythonCopy code

[from pynput.keyboard import Key, Controller

import pyperclip as pc

import os

import io

from io import open

from datetime import datetime

from datetime import date

import datetime

 

 

#completa_conexion(n):TE AUTOCOMPLETA UNA CLASE CON LA CONEXXION A UNA BBDD PASANDO COMO ARGUMENTO NOMBRE DE LA CLASE

#completa_interfaz(n):AUTOCOMPLETA LOS M脡TODOS DE INTERFAZ DE LA VARIABLE PRIVADA QUE PASAS COMO ARGUMENTO

 

def autorelleno1(clave):

    return f'''

    @property

    def {clave}(self):

        return self._{clave}

    @{clave}.setter

    def {clave}(self,valor):

        self._{clave}=valor

    @{clave}.deleter

    def {clave}(self):

        del self._{clave}'''

 

 

 

def autorelleno2(clave):

    return f'''

    #SE REQUIERE IMPORTAR:

    #import mysql.connector

    #from mysql.connector import Error

    class {clave}():

 

        def __init__(self):

            try:

                self.conexion = mysql.connector.connect(

                    host=,

                    user=,

                    password=,

                    db=

                )

            except Error as ex:

                print("Error al intentar la conexi贸n: {0}".format(ex))'''

 

def autorelleno3(n,m):#verifica nobre de usuario

    return f'''

#Devuelve True si el nombre usuario es aceptado y verificado

def usuario():

        usser=input("Introduce un usuario : ")

        if len(usser)<{n} or len(usser)>{m}:

            print("El usuario debe tener entre {n} y {m} caracteres")

            usuario()

        elif usser.isalnum()==False:

            print("Los valores del usurio deben ser 煤nicamente letras o n煤meros")

            usuario()

        else:

            print(True)

        '''

def autorelleno4(n):

    return f'''

def contrase帽a():

  global passw

  passw=input("Introduce contrase帽a: ")

  if len(passw)<={n-1}:

    print("La contrase帽a debe tener al menos {n} caract茅res")

    contrase帽a()

  elif passw.isalnum()==True:

    print ("La contrase帽a debe tener al menos un car谩cter no alfanum茅rico")

    contrase帽a()

  elif passw.lower() == passw:

    print("Debe haber por lo menos una may煤scula")

    contrase帽a()

  elif passw.upper()==passw:

    print("Debe haber por lo menos una min煤scula")

    contrase帽a()

 

  for i in passw:

    if i==" ":

      print("La contrase帽a no debe tener espacios en blanco")

      contrase帽a()

  print(True)

   

   

    '''

def autorelleno5():

    return f'''

    #NO OLVIDES DARLE UNA EXTENSION AL NOMBRE DEL ARCHIVO DEL PRIMER ARGUMENTO

    #SUSTITUYE EN LA LLAMADA A LA FUNCION escribir(); EL ARCHIVO POR EL NOMBRE DEL ARCHIVO Y DOCUMENTACI脫N POR LO QUE QUIERAS DENTRO DEL ARCHIVO.

    def escribir(archivo,documentacion):

        fichero = open(archivo, 'a')

        fichero.write(documentacion)

        fichero.close()

    escribir(archivo,documentacion)

    '''

 

 

def completa_conexion(n):#TE AUTOCOMPLETA UNA CLASE CON LA CONEXXION A UNA BBDD PASANDO COMO ARGUMENTO NOMBRE DE LA CLASE

    prueba01=pc.copy(autorelleno2(n))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

   

 

def completa_interfaz(variables):

    autorelleno = ""

    for variable in variables:

        autorelleno += autorelleno1(variable) + "\n"

    pc.copy(autorelleno)

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def verifica_ususario(n,m):#AUTOCOMPLETA VERIFICACION DE USUARIO; SOLO PUEDEN SER N脷MEROS O LETRAS Y PASARLE POR ARGUMENTO EL M脥NIMO Y M脕XIMO DE CARACTERES QUE QUIERES QUE TENGA.

    prueba01=pc.copy(autorelleno3(n,m))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def verifica_password(n):#AUTOCOMPLETA FUNCION DE VERIFICACION DE PASSWORD PASANDO COMO ARGUMENTO CANTIDAD MAX DE CARACTERES

    prueba01=pc.copy(autorelleno4(n))

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')

 

def guarda_en_archivo():#CREA EL ARCHIVO CON EL NOMBRE DEL PRIMER ARGUMENTO Y GUARDA LA INFORMACION QUE GUARDAS EN EL SEGUNDO ARGUMENTO QUE DEBES INTRODUCIR LUEGO.

    prueba01=pc.copy(autorelleno5())

    keyboard = Controller()

    with keyboard.pressed(Key.ctrl):

        keyboard.press('v')

        keyboard.release('v')]



¿C贸mo funciona?

1.    Conexi贸n a Base de Datos: completa_conexion('NombreClase') autocompleta la conexi贸n a una base de datos, generando una clase con los par谩metros necesarios.

2.    M茅todos de Interfaz: completa_interfaz(['variable1', 'variable2']) facilita la creaci贸n de m茅todos de interfaz para una lista de variables.

3.    Verificaci贸n de Usuario: verifica_usuario(min_len, max_len) ayuda en la verificaci贸n de nombres de usuario, estableciendo reglas personalizadas.

4.    Verificaci贸n de Contrase帽a: verifica_password(max_len) simplifica la validaci贸n de contrase帽as con reglas espec铆ficas.

5.    Guardado en Archivo: guarda_en_archivo() crea un archivo y almacena informaci贸n relevante.

¿C贸mo puede ser 煤til?

Imagina tener un c贸digo con m煤ltiples clases y variables. En lugar de escribir manualmente los m茅todos de interfaz para cada variable, simplemente agr煤palas en una lista y utiliza el autocompletado proporcionado. ¡Es una forma eficiente y r谩pida de mejorar la productividad en el desarrollo!

Colaboraci贸n y Mejoras Continuas:

Este c贸digo es solo el comienzo. Planeo seguir mejor谩ndolo y desarrollando nuevas funciones. Puedes encontrar el proyecto completo en mi cuenta de GitHub, y estoy abierto a sugerencias y colaboraciones. Juntos podemos hacer que el desarrollo sea m谩s eficiente y divertido.

¡Espero que encuentren 煤til este conjunto de funciones! Estoy emocionado por el camino que se avecina en el mundo del desarrollo.

¡#Python #Desarrollo #Automatizaci贸nDeC贸digo! 馃殌

Javierfiestasbotella (Javi Fiestas) (github.com)

 

No hay comentarios:

Publicar un comentario

  馃泿 La revoluci贸n silenciosa de la hosteler铆a: c贸mo la automatizaci贸n est谩 cambiando el juego en locales como La Chancla En pleno paseo ...