[RESUELTO] Acentos y PyScripter

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
Marcolefo
Mensajes: 27
Inscripción: 02 oct 2018 - 11:13

15 de noviembre de 2019 - 11:11

Buen día,

Estamos experimentando un problema con los acentos.
De hecho, no se reconocen correctamente al usar PyScripter. No hay problema con la consola de Python.

En la consola:

Código: Seleccionar todo

Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:22:17) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> var = u"éè"
>>> type(var)
<type 'unicode'>
>>> print var
éè
>>>
En el archivo setup.py a través de PyScripter:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    var = u"éè"
    print type(var)
    print var
Y al desinstalar:

Código: Seleccionar todo

*** Console de processus distant Réinitialisée *** 
>>> 
Ligne de Commande : install "C:\TEMP\test-accents_18.7.2-5\WAPT\.."
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
Installing WAPT files C:\TEMP\test-accents_18.7.2-5
<type 'unicode'>
‚Š

Results :

 === install packages ===
  C:\TEMP\test-accents_18.7.2-5 | test-accents (18.7.2-5)
[Mal chiste] Es suficiente para hacerte perder tu UTF-8 [/Mal chiste]

El archivo setup.py se guarda en UTF-8 (sin BOM) / UNIX.

¿Ves de dónde puede venir el problema?
Última edición realizada por marcolefo el 18 de noviembre de 2019 a las 15:21, editado 2 veces.
Servidor WAPT Enterprise: 2.6.0.17343 / Sistema operativo del servidor: Debian bookworm /
Sistema operativo de la máquina de administración/creación de paquetes: macOS 15
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

15 de noviembre de 2019 - 12:27

Buen día,
Es un viejo problema... que ya no nos sorprende, nos acostumbramos ;)

De hecho, la salida de las sentencias de impresión se redirige para almacenar el resultado en la base de datos de registro de Wapt o en la consola.

Esta redirección es administrada en waptutils.py por la clase LogOutput.

Una solución es reemplazar (alrededor de la línea 1455)

Código: Seleccionar todo

    def write(self,txt):
        with self.lock:
            txt = ensure_unicode(txt)
            self.output.append(txt)
            if self.update_status_hook and threading.current_thread() == self.threadid and (time.time()-self.last_update_time>=self.update_buffer_time):
                # wait update_buffer_time before sending data to update_hook to avoid high frequency I/O
                self._send_tail_to_updatehook()

            if self.console:
                try:
                    self.console.write(txt)
                except:
                    self.console.write(repr(txt))

por (self.console.write por self.console.stream.write):

Código: Seleccionar todo

    def write(self,txt):
        with self.lock:
            txt = ensure_unicode(txt)
            self.output.append(txt)
            if self.update_status_hook and threading.current_thread() == self.threadid and (time.time()-self.last_update_time>=self.update_buffer_time):
                # wait update_buffer_time before sending data to update_hook to avoid high frequency I/O
                self._send_tail_to_updatehook()

            if self.console:
                try:
                    self.console.stream.write(txt)
                except:
                    self.console.write(repr(txt))
TI tranquila
Marcolefo
Mensajes: 27
Inscripción: 02 oct 2018 - 11:13

15 de noviembre de 2019 - 13:06

GRACIAS :)

Eso resuelve el problema...

Una pregunta rápida. Si el problema se conoce desde hace tiempo, ¿por qué no solucionarlo?

El código que proporcioné fue una prueba. En realidad, queremos eliminar un archivo si existe.

Así que el código de inicio es bastante

Código: Seleccionar todo

# coding: utf-8
from setuphelpers import *

uninstallkey = []

def install():
    licencemanagerfile = ur'C:\TEMP\test_éè\file.txt'

    if (isfile(licencemanagerfile)):
        remove_file(licencemanagerfile)
Ahora funciona perfectamente, con la modificación propuesta.
Pero habría que aplicarlo a todos los clientes ¿no?
Servidor WAPT Enterprise: 2.6.0.17343 / Sistema operativo del servidor: Debian bookworm /
Sistema operativo de la máquina de administración/creación de paquetes: macOS 15
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

15 de noviembre de 2019 - 13:16

Una pregunta rápida. Si el problema se conoce desde hace tiempo, ¿por qué no solucionarlo?
Porque nadie se había fijado en eso, y encontramos la solución justo antes de responderte...

La solución estará en la próxima versión de Wapt... obviamente.
TI tranquila
Marcolefo
Mensajes: 27
Inscripción: 02 oct 2018 - 11:13

18 de noviembre de 2019 - 15:20

¡Genial! Gracias :)
Servidor WAPT Enterprise: 2.6.0.17343 / Sistema operativo del servidor: Debian bookworm /
Sistema operativo de la máquina de administración/creación de paquetes: macOS 15
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

18 de noviembre de 2019 - 15:40

Hay una compilación que incluye esta corrección de acento:

https://wapt.tranquil.it/wapt/nightly/w ... -1c00cefd/

Registro de cambios:

WAPT-1.7.4-6237 (2019-11-18) (no publicado)
----------------------------

(hash 1c00cefd)

* waptserver: agregar corrección para solucionar el error de flask-socketio https://github.com/miguelgrinberg/Flask ... ssues/1054 (AttributeError: el objeto 'Request' no tiene el atributo 'sid')

* waptserver: asegúrese de que la base de datos esté cerrada antes de intentar abrirla (para el modo de desarrollo)

* waptserver: agregar mensajes de registro cuando se envía un mensaje de excepción al usuario.

WAPT-1.7.4-6234 (2019-11-14) (no publicado)
----------------------------

(hash ad237eee)

* waptserver: actualización del módulo python peewee DB a 3.11.2. Manejo explícito de la conexión a la base de datos para rastrear posibles conexiones limbo (que podrían provocar el agotamiento del grupo de la base de datos)

* waptwua: captura de excepciones al enviar WU a la caché de Windows para permitir que se instalen actualizaciones válidas incluso si algunas no se pudieron verificar correctamente.


WAPT-1.7.4-6232 (2019-10-31)
----------------------------

(hash2090b0e6d52cecfb04f8fa4c279e7c0a0252d6e2

* wapt-get session-setupp: corrige la impresión incorrecta en session_setup. Regresión introducida en b30b1b1a550a4 (1.7.4.6229)

WAPT-1.7.4-6230 (2019-10-23) (no publicado)
----------------------------
(hash 391d382f)

* devuelve la versión y edición del hash git del servidor en ping y usage_statistics

* asegúrese de tener server_uuid en Windows durante la configuración

* corrección para .git parcialmente incluido en el manifiesto del paquete compilado
TI tranquila
Patrice Minagri
Mensajes: 57
Inscripciones: 21 Oct 2016 - 16:56 horas.

27 de noviembre de 2019 - 17:01

Hola,

si entiendo correctamente, ¿esto implica aplicar la solución a todos los equipos con el agente WAPT instalado? ¿Como reemplazar el archivo waptutils.py original con su versión corregida (a través de otro paquete, GPO, etc.)?
WAPT 1.7.4
Bloqueado