Escribir módulos de importación con Python
Aquí hay un ejemplo de un módulo de importación Python que podría servir como esqueleto.
Debe ser compatible tanto con Python 2 como con Python 3.
#!/usr/bin/env python import os import json input = json.loads( raw_input() ) print( "Hello {0} from my module".format( input["quux"] ) ) output = { "foo": { "bar": input["quux"] } } print( json.dumps({ os.environ["CLARIVE_RETURN"]: output }) )
Warning
No olvide aplicar la bandera de ejecución +x a sus módulos de importación.
Las reglas de Clarive solo pueden invocar módulos que sean ejecutables.
Asegúrese de que la definición shebang #! apunte a un binario válido
en la imagen del contenedor docker que se utilizará con
su módulo.
Para probar el módulo de importación Python anterior desde la línea de comandos, pruebe el siguiente comando:
echo '{ "quux": 123 }' | CLARIVE_RETURN=1234 ./hello.py
Si todo salió bien, se debería mostrar la siguiente salida.
Hello from my module {"1234": {"myvar": {"bar": 123 }}}
Usar importaciones Python en su rulebook¶
Para usar un módulo Python primero debe registrarlo en un repositorio Git gestionado por Clarive.
Supongamos que hay un proyecto llamado MyProject configurado en su sistema, y
que el proyecto tiene un repositorio Git llamado MyRepo. Por lo tanto, la ruta a su
rulebook y módulo sería:
/MyProject/MyRepo/.clarive.yml /MyProject/MyRepo/.clarive/python/hello.py
Ahora en su rulebook importe el archivo Python con la directiva import:.
Puede probar esto usando el REPL.
image: python workspace: - MyProject/MyRepo import: - /MyProject/MyRepo/.clarive/python do: - echo: "and now for something completely different:" - hello: quux: "world"