def __init__(self, offset=<NUM_LIT:0>, begin=None, end=None):
self.begin = self.BEGIN if begin is None else begin<EOL>self.end = self.END if end is None else end<EOL>if not (self.BEGIN <= self.begin <= self.end <= self.END):<EOL><INDENT>raise ValueError('<STR_LIT>' %<EOL>(self.BEGIN, self.begin, self.end, self.END))<EOL><DEDENT>self.offset = offset<EOL>
Unlike a `range`, an OffsetRange includes both its begin *and* its end,
so it's closer to how regular people think of a range - for example
that DMX channels are in the range 1-512.