Changeset 8452
- Timestamp:
- 09/07/12 15:25:20 (9 years ago)
- Location:
- mauRepo/CedaMarkup/trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
mauRepo/CedaMarkup/trunk/CHANGES
r8420 r8452 8 8 0.0.3 9 9 Added GML ValidationTime 10 major refactoring (not compatible with previous version) 10 major refactoring (not compatible with previous version) 11 12 0.0.5 13 - Fixed QueryTag.queryWithRoleRequest bug when params_values[param.par_name] == None 14 - Small refactoring removing code from os_request and creating with it in osqyery a method called createTemplateQuery 15 - Refactored many "if item" to "if item is not None" 16 - Rewritten atom.link and atom.person modules -
mauRepo/CedaMarkup/trunk/ceda_markup/atom/atom.py
r8418 r8452 31 31 @author: Maurizio Nagni 32 32 ''' 33 from xml.etree.ElementTree import Element, SubElement, _ElementInterface33 from xml.etree.ElementTree import SubElement 34 34 from ceda_markup.markup import createMarkup 35 35 … … 50 50 doc_id.text = iid 51 51 52 if subtitle :52 if subtitle is not None: 53 53 subtitle = SubElement(top, 'subtitle') 54 54 subtitle.text = subtitle 55 55 56 if rights :56 if rights is not None: 57 57 rights = SubElement(top, 'rights') 58 58 rights.text = rights -
mauRepo/CedaMarkup/trunk/ceda_markup/atom/entry.py
r8418 r8452 55 55 markup.append(updated) 56 56 57 if author :57 if author is not None: 58 58 if isinstance(author, list): 59 59 extendElement(markup, author) … … 61 61 markup.append(author) 62 62 63 if content :63 if content is not None: 64 64 markup.append(content) 65 65 … … 67 67 markup.append(link) 68 68 69 if published :69 if published is not None: 70 70 markup.append(published) 71 71 -
mauRepo/CedaMarkup/trunk/ceda_markup/atom/link.py
r8369 r8452 31 31 @author: Maurizio Nagni 32 32 ''' 33 from xml.etree.ElementTree import Element 33 from ceda_markup.atom.atom import ATOM_ROOT_TAG, ATOM_NAMESPACE, ATOM_PREFIX 34 from ceda_markup.markup import createMarkup 34 35 35 class Link(object): 36 REL_ALTERNATE = 'alternate' 37 REL_ENCLOSURE = 'enclosure' 38 REL_RELATED = 'related' 39 REL_SELF = 'self' 40 REL_VIA = 'via' 41 REL_SEARCH = 'search' 42 REL_FIRST = 'first' 43 REL_NEXT = 'next' 44 REL_LAST = 'last' 45 REL = [REL_ALTERNATE, REL_ENCLOSURE, REL_RELATED, REL_SELF, REL_VIA, REL_SEARCH, REL_FIRST, REL_NEXT, REL_LAST] 46 47 def createLink(href, root = None, ns = ATOM_NAMESPACE, rel = None, itype = None, hreflang = None, title = None, length = None): 48 36 49 ''' 37 classdocs 38 ''' 39 40 REL_ALTERNATE = 'alternate' 41 REL_ENCLOSURE = 'enclosure' 42 REL_RELATED = 'related' 43 REL_SELF = 'self' 44 REL_VIA = 'via' 45 REL_SEARCH = 'search' 46 REL_FIRST = 'first' 47 REL_NEXT = 'next' 48 REL_LAST = 'last' 49 REL = [REL_ALTERNATE, REL_ENCLOSURE, REL_RELATED, REL_SELF, REL_VIA, REL_SEARCH, REL_FIRST, REL_NEXT, REL_LAST] 50 51 52 def __init__(self, href, rel = None, type = None, hreflang = None, title = None, length = None): 53 ''' 54 Constructor 55 @param root: the document root element where attach the prefix:namespace for this element 56 @param href: 50 @param href: 51 @param root: the document root element where attach the prefix:namespace for this element 57 52 @param rel: one of the Link.REL constants 58 53 @param type: 59 54 @param hreflang: 60 55 @param title: an atom.Title instance 61 @param length: length of the resource in bytes 62 ''' 63 self.href = href 56 @param length: length of the resource in bytes 57 ''' 58 markup = createMarkup('link', ATOM_PREFIX, ns, root) 59 markup.set('href', href) 60 61 if rel is not None: 62 markup.set('rel', rel) 64 63 65 if rel and rel in Link.REL:66 self.rel = rel67 68 if type:69 self.type = type64 if itype is not None: 65 markup.set('type', itype) 66 67 if hreflang is not None: 68 markup.set('hreflang', hreflang) 70 69 71 if hreflang:72 self.hreflang = hreflang73 74 if title:75 self.title = title70 if title is not None: 71 markup.set('title', title) 72 73 if length is not None: 74 markup.set('length', length) 76 75 77 if length: 78 self.length = length 79 80 def buildElement(self): 81 link = Element("link") 82 link.set('href', self.href) 83 84 if hasattr(self, 'rel'): 85 link.set('rel', self.rel) 86 87 if hasattr(self, 'type'): 88 link.set('type', self.type) 89 90 if hasattr(self, 'hreflang'): 91 link.set('hreflang', self.hreflang) 92 93 if hasattr(self, 'title'): 94 link.set('title', self.title) 95 96 if hasattr(self, 'length'): 97 link.set('length', self.length) 98 99 return link 76 return markup -
mauRepo/CedaMarkup/trunk/ceda_markup/atom/person.py
r8369 r8452 31 31 @author: Maurizio Nagni 32 32 ''' 33 from xml.etree.ElementTree import SubElement, Element34 from abc import abstractmethod33 from ceda_markup.markup import createMarkup 34 from ceda_markup.atom.atom import ATOM_NAMESPACE, ATOM_PREFIX 35 35 36 class Person(object): 37 ''' 38 classdocs 39 ''' 36 def _createPerson(markup, uri = None, email = None): 37 if uri is not None: 38 markup.set('uri', uri) 40 39 40 if email is not None: 41 markup.set('email', email) 42 return markup 43 41 44 42 def __init__(self, name, uri = None, email = None): 43 ''' 44 Constructor 45 ''' 46 self.name = name 47 48 if uri: 49 self.uri = uri 50 51 if email: 52 self.email = email 53 54 def buildElement(self): 55 entry = self.buildRoot() 56 57 name = SubElement(entry, 'name') 58 name.text = self.name 59 60 if hasattr(self, 'uri'): 61 uri = SubElement(entry, 'uri') 62 uri.text = self.uri 63 64 if hasattr(self, 'email'): 65 email = SubElement(entry, 'email') 66 email.text = self.email 45 def createAuthor(root = None, ns = ATOM_NAMESPACE, uri = None, email = None): 46 markup = createMarkup('author', ATOM_PREFIX, ns, root) 47 return _createPerson(markup, uri, email) 67 48 68 @abstractmethod 69 def buildRoot(self): 70 """ 71 Build the Element root for this instance 72 """ 73 pass 74 75 class Author(Person): 76 ''' 77 classdocs 78 ''' 79 80 def __init__(self, name, uri = None, email = None): 81 super(Author, self).__init__(name, uri, email) 82 83 def buildRoot(self): 84 return Element('author') 85 86 class Contributor(Person): 87 ''' 88 classdocs 89 ''' 90 91 def __init__(self, name, uri = None, email = None): 92 super(Contributor, self).__init__(name, uri, email) 93 94 def buildRoot(self): 95 return Element('author') 49 def createContributor(root = None, ns = ATOM_NAMESPACE, uri = None, email = None): 50 markup = createMarkup('contributor', ATOM_PREFIX, ns, root) 51 return _createPerson(markup, uri, email) -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/os_engine.py
r8418 r8452 68 68 if item.extension == mimetype: 69 69 response = item 70 if response :70 if response is not None: 71 71 kwargs['params_values'] = params_values 72 72 queries = QueryTag.queryWithRoleRequest(mimetype, self.osRequest.query.params_model, params_values) -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/os_request.py
r8447 r8452 84 84 self.os_adult_content = '1' 85 85 86 if os_description :86 if os_description is not None: 87 87 self.os_description = os_description[:MAX_OS_DESCRIPTION_LEN] 88 88 89 if os_short_name :89 if os_short_name is not None: 90 90 self.os_short_name = os_short_name[:MAX_OS_SHORT_NAME_LEN] 91 91 92 92 #Should check that is an email format 93 if os_contact :93 if os_contact is not None: 94 94 self.os_contact = os_contact 95 95 96 if os_tags :96 if os_tags is not None: 97 97 self.os_tags = os_tags[:MAX_OS_TAGS_LEN] 98 98 99 if os_long_name :99 if os_long_name is not None: 100 100 self.os_long_name = os_long_name[:MAX_OS_LONG_NAME_LEN] 101 101 102 if os_developer :102 if os_developer is not None: 103 103 self.os_developer = os_developer[:MAX_OS_DEVELOPER_LEN] 104 104 105 if os_attribution :105 if os_attribution is not None: 106 106 self.os_attribution = os_attribution[:MAX_OS_ATTRIBUTION_LEN] 107 107 … … 109 109 self.os_syndacation_right = os_syndacation_right 110 110 111 if os_adult_content and os_adult_content in ['false', 'FALSE', '0', 'no', 'NO']:111 if os_adult_content is not None and os_adult_content in ['false', 'FALSE', '0', 'no', 'NO']: 112 112 # should be set to False but because of 113 113 # http://code.google.com/p/gdata-python-client/issues/detail?id=611 … … 204 204 url.set("type", get_mimetype(response_type)) 205 205 206 template_query = "" 207 for param in self.query.params_model: 208 term = self._assignPrefix(root, param) 209 210 urlParam = "" 211 if param.required: 212 urlParam = ("%s={%s}") % (param.par_name, term) 213 else: 214 urlParam = ("%s={%s?}") % (param.par_name, term) 215 216 template_query += ("%s&") % (urlParam) 206 template_query = self.query.createTemplateQuery(root) 207 217 208 query_template = ("%s%s?%s") % (ospath, response_type, template_query[:-1]) 218 209 url.set("template", query_template) 219 210 220 if rel and rel != URL_REL_DEFAULT:211 if rel is not None and rel != URL_REL_DEFAULT: 221 212 url.set("rel", rel) 222 213 223 if indexOffset and indexOffset != URL_INDEX_OFFSET_DEFAULT:214 if indexOffset is not None and indexOffset != URL_INDEX_OFFSET_DEFAULT: 224 215 url.set("indexOffset", str(indexOffset)) 225 216 226 if pageOffset and pageOffset != URL_PAGE_OFFSET_DEFAULT:217 if pageOffset is not None and pageOffset != URL_PAGE_OFFSET_DEFAULT: 227 218 url.set("pageOffset", str(pageOffset)) 228 219 -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/os_response.py
r8369 r8452 81 81 82 82 def createDocument(self, totalResults = None, startIndex = None, itemsPerPage = None, query = None): 83 if totalResults :83 if totalResults is not None: 84 84 os_totalResults = SubElement(self._root, OpenSearchResponse.assignPrefix('totalResults')) 85 85 os_totalResults.text = totalResults 86 86 87 if startIndex :87 if startIndex is not None: 88 88 os_startIndex = SubElement(self._root, OpenSearchResponse.assignPrefix('startIndex')) 89 89 os_startIndex.text = startIndex 90 90 91 if itemsPerPage :91 if itemsPerPage is not None: 92 92 os_itemsPerPage = SubElement(self._root, OpenSearchResponse.assignPrefix('itemsPerPage')) 93 93 os_itemsPerPage.text = itemsPerPage -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/osimage.py
r8369 r8452 51 51 def buildElement(self): 52 52 url = Element("Image") 53 if self.height and isinstance(self.height, (int, long)):53 if self.height is not None and isinstance(self.height, (int, long)): 54 54 url.set("height", self.height) 55 55 56 if self.width and isinstance(self.width, (int, long)):56 if self.width is not None and isinstance(self.width, (int, long)): 57 57 url.set("width", self.width) 58 58 -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/osquery.py
r8369 r8452 56 56 self.params_model = params_model 57 57 58 if rel and rel in URL_REL:58 if rel is not None and rel in URL_REL: 59 59 self.rel = rel 60 60 else: 61 61 self.rel = URL_REL_DEFAULT 62 62 63 if indexOffset and isinstance(indexOffset, (int, long)) and indexOffset > 0:63 if indexOffset is not None and isinstance(indexOffset, (int, long)) and indexOffset > 0: 64 64 self.indexOffset = indexOffset 65 65 else: 66 66 self.indexOffset = URL_INDEX_OFFSET_DEFAULT 67 67 68 if pageOffset and isinstance(pageOffset, (int, long)) and pageOffset > 0:68 if pageOffset is not None and isinstance(pageOffset, (int, long)) and pageOffset > 0: 69 69 self.pageOffset = pageOffset 70 70 else: … … 75 75 pass 76 76 77 77 def createTemplateQuery(self, root): 78 ''' 79 Creates a string to be used as parameters template list in the "description". 80 As this description is used in a OpenSearch URL tag, the root parameter is required 81 in order to update the tag with the necessary namespaces 82 @param root: the OpenSearchRequest.ROOT_TAG tag. 83 @return: a string describing the parameters query 84 ''' 85 template_query = "" 86 for param in self.query.params_model: 87 term = self._assignPrefix(root, param) 88 89 urlParam = "" 90 if param.required: 91 urlParam = ("%s={%s}") % (param.par_name, term) 92 else: 93 urlParam = ("%s={%s?}") % (param.par_name, term) 94 95 template_query += ("%s&") % (urlParam) 96 return template_query -
mauRepo/CedaMarkup/trunk/ceda_markup/opensearch/query.py
r8369 r8452 50 50 os_query.set("role", "request") 51 51 for param in params_model: 52 if param.par_name in params_values :52 if param.par_name in params_values and params_values[param.par_name] is not None: 53 53 if param.term_name == 'searchTerms': 54 54 os_query.set(param.term_name, ' '.join(str(x) for x in params_values[param.par_name]))
Note: See TracChangeset
for help on using the changeset viewer.