22 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 |
23 |
24 |
24 |
25 import node |
25 import node |
26 from node import nosub, var, array, rec, plurivar, pluriarray, plurirec |
26 from node import nosub, var, array, rec, plurivar, pluriarray, plurirec |
27 from sets import * |
27 try: |
|
28 set |
|
29 except NameError: |
|
30 from sets import Set as set |
28 from types import * |
31 from types import * |
29 from time import * |
32 from time import * |
30 import os,re |
33 import os,re |
31 |
34 |
32 # Regular expression for finding index section names |
35 # Regular expression for finding index section names |
366 # If entry is an index or a subindex |
369 # If entry is an index or a subindex |
367 if is_entry: |
370 if is_entry: |
368 # Verify that entry has an ObjectType |
371 # Verify that entry has an ObjectType |
369 values["OBJECTTYPE"] = values.get("OBJECTTYPE", 7) |
372 values["OBJECTTYPE"] = values.get("OBJECTTYPE", 7) |
370 # Extract parameters defined |
373 # Extract parameters defined |
371 keys = Set(values.keys()) |
374 keys = set(values.keys()) |
372 keys.discard("subindexes") |
375 keys.discard("subindexes") |
373 # Extract possible parameters and parameters required |
376 # Extract possible parameters and parameters required |
374 possible = Set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"] + |
377 possible = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"] + |
375 ENTRY_TYPES[values["OBJECTTYPE"]]["optional"]) |
378 ENTRY_TYPES[values["OBJECTTYPE"]]["optional"]) |
376 required = Set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"]) |
379 required = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"]) |
377 # Verify that parameters defined contains all the parameters required |
380 # Verify that parameters defined contains all the parameters required |
378 if not keys.issuperset(required): |
381 if not keys.issuperset(required): |
379 missing = required.difference(keys)._data.keys() |
382 missing = required.difference(keys)._data.keys() |
380 if len(missing) > 1: |
383 if len(missing) > 1: |
381 attributes = "Attributes %s are"%", ".join(["\"%s\""%attribute for attribute in missing]) |
384 attributes = "Attributes %s are"%", ".join(["\"%s\""%attribute for attribute in missing]) |