From edb60951ea15cd79190069fe7091b0d415befc30 Mon Sep 17 00:00:00 2001 From: gajotnt Date: Thu, 30 Jun 2022 11:35:36 +0100 Subject: [PATCH 1/2] Update ciclos.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prontos, seguindo a lógica do que ja estava feito, adicionei o ciclo semanal dos Açores. Agora nao sei se tenho q inserir mais qq coisa noutros ficheiros mas vou dar uma olhadela a ver se percebo alguma coisa xD --- pyerse/ciclos.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/pyerse/ciclos.py b/pyerse/ciclos.py index e9a3dd9..088e1ee 100644 --- a/pyerse/ciclos.py +++ b/pyerse/ciclos.py @@ -176,6 +176,69 @@ def get_periodo_horario(cls, time): return ph.VAZIO_NORMAL if cls.in_time_range(2, 0, time, 6, 0): return ph.SUPER_VAZIO + +class Ciclo_Semanal_Acores(Ciclo): + """Ciclo semanal Açores (os períodos horários diferem entre dias úteis e fim de semana).""" + def __str__(self) -> str: + return "Ciclo Semanal Açores" + + @classmethod + def get_periodo_horario(cls, time): + if cls.is_summer(time): + # Verão (Vazio 24h-7h | Ponta 10h30-15h30) + if 0 <= time.weekday() < 5: + # Seg a Sex + if cls.in_time_range(10, 30, time, 15, 30): + return ph.PONTA + if cls.in_time_range(7, 0, time, 10, 30) or cls.in_time_range( + 15, 30, time, 0, 0 + ): + return ph.CHEIAS + if cls.in_time_range(0, 0, time, 7, 0) + return ph.VAZIO_NORMAL + if time.weekday() == 5: + # Sabado (Vazio 23h-7h e 14h30-19h30) + if cls.in_time_range(11, 0, time, 14, 30) or cls.in_time_range( + 19, 30, time, 23, 0 + ): + return ph.CHEIAS + if ( + cls.in_time_range(23, 0, time, 11, 0) + or cls.in_time_range(14, 30, time, 19, 30) + ): + return ph.VAZIO_NORMAL + if time.weekday() == 6: + # Domingo (Vazio 24h) + if cls.in_time_range(0, 0, time, 0, 0) + return ph.VAZIO_NORMAL + else: + # Inverno + if 0 <= time.weekday() < 5: + # Seg a Sex (vazio 00h-7h | Ponta 18h30-21h30) + if cls.in_time_range(18, 30, time, 21, 30) + return ph.PONTA + if ( + cls.in_time_range(7, 0, time, 18, 30) + or cls.in_time_range(21, 30, time, 0, 0) + ): + return ph.CHEIAS + if cls.in_time_range(0, 0, time, 7, 0) + return ph.VAZIO_NORMAL + if time.weekday() == 5: + # Sabado (Vazio 23h-11h30 e 13h30-18h) + if cls.in_time_range(11, 30, time, 13, 30) or cls.in_time_range( + 18, 0, time, 23, 0 + ): + return ph.CHEIAS + if ( + cls.in_time_range(23, 0, time, 11, 30) + or cls.in_time_range(13, 30, time, 18, 0) + ): + return ph.VAZIO_NORMAL + if time.weekday() == 6: + # Domingo (Vazio 24h) + if cls.in_time_range(0, 0, time, 0, 0) + return ph.VAZIO_NORMAL -MAPPING = {str(Ciclo_Semanal()): Ciclo_Semanal, str(Ciclo_Diario()): Ciclo_Diario} +MAPPING = {str(Ciclo_Semanal()): Ciclo_Semanal, str(Ciclo_Diario()): Ciclo_Diario, str(Ciclo_Semanal_Acores()): Ciclo_Semanal_Acores} From 40cd9377ec2872136dc6e3ebc870abe1bc871698 Mon Sep 17 00:00:00 2001 From: gajotnt Date: Tue, 30 Aug 2022 16:11:53 +0100 Subject: [PATCH 2/2] Update ciclos.py --- pyerse/ciclos.py | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/pyerse/ciclos.py b/pyerse/ciclos.py index 088e1ee..4de6051 100644 --- a/pyerse/ciclos.py +++ b/pyerse/ciclos.py @@ -87,7 +87,7 @@ def get_periodo_horario(cls, time): # Inverno if 0 <= time.weekday() < 5: # Seg a Sex - if cls.in_time_range(9, 30, time, 12, 00) or cls.in_time_range( + if cls.in_time_range(9, 30, time, 12, 0) or cls.in_time_range( 18, 30, time, 21, 0 ): return ph.PONTA @@ -138,7 +138,7 @@ def __str__(self) -> str: def get_periodo_horario(cls, time): if cls.is_summer(time): # Verão - if cls.in_time_range(10, 30, time, 13, 00) or cls.in_time_range( + if cls.in_time_range(10, 30, time, 13, 0) or cls.in_time_range( 19, 30, time, 21, 0 ): return ph.PONTA @@ -177,7 +177,7 @@ def get_periodo_horario(cls, time): if cls.in_time_range(2, 0, time, 6, 0): return ph.SUPER_VAZIO -class Ciclo_Semanal_Acores(Ciclo): + class Ciclo_Semanal_Acores(Ciclo): """Ciclo semanal Açores (os períodos horários diferem entre dias úteis e fim de semana).""" def __str__(self) -> str: @@ -186,7 +186,7 @@ def __str__(self) -> str: @classmethod def get_periodo_horario(cls, time): if cls.is_summer(time): - # Verão (Vazio 24h-7h | Ponta 10h30-15h30) + # Verão if 0 <= time.weekday() < 5: # Seg a Sex if cls.in_time_range(10, 30, time, 15, 30): @@ -195,39 +195,37 @@ def get_periodo_horario(cls, time): 15, 30, time, 0, 0 ): return ph.CHEIAS - if cls.in_time_range(0, 0, time, 7, 0) + if cls.in_time_range(0, 0, time, 7, 0): return ph.VAZIO_NORMAL if time.weekday() == 5: - # Sabado (Vazio 23h-7h e 14h30-19h30) + # Sabado if cls.in_time_range(11, 0, time, 14, 30) or cls.in_time_range( 19, 30, time, 23, 0 ): return ph.CHEIAS if ( - cls.in_time_range(23, 0, time, 11, 0) - or cls.in_time_range(14, 30, time, 19, 30) - ): + cls.in_time_range(23, 0, time, 11, 0): return ph.VAZIO_NORMAL if time.weekday() == 6: - # Domingo (Vazio 24h) - if cls.in_time_range(0, 0, time, 0, 0) + # Domingo + if cls.in_time_range(0, 0, time, 0, 0): return ph.VAZIO_NORMAL else: # Inverno if 0 <= time.weekday() < 5: - # Seg a Sex (vazio 00h-7h | Ponta 18h30-21h30) - if cls.in_time_range(18, 30, time, 21, 30) + # Seg a Sex + if cls.in_time_range(18, 30, time, 21, 30): return ph.PONTA if ( cls.in_time_range(7, 0, time, 18, 30) or cls.in_time_range(21, 30, time, 0, 0) ): return ph.CHEIAS - if cls.in_time_range(0, 0, time, 7, 0) + if cls.in_time_range(0, 0, time, 7, 0): return ph.VAZIO_NORMAL if time.weekday() == 5: - # Sabado (Vazio 23h-11h30 e 13h30-18h) - if cls.in_time_range(11, 30, time, 13, 30) or cls.in_time_range( + # Sabado + if cls.in_time_range(11, 30, time, 13, 0) or cls.in_time_range( 18, 0, time, 23, 0 ): return ph.CHEIAS @@ -237,8 +235,8 @@ def get_periodo_horario(cls, time): ): return ph.VAZIO_NORMAL if time.weekday() == 6: - # Domingo (Vazio 24h) - if cls.in_time_range(0, 0, time, 0, 0) + # Domingo + if cls.in_time_range(0, 0, time, 0, 0): return ph.VAZIO_NORMAL MAPPING = {str(Ciclo_Semanal()): Ciclo_Semanal, str(Ciclo_Diario()): Ciclo_Diario, str(Ciclo_Semanal_Acores()): Ciclo_Semanal_Acores}