diff --git a/my_toolbox/generar_archivo_env.py b/my_toolbox/generar_archivo_env.py index c123361..a6c58d1 100644 --- a/my_toolbox/generar_archivo_env.py +++ b/my_toolbox/generar_archivo_env.py @@ -1,16 +1,39 @@ -def crear_archivo_env(nombre_archivo='.env'): +""" +Archivo: generar_archivo_env.py +Fecha de creación: 17/11/2024 +Descripción: Este script crea un archivo .env con variables de entorno y agrega .env a .gitignore si no está presente. +""" +import os + +def agregar_a_gitignore(nombre_archivo='.gitignore', entrada='.env'): + if os.path.exists(nombre_archivo): + with open(nombre_archivo, 'r') as archivo: + lineas = archivo.readlines() + if entrada not in [linea.strip() for linea in lineas]: + with open(nombre_archivo, 'a') as archivo: + archivo.write(f'{entrada}\n') + else: + with open(nombre_archivo, 'w') as archivo: + archivo.write(f'{entrada}\n') + +def crear_archivo_env(nombre_archivo='.env'): variables = { - 'DB_PASSWORD': '', - 'DB_USER': 'postgres', - 'DB_HOST': 'localhost', - 'DB_PORT': '5432', - 'DB_NAME': 'data', - + 'DATALAKE_PASS': 'postgresql://postgres:password@localhost:5432/mydatabase', } + if os.path.exists(nombre_archivo): + with open(nombre_archivo, 'r') as archivo: + lineas_existentes = archivo.readlines() + lineas_existentes = [linea.strip().split('=')[0] for linea in lineas_existentes] + else: + lineas_existentes = [] - with open(nombre_archivo, 'w') as archivo: + with open(nombre_archivo, 'a') as archivo: for clave, valor in variables.items(): - archivo.write(f'{clave}={valor}\n') + if clave not in lineas_existentes: + archivo.write(f'{clave}={valor}\n') + + agregar_a_gitignore() + print(f'Archivo {nombre_archivo} creado correctamente.') \ No newline at end of file diff --git a/my_toolbox/manejo_postgresql.py b/my_toolbox/manejo_postgresql.py index d126bd8..95b7fc9 100644 --- a/my_toolbox/manejo_postgresql.py +++ b/my_toolbox/manejo_postgresql.py @@ -12,20 +12,17 @@ import pandas as pd import os -def connect_to_db(host, dbname, user, password, port=5432): +def connect_to_db(connection_string): """ - Establece una conexión a la base de datos PostgreSQL usando credenciales del archivo .env. + Establece una conexión a la base de datos PostgreSQL usando una cadena de conexión. + + Args: + connection_string (str): Cadena de conexión a la base de datos. Returns: conn (psycopg2.extensions.connection): Objeto de conexión a la base de datos. """ - conn = psycopg2.connect( - host=host, - dbname=dbname, - user=user, - password=password, - port=port - ) + conn = psycopg2.connect(connection_string) return conn