Package caldavclientlibrary :: Package protocol :: Package webdav :: Module propfind
[hide private]
[frames] | no frames]

Source Code for Module caldavclientlibrary.protocol.webdav.propfind

 1  ## 
 2  # Copyright (c) 2007-2016 Apple Inc. All rights reserved. 
 3  # 
 4  # Licensed under the Apache License, Version 2.0 (the "License"); 
 5  # you may not use this file except in compliance with the License. 
 6  # You may obtain a copy of the License at 
 7  # 
 8  # http://www.apache.org/licenses/LICENSE-2.0 
 9  # 
10  # Unless required by applicable law or agreed to in writing, software 
11  # distributed under the License is distributed on an "AS IS" BASIS, 
12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  # See the License for the specific language governing permissions and 
14  # limitations under the License. 
15  ## 
16   
17  from caldavclientlibrary.protocol.webdav.propfindbase import PropFindBase 
18  from xml.etree.ElementTree import Element 
19  from caldavclientlibrary.protocol.webdav.definitions import davxml 
20  from caldavclientlibrary.protocol.utils.xmlhelpers import BetterElementTree 
21   
22 -class PropFind(PropFindBase):
23
24 - def __init__(self, session, url, depth, props):
25 super(PropFind, self).__init__(session, url, depth) 26 self.props = props 27 28 self.initRequestData()
29
30 - def generateXML(self, os):
31 # Structure of document is: 32 # 33 # <DAV:propfind> 34 # <DAV:prop> 35 # <<names of each property as elements>> 36 # </DAV:prop> 37 # </DAV:propfind> 38 39 # <DAV:propfind> element 40 propfind = Element(davxml.propfind) 41 42 # <DAV:prop> element 43 prop = Element(davxml.prop) 44 propfind.append(prop) 45 46 # Now add each property 47 for propname in self.props: 48 # Add property element taking namespace into account 49 prop.append(Element(propname)) 50 51 # Now we have the complete document, so write it out (no indentation) 52 xmldoc = BetterElementTree(propfind) 53 xmldoc.writeUTF8(os)
54