def __init__(self,<EOL>lower=None,<EOL>upper=None,<EOL>inclusive=None,<EOL>lowerinclusive=True,<EOL>upperinclusive=True,<EOL>**kw):
super(Int, self).__init__(**kw)<EOL>if inclusive is not None:<EOL><INDENT>lowerinclusive = upperinclusive = inclusive<EOL><DEDENT>self.lower = lower<EOL>self.upper = upper<EOL>self.lowerinclusive = lowerinclusive<EOL>self.upperinclusive = upperinclusive<EOL>docs = [self.docs[:-<NUM_LIT:1>]]<EOL>if lower is not None:<EOL><INDENT>if lowerinclusive:<EOL><INDENT>docs.append('<STR_LIT>' + self.to_literal(lower))<EOL><DEDENT>else:<EOL><INDENT>docs.append('<STR_LIT>' + self.to_literal(lower))<EOL><DEDENT>if upper is not None:<EOL><INDENT>docs.append('<STR_LIT>')<EOL><DEDENT><DEDENT>if upper is not None:<EOL><INDENT>if upperinclusive:<EOL><INDENT>docs.append('<STR_LIT>' + self.to_literal(upper))<EOL><DEDENT>else:<EOL><INDENT>docs.append('<STR_LIT>' + self.to_literal(upper))<EOL><DEDENT><DEDENT>self._docs = '<STR_LIT:U+0020>'.join(docs) + '<STR_LIT:.>'<EOL>
lower and upper (if not None) give the lower and upper bounds of 
permissible values. 

lowerinclusive and upperinclusive state whether the bound values 
themselves are within the permissible range.

inclusive (if not None) overrides lowerinclusive and upperinclusive.