import requests


def endringssett_mal( datakatalogversjon=None, operasjon='delvisOppdater'): 
    """
    Tomt endringssett som så kan fylles med vegobjekter

    ARGUMENTS: NONE

    KEYWORDS:
        datakatalogversjon: None eller tekststreng med datakatalog-versjon, eksempel '2.19' 

        operasjon - hva slags skriveoperasjon vi ønsker. Mulige verdier: 
            'delvisOppdater' (DEFAULT), 'registrer', 'oppdater',  'korriger', 'delvisKorriger', 'lukk' 

    RETURNS 
        dictionary med skjelett for endringssett (tom liste med vegobjekter)
    """
    if not datakatalogversjon: 
        r = requests.get( 'https://www.vegvesen.no/nvdb/api/v3/status.json')
        status = r.json()
        datakatalogversjon = status['datagrunnlag']['datakatalog']['versjon'] 

    operasjoner = [ 'delvisOppdater', 'registrer', 'oppdater', 'korriger', 'delvisKorriger', 'lukk' ]
    if not operasjon in operasjoner: 
        raise ValueError( 'operasjon må være en av: ' + ', '.join( operasjoner ))

    try: 
        float( datakatalogversjon )
    except ValueError: 
        raise ValueError( "datakatalogversjon må våre tekst med flyttall, for eksempel '2.19' " )

    mal = {     
                "datakatalogversjon": datakatalogversjon
            }
    mal[operasjon] =  {  "vegobjekter": [ ] }

    return mal