Ignore:
Timestamp:
09/07/12 15:25:20 (7 years ago)
Author:
mnagni
Message:

0.0.5

  • Fixed QueryTag?.queryWithRoleRequest bug when params_values[param.par_name] == None
  • Small refactoring removing code from os_request and creating with it in osqyery a method called createTemplateQuery
  • Refactored many "if item" to "if item is not None"
  • Rewritten atom.link and atom.person modules
File:
1 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/CedaMarkup/trunk/ceda_markup/atom/person.py

    r8369 r8452  
    3131@author: Maurizio Nagni 
    3232''' 
    33 from xml.etree.ElementTree import SubElement, Element 
    34 from abc import abstractmethod 
     33from ceda_markup.markup import createMarkup 
     34from ceda_markup.atom.atom import ATOM_NAMESPACE, ATOM_PREFIX 
    3535 
    36 class Person(object): 
    37     ''' 
    38     classdocs 
    39     ''' 
     36def _createPerson(markup, uri = None, email = None): 
     37    if uri is not None: 
     38        markup.set('uri', uri)         
    4039 
     40    if email is not None: 
     41        markup.set('email', email) 
     42    return markup 
     43     
    4144 
    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 
     45def createAuthor(root = None, ns = ATOM_NAMESPACE, uri = None, email = None): 
     46    markup = createMarkup('author', ATOM_PREFIX, ns, root) 
     47    return _createPerson(markup, uri, email) 
    6748 
    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')         
     49def createContributor(root = None, ns = ATOM_NAMESPACE, uri = None, email = None): 
     50    markup = createMarkup('contributor', ATOM_PREFIX, ns, root) 
     51    return _createPerson(markup, uri, email)         
Note: See TracChangeset for help on using the changeset viewer.