From 28d9a26cf12b6d2e0609542be7cc70977b272ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?GOLDERWEB=20=E2=80=93=20Jonathan=20Golder?= Date: Sun, 6 Sep 2015 15:04:49 +0200 Subject: [PATCH] Always handle beginning and ending definitions via setter functions Setter functions for beginning and ending decide wether it is a datetime object or a parseable timestamp string --- red_fam.py | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/red_fam.py b/red_fam.py index 443be72..9cc358b 100644 --- a/red_fam.py +++ b/red_fam.py @@ -4,6 +4,9 @@ from datetime import datetime class RED_FAM: + # Define the timestamp format + __timestamp_format = "%H:%M, %d. %b. %Y (%Z)" + def __init__( self, articlesList, beginning=None, ending=None, status=0 ): """ Generates a new RED_FAM object @@ -18,12 +21,12 @@ class RED_FAM: self.__hash = self.__get_fam_hash( ) if( beginning ): - self.__beginning = beginning + self.add_beginning( beginning ) else: self.__beginning = None if( ending ): - self.__ending = ending + self.add_ending( ending ) else: self.__ending = None @@ -42,32 +45,47 @@ class RED_FAM: return h.hexdigest() - def add_beginning( self, datetime ): + def add_beginning( self, beginning ): """ Adds the beginning date of a redundance diskussion to the object and sets changed to True @param datetime datetime Beginning date of redundance diskussion """ - self.__beginning = datetime + self.__beginning = self.__datetime( beginning ) + self.__changed = True - def add_ending( self, datetime ): + def add_ending( self, ending ): """ Adds the ending date of a redundance diskussion to the object. Also sets the status to __TODO__ STATUS NUMBER and changed to True @param datetime datetime Ending date of redundance diskussion """ - self.__ending = datetime + self.__ending = self.__datetime( ending ) self.__status = 2 #__TODO__ STATUS NUMBER self.__changed = True + + def __datetime( self, timestamp ): + """ + Decides wether given timestamp is a parseable string or a datetime object and returns a datetime object in both cases + @param timestamp datetime Datetime object + str Parseable string with timestamp in format __timestamp_format + + @returns datetime Datetime object + """ + + if( isinstance( timestamp, datetime ) ): + return timestamp + else: + return datetime.strptime( timestamp, type( self ).__timestamp_format ) + def __repr__( self ): if( self.__beginning ): - print( self.__beginning ) beginning = ", beginning=" + repr( self.__beginning ) else: beginning = ""