[RISOLTO] Accenti e PyScripter

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
marcolefo
Messaggi: 27
Registrazione: 02 ott 2018 - 11:13

15 novembre 2019 - 11:11

Buongiorno,

Stiamo riscontrando un problema con gli accenti.
In effetti, non vengono riconosciuti correttamente quando si utilizza PyScripter. Con la console Python non ci sono problemi.

Nella console:

Codice: Seleziona tutto

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
éè
>>>
Nel file setup.py tramite PyScripter:

Codice: Seleziona tutto

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

uninstallkey = []

def install():
    var = u"éè"
    print type(var)
    print var
E durante la disinstallazione:

Codice: Seleziona tutto

*** 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)
[Battaglia brutta] È abbastanza da farti perdere il tuo UTF-8 [/Battaglia brutta]

Il file setup.py viene salvato in UTF-8 (No BOM) / UNIX.

Capisci da dove potrebbe derivare il problema?
Ultima modifica di marcolefo il 18 novembre 2019 alle 15:21, modificato 2 volte.
WAPT Enterprise Server: 2.6.0.17343 / Sistema operativo del server: Debian bookworm /
Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: macOS 15
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

15 novembre 2019 - 12:27

Buongiorno,
È un vecchio problema... che ormai non ci sconvolge più, ci siamo abituati ;)

Infatti, l'output delle istruzioni print viene reindirizzato per memorizzare il risultato nel database di log Wapt o nella console.

Questo reindirizzamento è gestito in waptutils.py dalla classe LogOutput.

Una soluzione è quella di sostituire (intorno alla riga 1455)

Codice: Seleziona tutto

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

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

Codice: Seleziona tutto

    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))
Tranquillo IT
marcolefo
Messaggi: 27
Registrazione: 02 ott 2018 - 11:13

15 novembre 2019 - 13:06

GRAZIE :)

Questo risolve il problema...

Una domanda veloce. Se il problema è noto da tempo, perché non risolverlo?

Il codice che ho fornito era un test. In realtà, vogliamo eliminare un file se esiste.

Quindi il codice di partenza è piuttosto

Codice: Seleziona tutto

# coding: utf-8
from setuphelpers import *

uninstallkey = []

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

    if (isfile(licencemanagerfile)):
        remove_file(licencemanagerfile)
Ora funziona perfettamente, con la modifica proposta.
Ma dovrebbe essere applicato a tutti i clienti, non è vero?
WAPT Enterprise Server: 2.6.0.17343 / Sistema operativo del server: Debian bookworm /
Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: macOS 15
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

15 novembre 2019 - 13:16

Una domanda veloce. Se il problema è noto da tempo, perché non risolverlo?
Perché nessuno si era soffermato su questo e abbiamo trovato la soluzione appena prima di risponderti...

La correzione arriverà nella prossima versione di Wapt... ovviamente.
Tranquillo IT
marcolefo
Messaggi: 27
Registrazione: 02 ott 2018 - 11:13

18 novembre 2019 - 15:20

Ottimo! Grazie :)
WAPT Enterprise Server: 2.6.0.17343 / Sistema operativo del server: Debian bookworm /
Sistema operativo della macchina per l'amministrazione/creazione dei pacchetti: macOS 15
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

18 novembre 2019 - 15:40

Esiste una build che include questa correzione per gli accenti:

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

Changelog:

WAPT-1.7.4-6237 (2019-11-18) (non rilasciato)
----------------------------

(hash 1c00cefd)

* waptserver: aggiunta correzione per aggirare il bug di flask-socketio https://github.com/miguelgrinberg/Flask ... ssues/1054 (AttributeError: l'oggetto 'Request' non ha l'attributo 'sid')

* waptserver: assicurarsi che il db sia chiuso prima di provare ad aprirlo (per la modalità di sviluppo)

* waptserver: aggiunta di messaggi di log quando viene inviato un messaggio di eccezione all'utente.

WAPT-1.7.4-6234 (2019-11-14) (non rilasciato)
----------------------------

(hash ad237eee)

* waptserver: aggiornamento del modulo Python peewee DB alla versione 3.11.2. Gestione esplicita delle connessioni al DB per tracciare potenziali connessioni inattive (che potrebbero portare all'esaurimento del pool del DB)

* waptwua: Gestione delle eccezioni durante l'invio di WU alla cache di Windows per consentire l'installazione di aggiornamenti validi anche se alcuni non possono essere verificati correttamente.


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

(hash2090b0e6d52cecfb04f8fa4c279e7c0a0252d6e2

* wapt-get session-setupp: correzione della stampa errata in session_setup. regressione introdotta in b30b1b1a550a4 (1.7.4.6229)

WAPT-1.7.4-6230 (2019-10-23) (non rilasciato)
----------------------------
(hash 391d382f)

* restituisce la versione e l'edizione dell'hash git del server in ping e usage_statistics

* assicurarsi di avere server_uuid su windows durante l'installazione

* correzione per .git parzialmente incluso nel manifesto del pacchetto compilato
Tranquillo IT
Patrice_minagri
Messaggi: 57
Registrazione: 21 ottobre 2016 - 16:56

27 novembre 2019 - 17:01

Salve,

se ho capito bene, questo implica applicare la correzione a tutti i computer su cui è installato l'agente WAPT? Ovvero, sostituire il file waptutils.py originale con la sua versione corretta (tramite un altro pacchetto, GPO, ecc.)?
Versione WAPT 1.7.4
Bloccato