Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
edited = True
elif choice == "alarm":
default_alarms = []
for a in event.alarms:
s = parse_datetime.timedelta2str(-1 * a[0])
default_alarms.append(s)
default = ', '.join(default_alarms)
if not default:
default = 'None'
alarm = prompt('alarm (or "None")', default)
if alarm == "None":
alarm = ""
alarm_list = []
for a in alarm.split(","):
alarm_trig = -1 * parse_datetime.guesstimedeltafstr(a.strip())
new_alarm = (alarm_trig, event.description)
alarm_list += [new_alarm]
event.update_alarms(alarm_list)
edited = True
else:
attr = options[choice]["attr"]
default = getattr(event, attr)
question = choice
allow_none = False
if "none" in options[choice] and options[choice]["none"]:
question += ' (or "None")'
allow_none = True
if not default:
default = 'None'
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':
until = None
rrule = parse_datetime.rrulefstr(freq, until, locale)
event.update_rrule(rrule)
edited = True
elif choice == "alarm":
default_alarms = []
for a in event.alarms:
s = parse_datetime.timedelta2str(-1 * a[0])
default_alarms.append(s)
default = ', '.join(default_alarms)
if not default:
default = 'None'
alarm = prompt('alarm (or "None")', default)
if alarm == "None":
alarm = ""
alarm_list = []
for a in alarm.split(","):
alarm_trig = -1 * parse_datetime.guesstimedeltafstr(a.strip())
new_alarm = (alarm_trig, event.description)
alarm_list += [new_alarm]
event.update_alarms(alarm_list)
edited = True
else:
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':
until = None
rrule = parse_datetime.rrulefstr(freq, until, locale)
event.update_rrule(rrule)
edited = True
elif choice == "alarm":
default_alarms = []
for a in event.alarms:
s = parse_datetime.timedelta2str(-1 * a[0])
default_alarms.append(s)
default = ', '.join(default_alarms)
if not default:
default = 'None'
alarm = prompt('alarm (or "None")', default)
if alarm == "None":
alarm = ""
alarm_list = []
for a in alarm.split(","):
def format_day(day, format_string, locale, attributes=None):
if attributes is None:
attributes = {}
attributes["date"] = day.strftime(locale['dateformat'])
attributes["date-long"] = day.strftime(locale['longdateformat'])
attributes["name"] = parse_datetime.construct_daynames(day)
colors = {"reset": style("", reset=True), "bold": style("", bold=True, reset=False)}
for c in ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"]:
colors[c] = style("", reset=False, fg=c)
colors[c + "-bold"] = style("", reset=False, fg=c, bold=True)
attributes.update(colors)
try:
return format_string.format(**attributes) + colors["reset"]
except (KeyError, IndexError):
raise KeyError("cannot format day with: %s" % format_string)
def new_interactive(collection, calendar_name, conf, info, location=None,
categories=None, repeat=None, until=None, alarms=None,
format=None, env=None):
try:
info = parse_datetime.eventinfofstr(
info, conf['locale'],
conf['default']['default_event_duration'],
conf['default']['default_dayevent_duration'],
adjust_reasonably=True, localize=False,
)
except DateTimeParseError:
info = dict()
while True:
summary = info.get('summary')
if not summary:
summary = None
info['summary'] = prompt('summary', default=summary)
if info['summary']:
break
echo("a summary is required")
if daterange is not None:
if day_format is None:
day_format = conf['view']['agenda_day_format']
start, end = start_end_from_daterange(
daterange, conf['locale'],
default_timedelta_date=conf['default']['timedelta'],
default_timedelta_datetime=conf['default']['timedelta'],
)
logger.debug('Getting all events between {} and {}'.format(start, end))
elif datepoint is not None:
if not datepoint:
datepoint = ['now']
try:
start, allday = parse_datetime.guessdatetimefstr(
datepoint, conf['locale'], dt.date.today(),
)
except ValueError:
raise FatalError('Invalid value of `{}` for a datetime'.format(' '.join(datepoint)))
if allday:
logger.debug('Got date {}'.format(start))
raise FatalError('Please supply a datetime, not a date.')
end = start + dt.timedelta(seconds=1)
if day_format is None:
day_format = style(
start.strftime(conf['locale']['longdatetimeformat']),
bold=True,
)
logger.debug('Getting all events between {} and {}'.format(start, end))
event_column = []