Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if limit is not None:
try:
[nresults_el] = list(limit)
except ValueError:
raise webdav.BadRequestError(
'Invalid number of subelements in limit')
try:
nresults = int(nresults_el.text)
except ValueError:
raise webdav.BadRequestError(
'nresults not a number')
else:
nresults = None
i = 0
async for (href, resource) in webdav.traverse_resource(
base_resource, base_href, depth):
if not apply_filter(filter_el, resource):
continue
if nresults is not None and i >= nresults:
break
propstat = davcommon.get_properties_with_data(
self.data_property, href, resource, properties, environ,
requested)
yield webdav.Status(
href, '200 OK', propstat=[s async for s in propstat])
i += 1
raise webdav.BadRequestError(
'Unknown tag %s in report %s' % (el.tag, self.name))
if tztext is not None:
tz = get_pytz_from_text(tztext)
else:
tz = get_calendar_timezone(base_resource)
def filter_fn(cls):
return parse_filter(filter_el, cls(tz))
def members(collection):
return itertools.chain(
collection.calendar_query(filter_fn),
collection.subcollections())
async for (href, resource) in webdav.traverse_resource(
base_resource, base_href, depth,
members=members):
# Ideally traverse_resource would only return the right things.
if getattr(resource, 'content_type', None) == 'text/calendar':
propstat = davcommon.get_properties_with_data(
self.data_property, href, resource, properties, environ,
requested)
yield webdav.Status(
href, '200 OK', propstat=[s async for s in propstat])
tz = get_calendar_timezone(base_resource)
def tzify(dt):
return as_tz_aware_ts(dt, tz).astimezone(pytz.utc)
(start, end) = _parse_time_range(requested)
assert start.tzinfo
assert end.tzinfo
ret = ICalendar()
ret['VERSION'] = '2.0'
ret['PRODID'] = PRODID
fb = FreeBusy()
fb['DTSTAMP'] = vDDDTypes(tzify(datetime.datetime.now()))
fb['DTSTART'] = vDDDTypes(start)
fb['DTEND'] = vDDDTypes(end)
fb['FREEBUSY'] = [item async for item in iter_freebusy(
webdav.traverse_resource(base_resource, base_href, depth),
start, end, tzify)]
ret.add_component(fb)
return webdav.Response(status='200 OK', body=[ret.to_ical()])