Update of /cvsroot/webware/Webware/MiddleKit/Core
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16726
Modified Files:
Klasses.py Model.py
Log Message:
If model contains no classes, print a warning but continue (this may be
legitimate if inherited models are being used).
Added note about possible bug using inherited models and pickled class caches.
Index: Klasses.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/Klasses.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** Klasses.py 25 Mar 2004 10:40:02 -0000 1.16
--- Klasses.py 2 Jul 2004 19:41:28 -0000 1.17
***************
*** 81,86 ****
self._filename = filename
table = DataTable(filename, usePickleCache=0) # because PickleCache is used at the Model level
! if len(table)<1:
! raise ModelError('Class model appears empty.')
# in case we want to look at these later:
self._tableHeadings = table.headings()
--- 81,85 ----
self._filename = filename
table = DataTable(filename, usePickleCache=0) # because PickleCache is used at the Model level
!
# in case we want to look at these later:
self._tableHeadings = table.headings()
Index: Model.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/Model.py,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** Model.py 29 Mar 2004 22:49:58 -0000 1.29
--- Model.py 2 Jul 2004 19:41:29 -0000 1.30
***************
*** 299,302 ****
--- 299,305 ----
klass.sortByDependency(sorter)
allKlasses = sorter.allKlasses
+ # jdh 2004-07-02: the following assertion failed for me when using inherited models with
+ # UsePickledClassesCache enabled. Setting UsePickledClassesCache to False in each of the models
+ # fixed the problem. Haven't investigated the cause.
assert len(allKlasses)==len(self._allKlassesInOrder)
return allKlasses
***************
*** 373,376 ****
--- 376,381 ----
if out is None:
out = sys.stdout
+ if len(self._klasses.klassesInOrder()) < 1:
+ out.write("warning: Model '%s' doesn't contain any class definitions.\n" % self.name())
for klass in self.klasses().klassesInOrder():
klass.printWarnings(out)
|