User:GeneaBot/Code/module source

# -*- coding: utf-8  -*-
from object_display import *
from object_source  import *



#======================================================
# Fonction SetReferences
#
def ReferenceSet(curRequest):
    DisplayMessages.call("A", "ReferenceSet", 1, "curRequest=" + curRequest )
    DisplayLog.AppendRequest( curRequest )
    Sources    = Source()
    curRequest = curRequest[:len(curRequest)-2]
    listArgs   = curRequest.split("|")
    iArg = 1
    while iArg < len(listArgs):
        Statement = listArgs[iArg].split("=")
        Property = Statement[0].strip()
        try :
            Value = listArgs[iArg]
            Value = Value[len(Statement[0])+1:]
            Value = Value.strip()
            DisplayMessages.debug("A", "ReferenceSet", 9, "Property = '" + Property + "', Value = '" + Value + "'" )
        except IndexError:
            DisplayMessages.error("A", "ReferenceSet", "parameter '" + Property + "' without argument" )
            iArg += 1
            continue
        #
        if not Value == '':
            if Property == 'affirmed by':
                Sources.AddReference('P248', Value, True)
            #
            elif Property == 'tome':
                Sources.AddReference('P478', Value, True)
            #
            elif Property == 'page':
                Sources.AddReference('P304', Value, True)
            #
            elif Property == 'url':
                Sources.AddReference('P854', Value, True)
            #
            elif Property == 'retrieved':
                Sources.AddReference('P813', Value, True)
            #
            else:
                DisplayMessages.message("A", "ReferenceSet", "unknown parameter '" + Property + " = " + Value + "'")
        iArg += 1
        
    DisplayMessages.debug("A", "ReferenceSet", 4, "Sources = " + repr(Sources) )
    return Sources







        
        


def testModuleSource(NumTest, Represent, Request):
    print( "" )
    print( "---------------------------" )
    print( "test " + str(NumTest) + " :\ntestModuleSource(" + Request + ")" )
    source = ReferenceSet(Request)
    if Represent:
        print( repr(source) )
    else:
        print( str(source) )
    print( "" )
    DisplayLog.End()
    DisplayLog.Read()
        




def mainTestModuleSource(*args):
    param = CallParameter(*args)
    NumCase   = param.GetValue('case', 0)
    Represent = param.GetValue('repr', False)
    
    if NumCase == 0 or NumCase == 1:
        testModuleSource(1, Represent, "{{/SetReferences | affirmed by = Q13409396 | url = http://fmg.ac/Projects/MedLands/SAVOY.htm | retrieved = 8 Jun 2015 }}")

    if NumCase == 0 or NumCase == 2:
        testModuleSource(2, Represent, "{{/SetReferences | affirmed by = Q13419312 | tome = 1 | page = 132-7 }}")

    print( "" )
    DisplayLog.End()
    DisplayLog.Read()


if __name__ == "__main__":
    mainTestModuleSource()