Ejemplo n.º 1
0
 def new_blank_object_manager(self):
     object_manager = ObjectManager(
         fp_name="",
         default_clearance=UnitNumber(DEFAULT_DEFAULT_CLEARANCE_MILS,
                                      'mil'),
         default_mask=UnitNumber(DEFAULT_DEFAULT_MASK_MILS, 'mil'))
     CenterPoint.new(object_manager)
     return object_manager
Ejemplo n.º 2
0
    def from_dict(dictionary):
        object_manager = ObjectManager(
            dictionary['fp_name'],
            UnitNumber.from_dict(dictionary['default_clearance']),
            UnitNumber.from_dict(dictionary['default_mask']),
        )
        object_manager._all_points = set(dictionary['all_points'])
        object_manager._point_lru = dictionary['all_points']
        object_manager._next_point_idx = dictionary['next_point_idx']
        object_manager._point_coords = {
            int(point): tuple(pc)
            for point, pc in dictionary['point_coords'].iteritems()
        }

        # Create the actual primitives. This requires a topological sort, which
        # can be done more efficiently than this but there's no good reason to.
        primitive_dicts = dictionary['primitives']
        object_manager.primitives = [None] * len(primitive_dicts)
        while not all(primitive for primitive in object_manager.primitives):
            for primitive_dict in primitive_dicts:
                if not all(object_manager.primitives[i]
                           for i in primitive_dict.get('deps', [])):
                    continue
                # At this point, we have a primitive that's ready to be created.
                primitive_cls = PRIMITIVE_TYPES[
                    primitive_dict['primitive_type']
                ]
                primitive = primitive_cls.from_dict(
                    object_manager,
                    primitive_dict['primitive_dict']
                )
                object_manager.primitives[primitive_dict['index']] = primitive
        object_manager.draw_primitives = [
            object_manager.primitives[idx]
            for idx in dictionary['draw_primitives']
        ]
        object_manager.constraining_primitives = [
            object_manager.primitives[idx]
            for idx in dictionary['constraining_primitives']
        ]
        object_manager.suppressed_primitives = set(
            object_manager.primitives[idx]
            for idx in dictionary['suppressed_primitives']
        )
        object_manager.update_points()
        object_manager.update_parent_map()

        return object_manager
Ejemplo n.º 3
0
 def val(self):
     assert self.valid()
     text = self.get_text()
     if text == '':
         return None
     else:
         return UnitNumber.from_str(text)
Ejemplo n.º 4
0
 def val(self):
     assert self.valid()
     text = self.get_text()
     if text == "":
         return None
     else:
         return UnitNumber.from_str(text)
Ejemplo n.º 5
0
    def valid(self):
        text = self.get_text()
        if text == '':
            return self._allow_empty
        try:
            val = UnitNumber.from_str(text)
        except ValueError:
            return False

        return val.value >= 0 or self._allow_neg
Ejemplo n.º 6
0
    def valid(self):
        text = self.get_text()
        if text == "":
            return self._allow_empty
        try:
            val = UnitNumber.from_str(text)
        except ValueError:
            return False

        return val.value >= 0 or self._allow_neg
Ejemplo n.º 7
0
 def fparea_cursor_motion(self, _, x, y, coord_label):
     x = UnitNumber(x, "iu").to(self._default_units)
     y = UnitNumber(y, "iu").to(self._default_units)
     coord_label.set_text("({:.3f}, {:.3f})".format(x, y))