Exemple #1
0
def model(env, nmodels=None, *args, **kwargs):
    
    #update_hook = kwargs.pop('update_hook', lambda _: None) # allows an external prog to update the status
    Status('started modelling')

    Log( '=' * 80 )
    Log('GLASS version 0.1  %s' % time.asctime())
    Log( '=' * 80 )

    for o in env.objects:
        o.init()

    report(env)

    #init_model_generator(nmodels)

    if env.models is None:
        env.models = []
        env.solutions = []

    models = []
    solutions = []

    if nmodels is None:
        m = {'sol':  None,
             'obj,data': [ [o, {}] for o in env.objects ],
             'tagged':  False}
        models.append(m)
       
    else:
        # here all the work is done!
        # generate_models first generates the models (approx 2/3 of the tot time)
        # only then the for loop kicks in and does something (what??? takes approx 1/3 of tot time)
        
        for i,m in enumerate(generate_models(env.objects, nmodels, *args, **kwargs)):
            #if not (i%5): update_hook({'text': '', 'progress': (i+1,nmodels)})
            #Status("generating models", i=i+1, of=nmodels)
            Log( 'Model %i/%i complete.' % (i+1, nmodels), overwritable=True)
            models.append(m)
            solutions.append(m['sol'])
            #print 'glcmds.py:model ???', id(m['sol'])

        Log( 'Generated %i model(s).' % len(models) )
        _post_process(models)

    env.models.extend(models)
    env.solutions.extend(solutions)
    env.accepted_models = _filter(env.models)
Exemple #2
0
def model(env, nmodels=None, *args, **kwargs):

    Log('=' * 80)
    Log('GLASS version 0.1  %s' % time.asctime())
    Log('=' * 80)

    for o in env.objects:
        o.init()

    report(env)

    #init_model_generator(nmodels)

    if env.models is None:
        env.models = []
        env.solutions = []

    models = []
    solutions = []

    if nmodels is None:
        m = {
            'sol': None,
            'obj,data': [[o, {}] for o in env.objects],
            'tagged': False
        }
        models.append(m)
    else:
        for i, m in enumerate(
                generate_models(env.objects, nmodels, *args, **kwargs)):
            Log('Model %i/%i complete.' % (i + 1, nmodels), overwritable=True)
            models.append(m)
            solutions.append(m['sol'])
            #print 'glcmds.py:model ???', id(m['sol'])

        Log('Generated %i model(s).' % len(models))
        _post_process(models)

    env.models.extend(models)
    env.solutions.extend(solutions)
    env.accepted_models = _filter(env.models)
Exemple #3
0
def model(env, nmodels=None, *args, **kwargs):

    Log( '=' * 80 )
    Log('GLASS version 0.1  %s' % time.asctime())
    Log( '=' * 80 )

    for o in env.objects:
        o.init()

    report(env)

    #init_model_generator(nmodels)

    if env.models is None:
        env.models = []
        env.solutions = []

    models = []
    solutions = []

    if nmodels is None:
        m = {'sol':  None,
             'obj,data': [ [o, {}] for o in env.objects ],
             'tagged':  False}
        models.append(m)
    else:
        for i,m in enumerate(generate_models(env.objects, nmodels, *args, **kwargs)):
            Log( 'Model %i/%i complete.' % (i+1, nmodels), overwritable=True)
            models.append(m)
            solutions.append(m['sol'])
            #print 'glcmds.py:model ???', id(m['sol'])

        Log( 'Generated %i model(s).' % len(models) )
        _post_process(models)

    env.models.extend(models)
    env.solutions.extend(solutions)
    env.accepted_models = _filter(env.models)