server/msplanner.py
branch3.0
changeset 433 95cb5b6e15c6
parent 426 e96662444ec6
child 442 b1cf7611f8b3
equal deleted inserted replaced
432:8a7f619fce96 433:95cb5b6e15c6
   286                 ssource = self._session.repo.system_source
   286                 ssource = self._session.repo.system_source
   287                 needsplit = True
   287                 needsplit = True
   288                 flag = 0
   288                 flag = 0
   289                 for v in crossvars:
   289                 for v in crossvars:
   290                     if isinstance(v, Constant):
   290                     if isinstance(v, Constant):
   291                         self._sourcesvars[ssource][v] = set(self._solindices)
   291                         allsols = set(self._solindices)
       
   292                         try:
       
   293                             self._sourcesvars[ssource][v] = allsols
       
   294                         except KeyError:
       
   295                             self._sourcesvars[ssource] = {v: allsols}
   292                     if len(vsources[v]) == 1:
   296                     if len(vsources[v]) == 1:
   293                         if iter(vsources[v]).next()[0].uri == 'system':
   297                         if iter(vsources[v]).next()[0].uri == 'system':
   294                             flag = 1
   298                             flag = 1
   295                             for ov in crossvars:
   299                             for ov in crossvars:
   296                                 if ov is not v and ov._q_invariant:
   300                                 if ov is not v and (isinstance(ov, Constant) or ov._q_invariant):
   297                                     ssset = frozenset((ssource,))
   301                                     ssset = frozenset((ssource,))
   298                                     self._remove_sources(ov, vsources[ov] - ssset)
   302                                     self._remove_sources(ov, vsources[ov] - ssset)
   299                         else:
   303                         else:
   300                             for ov in crossvars:
   304                             for ov in crossvars:
   301                                 if ov is not v and ov._q_invariant:
   305                                 if ov is not v and (isinstance(ov, Constant) or ov._q_invariant):
   302                                     needsplit = False
   306                                     needsplit = False
   303                                     break
   307                                     break
   304                             else:
   308                             else:
   305                                 continue
   309                                 continue
   306                         if not rel.neged(strict=True):
   310                         if not rel.neged(strict=True):