UniSquat_Python/objects.py

99 lines
2.4 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat May 7 17:29:11 2022
@author: antoine
"""
################
### UniSquat ###
################
"""
Indique toutes les salles disponibles dans les différents départements de
l'Université de Strasbourg.
"""
# Modules
import random # Nécessaire pour la génération d'ID des salles
# Constantes
ID_CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" # Caractères disponibles pour la création d'ID
ID_LEN = 4 # Nombres de caractères composant l'ID
### Fichier contenant les classes des salles et des départements ###
# Objets :
class Room :
"""
Structure des salles.
Attributes
----------
name : string
Le nom de la salle.
start : datetime.datetime
Salle occupée : heure de début de la prochaine période de disponibilité.
Salle libre : inutilisé (vaut la date du jour à 00:00).
end : datetime.datetime
Salle occupée : heure de fin de la prochaine période de disponibilité.
Salle libre : heure de fin de disponibilité.
is_free : bool
Indique si la salle est libre ('True') ou non ('False').
count : int
Compte le nombre d'occurences de la salle dans l'emploi du temps;
id : string
Identifiant 'unique' ( avec un très faible risque de collision ) de la salle ( généré à partir de son nom )
"""
def __init__(self, name, start, end, is_free) :
self.name = name
self.start = start
self.end = end
self.is_free = is_free
self.id = self.getId(name)
def getId(self,name):
random.seed(name)
id = ""
for i in range(ID_LEN):
id+=random.choice(ID_CHARS)
return id # A peu près une chance sur 15 millions d'être unique, je considère ça viable
class Dept :
"""
Classe des départements.
Attributes
----------
ident : int
Identifiant du département.
name : string
Nom du département.
link : string
Lien qui permet d'accéder au fichier iCal du département.
rooms : list
La liste des salles de ce département
"""
def __init__(self, ident, name, link, rooms) :
self.ident = ident
self.name = name
self.link = link
self.rooms = rooms