# Path: forest/core/Config.py



from ..core.Engine import *
from ..core.Bob import *
from ..bobs.Bobs import *
from ..core import Config
import copy
import math
import multiprocessing
import numpy as np
import gdal
        
    def split(self, bobs):
        # Run the split from the TileEngine
        # That will provide a list of bobs in inputs to parallelize
        tile_engine.split(bobs)
        self.is_split = True
        
    # Merge (>)
    def merge(self, bobs):
        # Now that everything is merged set split to be false
        self.is_split = False

    # Sequence (==)
    def sequence(self, bobs):
        # If the Bobs are split, then handle it
        # If they are not, then there is nothing to do
        if self.is_split is True:
            # FIXME: Need to handle this
            print("NEED TO LOOP OVER SPLIT BOBS")
            pass # Loop over all the split Bobs
        pass

    # This method changes the run behavior to be in parallel.
    def run(self, primitive):
        print("Running", primitive)

        # Get the name of the primitive operation being executed
        name = primitive.__class__.__name__

        # Get the inputs        

# Path: forest/core/Config.py



# Path: forest/engines/Engines.py
from ..core.Engine import *
from ..core.Bob import *
from ..bobs.Bobs import *
from ..core import Config
import copy
import math
import multiprocessing
import numpy as np
import gdal

        
    def split(self, bobs):
        # Run the split from the TileEngine
        # That will provide a list of bobs in inputs to parallelize
        tile_engine.split(bobs)
        self.is_split = True
        
    # Merge (>)
    def merge(self, bobs):
        # Now that everything is merged set split to be false
        self.is_split = False

    # Sequence (==)
    def sequence(self, bobs):
        # If the Bobs are split, then handle it
        # If they are not, then there is nothing to do
        if self.is_split is True:
            # FIXME: Need to handle this
            print("NEED TO LOOP OVER SPLIT BOBS")
            pass # Loop over all the split Bobs
        pass

    # This method changes the run behavior to be in parallel.
    def run(self, primitive):
        print("Running", primitive)

        # Get the name of the primitive operation being executed
        name = primitive.__class__.__name__

        # Get the inputs        

        inputs = Config.inputs