Beispiel #1
0
class Layout(object):
    def __init__(self):
        self.solver = Solver()

    def update(self, element):
        self.solver.autosolve = False
        for constraint in element.constraints[1]:
            self.solver.remove_constraint(constraint)
        for constraint in element.constraints[0]:
            self.solver.add_constraint(constraint)
        element.constraints = [], element.constraints[0]
        self.solver.autosolve = True
Beispiel #2
0
class Layout(object):
    def __init__(self):
        self.solver = Solver()
        self.introns = WeakValueDictionary()

    def update(self, element):
        self.solver.autosolve = False
        for constraint in element.constraints[1]:
            self.solver.remove_constraint(constraint)
        for constraint in element.constraints[0]:
            self.solver.add_constraint(constraint)
        element.constraints = [], element.constraints[0]
        self.solver.autosolve = True

    def add_intron(self, source, intron):
        self.introns[source] = intron

    def pop_intron(self, source):
        return self.introns.pop(source)

    def get_intron(self, source, otherwise=None):
        return self.introns.get(source, otherwise)
Beispiel #3
0
class engine(object):
    def __init__(self):
        self.solver = Solver()
        self.solver.autosolve = True

    def require(self, rule):
        self.solver.add_constraint(rule)

    def prefer(self, rule):
        rule.strength = strong
        self.solver.add_constraint(rule)

    def guide(self, rule):
        rule.strength = weak
        self.solver.add_constraint(rule)