découpage de get_all_slots() (#76335) #67
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/76335-Decoupage-de-get-all-slots-en-de"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1ère étape bouger get_all_slots() et ses amis dans la classe Agenda.
208ee1a111
to8c164a6020
8c164a6020
to1133be3e3b
0d40104eb2
to55499a2a28
55499a2a28
tof97da02549
f97da02549
toab495ea81e
ab495ea81e
to03798fe212
03798fe212
to5ab306735a
5ab306735a
to1aaef3ba4c
WIP: découpage de get_all_slots() (#76335)to découpage de get_all_slots() (#76335)Pas de découpage finalement mais un peu de rangement avec get_min_datetime()/get_max_datetime() et get_all_slots() qui atterrissent dans les méthodes Agenda où il aurait du être.
Au final ce n'est pas évident de trouver les choses communes, mais en dupliquant une fois puis en revenant dessus on devrait y arriver, plus tard; get_free_time() ne servira de toute façon qu'au code spécifique ANTS.
SharedTimePeriod.get_time_slots() pourrait par contre être reconstruit facilement au dessus de SharedTimePerdio.get_intervals() en plus clair, on verra plus tard.
J'ai importé les outils de test de #17685 et complété l'implémentation de IntervalSet pour les besoins de get_free_time().
(relecture non exhaustive)
"8c390b9e315f dd helper method to build meeting agenda" : quelque remarques sur les add_*, mais globalement ok parce que c'est compréhensible lorsqu'on lit un test qui utilise une de ces méthode.
Par contre pas fan du tout des build_*, dont on a en gros aucune idée de ce que ça fait excatement, ce qui obligera le relecteur d'un test à interrompre sa lecture pour aller comprendre ce qui se passe dans la méthode build_machin.
1aaef3ba4cf815ec74 : l'unique test utilise un agenda virtuel (plutôt qu'un agenda simple), vraiment pas idéal pour comprendre, possible d'ajouter des petits tests sur des cas bateaux ?
Global : les typing.Whatever, j'aimerais qu'on ait une discussion globale à ce sujet qu'on s'accorde ou pas pour introduire ce genre de choses dans Publik, plutôt que voir ça introduit ici ou là par ceux à qui ça plaît.
Clairement c'est totalement l'effet contraire de ce que je souhaite qui est qu'on doit comprendre intuitivement immédiatement le contexte dans lequel on se trouve concernant les données; donc bien content que tu le dises.
Si j'enlève toute magie, c'est à dire si la description complète de l'agenda, rendu succincte, est présente dans les appels ce serait plus acceptable ? Genre:
Ok.
À part typing.NamedTuple qui fait quelque chose mais est strictement équivalent à collections.namedtuple() en étant plus lisible, les autres c'est purement de la doc, particulièrement pour les unions je trouve ça pratique de pouvoir décrire qu'un truc peut-être ceci ou cela dans des fonctions qui sont faites pour faciliter l'écriture des tests et leur lecture. Ensuite c'est dans les tests, je pense qu'on peut être plus souple là.
"Si j'enlève toute magie, c'est à dire si la description complète de l'agenda, rendu succincte, est présente dans les appels ce serait plus acceptable ? Genre:"
Oui beaucoup mieux.
"À part typing.NamedTuple " : ok.
1aaef3ba4c
to067574a813
Voilà, plus de magie que de l'explicite. Concernant le code en lui même et pas juste la partie dans les tests ça ne touche à aucun chemin du code actuellement utilisé; si on exclut le déplacement get_all_slots() qui n'a pas été modifiée.
067574a813
toc1766854a6
c1766854a6
to8748be2b22
@ -1111,0 +1157,4 @@
It if is booked, report the slot as full.
"""
assert self.kind != 'events', 'get_all_slots() does not work on events agendas'
Assert introduit en douce alors qu'il est question de déplacer la méthode...
J'ai retiré le assert et rebasé.
Pour la prochaine.
8748be2b22
to85de60141d
85de60141d
to1c898427cd
1c898427cd
to0ed652c058