Changeset 6913 for TI12-security


Ignore:
Timestamp:
01/06/10 11:25:08 (9 years ago)
Author:
pjkersha
Message:

Incomplete - task 6: Put NDG SAML package on PyPI

  • updating epydoc for 'etree' package
Location:
TI12-security/trunk/ndg_saml/ndg/saml
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/ndg_saml/ndg/saml/saml2/core.py

    r6911 r6913  
    33903390        @raise TypeError: incorrect type for attributes list 
    33913391        ''' 
    3392         if not isinstance(value, TypedList): 
    3393             raise TypeError('Expecting %r type for "attributes"; got %r' % 
    3394                             (TypedList, (type))) 
    3395          
    3396         if not issubclass(value.elementType, Attribute): 
     3392        if isinstance(value, TypedList) and not issubclass(value.elementType,  
     3393                                                           Attribute): 
    33973394            raise TypeError('Expecting %r derived type for "attributes" ' 
    33983395                            'elements; got %r' % (Attribute, value.elementType)) 
    3399              
    3400         self.__attributes = value 
    3401  
     3396        else: 
     3397            self.__attributes = TypedList(Attribute) 
     3398            for i in value: 
     3399                self.__attributes.append(i) 
     3400             
    34023401    attributes = property(fget=_getAttributes,  
    34033402                          fset=_setAttributes,  
     
    40154014    @type TYPE_LOCAL_NAME: string 
    40164015    @cvar TYPE_NAME: QName of the XSI type. 
    4017     @type TYPE_NAME: string 
     4016    @type TYPE_NAME: ndg.saml.common.xml.QName 
    40184017    @cvar ID_ATTRIB_NAME: ID attribute name 
    40194018    @type ID_ATTRIB_NAME: string 
     
    40434042    @type INAPPLICABLE_CONSENT: string 
    40444043 
     4044    @ivar __version: SAML version 
     4045    @type __version: string 
     4046    @ivar __id: response identifier 
     4047    @type __id: string 
     4048    @ivar __inResponseTo: identifier corresponding to the query this response is 
     4049    responding to 
     4050    @type __inResponseTo: string 
     4051    @ivar __issueInstant: issue instant for the response 
     4052    @type __issueInstant: datetime.datetime 
     4053    @ivar __destination: destination for the response 
     4054    @type __destination: string 
     4055    @ivar __consent: consent information 
     4056    @type __consent: string 
     4057    @ivar __issuer: issuer identifier 
     4058    @type __issuer: ndg.saml.saml2.core.Issuer 
     4059    @ivar __status: status of the response 
     4060    @type __status: ndg.saml.saml2.core.Status 
     4061    @ivar __extensions: response extensions 
     4062    @type __extensions: list or tuple 
    40454063    ''' 
    40464064 
     
    41054123     
    41064124    def __init__(self, **kw): 
     4125        ''' 
     4126        @param **kw: keywords for initialisation of superclass 
     4127        @type **kw: dict 
     4128        ''' 
    41074129        super(StatusResponseType, self).__init__(**kw) 
    41084130         
     
    41364158     
    41374159    def _get_version(self): 
    4138         '''@return: the SAML Version of this response. 
     4160        '''@return: the SAML Version of this response 
     4161        @rtype: string 
    41394162        ''' 
    41404163        return self.__version 
     
    41424165    def _set_version(self, version): 
    41434166        '''@param version: the SAML Version of this response 
     4167        @type version: basestring 
     4168        @raise TypeError: incorrect type for input version  
    41444169        ''' 
    41454170        if not isinstance(version, SAMLVersion): 
     
    41574182         
    41584183        @return: the ID of this response 
     4184        @rtype: basestring 
    41594185        ''' 
    41604186        return self.__id 
     
    41644190         
    41654191        @param value: the ID of this response 
     4192        @type value: basestring 
     4193        @raise TypeError: incorrect type for input value 
    41664194        ''' 
    41674195        if not isinstance(value, basestring): 
     
    41774205        @return: the unique identifier of the originating  
    41784206        request 
     4207        @rtype: basestring 
    41794208        ''' 
    41804209        return self.__inResponseTo 
     
    41854214        @param value: the unique identifier of the originating  
    41864215        request 
     4216        @type value: basestring 
     4217        @raise TypeError: incorrect type for input value 
    41874218        ''' 
    41884219        if not isinstance(value, basestring): 
     
    41974228 
    41984229    def _get_issueInstant(self): 
    4199         '''Gets the issue instance of this response. 
    4200          
    4201         @return: the issue instance of this response''' 
     4230        '''Gets the issue instant of this response. 
     4231         
     4232        @return: the issue instant of this response 
     4233        @rtype: datetime.datetime''' 
    42024234        return self.__issueInstant 
    42034235     
    42044236    def _set_issueInstant(self, issueInstant): 
    4205         '''Sets the issue instance of this response. 
    4206          
    4207         @param newIssueInstance: the issue instance of this response 
     4237        '''Set the issue instant of this response 
     4238         
     4239        @param issueInstant: the issue instance of this response 
     4240        @type issueInstant: datetime.datetime 
     4241        @raise TypeError: incorrect type for input value 
    42084242        ''' 
    42094243        if not isinstance(issueInstant, datetime): 
     
    42214255         
    42224256        @return: the URI of the destination of the response 
     4257        @rtype: basestring 
    42234258        ''' 
    42244259        return self.__destination 
     
    42274262        '''Sets the URI of the destination of the response. 
    42284263         
    4229         @param value: the URI of the destination of the response''' 
     4264        @param value: the URI of the destination of the response 
     4265        @type value: basestring 
     4266        @raise TypeError: incorrect type for input value 
     4267        ''' 
    42304268        if not isinstance(value, basestring): 
    42314269            raise TypeError('Expecting basestring derived type for ' 
     
    42384276      
    42394277    def _get_consent(self): 
    4240         '''Gets the consent obtained from the principal for sending this  
    4241         response. 
     4278        '''Get the consent obtained from the principal for sending this  
     4279        response 
    42424280         
    42434281        @return: the consent obtained from the principal for sending this  
    42444282        response 
     4283        @rtype: basestring 
    42454284        ''' 
    42464285        return self.__consent 
     
    42524291        @param value: the new consent obtained from the principal for  
    42534292        sending this response 
     4293        @type value: basestring 
     4294        @raise TypeError: incorrect type for input value 
    42544295        '''  
    42554296        if not isinstance(value, basestring): 
     
    42634304    
    42644305    def _set_issuer(self, issuer): 
    4265         """Set issuer of response""" 
     4306        """Set issuer of response 
     4307         
     4308        @param value: issuer of this response  
     4309        sending this response 
     4310        @type value: ndg.saml.saml2.core.Issuer 
     4311        @raise TypeError: incorrect type for input value 
     4312        """ 
    42664313        if not isinstance(issuer, Issuer): 
    42674314            raise TypeError('"issuer" must be a %r, got %r' % (Issuer, 
     
    42704317     
    42714318    def _get_issuer(self): 
    4272         """Get the issuer name """ 
     4319        """Get the issuer name  
     4320         
     4321        @return: issuer of this response  
     4322        sending this response 
     4323        @rtype: ndg.saml.saml2.core.Issuer 
     4324        """ 
    42734325        return self.__issuer 
    42744326 
     
    42814333         
    42824334        @return: the Status of this response 
     4335        @rtype: ndg.saml.saml2.core.Status 
    42834336        ''' 
    42844337        return self.__status 
     
    42874340        '''Sets the Status of this response. 
    42884341         
    4289         @param newStatus: the Status of this response 
     4342        @param value: the Status of this response 
     4343        @type value: ndg.saml.saml2.core.Status 
     4344        @raise TypeError: incorrect type for input value 
    42904345        ''' 
    42914346        if not isinstance(value, Status): 
     
    43004355         
    43014356        @return: the Status of this response 
     4357        @rtype: tuple/list/NoneType 
    43024358        ''' 
    43034359        return self.__extensions 
     
    43074363         
    43084364        @param value: the Extensions of this response 
     4365        @type value: tuple or list 
     4366        @raise TypeError: incorrect type for input value         
    43094367        ''' 
    43104368        if not isinstance(value, (list, tuple)): 
     
    43194377 
    43204378class Response(StatusResponseType): 
    4321     '''SAML2 Core Response''' 
     4379    '''SAML2 Core Response 
     4380     
     4381    @cvar DEFAULT_ELEMENT_LOCAL_NAME: Element local name. 
     4382    @type DEFAULT_ELEMENT_LOCAL_NAME: ndg.saml.common.xml.QName 
     4383    @cvar DEFAULT_ELEMENT_NAME: Default element name. 
     4384    @type DEFAULT_ELEMENT_NAME: string 
     4385    @cvar TYPE_LOCAL_NAME: Local name of the XSI type. 
     4386    @type TYPE_LOCAL_NAME: string 
     4387    @cvar TYPE_NAME: QName of the XSI type. 
     4388    @type TYPE_NAME: ndg.saml.common.xml.QName 
     4389     
     4390    @ivar __indexedChildren: response elements 
     4391    @type __indexedChildren: list 
     4392    ''' 
    43224393     
    43234394    # Element local name. 
     
    43404411     
    43414412    def __init__(self, **kw): 
    4342         ''''''  
     4413        ''' 
     4414        @param **kw: keywords to initialise superclass instance 
     4415        @type **kw: dict 
     4416        '''  
    43434417        super(Response, self).__init__(**kw) 
    43444418         
     
    43664440    @property 
    43674441    def assertions(self):  
    4368         "Assertions contained in this response" 
     4442        """Assertions contained in this response 
     4443         
     4444        @return: list of assertion for this response 
     4445        @rtype: list 
     4446        """ 
    43694447        return self.__indexedChildren 
  • TI12-security/trunk/ndg_saml/ndg/saml/test/test_saml.py

    r6901 r6913  
    714714        self.assert_(query2.actions[0].namespace == Action.GHPP_NS_URI) 
    715715 
    716  
    717          
    718716    def test16PickleAuthzDecisionResponse(self): 
    719717        response = self._createAuthzDecisionQueryResponse() 
  • TI12-security/trunk/ndg_saml/ndg/saml/utils.py

    r6900 r6913  
    3939    """Generic datetime formatting utility for SAML timestamps - XMLSchema 
    4040    Datetime format 
     41     
     42    @cvar DATETIME_FORMAT: date/time format string for SAML timestamps 
     43    @type DATETIME_FORMAT: string 
    4144    """ 
    4245    DATETIME_FORMAT = "%Y-%m-%dT%H:%M:%S" 
     
    4548    def toString(cls, dtValue): 
    4649        """Convert issue instant datetime to correct string type for output 
     50         
    4751        @type dtValue: datetime.datetime 
    4852        @param dtValue: issue instance as a datetime 
     
    6165    def fromString(cls, strDateTime): 
    6266        """Convert issue instant string to datetime type 
     67         
    6368        @type strDateTime: basestring 
    6469        @param strDateTime: issue instance as a string 
     
    95100     
    96101    def _getElementType(self): 
     102        """@return: element type for this list 
     103        @rtype: type 
     104        """ 
    97105        return self.__elementType 
    98106     
     
    101109      
    102110    def extend(self, iter): 
     111        """Extend an existing list with the input iterable 
     112        @param iter: iterable to extend list with 
     113        @type iter: iterable 
     114        """ 
    103115        for i in iter: 
    104116            if not isinstance(i, self.__elementType): 
     
    109121         
    110122    def __iadd__(self, iter): 
     123        """Extend an existing list with the input iterable with += operator 
     124         
     125        @param iter: iterable to extend list with 
     126        @type iter: iterable 
     127        """ 
    111128        for i in iter: 
    112129            if not isinstance(i, self.__elementType): 
     
    117134          
    118135    def append(self, item): 
     136        """Append a list with the given item 
     137         
     138        @param item: item to extend list 
     139        @type item: must agree witj "elementType" attribute of this list  
     140        """ 
    119141        if not isinstance(item, self.__elementType): 
    120142                raise TypeError("List items must be of type %s" %  
  • TI12-security/trunk/ndg_saml/ndg/saml/xml/etree.py

    r6900 r6913  
    3939 
    4040from ndg.saml.saml2.core import (SAMLObject, Attribute, AttributeStatement,  
    41                              AuthnStatement, AuthzDecisionStatement, Assertion, 
    42                              Conditions, AttributeValue, AttributeQuery,  
    43                              AuthzDecisionQuery, Subject, NameID, Issuer,  
    44                              Response, Status, StatusCode, StatusMessage,  
    45                              StatusDetail, Advice, Action, Evidence,  
    46                              DecisionType, XSStringAttributeValue)  
     41                                 AuthnStatement, AuthzDecisionStatement,  
     42                                 Assertion, Conditions, AttributeValue,  
     43                                 AttributeQuery, AuthzDecisionQuery, Subject,  
     44                                 NameID, Issuer, Response, Status, StatusCode,  
     45                                 StatusMessage, StatusDetail, Advice, Action,  
     46                                 Evidence, DecisionType, XSStringAttributeValue)  
    4747                              
    4848from ndg.saml.common import SAMLVersion 
     
    9292     
    9393    def _getPrefix(self): 
     94        """@return: NS prefix 
     95        @rtype: basestring 
     96        """ 
    9497        return self.__prefix 
    9598 
    9699    def _setPrefix(self, value): 
     100        """@param value: NS prefix 
     101        @type value: basestring 
     102        """ 
    97103        self.__prefix = value 
    98104     
     
    100106 
    101107    def _getLocalPart(self): 
     108        """@return: NS local name 
     109        @rtype: basestring 
     110        """ 
    102111        return self.__localPart 
    103112     
    104113    def _setLocalPart(self, value): 
     114        """@param value: NS local name 
     115        @type value: basestring 
     116        """ 
    105117        self.__localPart = value 
    106118         
     
    108120 
    109121    def _getNamespaceURI(self): 
     122        """@return: NS URI 
     123        @rtype: basestring 
     124        """ 
    110125        return self.__namespaceURI 
    111126 
    112127    def _setNamespaceURI(self, value): 
     128        """@param value: NS URI 
     129        @type value: basestring 
     130        """ 
    113131        self.__namespaceURI = value 
    114132   
     
    122140        @type qname: ndg.security.common.utils.etree.QName 
    123141        @param qname: Qualified Name to compare with self  
     142         
     143        @return: True if the qualified names match, False otherwise 
     144        @rtype: bool 
    124145        """ 
    125146        if not isinstance(qname, QName): 
     
    136157        @type qname: ndg.security.common.utils.etree.QName 
    137158        @param qname: Qualified Name to compare with self  
     159        @return: True if the qualified names don't match, False otherwise 
     160        @rtype: bool 
    138161        """ 
    139162        return not self.__eq__(qname) 
     
    141164    @classmethod 
    142165    def fromGeneric(cls, genericQName): 
    143         '''Cast the generic QName type in saml.common.xml to the  
    144         ElementTree specific implementation''' 
     166        '''Cast the generic QName type in ndg.saml.common.xml to this 
     167        ElementTree specific implementation 
     168         
     169        @param genericQName: SAML core qualified name type 
     170        @type genericQName: ndg.saml.common.xml.QName 
     171        @return: ElementTree specific qualified name type 
     172        @rtype: ndg.saml.xml.etree.QName 
     173        ''' 
    145174        if not isinstance(genericQName, GenericQName): 
    146175            raise TypeError("Expecting %r for QName, got %r" % (GenericQName, 
     
    154183     
    155184def prettyPrint(*arg, **kw): 
    156     '''Lightweight pretty printing of ElementTree elements''' 
     185    '''Lightweight pretty printing of ElementTree elements.  This function 
     186    wraps the PrettyPrint class 
     187     
     188    @param *arg: arguments to pretty print function 
     189    @type *arg: tuple 
     190    @param **kw: keyword arguments to pretty print function 
     191    @type **kw: dict 
     192    ''' 
    157193     
    158194    # Keep track of namespace declarations made so they're not repeated 
     
    164200 
    165201class PrettyPrint(object): 
     202    '''Class for lightweight pretty printing of ElementTree elements''' 
    166203    def __init__(self, declaredNss): 
     204        """ 
     205        @param declaredNss: declared namespaces 
     206        @type declaredNss: iterable of string elements 
     207        """ 
    167208        self.declaredNss = declaredNss 
    168209     
    169210    @staticmethod 
    170211    def estrip(elem): 
    171         ''' Just want to get rid of unwanted whitespace ''' 
     212        '''Utility to remove unwanted leading and trailing whitespace  
     213         
     214        @param elem: ElementTree element 
     215        @type elem: ElementTree.Element 
     216        @return: element content with whitespace removed 
     217        @rtype: basestring''' 
    172218        if elem is None: 
    173219            return '' 
     
    180226        '''Most of the work done in this wrapped function - wrapped so that 
    181227        state can be maintained for declared namespace declarations during 
    182         recursive calls using "declaredNss" above'''   
     228        recursive calls using "declaredNss" above 
     229         
     230        @param elem: ElementTree element 
     231        @type elem: ElementTree.Element 
     232        @param indent: set indent for output 
     233        @type indent: basestring 
     234        @param space: set output spacing 
     235        @type space: basestring  
     236        @return: pretty print format for doc 
     237        @rtype: basestring        
     238        '''   
    183239        strAttribs = [] 
    184240        for attr, attrVal in elem.attrib.items(): 
     
    247303        """Make a tree of a XML elements based on the assertion conditions 
    248304         
    249         @type assertion: saml.saml2.core.Conditions 
    250         @param assertion: Assertion conditions to be represented as an  
     305        @type conditions: saml.saml2.core.Conditions 
     306        @param conditions: Assertion conditions to be represented as an  
    251307        ElementTree Element 
    252308        @rtype: ElementTree.Element 
     
    284340        @param elem: ElementTree element containing the conditions 
    285341        @rtype: saml.saml2.core.Conditions 
    286         @return: Conditions object""" 
     342        @return: Conditions object 
     343        """ 
    287344         
    288345        if not ElementTree.iselement(elem): 
     
    393450        @param attributeValueElementTreeFactoryKw: keywords for AttributeValue 
    394451        @rtype: saml.saml2.core.Assertion 
    395         @return: Assertion object""" 
     452        @return: Assertion object 
     453        """ 
    396454        if not ElementTree.iselement(elem): 
    397455            raise TypeError("Expecting %r input type for parsing; got %r" % 
     
    513571        factory 
    514572        @rtype: saml.saml2.core.AttributeStatement 
    515         @return: Attribute Statement""" 
     573        @return: Attribute Statement 
     574        """ 
    516575         
    517576        if not ElementTree.iselement(elem): 
     
    587646        @type elem: ElementTree.Element 
    588647        @param elem: ElementTree element containing the AuthzDecisionStatement 
    589         @type authzDecisionValueElementTreeFactoryKw: dict 
    590         @param authzDecisionValueElementTreeFactoryKw: keywords for AuthzDecisionValue 
    591         factory 
    592648        @rtype: saml.saml2.core.AuthzDecisionStatement 
    593649        @return: AuthzDecision Statement""" 
     
    645701        """Make a tree of a XML elements based on the Attribute 
    646702         
    647         @type assertion: saml.saml2.core.Attribute 
    648         @param assertion: Attribute to be represented as an ElementTree Element 
     703        @type attribute: saml.saml2.core.Attribute 
     704        @param attribute: Attribute to be represented as an ElementTree Element 
    649705        @type attributeValueElementTreeFactoryKw: dict 
    650706        @param attributeValueElementTreeFactoryKw: keywords for AttributeValue 
     
    745801        """Make a tree of a XML elements based on the Attribute value 
    746802         
    747         @type assertion: saml.saml2.core.Assertion 
    748         @param assertion: Assertion to be represented as an ElementTree Element 
     803        @type attributeValue: saml.saml2.core.AttributeValue 
     804        @param attributeValue: Assertion to be represented as an ElementTree  
     805        Element 
    749806        @rtype: ElementTree.Element 
    750807        @return: ElementTree Element 
     
    770827        """Create an XML representation of the input SAML Attribute Value  
    771828         
    772         @type assertion: saml.saml2.core.XSStringAttributeValue 
    773         @param assertion: xs:string to be represented as an ElementTree Element 
     829        @type attributeValue: saml.saml2.core.XSStringAttributeValue 
     830        @param attributeValue: xs:string to be represented as an ElementTree  
     831        Element 
    774832        @rtype: ElementTree.Element 
    775833        @return: ElementTree Element 
     
    850908    ElementTree handler class 
    851909    @type toSAMLTypeMap: dict 
    852     @cvar toSAMLTypeMap: mapping between SAML AttributeValue string identifier and  
    853     its ElementTree handler class 
     910    @cvar toSAMLTypeMap: mapping between SAML AttributeValue string identifier  
     911    and its ElementTree handler class 
    854912    """ 
    855913    toXMLTypeMap = { 
     
    859917    def xsstringMatch(elem): 
    860918        """Match function for xs:string type attribute. 
     919         
    861920        @type elem: ElementTree.Element 
    862921        @param elem: Attribute Value element to be checked 
     
    885944    def __init__(self, customToXMLTypeMap={}, customToSAMLTypeMap=[]):  
    886945        """Set-up a SAML class to ElementTree mapping 
     946         
    887947        @type customToXMLTypeMap: dict 
    888948        @param customToXMLTypeMap: mapping for custom SAML AttributeValue  
     
    923983        @type input: saml.saml2.core.AttributeValue or basestring 
    924984        @param input: pass an AttributeValue derived type or a string.  If 
    925         an AttributeValue type, then self.__toXMLTypeMap is checked for a matching 
    926         AttributeValue class entry, if a string is passed, self.__toSAMLTypeMap is 
    927         checked for a matching string ID.  In both cases, if a match is  
    928         found an ElementTree class is returned which can render or parse 
    929         the relevant AttributeValue class 
     985        an AttributeValue type, then self.__toXMLTypeMap is checked for a  
     986        matching AttributeValue class entry, if a string is passed,  
     987        self.__toSAMLTypeMap is checked for a matching string ID.  In both  
     988        cases, if a match is found an ElementTree class is returned which can  
     989        render or parse the relevant AttributeValue class 
    930990        """ 
    931991        if isinstance(input, AttributeValue): 
     
    9701030    @classmethod 
    9711031    def toXML(cls, issuer): 
    972         """Create an XML representation of the input SAML issuer object""" 
     1032        """Create an XML representation of the input SAML issuer object 
     1033         
     1034        @type issuer: saml.saml2.core.Issuer 
     1035        @param issuer: Assertion object 
     1036        @rtype: ElementTree.Element 
     1037        @return: ElementTree element containing the assertion 
     1038        """ 
    9731039        if not isinstance(issuer, Issuer): 
    9741040            raise TypeError("Expecting %r class got %r" % (Issuer,  
     
    10321098        @param nameID: SAML name ID 
    10331099        @rtype: ElementTree.Element 
    1034         @return: Name ID as ElementTree XML element""" 
     1100        @return: Name ID as ElementTree XML element 
     1101        """ 
    10351102         
    10361103        if not isinstance(nameID, NameID): 
     
    11441211        @param statusCode: SAML Status Code 
    11451212        @rtype: ElementTree.Element 
    1146         @return: Status Code as ElementTree XML element""" 
     1213        @return: Status Code as ElementTree XML element 
     1214        """ 
    11471215         
    11481216        if not isinstance(statusCode, StatusCode): 
     
    12001268        @param statusMessage: SAML Status Message 
    12011269        @rtype: ElementTree.Element 
    1202         @return: Status Code as ElementTree XML element""" 
     1270        @return: Status Code as ElementTree XML element 
     1271        """ 
    12031272         
    12041273        if not isinstance(statusMessage, StatusMessage): 
     
    15791648        @param action: SAML subject 
    15801649        @rtype: ElementTree.Element 
    1581         @return: Name ID as ElementTree XML element""" 
     1650        @return: Name ID as ElementTree XML element 
     1651        """ 
    15821652         
    15831653        if not isinstance(action, Action): 
Note: See TracChangeset for help on using the changeset viewer.