Log ma się gdzieś zapisywać (z możliwością wczytania go po restarcie aplikacji), w formie ciągłej (wszystko ładnie po kolei).
Log ma dotyczyć całego batcha
Powinno to być zaimplementowane w formie funkcji, która byłaby potem uruchamiana w innych funkcjach (np. w funkcji szkol_droidy() znalazłoby się wywołanie funkcji generującej log z argumentem message: f"{datetime}\nWysłano batch o numerze {batch.number} na szkolenie x.\n".
Funkcja generująca log powinna więc być dość uniwersalna, by uwzględniała różne jej wykorzystania. Na pewno można dorzucić do niej wspomniany argument z wiadomością, co ma się zawierać w logu.
Z powyższego wynika też, że użytkownik aplikacji powinien mieć możliwość interakcji z logiem - czyli to użytkownik może (ale nie musi) chcieć wpisać wiadomość lub czas do logu.
Użytkownik powinien móc też wybrać (pytanie się użytkownika o to w konsoli i prośba o wybór opcji), czy chce do logu przypisać czas wywołania funkcji (now() w module datetime) czy przypisać czas do logu własnoręcznie. Należy wówczas wyświetlić instrukcję w konsoli, w jakim formacie ten czas powinien być wpisany. Dodać do tej opcji prostą obsługę wyjątków, która prosiłaby użytkownika o wprowadzenie czasu ponownie, gdyby nie zrobił tego w pożądanym formacie.
Log powinien być uporządkowany chronologicznie. Można to osiągnąć poprzez zapisywanie go w formie DataFrame'u z kolumnami Time, Batch i Message, a później eksportowanie tego DataFrame'u do csv (df.to_csv()).
Log ma się gdzieś zapisywać (z możliwością wczytania go po restarcie aplikacji), w formie ciągłej (wszystko ładnie po kolei).
Log ma dotyczyć całego batcha
Powinno to być zaimplementowane w formie funkcji, która byłaby potem uruchamiana w innych funkcjach (np. w funkcji szkol_droidy() znalazłoby się wywołanie funkcji generującej log z argumentem message: f"{datetime}\nWysłano batch o numerze {batch.number} na szkolenie x.\n".
Funkcja generująca log powinna więc być dość uniwersalna, by uwzględniała różne jej wykorzystania. Na pewno można dorzucić do niej wspomniany argument z wiadomością, co ma się zawierać w logu.
Z powyższego wynika też, że użytkownik aplikacji powinien mieć możliwość interakcji z logiem - czyli to użytkownik może (ale nie musi) chcieć wpisać wiadomość lub czas do logu.
Użytkownik powinien móc też wybrać (pytanie się użytkownika o to w konsoli i prośba o wybór opcji), czy chce do logu przypisać czas wywołania funkcji (now() w module datetime) czy przypisać czas do logu własnoręcznie. Należy wówczas wyświetlić instrukcję w konsoli, w jakim formacie ten czas powinien być wpisany. Dodać do tej opcji prostą obsługę wyjątków, która prosiłaby użytkownika o wprowadzenie czasu ponownie, gdyby nie zrobił tego w pożądanym formacie.
Log powinien być uporządkowany chronologicznie. Można to osiągnąć poprzez zapisywanie go w formie DataFrame'u z kolumnami Time, Batch i Message, a później eksportowanie tego DataFrame'u do csv (df.to_csv()).