diff options
| -rw-r--r-- | utils.py | 36 | 
1 files changed, 14 insertions, 22 deletions
| @@ -48,32 +48,24 @@ def group_courses(courses):  def parse_group(name):      # Explication de la regex      # -    # ^(.+?)\s+((CM(\w))|(TD(\w)(\d))|(TP(\w)(\d)(\d)))?(\s+\(.+\))?$ -    # ^                                                               début de la ligne -    #  (.+?)                                                          correspond à au moins un caractère -    #       \s+                                                       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 optionnel -    #                                                   (\s+          un ou plusieurs espaces -    #                                                       \(.+\))   un ou plusieurs caractères quelconques entre parenthèses -    #                                                              ?  groupe optionnel -    #                                                               $ fin de la ligne -    group_regex = re.compile(r"^(.+?)\s+((CM(\w))|(TD(\w)(\d))|(TP(\w)(\d)(\d)))?(\s+\(.+\))?$") +    # ^(.+?)\s*(s\d\s+)?((CM|TD|TP|G)(\w\d{0,3}))?(\s+\(.+\))?$ +    # ^                                                         début de la ligne +    #  (.+?)                                                    correspond à au moins un caractère +    #       \s*                                                 éventuellement un ou plusieurs espaces +    #          (s\d\s+)?                                        éventuellement un s suivi d’un nombre et d’un ou plusieurs espaces +    #                   ((CM|TD|TP|G)                           « CM » ou « TD » ou « TP » ou « G » +    #                                (\w\d{0,3})                suivi d’un caractère puis entre 0 et 3 chiffres +    #                                           )?              groupe optionnel +    #                                             (\s+          un ou plusieurs espaces +    #                                                 \(.+\))?  un ou pliseurs caractères entre parenthèses +    #                                                         $ fin de la ligne +    group_regex = re.compile(r"^(.+?)\s*(s\d\s+)?((CM|TD|TP|G)(\w\d{0,3}))?(\s+\(.+\))?$")      search = group_regex.search(name)      if search is None: -        return name, None, None, None +        return name, None      parts = search.groups() -    if parts[1] is None:       # Pas de groupe précis indiqué -        return parts[0], None, None, None -    elif parts[2] is not None: # Groupe de CM -        return parts[0], parts[3], None, None -    elif parts[4] is not None: # Groupe de TD -        return parts[0], parts[5], parts[6], None -    elif parts[7] is not None: # Groupe de TP -        return parts[0], parts[8], parts[9], parts[10] +    return parts[0], parts[4]  def tz_now():      """Retourne la date et l’heure avec le bon fuseau horaire""" | 
