Hello everyone!
I created some code recently to parse a string and create a timedelta from it.
Right now it only accepts positive integers, and only hours, minutes and
seconds, but I think it could be easily extended to support everything that
timedelta accepts.
time_delta_regex = re.compile(
r'((?P<hours>\d+?)h)?((?P<minutes>\d+?)m)?((?P<seconds>\d+?)s)?' )
def parseTimeDelta( value ):
timedelta_params = value
if isinstance( value, basestring ):
parts = time_delta_regex.match( value )
if not parts:
return None
parts = parts.groupdict()
timedelta_params = {}
for ( name, param ) in parts.iteritems():
if param:
timedelta_params[ name ] = int( param )
return datetime.timedelta( **timedelta_params )
parseTimeDelta("5h32m15s")
I was thinking this conversion could be very useful to lots of people, and so I
thought about proposing it as an enhancement to the standard library.
But before doing anything, I thought it would be a good idea to see what people
here think.
I think this would be a nice addition as a constructor of the timedelta class,
but I'm not sure if it would conflict with any existing code. I can't see any
downside to including this in the constructor or as a separate function.
So, what do you guys think?
--
https://mail.python.org/mailman/listinfo/python-list