aboutsummaryrefslogtreecommitdiff
path: root/utils.py
diff options
context:
space:
mode:
authorAlban Gruin2017-09-04 22:13:31 +0200
committerAlban Gruin2017-09-04 22:13:31 +0200
commitab9df7a174e2debbf9c644c8ec3e2127eeeaa3cf (patch)
treebf9510823644aa1c5dba0ab39277633c0f18ad49 /utils.py
parentce0ed9347adde9ca80c11efe79766c966d5749ba (diff)
parent4b3fc9e4c41e2247bf0fa0fe2629b2b57fc174b0 (diff)
Merge branch 'stable/0.y.z' into prod/pa1ch/0.y.zv0.8.0-pa1chprod/pa1ch/0.8.z
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py37
1 files changed, 19 insertions, 18 deletions
diff --git a/utils.py b/utils.py
index cff4c9c..8630036 100644
--- a/utils.py
+++ b/utils.py
@@ -49,25 +49,26 @@ def group_courses(courses):
def parse_group(name):
# Explication de la regex
#
- # ^(.+?)\s*\-\s*(((CM)(\w))|((TD)(\w)(\d))|((TP)(\w)(\d)(\d)))$
- # ^ début de la ligne
- # (.+?) correspond à au moins un caractère
- # \s* zéro, un ou plusieurs espaces
- # \- un tiret
- # \s* zéro, un ou plusieurs espaces
- # (((CM)(\w))| correspond à CM suivi d'une lettre ou...
- # ((TD)(\w)(\d))| ... à TD suivi d'une lettre et d'un chiffre ou...
- # ((TP)(\w)(\d)(\d))) ... à TP suivi d'une lettre et de deux chiffres
- # $ fin de la ligne
- group_regex = re.compile("^(.+?)\s*\-\s*(((CM)(\w))|((TD)(\w)(\d))|((TP)(\w)(\d)(\d)))$")
+ # ^([\w ]+?)(\s*(((CM)(\w))|((TD)(\w)(\d))|((TP)(\w)(\d)(\d))))?$
+ # ^ début de la ligne
+ # ([\w ]+?) correspond à au moins un caractère
+ # (\s* zéro, un ou plusieurs espaces
+ # (((CM)(\w))| correspond à CM suivi d'une lettre ou...
+ # ((TD)(\w)(\d))| ... à TD suivi d’une lettre et d'un chiffre ou...
+ # ((TP)(\w)(\d)(\d))) ... à TP suivi d’une lettre et de deux chiffres
+ # )? groupe optionel
+ # $ fin de la ligne
+ group_regex = re.compile("^([\w ]+?)(\s*(((CM)(\w))|((TD)(\w)(\d))|((TP)(\w)(\d)(\d))))?$")
search = group_regex.search(name)
if search is None:
- return None, None, None, None
+ return name, None, None, None
parts = search.groups(0)
- if parts[3] == "CM":
- return parts[0], parts[4], None, None
- elif parts[6] == "TD":
- return parts[0], parts[7], parts[8], None
- elif parts[10] == "TP":
- return parts[0], parts[11], parts[12], parts[13]
+ if parts[1] == 0:
+ return parts[0], None, None, None
+ elif parts[4] == "CM":
+ return parts[0], parts[5], None, None
+ elif parts[7] == "TD":
+ return parts[0], parts[8], parts[9], None
+ elif parts[11] == "TP":
+ return parts[0], parts[12], parts[13], parts[14]