Importa el paquete personalizado de Python, con Args, en otro archivo py desde un directorio de ubicación de red.
Necesito construir una solución para un caso de uso y todavía soy un poco novato en las capacidades de Python para la versión 3.9.9.
Caso de uso:
- El usuario Billy quiere ejecutar un script contra un servidor Snowflake en la base de datos de Azure, llamada sandbox, utilizando su propio script de Python en su máquina local.
- El script de Python de Billy, para mantener segura la configuración de conexión, necesita llamar a un script snowflakeconn.py, el cual se encuentra en otra ubicación de carpeta de red (\abs\here\is\snowflakeconn.py), y pasar argumentos para la base de datos y el esquema.
- La llamada devolverá una conexión a Snowflake que Billy puede usar para ejecutar su script SQL.
Imagino algo como esto:
import pandas as pd
import snowflake_conn # Necesito saber cómo encontrar esto en una carpeta de red, no local.
y luego llamar a la función conn personalizada
snowflake_connect(‘database’,’schema’)
donde devuelve el cursor snowflake.connector.connect() como sfconn
conn1 = sfconn.conn()
qry = r’select * from tablename where 1=1′;
conn1.execute(qry)
df = conn1.fetch_pandas_all()
Vi algo así… pero eso fue en 2016 y probablemente antes de la versión 3.9.9.
import sys
sys.path.insert(0, “/network/modules/location”) # OR “\abs\here\is\??”
import snowflake_conn
Ese archivo snowflakeconn.py utiliza el comando configparser.ConfigParser().read() para abrir un archivo config.ini en la misma carpeta que el script snowflakeconn.py.
Estoy siguiendo las instrucciones en otra pregunta de stackoverflow, el enlace a continuación es de hace 4 años, para ayudar a completar la configuración de config.ini.
https://stackoverflow.com/questions/42906665/import-my-database-connection-with-python
También encontré este enlace, que parece apuntar a una estructura de carpeta local solamente, no a una carpeta de red.
https://blog.finxter.com/python-how-to-import-modules-from-another-folder/
Eventualmente quiero intentar cifrar el archivo .ini para proteger el contenido de ese archivo y aumentar la seguridad, pero todavía no estoy seguro de por dónde empezar en eso.
davy.ai
Solución para ejecutar un script de Python en un servidor Snowflake Database de Azure
Si eres nuevo en las capacidades de Python para la versión 3.9.9, hay varias formas de ejecutar un script en un servidor Snowflake Database de Azure. Aquí hay una solución que implica llamar a un script snowflake_conn.py ubicado en otra carpeta de red y pasar argumentos para la base de datos y el esquema.
Primero, asegúrate de tener instalado snowflake-connector-python. Puedes instalarlo usando pip:
A continuación, debes crear el script snowflake_conn.py con el siguiente código:
Ten en cuenta que snowflake_conn.py utiliza el comando configparser.ConfigParser().read() para abrir un archivo config.ini en la misma carpeta que el script snowflake_conn.py. Aquí es donde guardarás la configuración de conexión a la base de datos.
Aquí tienes un ejemplo del archivo config.ini:
Ahora puedes llamar a la función snowflake_connect() desde tu script principal:
Ten en cuenta que necesitas usar la instrucción from snowflake_conn import snowflake_connect para importar la función desde el script snowflake_conn.py. Si el script snowflake_conn.py está ubicado en otra carpeta de red, puedes agregar esa carpeta a sys.path usando la instrucción sys.path.insert() antes de importar el script.
Esto te permitirá importar el script snowflake_conn.py desde la ubicación de la carpeta de red.