Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
default_timedelta_datetime=dt.timedelta(hours=1)):
"""
convert a string description of a daterange into start and end datetime
if no description is given, return (today, today + default_timedelta_date)
:param daterange: an iterable of strings that describes `daterange`
:type daterange: tuple
:param locale: locale settings
:type locale: dict
"""
if not daterange:
start = dt.datetime(*dt.date.today().timetuple()[:3])
end = start + default_timedelta_date
else:
start, end, allday = parse_datetime.guessrangefstr(
daterange, locale, default_timedelta_date=default_timedelta_date,
default_timedelta_datetime=default_timedelta_datetime,
)
return start, end
if choice == 'no':
return True
if choice in ['quit', 'done']:
return False
edited = False
if choice == "Delete":
if confirm("Delete all occurences of event?"):
collection.delete(event.href, event.etag, event.calendar)
return True
elif choice == "datetime range":
current = event.format("{start} {end}", relative_to=now)
value = prompt("datetime range", default=current)
try:
start, end, allday = parse_datetime.guessrangefstr(value, locale)
event.update_start_end(start, end)
edited = True
except: # noqa
echo("error parsing range")
elif choice == "repeat":
recur = event.recurobject
freq = recur["freq"] if "freq" in recur else ""
until = recur["until"] if "until" in recur else ""
if not freq:
freq = 'None'
freq = prompt('frequency (or "None")', freq)
if freq == 'None':
event.update_rrule(None)
else:
until = prompt('until (or "None")', until)
if until == 'None':
summary = info.get('summary')
if not summary:
summary = None
info['summary'] = prompt('summary', default=summary)
if info['summary']:
break
echo("a summary is required")
while True:
range_string = None
if info.get('dtstart') and info.get('dtend'):
start_string = info["dtstart"].strftime(conf['locale']['datetimeformat'])
end_string = info["dtend"].strftime(conf['locale']['datetimeformat'])
range_string = start_string + ' ' + end_string
daterange = prompt("datetime range", default=range_string)
start, end, allday = parse_datetime.guessrangefstr(
daterange, conf['locale'], adjust_reasonably=True)
info['dtstart'] = start
info['dtend'] = end
info['allday'] = allday
if info['dtstart'] and info['dtend']:
break
echo("invalid datetime range")
while True:
tz = info.get('timezone') or conf['locale']['default_timezone']
timezone = prompt("timezone", default=str(tz))
try:
tz = pytz.timezone(timezone)
info['timezone'] = tz
break
except pytz.UnknownTimeZoneError: