title: Why typing.py differs in python3.7 between docker image and cpython source?
body: <p>I found strange behaviour between two python-3.7.2 versions. The first one I've compiled from <a href="https://github.com/python/cpython/tree/v3.7.2" rel="nofollow noreferrer">source</a> on my host machine (Ubuntu 17.10) the other one is python docker image <code>docker pull python:3.7</code></p>
  
  <pre><code>import abc
  import typing
  
  
  class Meta(metaclass=abc.ABCMeta):
      pass
  
  
  class Base(Meta):
      pass
  
  
  class Type(Base):
      pass
  
  
  T = typing.TypeVar('T', bound=Type)
  
  class Variable(typing.Generic[T], Base):
      """
          Variable docstring...
      """
  
  class Member(Variable[T]):
      __doc__ = Variable[T].__doc__
  
  
  m = Member()
  
  assert 'Variable docstring' in m.__class__.__doc__
  </code></pre>
  
  <p>This assertion differs between my host and docker machines. On docker docstring is inherited from <code>_GenericAlias</code> from <code>typing.py</code>.
  In fact on my host machine where python was installed from sources <code>typing.py</code> does not contain <code>class _GenericAlias</code> but python from docker image it is under <code>/usr/local/lib/python3.7/typing.py:591:class _GenericAlias(_Final, _root=True)</code></p>
  
  <p>Why such behaviour exists? And how to prevent them in the future?</p>