#NEWLINE# def relationshipSet( self , arcrole , linkrole = None , linkqname = None , arcqname = None , includeProhibits = False ) : #NEWLINE# #INDENT# "Returns a relationship set matching specified parameters (only arcrole is required).\n        \n        Resolve and determine relationship set.  If a relationship set of the same parameters was previously resolved, it is returned from a cache.\n        \n        :param arcrole: Required arcrole, or special collective arcroles 'XBRL-dimensions', 'XBRL-formula', and 'Table-rendering'\n        :type arcrole: str\n        :param linkrole: Linkrole (wild if None)\n        :type linkrole: str\n        :param arcqname: Arc element qname (wild if None)\n        :type arcqname: QName\n        :param includeProhibits: True to include prohibiting arc elements as relationships\n        :type includeProhibits: bool\n        :returns: [ModelRelationship] -- Ordered list of effective relationship objects per parameters\n        " #NEWLINE# global ModelRelationshipSet #NEWLINE# if ( ModelRelationshipSet is None ) : #NEWLINE# #INDENT# from arelle import ModelRelationshipSet #NEWLINE# #UNINDENT# key = ( arcrole , linkrole , linkqname , arcqname , linkqname ) #NEWLINE# if ( key not in self . relationshipSets ) : #NEWLINE# #INDENT# ModelRelationshipSet . create ( self , arcrole , linkrole , linkqname , arcqname , includeProhibits ) #NEWLINE# #UNINDENT# return self . relationshipSets [ key ]