Changeset 8606 for mauRepo


Ignore:
Timestamp:
03/10/12 17:05:03 (7 years ago)
Author:
mnagni
Message:

Incomplete - # 22562: CEDA MOLES3 Bug Report: Publication time missing
 http://team.ceda.ac.uk/trac/ceda/ticket/22562

Location:
mauRepo/MolesManager/trunk/cedaMoles
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/MolesManager/trunk/cedaMoles/MolesManager/djencoder.py

    r8599 r8606  
    1010import re 
    1111from decimal import Decimal 
    12 from inspect import isclass 
    1312from sqlalchemy.orm.collections import InstrumentedList 
    1413 
    1514class DJEncoder(JSONEncoder): 
    16  
    1715    __PATTERN = re.compile('\D\D__*') 
    1816    __PATTERN2 = re.compile('\A\w+__id\Z') 
     
    2422 
    2523    def default(self, obj): 
    26         d = {} 
     24        mydict = {} 
    2725 
    2826        if isinstance(obj, datetime.datetime): 
     
    4038        # Convert objects to a dictionary of their representation 
    4139        try: 
    42             d = { '__module__':obj.__module__, 
     40            mydict = { '__module__':obj.__module__, 
    4341                 } 
    4442        except Exception as e: 
    4543            print e 
    46             return d 
     44            return mydict 
    4745        if obj.__class__.__name__ == 'EnumSymbol': 
    48             d['__class__'] = obj._cls.__name__ 
     46            mydict['__class__'] = obj._cls.__name__ 
    4947        else: 
    50             d['__class__'] = obj.__class__.__name__ 
     48            mydict['__class__'] = obj.__class__.__name__ 
    5149             
    52         if d['__module__'].startswith('sqlalchemy'): 
    53             return d 
     50        if mydict['__module__'].startswith('sqlalchemy'): 
     51            return mydict 
    5452   
    5553        for key in obj.__dict__.keys(): 
     
    5755                    or DJEncoder.__PATTERN.match(key) \ 
    5856                    or DJEncoder.__PATTERN2.match(key)): 
    59                 d.update({key: getattr(obj, key)}) 
     57                mydict.update({key: getattr(obj, key)}) 
    6058        getters = list(methodsWithDecorator(type(obj), "property")) 
    6159        for name in getters: 
    6260            if hasattr(obj, name): 
    6361                try: 
    64                     d.update({name: getattr(obj, name)}) 
     62                    mydict.update({name: getattr(obj, name)}) 
    6563                except Exception as e: 
    6664                    DJEncoder.log.error(e) 
    6765         
    68         for key, value in d.items(): 
     66        for key, value in mydict.items():           
    6967            if value is not None: 
    70                 if isinstance(value, list) or isinstance(value, InstrumentedList): 
     68                if (isinstance(value, list) \ 
     69                    or isinstance(value, InstrumentedList)) \ 
     70                        and not isPrimitive(value): 
    7171                    for item in value: 
    7272                        if id(item) in getattr(self, '_DJEncoder__markers'): 
    73                             d.pop(key) 
     73                            mydict.pop(key) 
    7474                            break 
    7575                elif id(value) in getattr(self, '_DJEncoder__markers'): 
    76                     d.pop(key) 
    77         return d 
     76                    mydict.pop(key) 
     77        return mydict 
    7878 
    7979    def iterencode(self, o): 
     
    114114    #res = res.replace('(', '(')         
    115115    #res = res.replace(')', ')')                 
    116     return res          
     116    return res       
     117 
     118def isPrimitive(obj): 
     119    # Is a simple primitive? 
     120    return obj is None \ 
     121            or isinstance(obj, str) \ 
     122            or isinstance(obj, int) \ 
     123            or isinstance(obj, unicode) \ 
     124            or isinstance(obj, Decimal)    
  • mauRepo/MolesManager/trunk/cedaMoles/libs/migration/processor/deployment.py

    r8554 r8606  
    117117    log.addHandler(StreamHandler()) 
    118118    log.setLevel(logging.INFO)     
    119     def __init__(self, data_entity_migration, deployment_migration, epbRepo): 
     119    def __init__(self, data_entity_migration, deployment_migration, epb_repo): 
    120120        ''' 
    121121            Initializes the class 
     
    126126        self._data_entity_migration = data_entity_migration 
    127127        self._deployment_migration = deployment_migration 
    128         self.epbRepo = epbRepo 
     128        self.epbRepo = epb_repo 
    129129        self._dataEntityHasSameHash = has_mo_same_hash(self._data_entity_migration) 
    130130        self._deploymentHasSameHash = has_mo_same_hash(self._deployment_migration) 
     
    222222                 
    223223            if py_date:    
    224                 dt = create_date(py_date) 
    225                 ci_date = create_ci_date(getCLValue(CI_DateTypeCode.cl_publication), \ 
    226                                          date = dt) 
     224                c_date = create_date(py_date) 
     225                ci_date = \ 
     226                    create_ci_date(\ 
     227                            getCLValue(CI_DateTypeCode.cl_publication), \ 
     228                            date = c_date) 
    227229                i_authority = create_ci_citation("DOI", date = ci_date) 
    228230                identifier = create_md_identifier(code = doi, authority=i_authority) 
Note: See TracChangeset for help on using the changeset viewer.