Changeset 7481


Ignore:
Timestamp:
Jun 19, 2018, 10:27:32 AM (16 months ago)
Author:
Juanma
Message:

Versioned pmb data file

Location:
lliurex-abies2pmb/trunk/fuentes/lliurex-abies2pmb.install/usr/share/lliurex-abies2pmb
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-abies2pmb/trunk/fuentes/lliurex-abies2pmb.install/usr/share/lliurex-abies2pmb/abies2pmb.py

    r4438 r7481  
    55import sys
    66import tempfile
     7import apt_pkg
    78# -*- coding: utf-8 -*-
    89class abies2Pmb():
    910        def __init__(self):
    10                 self.dbg=0
    11                
     11                self.dbg=True
     12                #This switch fix the position of the isbdn2 field in the table "Fondos"
     13                self.fixFondos=False   
    1214                #Dict with relations between pmb and abies
    1315                self.pmb_abies={}
     
    5355
    5456                #Dict with abies source fields for pmb
     57                #It's load from the versioned data files.
     58                try:
     59                        apt_pkg.init_config()
     60                        apt_pkg.init_system()
     61                        cache=apt_pkg.Cache()
     62                        for pkg in cache.packages:
     63                                if pkg.name=='pmb':
     64                                        version=pkg.current_ver
     65                                        break
     66                        if version==None:
     67                                version=pkg.version_list[0]
     68                        compare_version=apt_pkg.version_compare('5.0',version.ver_str)
     69                        if compare_version>0:
     70                                import data4 as data
     71                        else:
     72                                import data5 as data
     73                        self.pmb_tables=data.pmb_tables
     74
     75
     76                except Exception as e:
     77                        print(e)
     78                        print("Couldn't determine pmb version. Aborting")
     79                        sys.exit(1)
    5580                #Numbers are the indexes of the source data table
    56                 self.pmb_tables={}
    57                 self.pmb_tables["docs_location"]=[0,1,'','','','','','','','','','','','','','','','','','','','','','','']
    58                 self.pmb_tables["empr_categ"]=[0,1,'','','','']
    59                 self.pmb_tables["authors"]=[0,1,2,'','','','','','','','','','','','']
    60                 self.pmb_tables["publishers"]=[0,1,'','','','','','','','']
    61                 self.pmb_tables["groupe"]=[0,1,'','','','']
    62                 self.pmb_tables["exemplaires"]=[0,4,1,'',3,13,'',2,6,'','','','','','','','',9,'','','','','','','','','']
    63                 self.pmb_tables["collections"]=[0,1,'','','','','','']
    64                 self.pmb_tables["indexint"]=[0,1,'',1,'']
    65                 self.pmb_tables["notices_tmp"]=[0,1,2,3,4,5]
    66                 self.pmb_tables["notices"]=[0,1,14,15,16,13,'','',19,'',24,'',20,17,25,11,21,22,23,'','','','','','','',26,'','','','','','','','','','','','','',6,'','','','','','','','','','','','','']
    67                 self.pmb_tables["notices_langues"]=[0,'',1,'']
    68                 self.pmb_tables["docs_type"]=[0,1,'','','','','','']
    69                 self.pmb_tables["docs_statut"]=[0,1,'','','','','','','']
    70                 self.pmb_tables["responsability"]=[1,0,2,3,'']
     81#               self.pmb_tables={}
     82#               self.pmb_tables["docs_location"]=[0,1,'','','','','','','','','','','','','','','','','','','','','','','']
     83#               self.pmb_tables["empr_categ"]=[0,1,'','','','']
     84#               self.pmb_tables["authors"]=[0,1,2,'','','','','','','','','','','','']
     85#               self.pmb_tables["publishers"]=[0,1,'','','','','','','','']
     86#               self.pmb_tables["groupe"]=[0,1,'','','','']
     87#               self.pmb_tables["exemplaires"]=[0,4,1,'',3,13,'',2,6,'','','','','','','','',9,'','','','','','','','','']
     88#               self.pmb_tables["collections"]=[0,1,'','','','','','']
     89#               self.pmb_tables["indexint"]=[0,1,'',1,'']
     90#               self.pmb_tables["notices_tmp"]=[0,1,2,3,4,5]
     91#               self.pmb_tables["notices"]=[0,1,14,15,16,13,'','',19,'',24,'',20,17,25,11,21,22,23,'','','','','','','',26,'','','','','','','','','','','','','',6,'','','','','','','','','','','','','']
     92#               self.pmb_tables["notices_langues"]=[0,'',1,'']
     93#               self.pmb_tables["docs_type"]=[0,1,'','','','','','']
     94#               self.pmb_tables["docs_statut"]=[0,1,'','','','','','','']
     95#               self.pmb_tables["responsability"]=[1,0,2,3,'']
    7196
    7297#dict with needed virtual tables
     
    216241                                        for table in listTables:
    217242                                                if table!='':
    218                                                         cmdOut=subprocess.check_output(['mdb-export','-H','-d|||',self.mdb,table],universal_newlines=True)
    219                                                         if cmdOut:
     243                                                        try:
     244                                                                if table=="Fondos":
     245                                                                        cmdOut=subprocess.check_output(['mdb-export','-d|||',self.mdb,table],universal_newlines=True)
     246                                                                        tmpOut=cmdOut.split('\n')
     247                                                                        newOut=[]
     248                                                                        if tmpOut[0].endswith('ISBN2'):
     249                                                                                for line in tmpOut:
     250                                                                                        tmpLine=line.split('|||')
     251                                                                                        try:
     252                                                                                                tmpLine=tmpLine[:12]+[tmpLine[-1]]+tmpLine[12:]
     253                                                                                                tmpLine[-1]=''
     254                                                                                                tmpLineAux=('|||').join(tmpLine[:-1])
     255                                                                                                newOut.append(tmpLineAux)
     256                                                                                        except Exception as e:
     257                                                                                                print(e)
     258                                                                                                pass
     259                                                                                cmdOut='\n'.join(newOut[1:])
     260                                                                        else:
     261                                                                                cmdOut=subprocess.check_output(['mdb-export','-H','-d|||',self.mdb,table],universal_newlines=True)
     262                                                                else:
     263                                                                        cmdOut=subprocess.check_output(['mdb-export','-H','-d|||',self.mdb,table],universal_newlines=True)
     264#                                                               if cmdOut:
    220265                                                                f=open (self.workDir+table+".csv",'w')
    221266                                                                f.writelines(cmdOut)
    222267                                                                f.close()
     268                                                        except Exception as e:
     269                                                                print(e)
     270                                                                self._error(12)
     271                                                                returnValue=False
     272
    223273                                        returnValue=True
    224274                        except Exception as e:
Note: See TracChangeset for help on using the changeset viewer.