def __init__(self, parent, x, y, z, width, height, padding=0,
            border=None, bgcolor=None, is_visible=True, is_enabled=True,
            is_transparent=False, children=None, id=None, classes=()):
        self.parent = parent
        self.id = id and self.allocateID()
        self.classes = classes
        self.children = children or []

        # colors, border and padding
        self.bgcolor = util.parse_color(bgcolor)
        self.border = util.parse_color(border)
        self._padding = util.parse_value(padding)
        if border:
            # force enough room to see the border
            self._padding += 1

        # save off the geometry specifications
        self.x_spec = util.Position(x, self, parent, 'width')
        self.y_spec = util.Position(y, self, parent, 'height')
        self._z = util.parse_value(z) or 0
        self.width_spec = util.Dimension(width, self, parent, 'width')
        self.height_spec = util.Dimension(height, self, parent, 'height')

        # attempt to calculate now what we can
        if self.x_spec.is_fixed:
            self.x = self.x_spec.calculate()
        if self.y_spec.is_fixed:
            self.y = self.y_spec.calculate()
        if self.width_spec.is_fixed:
            self.width = self.width_spec.calculate()
        if self.height_spec.is_fixed:
            self.height = self.height_spec.calculate()

        self.is_visible = is_visible
        self.is_enabled = is_enabled
        self.is_modal = False
        self.is_transparent = is_transparent

        self._event_handlers = {}

        # add this new element to its parent
        self.parent.addChild(self)

        # indicate we need geometry calculation 
        self.resetGeometry()
dataset/ETHPy150Open ardekantur/pyglet/contrib/wydget/wydget/element.py/Element.__init__/operator `or` -> `and`