-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCompte.py
More file actions
95 lines (75 loc) · 2.23 KB
/
Compte.py
File metadata and controls
95 lines (75 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/python
# -*- coding: utf-8 -*-
import cPickle
from os import getcwd, listdir, path
from State import *
## Deux classes sont définies, classe de chargement général : Account
## et User pour tous les profils
class User():
""" décrit la composition d'un compte"""
#Constructeur
def __init__(self,name=""):
self.mod={"accents":False,"liaison":False,"pluriel":False,
"desordre":False, "d":0}
self.nom=name
self.toeic=State()
#dictionnaires de state
self.persos={}
self.qcmpersos={}
def save(self):
with open("users/"+self.nom+".bin", "wb") as output:
cPickle.dump(self, output, cPickle.HIGHEST_PROTOCOL)
@staticmethod
def load(name=""):
with open("users/"+name+".bin", "rb") as input:
obj = cPickle.load(input)
return obj
##################################
## Méthodes
##################################
## def setVoc(self,a=[]):
## self.voc.niveau=a
def setToeic(self,a=[]):
self.toeic.niveau=a
def addState(self,niv=u"Débutant",x="chemin",a=[]):
self.persos[x]=State(a)
self.persos[x].niveau=niv
def addQcmState(self,niv=u"Débutant",x="chemin",a=[]):
self.qcmpersos[x]=State(a)
self.qcmpersos[x].niveau=niv
def xyinKeys(self,x,y):
if x+":"+y in self.persos.keys():
return True
return False
def xyinQcmKeys(self,x,y):
if x+":"+y in self.qcmpersos.keys():
return True
return False
def getMod(self):
return self.mod["accents"],self.mod["liaison"], self.mod["pluriel"],self.mod["desordre"]
## Deuxieme classe
class Account():
"""charge tous les comptes enregistrés sur l'ordinateur"""
def __init__(self):
self.users={}
self.names=[]
self.charger()
def charger(self):
curr=getcwd()
userdir = path.join(curr,"users")
onlyfiles = [ f for f in listdir(userdir) if path.isfile(path.join(userdir,f)) ]
for x in onlyfiles:
name=self.load(x)
if name:
self.users[str(name.nom)]=name
self.names.append(str(name.nom))
def load(self,x):
try :
A=User.load(x[:x.find(".")])
return A
except:
return False
def getUsers(self):
return self.users
def getNames(self):
return self.names