Correzione stile PEP8 e refusi

This commit is contained in:
Rnhmjoj 2013-08-25 19:09:55 +02:00
parent dd1059a7b4
commit 48650d1c3d

View File

@ -1,6 +1,7 @@
import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog import tkinter, tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog
import tempfile, json, datetime, re, sys import tempfile, json, datetime, re, sys
class Text(tkinter.Text): class Text(tkinter.Text):
""" """
Tkinter Text Widget Tkinter Text Widget
@ -9,11 +10,11 @@ class Text(tkinter.Text):
""" """
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
tkinter.Text.__init__(self, *args, **kwargs) tkinter.Text.__init__(self, *args, **kwargs)
def evidenzia(self, pattern, tag, inizio="1.0", fine="end", regex=True): def evidenzia(self, pattern, tag, inizio="1.0", fine="end", regex=True):
""" """
Evidenzia il testo selezionato da "pattern" e gli assegna Evidenzia il testo selezionato da "pattern" e gli assegna
il tag "tag". Speficicare "inzio" e "fine" per ristringere il tag "tag". Specificare "inizio" e "fine" per ristringere
il campo della ricerca e regex=False se non si utilizza un il campo della ricerca e regex=False se non si utilizza un
espressione regolare. espressione regolare.
""" """
@ -25,7 +26,7 @@ class Text(tkinter.Text):
occorrenze = tkinter.IntVar() occorrenze = tkinter.IntVar()
while True: while True:
indice = self.search( indice = self.search(
pattern, pattern,
"matchEnd", "matchEnd",
"searchLimit", "searchLimit",
count=occorrenze, count=occorrenze,
@ -37,6 +38,7 @@ class Text(tkinter.Text):
self.mark_set("matchEnd", "%s+%sc" % (indice, occorrenze.get())) self.mark_set("matchEnd", "%s+%sc" % (indice, occorrenze.get()))
self.tag_add(tag, "matchStart", "matchEnd") self.tag_add(tag, "matchStart", "matchEnd")
class Applicazione(tkinter.Frame): class Applicazione(tkinter.Frame):
""" """
Classe dell'applicazione Classe dell'applicazione
@ -45,7 +47,7 @@ class Applicazione(tkinter.Frame):
def __init__(self, finestra): def __init__(self, finestra):
tkinter.Frame.__init__(self, finestra) tkinter.Frame.__init__(self, finestra)
finestra.iconify() finestra.iconify()
#Variabili #Variabili
self.temp = tempfile.TemporaryFile(mode="w+t") self.temp = tempfile.TemporaryFile(mode="w+t")
self.testo = tkinter.StringVar() self.testo = tkinter.StringVar()
@ -54,28 +56,28 @@ class Applicazione(tkinter.Frame):
"parent": finestra, "parent": finestra,
"filetypes": [("text files", ".txt")], "filetypes": [("text files", ".txt")],
"defaultextension": ".txt", "defaultextension": ".txt",
"initialfile": "file.txt" "initialfile": "file.txt"
} }
self.opzionichat = { self.opzionichat = {
"font": ("Monaco", 13), "font": ("Monaco", 13),
"borderwidth": 2, "borderwidth": 2,
"highlightthickness": 0 "highlightthickness": 0
} }
#Gestione delle preferenze #Gestione delle preferenze
try: try:
self.preferenze = json.load(open("preferenze.json")) self.preferenze = json.load(open("preferenze.json"))
except FileNotFoundError: except FileNotFoundError:
tkinter.messagebox.showwarning( tkinter.messagebox.showwarning(
"Dropchat", "Dropchat",
"File delle preferenze non trovato!", "File delle preferenze non trovato!",
detail="Preferenze di default ricostruite." detail="Preferenze di default ricostruite."
) )
self.creapreferenze() self.creapreferenze()
#Gestione della finestra #Gestione della finestra
finestra.geometry(self.preferenze["Geometria"]) finestra.geometry(self.preferenze["Geometria"])
finestra.configure(background = "#a8a8a8") finestra.configure(background="#a8a8a8")
finestra.columnconfigure(1, weight=1) finestra.columnconfigure(1, weight=1)
finestra.rowconfigure(0, weight=1) finestra.rowconfigure(0, weight=1)
finestra.protocol('WM_DELETE_WINDOW', self.chiudi) finestra.protocol('WM_DELETE_WINDOW', self.chiudi)
@ -86,7 +88,7 @@ class Applicazione(tkinter.Frame):
self.cambiatitolo() self.cambiatitolo()
self.widgets() self.widgets()
self.leggi() self.leggi()
#Gestione delle ultime conversazioni #Gestione delle ultime conversazioni
try: try:
self.cancellanontrovati() self.cancellanontrovati()
@ -94,15 +96,15 @@ class Applicazione(tkinter.Frame):
except IndexError: except IndexError:
risposta = tkinter.messagebox.askquestion( risposta = tkinter.messagebox.askquestion(
"Dropchat", "Dropchat",
"Nessuna conversazione trovata.", "Nessuna conversazione trovata.",
detail="Crearne una nuova ?" detail="Crearne una nuova ?"
) )
if risposta == "yes": if risposta == "yes":
self.nuovofile() self.nuovofile()
#Loop principale #Loop principale
self.loop() self.loop()
#Widget della finestra #Widget della finestra
def widgets(self): def widgets(self):
""" """
@ -110,10 +112,10 @@ class Applicazione(tkinter.Frame):
""" """
self.menubar = tkinter.Menu(finestra) self.menubar = tkinter.Menu(finestra)
self.chat = Text( self.chat = Text(
finestra, finestra,
width=100, width=100,
height=30, height=30,
relief="sunken", relief="sunken",
insertbackground="#fff", insertbackground="#fff",
**self.opzionichat **self.opzionichat
) )
@ -122,7 +124,7 @@ class Applicazione(tkinter.Frame):
width=20, width=20,
borderwidth=0, borderwidth=0,
background="#dce0e8" background="#dce0e8"
) )
self.casella = tkinter.Entry( self.casella = tkinter.Entry(
finestra, finestra,
textvariable=self.testo, textvariable=self.testo,
@ -131,22 +133,22 @@ class Applicazione(tkinter.Frame):
self.chat.grid(column=1, row=0, sticky="nswe", pady=(6, 3), padx=6) self.chat.grid(column=1, row=0, sticky="nswe", pady=(6, 3), padx=6)
self.casella.grid(column=1, row=1, sticky="nswe", pady=(3, 6), padx=6) self.casella.grid(column=1, row=1, sticky="nswe", pady=(3, 6), padx=6)
self.sidebar.grid(column=0, row=0, sticky="nswe", rowspan=2) self.sidebar.grid(column=0, row=0, sticky="nswe", rowspan=2)
#Bindings #Bindings
self.chat.bind("<KeyPress>", "break") self.chat.bind("<KeyPress>", "break")
self.sidebar.bind("<Double-Button-1>", self.cambiafile) self.sidebar.bind("<Double-Button-1>", self.cambiafile)
self.sidebar.bind("<Button-2>", self.mostramenu) self.sidebar.bind("<Button-2>", self.mostramenu)
self.casella.bind("<Return>", self.scrivi) self.casella.bind("<Return>", self.scrivi)
#Barra dei menu #Barra dei menu
self.menubar = tkinter.Menu(self) self.menubar = tkinter.Menu(self)
menu = tkinter.Menu(self.menubar) menu = tkinter.Menu(self.menubar)
#Primo menu #Primo menu
self.menubar.add_cascade(label = "Conversazione", menu=menu) self.menubar.add_cascade(label="Conversazione", menu=menu)
menu.add_command(label="Nuovo file", command=self.nuovofile) menu.add_command(label="Nuovo file", command=self.nuovofile)
menu.add_command(label="Apri file...", command=self.aprifile) menu.add_command(label="Apri file...", command=self.aprifile)
#Secondo menu #Secondo menu
menu = tkinter.Menu(self.menubar) menu = tkinter.Menu(self.menubar)
self.menubar.add_cascade(label="Profilo", menu=menu) self.menubar.add_cascade(label="Profilo", menu=menu)
@ -173,16 +175,16 @@ class Applicazione(tkinter.Frame):
) )
) )
) )
#Terzo menu #Terzo menu
menu = tkinter.Menu(self.menubar) menu = tkinter.Menu(self.menubar)
self.menubar.add_cascade(label="Modifica", menu = menu) self.menubar.add_cascade(label="Modifica", menu=menu)
menu.add_command( menu.add_command(
label="Taglia", label="Taglia",
command=lambda: finestra.focus_get().event_generate("<<Cut>>") command=lambda: finestra.focus_get().event_generate("<<Cut>>")
) )
menu.add_command( menu.add_command(
label="Copia", label="Copia",
command=lambda: finestra.focus_get().event_generate("<<Copy>>") command=lambda: finestra.focus_get().event_generate("<<Copy>>")
) )
menu.add_command( menu.add_command(
@ -190,15 +192,16 @@ class Applicazione(tkinter.Frame):
command=lambda: finestra.focus_get().event_generate("<<Paste>>") command=lambda: finestra.focus_get().event_generate("<<Paste>>")
) )
finestra.config(menu=self.menubar) finestra.config(menu=self.menubar)
#Menu contestuale 1 #Menu contestuale 1
self.menu1 = tkinter.Menu(self) self.menu1 = tkinter.Menu(self)
self.menu1.add_command( self.menu1.add_command(
label="Apri", label="Apri",
command=self.cambiafile command=self.cambiafile
) )
self.menu1.add_command(label="Cancella", self.menu1.add_command(
command=self.cancellafile label="Cancella",
command=self.cancellafile
) )
self.menu1.add_separator() self.menu1.add_separator()
self.menu1.add_command( self.menu1.add_command(
@ -207,28 +210,28 @@ class Applicazione(tkinter.Frame):
) )
self.menu1.add_command( self.menu1.add_command(
label="Ricarica", label="Ricarica",
command=lambda: self.sidebar.delete(0,"end") command=lambda: self.sidebar.delete(0, "end")
) )
#Menu contestuale 2 #Menu contestuale 2
self.menu2 = tkinter.Menu(self) self.menu2 = tkinter.Menu(self)
self.menu2.add_command( self.menu2.add_command(
label="Nuovo file", label="Nuovo file",
command=self.nuovofile command=self.nuovofile
) )
self.menu2.add_command( self.menu2.add_command(
label="Ricarica", label="Ricarica",
command=lambda: self.sidebar.delete(0,"end") command=lambda: self.sidebar.delete(0, "end")
) )
def leggi(self): def leggi(self):
"""Legge il file corrente dal buffer e lo scrive nella chat""" """Legge il file corrente dal buffer e lo scrive nella chat"""
self.aggiorna() self.aggiorna()
self.temp.seek(0) self.temp.seek(0)
self.chat.delete(0.0,"end") self.chat.delete(0.0, "end")
self.chat.insert("end", self.temp.read()) self.chat.insert("end", self.temp.read())
self.colora() self.colora()
def scrivi(self, event): def scrivi(self, event):
"""Scrive un messaggio nel file""" """Scrive un messaggio nel file"""
if self.file != "": if self.file != "":
@ -241,7 +244,7 @@ class Applicazione(tkinter.Frame):
) )
self.testo.set("") self.testo.set("")
file.write(riga) file.write(riga)
def aggiorna(self): def aggiorna(self):
"""Copia il file nel Buffer""" """Copia il file nel Buffer"""
self.temp.seek(0) self.temp.seek(0)
@ -249,18 +252,18 @@ class Applicazione(tkinter.Frame):
if self.file != "": if self.file != "":
with open(self.file) as testo: with open(self.file) as testo:
self.temp.write(testo.read()) self.temp.write(testo.read())
def cambiatitolo(self): def cambiatitolo(self):
""" """
Aggiorna il titolo della finestra in modo che corrisponda Aggiorna il titolo della finestra in modo che corrisponda
al file correntemente aperto. al file correntemente aperto.
""" """
file = re.search("([^/]*)$", self.file) file = re.search("([^/]*)$", self.file)
if self.file == "": if self.file == "":
finestra.title("Dropchat") finestra.title("Dropchat")
else: else:
finestra.title("Dropchat - " + file.group(0)) finestra.title("Dropchat - " + file.group(0))
def colora(self): def colora(self):
""" """
Evidenzia parti semantiche nel testo della chat Evidenzia parti semantiche nel testo della chat
@ -275,7 +278,7 @@ class Applicazione(tkinter.Frame):
self.chat.evidenzia(nome, "nome") self.chat.evidenzia(nome, "nome")
else: else:
self.chat.evidenzia(nome, "altronome") self.chat.evidenzia(nome, "altronome")
def mostramenu(self, event): def mostramenu(self, event):
""" """
Gestisce l'apertura e il posizionamento dei menu contestuali Gestisce l'apertura e il posizionamento dei menu contestuali
@ -291,14 +294,14 @@ class Applicazione(tkinter.Frame):
self.menu2.post(event.x_root, event.y_root) self.menu2.post(event.x_root, event.y_root)
else: else:
self.menu1.post(event.x_root, event.y_root) self.menu1.post(event.x_root, event.y_root)
def filerecenti(self): def filerecenti(self):
"""Inserisce nella sidebar i file recentemente aperti""" """Inserisce nella sidebar i file recentemente aperti"""
for x, file in enumerate(self.preferenze["Chat"]): for x, file in enumerate(self.preferenze["Chat"]):
file = " - " + re.search("([^/]*)$", file).group(0) file = " - " + re.search("([^/]*)$", file).group(0)
if file not in self.sidebar.get(x): if file not in self.sidebar.get(x):
self.sidebar.insert(x, file) self.sidebar.insert(x, file)
def cancellafile(self): def cancellafile(self):
"""Rimuove dalla sidebar il file correntemente selezionato""" """Rimuove dalla sidebar il file correntemente selezionato"""
if self.preferenze["Chat"][self.sidebar.indice] == self.file: if self.preferenze["Chat"][self.sidebar.indice] == self.file:
@ -306,22 +309,22 @@ class Applicazione(tkinter.Frame):
del self.preferenze["Chat"][self.sidebar.indice] del self.preferenze["Chat"][self.sidebar.indice]
json.dump(self.preferenze, open("preferenze.json", "w")) json.dump(self.preferenze, open("preferenze.json", "w"))
self.leggi() self.leggi()
self.cambiatitolo() self.cambiatitolo()
def cambiafile(self, _ = None): def cambiafile(self, _=None):
""" """
Apre il file correntemente selezionato Apre il file correntemente selezionato
dalla sidebar nella chat. dalla sidebar nella chat.
""" """
file = self.preferenze["Chat"][int(self.sidebar.curselection()[0])] file = self.preferenze["Chat"][int(self.sidebar.curselection()[0])]
if self.file != file: if self.file != file:
self.file = file self.file = file
self.leggi() self.leggi()
self.cambiatitolo() self.cambiatitolo()
def aprifile(self): def aprifile(self):
""" """
Gestice la finestra di selezione di un nuovo file Gestisce la finestra di selezione di un nuovo file
e lo apre nella chat. e lo apre nella chat.
""" """
if sys.platform == "darwin": if sys.platform == "darwin":
@ -332,16 +335,16 @@ class Applicazione(tkinter.Frame):
) )
else: else:
file = tkinter.filedialog.askopenfilename( file = tkinter.filedialog.askopenfilename(
title="Scegli un file...", title="Scegli un file...",
**self.opzionifile **self.opzionifile
) )
if file not in self.preferenze["Chat"] and file != "": if file not in self.preferenze["Chat"] and file != "":
self.preferenze["Chat"] += file, self.preferenze["Chat"] += file,
json.dump(self.preferenze, open("preferenze.json", "w")) json.dump(self.preferenze, open("preferenze.json", "w"))
self.file = file self.file = file
self.leggi() self.leggi()
self.cambiatitolo() self.cambiatitolo()
def nuovofile(self): def nuovofile(self):
""" """
Gestisce la finestra per la creazione di un nuovo file Gestisce la finestra per la creazione di un nuovo file
@ -360,16 +363,16 @@ class Applicazione(tkinter.Frame):
) )
if file != "": if file != "":
self.file = file self.file = file
open(self.file,"w").close() open(self.file, "w").close()
if self.file not in self.preferenze["Chat"]: if self.file not in self.preferenze["Chat"]:
self.preferenze["Chat"] += self.file, self.preferenze["Chat"] += self.file,
json.dump(self.preferenze, open("preferenze.json", "w")) json.dump(self.preferenze, open("preferenze.json", "w"))
self.leggi() self.leggi()
self.cambiatitolo() self.cambiatitolo()
def cancellanontrovati(self): def cancellanontrovati(self):
""" """
Rimuove i riferimenti dalla sidebar di tutti i file che Rimuove i riferimenti dalla sidebar di tutti i file che
non sono più disponibili. non sono più disponibili.
""" """
for x, file in enumerate(self.preferenze["Chat"]): for x, file in enumerate(self.preferenze["Chat"]):
@ -380,20 +383,20 @@ class Applicazione(tkinter.Frame):
del self.preferenze["Chat"][x] del self.preferenze["Chat"][x]
continue continue
json.dump(self.preferenze, open("preferenze.json", "w")) json.dump(self.preferenze, open("preferenze.json", "w"))
def creapreferenze(self): def creapreferenze(self):
""" """
Ricrea le preferenze di default se non vengono trovate. Ricrea le preferenze di default se non vengono trovate.
""" """
default = { default = {
"Utente": "Nomeutente", "Utente": "Nomeutente",
"Chat": ["chat.txt"], "Chat": ["chat.txt"],
"Chiave": "chiave.key", "Chiave": "chiave.key",
"Geometria": "800x500+500+250" "Geometria": "800x500+500+250"
} }
json.dump(default,open("preferenze.json", "w")) json.dump(default, open("preferenze.json", "w"))
self.preferenze = json.load(open("preferenze.json")) self.preferenze = json.load(open("preferenze.json"))
def modificapreferenza(self, chiave, preferenza): def modificapreferenza(self, chiave, preferenza):
""" """
Modifica una preferenza e la salva nel file esterno. Modifica una preferenza e la salva nel file esterno.
@ -401,7 +404,7 @@ class Applicazione(tkinter.Frame):
if preferenza != "": if preferenza != "":
self.preferenze[chiave] = preferenza self.preferenze[chiave] = preferenza
json.dump(self.preferenze, open("preferenze.json", "w")) json.dump(self.preferenze, open("preferenze.json", "w"))
def chiudi(self): def chiudi(self):
""" """
Salva la geometria della finestra per il prossimo avvio, Salva la geometria della finestra per il prossimo avvio,
@ -411,7 +414,7 @@ class Applicazione(tkinter.Frame):
self.modificapreferenza("Geometria", finestra.geometry()) self.modificapreferenza("Geometria", finestra.geometry())
self.temp.close() self.temp.close()
finestra.destroy() finestra.destroy()
def loop(self): def loop(self):
""" """
Loop principale Loop principale