Acerca del código Python

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
frferrer
Mensajes: 8
Inscripciones: 20 Oct 2017 - 19:05 horas.

4 de septiembre de 2019 - 21:30

Buenas noches,

Al revisar algunos ejemplos de código, me pregunto acerca de una instrucción que aparece en la documentación y en algunos paquetes.

Concretamente en el siguiente documento https://www.wapt.fr/fr/doc/wapt-create- ... g-software

Aquí está el código en cuestión:

Código: Seleccionar todo

for soft in installed_softwares('winscp3'):
    if Version(soft['version']) < Version('5.0.2'):
        run(WAPT.uninstall_cmd(soft['key']))
La instrucción comando_de_desinstalación es una función del módulo ayudantes de configuración.
Este módulo se carga en todos los archivos configuración.py en la parte superior del archivo con la instrucción

Código: Seleccionar todo

from setuphelpers import *
Así que realmente no entiendo el sentido de usar WAPT.cable de desinstalación en comparación con un simple comando_de_desinstalación.
Esto da como resultado el siguiente código:

Código: Seleccionar todo

for soft in installed_softwares('winscp3'):
    if Version(soft['version']) < Version('5.0.2'):
        run(uninstall_cmd(soft['key']))
Según tengo entendido, WAPT es un objeto que contiene métodos del módulo setuphelpers.

De ahí las siguientes preguntas:
  • ¿Dónde se instancia este objeto WAPT? ¿Cuál es su propósito?
  • ¿Por qué utilizar el uninstall_cmd del objeto WAPT en lugar de la uninstall_cmd del módulo setuphelpers?
  • ¿Cuál es la ventaja de utilizar este método?
GRACIAS.
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

6 de septiembre de 2019 - 17:23

common.Wapt.uninstall_cmd es un alias de setuphelpers.uninstall_cmd, probablemente por razones de compatibilidad con versiones anteriores.

La instancia de WAPT (de la clase common.Wapt) que se puede usar en las funciones de gancho install(), uninstall(), session_setup() y audit() en setup.py es una variable de objeto instanciada por el cliente WAPT e inyectada automáticamente en el espacio de nombres del módulo setup antes de la llamada a la función, de forma similar a una variable implícita integrada... ver, por ejemplo: https://github.com/tranquilit/WAPT/blob ... n.py#L3701.

Inicialmente, esto se hizo para evitar una lista explícita de parámetros en las definiciones de la función install, etc., para no sobrecargar el archivo setup.py para los empaquetadores novatos, ya que esta variable se usa raramente.

El objeto WAPT (clase common.Wapt) permite acceder al estado actual del cliente wapt y a la API asociada, y ejecutar comandos explícitos como WAPT.install('package'), WAPT.remove('package'), WAPT.forget('package'), etc., algo parecido a como lo hacemos en la línea de comandos con wapt-get install, wapt-get remove, pero en el código Python.
TI tranquila
frferrer
Mensajes: 8
Inscripciones: 20 Oct 2017 - 19:05 horas.

9 de septiembre de 2019 - 22:02

Buenas noches,

Gracias por esta explicación del texto, es mucho más claro.

No es fácil para los principiantes orientarse cuando se utilizan ambos sistemas de escritura.

¿Puedo sugerir que se limpie el ejemplo de código en la documentación para conservar solo la sintaxis?

Código: Seleccionar todo

run(uninstall_cmd())
; y conservar el uso de WAPT.<méthode> ¿que por lo que es, es decir la instancia del cliente WAPT?
https://www.wapt.fr/fr/doc/wapt-create- ... g-software

GRACIAS.
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

16 de septiembre de 2019 - 18:25

Definitivamente necesitamos poner orden...

No hemos hablado mucho de esto, pero puedes editar la documentación tú mismo mediante solicitudes de extracción:

La documentación está aquí:

https://github.com/tranquilit/WAPT-Documentation.

Cada vez tenemos menos tiempo para crear documentación. ¡

La ayuda de la comunidad sería muy apreciada! ¡

Puedes enviar solicitudes de extracción directamente!
Bloqueado