'**Arguments:**
pos             Position of the line. This can be a QPointF or a single value for
vertical/horizontal lines.
angle           Angle of line in degrees. 0 is horizontal, 90 is vertical.
pen             Pen to use when drawing line. Can be any arguments that are valid
for :func:`mkPen <pyqtgraph.mkPen>`. Default pen is transparent
yellow.
movable         If True, the line can be dragged to a new position by the user.
hoverPen        Pen to use when drawing line when hovering over it. Can be any
arguments that are valid for :func:`mkPen <pyqtgraph.mkPen>`.
Default pen is red.
bounds          Optional [min, max] bounding values. Bounds are only valid if the
line is vertical or horizontal.
label           Text to be displayed in a label attached to the line, or
None to show no label (default is None). May optionally
include formatting strings to display the line value.
labelOpts       A dict of keyword arguments to use when constructing the
text label. See :class:`InfLineLabel`.
name            Name of the item'

def __init__(self, pos=None, angle=90, pen=None, movable=False, bounds=None, hoverPen=None, label=None, labelOpts=None, name=None):

    self._boundingRect = None
    self._line = None
    self._name = name
    GraphicsObject.__init__(self)
    if (bounds is None):
        self.maxRange = [None, None]
    else:
        self.maxRange = bounds
    self.moving = False
    self.setMovable(movable)
    self.mouseHovering = False
    self.p = [0, 0]
    self.setAngle(angle)
    if (pos is None):
        pos = Point(0, 0)
    self.setPos(pos)
    if (pen is None):
        pen = (200, 200, 100)
    self.setPen(pen)
    if (hoverPen is None):
        self.setHoverPen(color=(255, 0, 0), width=self.pen.width())
    else:
        self.setHoverPen(hoverPen)
    self.currentPen = self.pen
    if (label is not None):
        labelOpts = ({} if (labelOpts is None) else labelOpts)
        self.label = InfLineLabel(self, text=label, **labelOpts)
