[RESOLU] Les accents et PyScripter

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
marcolefo
Messages : 19
Inscription : 02 oct. 2018 - 11:13

15 nov. 2019 - 11:11

Bonjour,

Nous rencontrons un problème avec des accents.
En effet, ils ne sont pas reconnus correctement lorsqu'on passe avec PyScripter. Pas de problème avec la console Python.

Dans la console :

Code : Tout sélectionner

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
éè
>>>
Dans le setup.py via PyScripter :

Code : Tout sélectionner

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

uninstallkey = []

def install():
    var = u"éè"
    print type(var)
    print var
Et à l'éxécution de uninstall :

Code : Tout sélectionner

*** 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)
[Mauvaise blague] C'est à y perdre son utf-8 [/Mauvaise blague]

Le fichier setup.py est enregistré en UTF-8 (No Bom) / UNIX.

Voyez vous d'où peut venir le problème ?
Dernière modification par marcolefo le 18 nov. 2019 - 15:21, modifié 2 fois.
WAPT Enterprise Server : 2.4.0.14143 / OS Serveur : Debian bullseye
OS de la machine d'administration/création des paquets : Windows 10
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

15 nov. 2019 - 12:27

Bonjour,
C'est un vieux problème.... qui ne nous choque plus, on s'habitue ;)

En fait, la sortie des print est redirigée pour stocker le résultat au passage dans la base de donnée de log de Wapt, ou vers la console.

Cette redirection est gérée dans waptutils.py par la classe LogOutput.

Une solution est de remplacer (vers la ligne 1455)

Code : Tout sélectionner

    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))

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

Code : Tout sélectionner

    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))
Tranquil IT
marcolefo
Messages : 19
Inscription : 02 oct. 2018 - 11:13

15 nov. 2019 - 13:06

Merci :)

Effectivement ça règle le problème...

Une petite question. Si le problème est connu de longue date, pourquoi ne pas le corriger ?

Le code que j'ai fourni était un test. En fait nous voulons supprimer un fichier s'il existe.

Donc le code de départ c'est plutôt

Code : Tout sélectionner

# coding: utf-8
from setuphelpers import *

uninstallkey = []

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

    if (isfile(licencemanagerfile)):
        remove_file(licencemanagerfile)
Il fonctionne parfaitement désormais, avec la modif proposée.
Mais il faudrait l'appliquer sur tous les clients, non ?
WAPT Enterprise Server : 2.4.0.14143 / OS Serveur : Debian bullseye
OS de la machine d'administration/création des paquets : Windows 10
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

15 nov. 2019 - 13:16

Une petite question. Si le problème est connu de longue date, pourquoi ne pas le corriger ?
Parce que personne n'avait fait le focus là dessus, et que l'on a trouvé la solution juste avant de vous répondre...

Le correctif sera dans la prochaine version de Wapt... évidemment.
Tranquil IT
marcolefo
Messages : 19
Inscription : 02 oct. 2018 - 11:13

18 nov. 2019 - 15:20

Super ! Merci :)
WAPT Enterprise Server : 2.4.0.14143 / OS Serveur : Debian bullseye
OS de la machine d'administration/création des paquets : Windows 10
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

18 nov. 2019 - 15:40

Il y a un build qui intègre ce correctif d'accent :

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

Changelog :

WAPT-1.7.4-6237 (2019-11-18) (not released)
----------------------------

(hash 1c00cefd)

* waptserver : add fix to workaround flask-socketio bug https://github.com/miguelgrinberg/Flask ... ssues/1054 (AttributeError: 'Request' object has no attribute 'sid')

* waptserver : be sure db is closed before trying to open it (for dev mode)

* waptserver : add logs messages when an exception message is sent back to the user.

WAPT-1.7.4-6234 (2019-11-14) (not released)
----------------------------

(hash ad237eee)

* waptserver : upgrade peewee DB python module to 3.11.2. explicit connection handling to DB to track potential limbo connections (which could lead to db pool exhaustion)

* waptwua : Trap exception when pushing WU to Windows cache to allow valid updates to be installed even if some could not be verified properly.


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

(hash2090b0e6d52cecfb04f8fa4c279e7c0a0252d6e2

* wapt-get session-setupp : fix bad print in session_setup. regression introduced in b30b1b1a550a4 (1.7.4.6229)

WAPT-1.7.4-6230 (2019-10-23) (not released)
----------------------------
(hash 391d382f)

* return server git hash version and edition in ping and usage_statistics

* be sure to have server_uuid on windows when during setup

* fix for .git partially included in built package manifest
Tranquil IT
Patrice_minagri
Messages : 57
Inscription : 21 oct. 2016 - 16:56

27 nov. 2019 - 17:01

Bonjour,

Si je comprends bien, il s'agit d'apporter cette correction à tous les ordinateurs dotés de l'agent WAPT ? Comme le remplacement du fichier waptutils.py initial par sa version corrigée (via un autre paquet, GPO etc ...) ?
WAPT 1.7.4
Verrouillé