title: How can you test that a python typing Protocol is a subclass of another Protocol?
body: <p>The obvious solution to the problem is to use <code>issubclass</code>, but this raises <code>TypeError</code> (using Python 3.6.7), e.g.</p>
  
  <pre class="lang-py prettyprint-override"><code>&gt;&gt;&gt; from typing_extensions import Protocol
  &gt;&gt;&gt; class ProtoSubclass(Protocol):
  ...     pass
  ... 
  &gt;&gt;&gt; issubclass(ProtoSubclass, Protocol)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/opt/conda/envs/airflow/lib/python3.6/site-packages/typing_extensions.py", line 1265, in __subclasscheck__
      raise TypeError("Instance and class checks can only be used with"
  TypeError: Instance and class checks can only be used with @runtime protocols
  &gt;&gt;&gt; from typing_extensions import runtime
  &gt;&gt;&gt; @runtime
  ... class ProtoSubclass(Protocol):
  ...     pass
  ... 
  &gt;&gt;&gt; issubclass(ProtoSubclass, Protocol)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "/opt/conda/envs/airflow/lib/python3.6/site-packages/typing_extensions.py", line 1265, in __subclasscheck__
      raise TypeError("Instance and class checks can only be used with"
  TypeError: Instance and class checks can only be used with @runtime protocols
  </code></pre>