# Python Middleware
if (type == exact) {
if (type != exact) {
   setupRequired(utils -j g4397d32e57+8c5ae1fdc5)
   setupRequired(sconsUtils -j g637bcd074b)
   setupRequired(daf_butler -j g0200d1179f+33b4eb5b28)
   setupRequired(sphgeom -j gf9a733ac38+8c5ae1fdc5)
   setupRequired(resources -j g80ffcbadd1+e3b4b2a692)
   setupRequired(daf_relation -j g79127c212b+e3b4b2a692)
   setupRequired(pipe_base -j g8adde8ceaf+476abc4242)
   setupRequired(pex_config -j g54cd7ddccb+890c8e1e5d)
   setupOptional(daf_base -j g8ea07a8fe4+81eaaadc04)
   setupRequired(cpputils -j g87389fa792+8856018cbb)
   setupRequired(base -j g53246c7159+8c5ae1fdc5)
   setupRequired(pex_exceptions -j g786e29fd12+668abc6043)
   setupRequired(astro_metadata_translator -j g3c08ea9b7b+890c8e1e5d)
   setupRequired(afw -j g4cdb532a89+a047e97985)
   setupRequired(geom -j g90f42f885a+34c0557caf)
   setupRequired(log -j geaed405ab2+e3b4b2a692)
   setupRequired(astshim -j g2cef7863aa+aef1011c0b)
}
} else {
   if (type == exact) {
      setupRequired(utils           -j g4397d32e57+8c5ae1fdc5)
      setupRequired(sconsUtils      -j g637bcd074b)
      setupRequired(daf_butler      -j g0200d1179f+33b4eb5b28)
      setupRequired(sphgeom         -j gf9a733ac38+8c5ae1fdc5)
      setupRequired(resources       -j g80ffcbadd1+e3b4b2a692)
      setupRequired(daf_relation    -j g79127c212b+e3b4b2a692)
      setupRequired(pipe_base       -j g8adde8ceaf+476abc4242)
      setupRequired(pex_config      -j g54cd7ddccb+890c8e1e5d)
      setupOptional(daf_base        -j g8ea07a8fe4+81eaaadc04)
      setupRequired(cpputils        -j g87389fa792+8856018cbb)
      setupRequired(base            -j g53246c7159+8c5ae1fdc5)
      setupRequired(pex_exceptions  -j g786e29fd12+668abc6043)
      setupRequired(astro_metadata_translator -j g3c08ea9b7b+890c8e1e5d)
      setupRequired(afw             -j g4cdb532a89+a047e97985)
      setupRequired(geom            -j g90f42f885a+34c0557caf)
      setupRequired(log             -j geaed405ab2+e3b4b2a692)
      setupRequired(astshim         -j g2cef7863aa+aef1011c0b)
   } else {
      setupRequired(utils g4397d32e57+8c5ae1fdc5 [>= g4397d32e57+8c5ae1fdc5])
      setupRequired(daf_butler g0200d1179f+33b4eb5b28 [>= g0200d1179f+33b4eb5b28])
      setupRequired(pipe_base g8adde8ceaf+476abc4242 [>= g8adde8ceaf+476abc4242])
      setupRequired(resources g80ffcbadd1+e3b4b2a692 [>= g80ffcbadd1+e3b4b2a692])
      setupRequired(astro_metadata_translator g3c08ea9b7b+890c8e1e5d [>= g3c08ea9b7b+890c8e1e5d])
      setupRequired(pex_config g54cd7ddccb+890c8e1e5d [>= g54cd7ddccb+890c8e1e5d])
      
      # LSST C++.
      setupRequired(daf_base g8ea07a8fe4+81eaaadc04 [>= g8ea07a8fe4+81eaaadc04])
      setupRequired(afw g4cdb532a89+a047e97985 [>= g4cdb532a89+a047e97985])
      setupRequired(geom g90f42f885a+34c0557caf [>= g90f42f885a+34c0557caf])
      setupRequired(pex_exceptions g786e29fd12+668abc6043 [>= g786e29fd12+668abc6043])
      setupOptional(log geaed405ab2+e3b4b2a692 [>= geaed405ab2+e3b4b2a692])
   }
}
envPrepend(PYTHONPATH, ${PRODUCT_DIR}/python)
envPrepend(PATH, ${PRODUCT_DIR}/bin)
