ISI504 Apunte Semana5 2022

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 27

Unidad N°2

Frameworks de automatización
NOMBRE DE LA ESCUELA

Director : Marcelo Lucero Yáñez

ELABORACIÓN

Experto disciplinar: Felipe Montenegro

Diseñador instruccional: Antonio Colmenares Prieto

VALIDACIÓN

Experto disciplinar: Segundo Galdamez Henriquez

Jefa de Diseño Instruccional: Alejandra San Juan Reyes

EQUIPO DE DESARROLLO

DIDACTIC

AÑO

2022
Tabla de contenidos

Aprendizaje esperado .............................................................................................................................. 4

Introducción ................................................................................................................................................ 5

1. Programación en Python ..................................................................................................................... 6

1.1 Entrada y Salida de datos ................................................................................ 7

2. Pilares del paradigma de programación orientada a objetos ...............................................13

2.1 Funciones en Python ....................................................................................... 17

3. Biblioteca Fabric................................................................................................................................... 20

Cierre ........................................................................................................................................................... 26

Referencias bibliográficas ...................................................................................................................... 27


Aprendizaje esperado

Programan en Python, considerando programación orientada a objetos y


funciones de Fabric, de acuerdo con requerimientos asociados a resolución de
problemas de automatización.

Fuente: Freepik (s/f)


Introducción

La programación orientada a objetos (POO), propone representar las


características y comportamientos de productos, pedidos o artículos mediante
clases. Una clase en POO representa mediante atributos (características) la
información del objeto (por ejemplo, la fecha, proveedor y stock son atributos
típicos en las aplicaciones comerciales.) y las operaciones que debe realizar son
establecidas mediante métodos (comportamientos). Los métodos de la clase, no
sólo permiten procesar la información de los atributos, sino también, interaccionar
con otras clases para implementar las funciones que requiere el software. Conectar
con una base de datos, recopilar información de una lista de productos o artículos,
eliminar o actualizar productos o artículos, son operaciones comunes en los
softwares. Así, durante esta semana repasaremos las características de la POO en
el lenguaje Python, refiriéndonos a conceptos como variable, tipo de dato, ciclos,
condiciones y clases.

El objetivo de esta semana es que utilicen los conocimientos de programación en


Python, para desarrollar automatizaciones de software, en base a la biblioteca
Fabric.

5
1. Programación en Python

Python es un lenguaje de programación interpretado lo que significa que es


ejecutado por un intérprete, lo que lo hace más entendible y expresivo. Algunas
de las principales características de Python, se pueden resumir de la siguiente
manera:

Figura 1. Principales características de Python


Fuente: Fabfile.org

6
Una característica a destacar de Python es que su sintaxis es muy parecida al
lenguaje natural. Así, los programas que elaboramos en Python parecen
construidos en pseudocódigo. Por este motivo, es un lenguaje de programación
muy amigable como lo han revisado en sus módulos anteriores. Otra característica
fundamental es que se basa en la identación, ya que la organización del código es
delimitada por tabuladores o espacios, como se muestra en la figura.

Figura 2. Identificación en Python


Fuente: Fabfile.org

1.1 Entrada y Salida de datos

Existe una función que nos permite imprimir los datos con los que estamos
trabajando y manipular la salida a nuestra conveniencia. Esta se denomina print.
Esta función recibe como argumento cualquier dato con el que estemos trabajando
y lo imprime en la salida estándar. Su sintaxis es print (x), donde x es el argumento
de la función; puede ser un texto, un número o una variable. En otras palabras, es
una instrucción que nos permite mostrar correctamente el valor de una cadena (u
otros valores/variables) por pantalla.

7
Figura 3. Función Print
Fuente: Fabfile.org

La función print también funciona con operaciones. En este ejemplo, el operador


+ sirve para concatenar cadenas de caracteres:

Figura 4. Opciones Función Print


Fuente: Fabfile.org

La función Input, nos permitirá obtener texto que se ha escrito mediante el teclado,
en la práctica el programa espera que el usuario escriba una respuesta y presione
Enter, como se muestra en la figura.

8
Figura 5. Función imput
Fuente: Fabfile.org

Existe en Python todo un grupo de operadores que permiten asignar un valor a


una variable empleando el operador “=”. En la siguiente figura, revisaremos los
distintos tipos de operadores de asignación junto a un ejemplo de cada uno de
ellos.

9
Figura 6. Operadores de asignación en Python
Fuente: Fabfile.org

10
Un operador se puede entender como un símbolo que indica alguna operación a
realizar entre dos o más operando. En los lenguajes de programación se identifican
distintos tipos de operadores, como los operadores aritméticos, operadores
relacionales y operadores lógicos (bit a bit), como se muestran en la imagen.

Figura 7. Operadores aritméticos


Fuente: Fabfile.org

11
Figura 8. Operadores relacionales
Fuente: Fabfile.org

Figura 9. Operadores Lógicos


Fuente: Fabfile.org

12
2. Pilares del paradigma de programación orientada a objetos

La programación orientada a objetos (POO) es un paradigma de programación, tal


como lo es, por ejemplo, la programación estructurada. Pero a diferencia de ella,
la forma de concebir los elementos que conforman un programa en POO, es
radicalmente distinta a la estructurada. La POO, se caracteriza por la forma en que
se expresan los elementos (código) que conforman un programa, haciendo uso de
una representación, como si estos fueran “objetos” del mundo que nos rodea. Los
objetos son conceptualizados por los seres humanos mediante sus características
y sus comportamientos. Por ejemplo, un automóvil tiene una serie de
características: color, marca, modelo, año, etc. y una serie de comportamientos:
moverse, acelerar, frenar, doblar, etc. Puedes verlo de forma clara en el esquema
que te presentamos a continuación.

Figura 10. Representación de POO


Fuente: Felipe Montenegro, 2022

La programación orientada a objeto presenta una serie de ventajas en diversos


ámbitos:

13
Figura 11. Características de la POO.
Fuente: Fabfile.org

14
En la programación orientada a objeto debemos pensar nuestro código en clases,
objetos, propiedades y métodos. A continuación, revisaremos las características
más importantes relacionadas con la POO.

Abstracción, es el proceso que implica enfocarse en las características importantes


de un objeto o una situación, dejando de lado aquellas que no lo son. La
abstracción hace énfasis en el qué hace, más que en el, cómo lo hace.

Encapsulación, “consiste en denegar el acceso a los atributos y métodos internos


de la clase desde el exterior. En Python no existe, pero se puede simular
precediendo atributos y métodos con dos barras bajas __ como indicando que son
‘especiales’” como se muestra en la figura.

Figura 12. Ejemplo encapsulamiento


Fuente: Felipe Montenegro, 2022

Herencia, es la capacidad que tiene una clase de heredar los atributos y métodos
de otra, algo que nos permite reutilizar código y hacer programas óptimos.

Polimorfismo, es una propiedad de la herencia por la que objetos de distintas


subclases pueden responder a una misma acción. La polimorfia, es implícita en

15
Python, ya que todas las clases son subclases de una superclase común llamada
Object.

La base de la POO son los objetos. Los objetos son un tipo de dato cuya definición
viene dada en una estructura llamada clase.

Ejemplo:

Se presenta una clase llamada “Curso” en la cual se definen dos atributos y dos
métodos

Figura 13. Ejemplo clase


Fuente: Felipe Montenegro, 2022

• La clase se llama “Curso”.

• Los atributos de la clase son módulo y modalidad.

16
• Los métodos que se definieron son: imprime módulo() e imprime_modalidad().

• La clase es instanciada y se crea el objeto en la línea 10. En la línea 11 y 12 se


completan los atributos de la clase. Esto también se podría haber realizado por un
ingreso vía teclado. Finalmente, se llaman a los métodos que imprimen los valores
por pantalla.

2.1 Funciones en Python

En términos generales, una función es un trozo de código que puede ser utilizado
varias veces en el desarrollo de un programa.

Python: existen funciones propias del lenguaje, como son print(), int(), input(), etc.

Módulos: existen funciones que son propias de las bibliotecas de Python. Por
ejemplo, la función sort, que es de la biblioteca NumPy, o la función delete() de la
misma biblioteca.

Código: estas funciones son creadas por los programadores.

Cada vez que tenemos código repetido, podemos tomar este código y
transformarlo en una función. ¿Cuál es la utilidad? El trozo de código que esté
contemplado en la función puede ser reutilizado y, a la vez, el código queda
ordenado. Cuando se habla de funciones, debemos tener presentes dos conceptos
principales:

17
1. Parámetros.

2. Retorno o devolución de la función.

Los parámetros son las variables que recibe la función y con los cuales trabajará.
Por otra parte, el retorno o devolución es el resultado del proceso que realizó la
función.

Figura 14. Parametros


Fuente: Felipe Montenegro, 2022

Por ejemplo, solicitar al usuario que ingrese un número y verificar si el número


ingresado es par o impar.

18
Figura 15. Ejemplo función
Fuente: Felipe Montenegro, 2022

La función par recibe como parámetro la variable “n”. Dentro de la función, evalúa
con una sentencia if si el número entregado a la función, al dividirlo por 2, el
módulo (%) es cero. Si es así, la variable mensaje entregará “Es Par”; de lo contrario,
entregará “No es Par”. Con la palabra reservada Return retornamos el mensaje. En
el código principal solicitamos al usuario que ingrese un número y el valor lo
almacenamos en la variable número_1. Luego, en la línea 14, llamamos a esta
función “Par” y le entregamos la variable número_1.

19
3. Biblioteca Fabric

Fabric es una biblioteca de Python, que permite a través del uso de SSH, la
ejecución y automatización de tareas de administración dentro de los sistemas.
Permitiendo a los administradores un ahorro de tiempo considerable.

Para instalar Fabric se sugiere utilizar la herramienta PIP:

https://pypi.org/project/pip/

Así ejecutar el siguiente comando:

Figura 16. Comandos


Fuente: Felipe Montenegro, 2022

Para poder ejecutar Fabric, debemos desarrollar un script en Python con la


extensión .py, en la que se definan las funciones que eventualmente queramos
ejecutar. Por ejemplo si utilizamos el ejemplo de la documentación de Fabric :

Figura 17. Comandos


Fuente: Felipe Montenegro, 2022

20
Se guardó como fabfile.py y para ejecutar la función welcome, se debería ejecutar
la siguiente instrucción:

Figura 18. Comandos


Fuente: Felipe Montenegro, 2022

El comando fab es capaz de leer el archivo.py siempre y cuando este esté en el


directorio desde donde se ejecuta el comando.

La gran ventaja de la biblioteca Fabric es que implementa una serie de funciones,


que permite la comunicación con host remotos, pueden revisar la documentación
oficial en https://docs.fabfile.org/en/stable/

Algunos ejemplos son:

Que si la queremos incorporar dentro de nuestro script deberíamos incorporar.

from fabric.operations import run, lo que nos permitiría ejecutar los siguientes
comandos:

Figura 19. Comandos


Fuente: Felipe Montenegro, 2022

21
Ya que esta función nos permite ejecutar comandos de la Shell en un host.

Permite descargar archivos desde un host remoto, como se muestra, en el ejemplo.

Figura 20. Comandos


Fuente: Felipe Montenegro, 2022

Nos permite subir archivos a un host remoto.

Figura 21. Comandos


Fuente: Felipe Montenegro, 2022

22
Para reiniciar el sistema.

Figura 22. Comandos


Fuente: Felipe Montenegro, 2022

Todas las operaciones mencionadas, necesitan la conexión a lso servidores


remotos, es por eso que Fabric se integra con SSH para lograr la conexión y así
poder ejecutar estas operaciones remotas.

Un ejemplo de cómo desarrollar esta integración sería el siguiente:

23
Figura 23. Comandos
Fuente: Felipe Montenegro, 2022

Si se fijan importamos la función run, que nos permitirá ejecutar comandos shell
para obtener información del host. Pero antes se debe setear la información del
host a través de su user y su número de IP. Se ejecuta con:

24
Figura 24. Comandos
Fuente: Felipe Montenegro, 2022

Y el resultado dependiendo de la maquina en la que se ejecute sería:

Figura 25. Resultados


Fuente: Felipe Montenegro, 2022

Es importante destacar que en este caso les solicitará la pass del usuario root.

25
Desde el punto de vista de la automatización de tareas, podemos decir que Fabric,
es una herramienta que nos permitiría ejecutar tareas de manera remota a través
de un script. Se deja el siguiente ejemplo para que puedan desarrollarlo:

http://nightdeveloper.net/fabric-python-command/

Cierre

Se presenta a continuación de forma gráfica, como es el proceso desde la


automatización de tareas hasta llegar a los host, lo que resume lo estudiado en la
semana.

Figura 25. Ideas claves semana 5


Fuente: Felipe Montenegro, 2022

26
Referencias bibliográficas

Bienvenido a la documentación Fabric (s.f.). Documentación Tela. Fabfile, org.

https://docs.fabfile.org/en/stable/

Freepik (s.f). Hands robot human [Imagen]. https://www.freepik.com/premium-

photo/hands-robot-human-touching-global-virtual-network-
connection-future-
interface_5284740.htm#query=automation&from_query=automatizaci
%C3%B3n&position=5&from_view=search

Freepik (s.f). Smart industry robot [Imagen]. https://www.freepik.com/premium-

photo/smart-industry-robot-arms-digital-factory-production-
technology_10517888.htm#&position=0&from_view=detail#&position=
0&from_view=detail

27

También podría gustarte