You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2021/12/11 21:51:39 UTC

[GitHub] [airflow] khalidmammadov commented on a change in pull request #20214: Fixing MyPy issues in www fab_security manager

khalidmammadov commented on a change in pull request #20214:
URL: https://github.com/apache/airflow/pull/20214#discussion_r767197252



##########
File path: airflow/www/fab_security/manager.py
##########
@@ -104,12 +106,18 @@ class BaseSecurityManager:
     """ Flask-OpenID OpenID """
     oauth = None
     """ Flask-OAuth """
-    oauth_remotes = None
+    oauth_remotes: Dict[str, Any]
     """ OAuth email whitelists """
-    oauth_whitelists = {}
+    oauth_whitelists: Dict[str, List]
     """ Initialized (remote_app) providers dict {'provider_name', OBJ } """
-    oauth_tokengetter = _oauth_tokengetter
-    """ OAuth tokengetter function override to implement your own tokengetter method """
+
+    @staticmethod
+    def oauth_tokengetter():
+        """Authentication (OAuth) token getter function.
+        Override to implement your own token getter method
+        """
+        return _oauth_tokengetter

Review comment:
       > What is the error here? It should be OK to just annotate this as `oauth_tokengetter: Any = _oauth_tokengetter` since it is only passed onward to Flask-Appbuilder internals.
   
   As far as I remember, it was saying that we are trying to assign a function to a class method which does not accept "self".  This then is used to refer at below line as a staticmethod:
   https://github.com/apache/airflow/blob/36aa695ea817ea6f7e446558ef108d2c450ebb0c/airflow/www/fab_security/manager.py#L230
   
   Just tried to reproduce and MyPy saying all ok now without this change. Bizarre.. 
   
   But in general, I think it's much clear this way and more explicit. Assigning a function to an attribute to make a static method doesn't look OK to me. Staticmethod makes is more explicit as per PEP20.  




-- 
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.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org