dazza-codes commented on a change in pull request #6811: [RFC][AIRFLOW-6245] 
Add custom waiters for AWS batch jobs
URL: https://github.com/apache/airflow/pull/6811#discussion_r361009175
 
 

 ##########
 File path: tests/test_core_to_contrib.py
 ##########
 @@ -757,6 +757,11 @@
         "airflow.providers.amazon.aws.operators.batch.AwsBatchOperator",
         "airflow.contrib.operators.awsbatch_operator.AWSBatchOperator",
     ),
+    # # Leave this out to avoid TypeError: Instance and class checks can only 
be used with @runtime protocols
+    # (
+    #     "airflow.providers.amazon.aws.hooks.batch_client.AwsBatchProtocol",
+    #     "airflow.contrib.operators.awsbatch_operator.BatchProtocol",
+    # ),
 
 Review comment:
   Yes, if there is a fix for testing `Protocol` but the typing system is 
failing on the `issubclass` test, as noted in the comment.  So the comment is a 
placeholder to warn about avoiding this error, because I don't know an easy fix 
for it (yet).  I did some cursory research on this error and did not find an 
easy solution - I did try to apply an `@runtime` decorator but that raised 
other errors.  I didn't want to change up the existing test method for the 
sub-class check, but the changes implemented do use the subclass approach 
required.  It's just that a `Protocol` raises a `TypeError` in the `issubclass` 
method; i.e.
   ```python
   >>> from typing_extensions import Protocol
   >>> class ProtoSubclass(Protocol):
   ...     pass
   ... 
   >>> issubclass(ProtoSubclass, Protocol)
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     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
   >>> from typing_extensions import runtime
   >>> @runtime
   ... class ProtoSubclass(Protocol):
   ...     pass
   ... 
   >>> issubclass(ProtoSubclass, Protocol)
   Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
     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
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to