/[papo]/papo/neb/emf.py
ViewVC logotype

Diff of /papo/neb/emf.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by jlenton, Tue Sep 16 19:01:03 2003 UTC revision 1.2 by jlenton, Fri Sep 19 20:57:48 2003 UTC
# Line 4  from optik import OptionParser Line 4  from optik import OptionParser
4  try:  try:
5      import Xot      import Xot
6  except ImportError:  except ImportError:
7      print """      raise """
8  Tenés que editar ~/.pythonrc.py para que le agregue a sys.path el directorio  Tenés que editar ~/.pythonrc.py para que le agregue a sys.path el directorio
9  donde se encuentra Xot.py. Algo como lo siguiente:  donde se encuentra Xot.py. Algo como lo siguiente:
10    
# Line 13  donde se encuentra Xot.py. Algo como lo Line 13  donde se encuentra Xot.py. Algo como lo
13      del sys      del sys
14      del os      del os
15  """  """
     sys.exit()  
16    
17  parser = OptionParser(usage="Modo de uso: emf [options] <xot> <emf> ...")  parser = OptionParser(usage="Modo de uso: emf [options] <xot> <emf> ...")
18  parser.add_option('-b', '--backup', dest='backup',  parser.add_option('-b', '--backup', dest='backup',
# Line 75  while emffiles: Line 74  while emffiles:
74      doc = libxml2.parseFile(emf)      doc = libxml2.parseFile(emf)
75      datasources = {}      datasources = {}
76      for datasource in doc.xpathEval('//datasource'):      for datasource in doc.xpathEval('//datasource'):
77          name = datasource.prop('name')          name = datasource.prop('name').lower()
78          if datasources.has_key(name):          if datasources.has_key(name):
79              dbg("EE  El datasource %s ha sido redefinido", name)              dbg("EE  El datasource %s ha sido redefinido", name)
80          table = datasource.prop('table')          table = datasource.prop('table')
# Line 94  while emffiles: Line 93  while emffiles:
93    
94      blocks={}      blocks={}
95      for block in doc.xpathEval('//block'):      for block in doc.xpathEval('//block'):
96          blocks[block.prop('name')] = block.prop('datasource')          name = block.prop('name')
97            if blocks.has_key(name):
98                dbg("EE  El bloque %s ha sido redefinido", name)
99            blocks[name] = block.prop('datasource').lower()
100    
101      for i in datasources.keys():      for i in datasources.keys():
102          if i not in blocks.values():          if i not in blocks.values():
# Line 128  while emffiles: Line 130  while emffiles:
130                  elif len(table) == 1:                  elif len(table) == 1:
131                      field = table[0]                      field = table[0]
132                      table = None                      table = None
133                      for d in datasources[blocks[block]].values():                      for a, d in datasources[blocks[block]].items():
134                          if xot.tables[d].fields.has_key(field):                          if xot.tables[d].fields.has_key(field):
135                              table = d                              table = a
136                              dbg("DD  Usando tabla %s para entry %s en bloque %s",                              dbg("DD  Usando tabla %s (%s) para entry %s en bloque %s",
137                                  d, name, block)                                  a, d, name, block)
138                      if table is None:                      if table is None:
139                          dbg("WW  no pude determinar la tabla para el entry %s en el bloque %s",                          dbg("WW  no pude determinar la tabla para el entry %s en el bloque %s",
140                              name, block)                              name, block)
141                  else:                  else:
142                      (table, field) = table                      (table, field) = table
143                        if not datasources[blocks[block]].has_key(table):
144                            dbg("EE  tabla %s referenciada en %s no es parte de %s",
145                                block, table, blocks[block])
146                        else:
147                            table = datasources[blocks[block]][table]
148                  if table and field:                  if table and field:
149                      if not xot.tables.has_key(table):                      if not xot.tables.has_key(table):
150                          dbg("EE  La tabla %s referida en el en entry %s del bloque %s no existe!",                          dbg("EE  La tabla %s referida en el en entry %s del bloque %s no existe!",

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26