title: OverflowError: Python int too large to convert to C long
body: <p>I have this class:</p>
  
  <pre><code>class MetricInt(int):
      """Int wrapper that adds only during the observation window."""
      def __new__(cls, _, initial):
          return int.__new__(cls, initial)
  
      def __init__(self, sim, initial):
          int.__init__(initial)
          self.sim = sim
  
      def __add__(self, val):
          if self.sim.in_observe_window():
              self = MetricInt(self.sim, super(MetricInt, self).__add__(int(val)))
          return self
  </code></pre>
  
  <p>Which basically overwrite the <code>__add__</code> method in order to only to the addition if <code>self.sim.in_observe_window()</code> returns <code>True</code>.</p>
  
  <p>However, if the initial value is too big, I have :</p>
  
  <blockquote>
    <p>OverflowError: Python int too large to convert to C long.</p>
  </blockquote>
  
  <p>What is the correct way to do what I'm trying to do and also handle big numbers?</p>