You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ka...@apache.org on 2020/06/27 17:20:10 UTC

[airflow] branch master updated: Bump Pylint to 2.5.3 (#9294)

This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/master by this push:
     new c420dbd  Bump Pylint to 2.5.3 (#9294)
c420dbd is described below

commit c420dbd6e13e17867eb4ccc4271b37966310ac0f
Author: Kaxil Naik <ka...@gmail.com>
AuthorDate: Sat Jun 27 18:19:21 2020 +0100

    Bump Pylint to 2.5.3 (#9294)
---
 .github/workflows/ci.yml                           |  4 +-
 airflow/api_connexion/schemas/connection_schema.py |  2 +-
 airflow/executors/debug_executor.py                |  2 +-
 airflow/executors/local_executor.py                | 18 +++++----
 airflow/jobs/local_task_job.py                     |  3 ++
 airflow/models/pool.py                             |  2 +-
 .../cloud/example_dags/example_bigquery_dts.py     |  2 +-
 airflow/providers/google/cloud/hooks/functions.py  |  3 +-
 airflow/providers/google/cloud/hooks/gcs.py        |  2 +-
 airflow/sensors/base_sensor_operator.py            |  3 +-
 airflow/utils/orm_event_handlers.py                |  3 +-
 airflow/utils/timeout.py                           |  2 +-
 airflow/www/security.py                            |  3 +-
 requirements/requirements-python3.6.txt            | 41 +++++++++++----------
 requirements/requirements-python3.7.txt            | 41 +++++++++++----------
 requirements/requirements-python3.8.txt            | 43 +++++++++++-----------
 requirements/setup-3.6.md5                         |  2 +-
 requirements/setup-3.7.md5                         |  2 +-
 requirements/setup-3.8.md5                         |  2 +-
 setup.py                                           |  2 +-
 tests/executors/test_celery_executor.py            |  2 +-
 tests/plugins/test_plugins_manager.py              |  8 +---
 tests/test_core.py                                 |  2 +-
 tests/test_utils/fake_datetime.py                  |  2 +-
 24 files changed, 101 insertions(+), 95 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c0b701f..db9419f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -57,7 +57,7 @@ jobs:
       - name: Cache pre-commit env
         uses: actions/cache@v2
         env:
-          cache-name: cache-pre-commit-v2
+          cache-name: cache-pre-commit-v3
         with:
           path: ~/.cache/pre-commit
           key: ${{ env.cache-name }}-${{ github.job }}-${{ hashFiles('.pre-commit-config.yaml') }}
@@ -90,7 +90,7 @@ jobs:
       - name: Cache pre-commit env
         uses: actions/cache@v2
         env:
-          cache-name: cache-pre-commit
+          cache-name: cache-pre-commit-v1
         with:
           path: ~/.cache/pre-commit
           key: ${{ env.cache-name }}-${{ github.job }}-${{ hashFiles('.pre-commit-config.yaml') }}
diff --git a/airflow/api_connexion/schemas/connection_schema.py b/airflow/api_connexion/schemas/connection_schema.py
index b054857..451a3f5 100644
--- a/airflow/api_connexion/schemas/connection_schema.py
+++ b/airflow/api_connexion/schemas/connection_schema.py
@@ -43,7 +43,7 @@ class ConnectionCollectionItemSchema(SQLAlchemySchema):
     # We will be able to remove this when we upgrade to marshmallow 3.
     # To remove it, we would need to set unknown=EXCLUDE in Meta
     @validates_schema(pass_original=True)
-    def check_unknown_fields(self, data, original_data):
+    def check_unknown_fields(self, data, original_data):    # pylint: disable=unused-argument
         """ Validates unknown field """
         unknown = set(original_data) - set(self.fields)
         if unknown:
diff --git a/airflow/executors/debug_executor.py b/airflow/executors/debug_executor.py
index 38e1e69..a6a22d1 100644
--- a/airflow/executors/debug_executor.py
+++ b/airflow/executors/debug_executor.py
@@ -49,7 +49,7 @@ class DebugExecutor(BaseExecutor):
         self.tasks_params: Dict[TaskInstanceKeyType, Dict[str, Any]] = {}
         self.fail_fast = conf.getboolean("debug", "fail_fast")
 
-    def execute_async(self, *args, **kwargs) -> None:
+    def execute_async(self, *args, **kwargs) -> None:   # pylint: disable=signature-differs
         """
         The method is replaced by custom trigger_task implementation.
         """
diff --git a/airflow/executors/local_executor.py b/airflow/executors/local_executor.py
index 355bd02..55bc0c0 100644
--- a/airflow/executors/local_executor.py
+++ b/airflow/executors/local_executor.py
@@ -153,13 +153,13 @@ class LocalExecutor(BaseExecutor):
             self.executor.workers_used = 0
             self.executor.workers_active = 0
 
+        # pylint: disable=unused-argument # pragma: no cover
         # noinspection PyUnusedLocal
         def execute_async(self,
                           key: TaskInstanceKeyType,
                           command: CommandType,
                           queue: Optional[str] = None,
-                          executor_config: Optional[Any] = None) -> None:  \
-                # pylint: disable=unused-argument # pragma: no cover
+                          executor_config: Optional[Any] = None) -> None:
             """
             Executes task asynchronously.
 
@@ -175,6 +175,7 @@ class LocalExecutor(BaseExecutor):
             self.executor.workers_active += 1
             local_worker.start()
 
+        # pylint: enable=unused-argument # pragma: no cover
         def sync(self) -> None:
             """
             Sync will get called periodically by the heartbeat method.
@@ -224,12 +225,13 @@ class LocalExecutor(BaseExecutor):
                 worker.start()
 
         # noinspection PyUnusedLocal
-        def execute_async(self,
-                          key: TaskInstanceKeyType,
-                          command: CommandType,
-                          queue: Optional[str] = None,
-                          executor_config: Optional[Any] = None) -> None: \
-                # pylint: disable=unused-argument # pragma: no cover
+        def execute_async(
+            self,
+            key: TaskInstanceKeyType,
+            command: CommandType,
+            queue: Optional[str] = None,  # pylint: disable=unused-argument
+            executor_config: Optional[Any] = None  # pylint: disable=unused-argument
+        ) -> None:
             """
             Executes task asynchronously.
 
diff --git a/airflow/jobs/local_task_job.py b/airflow/jobs/local_task_job.py
index 5f71158..0ab163b 100644
--- a/airflow/jobs/local_task_job.py
+++ b/airflow/jobs/local_task_job.py
@@ -73,11 +73,14 @@ class LocalTaskJob(BaseJob):
     def _execute(self):
         self.task_runner = get_task_runner(self)
 
+        # pylint: disable=unused-argument
         def signal_handler(signum, frame):
             """Setting kill signal handler"""
             self.log.error("Received SIGTERM. Terminating subprocesses")
             self.on_kill()
             raise AirflowException("LocalTaskJob received SIGTERM signal")
+
+        # pylint: enable=unused-argument
         signal.signal(signal.SIGTERM, signal_handler)
 
         if not self.task_instance.check_and_change_state_before_execution(
diff --git a/airflow/models/pool.py b/airflow/models/pool.py
index 365b436..a904888 100644
--- a/airflow/models/pool.py
+++ b/airflow/models/pool.py
@@ -50,7 +50,7 @@ class Pool(Base):
     DEFAULT_POOL_NAME = 'default_pool'
 
     def __repr__(self):
-        return self.pool
+        return str(self.pool)    # pylint: disable=E0012
 
     @staticmethod
     @provide_session
diff --git a/airflow/providers/google/cloud/example_dags/example_bigquery_dts.py b/airflow/providers/google/cloud/example_dags/example_bigquery_dts.py
index 2967431..d8866a6 100644
--- a/airflow/providers/google/cloud/example_dags/example_bigquery_dts.py
+++ b/airflow/providers/google/cloud/example_dags/example_bigquery_dts.py
@@ -97,7 +97,7 @@ with models.DAG(
         requested_run_time={"seconds": int(time.time() + 60)},
     )
     run_id = (
-        "{{ task_instance.xcom_pull('gcp_bigquery_start_transfer', " "key='run_id') }}"
+        "{{ task_instance.xcom_pull('gcp_bigquery_start_transfer', key='run_id') }}"
     )
     # [END howto_bigquery_start_transfer]
 
diff --git a/airflow/providers/google/cloud/hooks/functions.py b/airflow/providers/google/cloud/hooks/functions.py
index c7bed34..9d7439d 100644
--- a/airflow/providers/google/cloud/hooks/functions.py
+++ b/airflow/providers/google/cloud/hooks/functions.py
@@ -145,8 +145,9 @@ class CloudFunctionsHook(GoogleBaseHook):
         :return: The upload URL that was returned by generateUploadUrl method.
         :rtype: str
         """
+        # pylint: disable=no-member # noqa
         response = \
-            self.get_conn().projects().locations().functions().generateUploadUrl(  # pylint: disable=no-member # noqa
+            self.get_conn().projects().locations().functions().generateUploadUrl(
                 parent=self._full_location(project_id, location)
             ).execute(num_retries=self.num_retries)
 
diff --git a/airflow/providers/google/cloud/hooks/gcs.py b/airflow/providers/google/cloud/hooks/gcs.py
index 5c8e4a1..6aeaed0 100644
--- a/airflow/providers/google/cloud/hooks/gcs.py
+++ b/airflow/providers/google/cloud/hooks/gcs.py
@@ -273,7 +273,7 @@ class GCSHook(GoogleBaseHook):
         self,
         bucket_name: Optional[str] = None,
         object_name: Optional[str] = None,
-        object_url: Optional[str] = None
+        object_url: Optional[str] = None    # pylint: disable=unused-argument
     ):
         """
         Downloads the file to a temporary directory and returns a file handle
diff --git a/airflow/sensors/base_sensor_operator.py b/airflow/sensors/base_sensor_operator.py
index 790db0a..f52fca7 100644
--- a/airflow/sensors/base_sensor_operator.py
+++ b/airflow/sensors/base_sensor_operator.py
@@ -199,8 +199,7 @@ def poke_mode_only(cls):
 
         def mode_setter(_, value):
             if value != 'poke':
-                raise ValueError(
-                    f"cannot set mode to 'poke'.")
+                raise ValueError("cannot set mode to 'poke'.")
 
         if not issubclass(cls_type, BaseSensorOperator):
             raise ValueError(f"poke_mode_only decorator should only be "
diff --git a/airflow/utils/orm_event_handlers.py b/airflow/utils/orm_event_handlers.py
index b8207d4..2d221cd 100644
--- a/airflow/utils/orm_event_handlers.py
+++ b/airflow/utils/orm_event_handlers.py
@@ -32,7 +32,7 @@ def setup_event_handlers(engine):
     """
     Setups event handlers.
     """
-    # pylint: disable=unused-argument
+    # pylint: disable=unused-argument, unused-variable
     @event.listens_for(engine, "connect")
     def connect(dbapi_connection, connection_record):
         connection_record.info['pid'] = os.getpid()
@@ -78,3 +78,4 @@ def setup_event_handlers(engine):
             log.info("@SQLALCHEMY %s |$ %s |$ %s |$  %s ",
                      total, file_name, stack_info, statement.replace("\n", " ")
                      )
+    # pylint: enable=unused-argument, unused-variable
diff --git a/airflow/utils/timeout.py b/airflow/utils/timeout.py
index b61d856..d63d82a 100644
--- a/airflow/utils/timeout.py
+++ b/airflow/utils/timeout.py
@@ -33,7 +33,7 @@ class timeout(LoggingMixin):  # pylint: disable=invalid-name
         self.seconds = seconds
         self.error_message = error_message + ', PID: ' + str(os.getpid())
 
-    def handle_timeout(self, signum, frame):
+    def handle_timeout(self, signum, frame):    # pylint: disable=unused-argument
         """
         Logs information and raises AirflowTaskTimeout.
         """
diff --git a/airflow/www/security.py b/airflow/www/security.py
index a733ab7..9359f71 100644
--- a/airflow/www/security.py
+++ b/airflow/www/security.py
@@ -456,9 +456,10 @@ class AirflowSecurityManager(SecurityManager, LoggingMixin):
         all_perm_views = {role.permission_view_id for role in all_perm_view_by_user}
 
         for role in dag_role:
+            # pylint: disable=no-member
             # Get all the perm-view of the role
             existing_perm_view_by_user = self.get_session.query(ab_perm_view_role)\
-                .filter(ab_perm_view_role.columns.role_id == role.id)  # pylint: disable=no-member
+                .filter(ab_perm_view_role.columns.role_id == role.id)
 
             existing_perms_views = {pv.permission_view_id for pv in existing_perm_view_by_user}
             missing_perm_views = all_perm_views - existing_perms_views
diff --git a/requirements/requirements-python3.6.txt b/requirements/requirements-python3.6.txt
index b6b690b..732f997 100644
--- a/requirements/requirements-python3.6.txt
+++ b/requirements/requirements-python3.6.txt
@@ -28,7 +28,7 @@ PyYAML==5.3.1
 Pygments==2.6.1
 SQLAlchemy-JSONField==0.9.0
 SQLAlchemy-Utils==0.36.6
-SQLAlchemy==1.3.17
+SQLAlchemy==1.3.18
 Sphinx==3.1.1
 Unidecode==1.1.1
 WTForms==2.3.1
@@ -72,19 +72,19 @@ beautifulsoup4==4.7.1
 billiard==3.6.3.0
 black==19.10b0
 blinker==1.4
-boto3==1.14.8
+boto3==1.14.11
 boto==2.49.0
-botocore==1.17.8
+botocore==1.17.11
 bowler==0.8.0
 cached-property==1.5.1
 cachetools==4.1.0
 cassandra-driver==3.20.2
 cattrs==1.0.0
-celery==4.4.5
+celery==4.4.6
 certifi==2020.6.20
 cffi==1.14.0
 cfgv==3.1.0
-cfn-lint==0.33.1
+cfn-lint==0.33.2
 cgroupspy==0.1.6
 chardet==3.0.4
 click==6.7
@@ -101,7 +101,7 @@ cryptography==2.9.2
 curlify==2.2.1
 cx-Oracle==7.3.0
 dask==2.19.0
-datadog==0.37.0
+datadog==0.37.1
 decorator==4.4.2
 defusedxml==0.6.0
 dill==0.3.2
@@ -159,7 +159,7 @@ google-cloud-monitoring==1.0.0
 google-cloud-pubsub==1.6.0
 google-cloud-redis==1.0.0
 google-cloud-secret-manager==1.0.0
-google-cloud-spanner==1.17.0
+google-cloud-spanner==1.17.1
 google-cloud-speech==1.3.2
 google-cloud-storage==1.29.0
 google-cloud-tasks==1.5.0
@@ -173,7 +173,7 @@ graphviz==0.14
 greenlet==0.4.16
 grpc-google-iam-v1==0.12.3
 grpcio-gcp==0.2.2
-grpcio==1.29.0
+grpcio==1.30.0
 gunicorn==19.10.0
 hdfs==2.5.8
 hmsclient==0.1.1
@@ -189,7 +189,7 @@ immutables==0.14
 importlib-metadata==1.6.1
 importlib-resources==2.0.1
 inflection==0.5.0
-ipdb==0.13.2
+ipdb==0.13.3
 ipython-genutils==0.2.0
 ipython==7.15.0
 iso8601==0.1.12
@@ -208,7 +208,7 @@ jsonschema==3.2.0
 junit-xml==1.9
 jupyter-client==6.1.3
 jupyter-core==4.6.3
-kombu==4.6.10
+kombu==4.6.11
 kubernetes==11.0.0
 lazy-object-proxy==1.5.0
 ldap3==2.7
@@ -224,7 +224,7 @@ monotonic==1.5
 more-itertools==8.4.0
 moto==1.3.14
 msgpack==1.0.0
-msrest==0.6.16
+msrest==0.6.17
 msrestazure==0.6.3
 multi-key-dict==2.0.3
 multidict==4.7.6
@@ -269,7 +269,7 @@ psutil==5.7.0
 psycopg2-binary==2.8.5
 ptyprocess==0.6.0
 py4j==0.10.9
-py==1.8.2
+py==1.9.0
 pyOpenSSL==19.1.0
 pyarrow==0.17.1
 pyasn1-modules==0.2.8
@@ -277,13 +277,13 @@ pyasn1==0.4.8
 pycodestyle==2.6.0
 pycountry==19.8.18
 pycparser==2.20
-pycryptodomex==3.9.7
+pycryptodomex==3.9.8
 pydata-google-auth==1.1.0
 pydruid==0.5.8
 pyexasol==0.13.1
 pyflakes==2.2.0
 pykerberos==1.2.1
-pylint==2.4.4
+pylint==2.5.3
 pymongo==3.10.1
 pymssql==2.1.4
 pyodbc==4.0.30
@@ -293,7 +293,7 @@ pyrsistent==0.16.0
 pysftp==0.2.9
 pyspark==3.0.0
 pytest-cov==2.10.0
-pytest-forked==1.1.3
+pytest-forked==1.2.0
 pytest-instafail==0.4.2
 pytest-rerunfailures==9.0
 pytest-timeout==1.4.1
@@ -326,17 +326,17 @@ rsa==4.6
 s3transfer==0.3.3
 sasl==0.2.1
 semver==2.10.2
-sendgrid==6.3.1
+sendgrid==6.4.1
 sentinels==1.0.0
 sentry-sdk==0.15.1
 setproctitle==1.1.10
 sh==1.13.1
 simple-salesforce==1.1.0
 six==1.15.0
-slackclient==2.7.1
+slackclient==2.7.2
 smmap==3.0.4
 snowballstemmer==2.0.0
-snowflake-connector-python==2.2.7
+snowflake-connector-python==2.2.8
 snowflake-sqlalchemy==1.2.3
 sortedcontainers==2.2.2
 soupsieve==2.0.1
@@ -357,6 +357,7 @@ sphinxcontrib-serializinghtml==1.1.4
 spython==0.0.84
 sshpubkeys==3.1.0
 sshtunnel==0.1.5
+starkbank-ecdsa==1.0.0
 statsd==3.3.0
 swagger-ui-bundle==0.0.6
 tableauserverclient==0.9
@@ -381,9 +382,9 @@ uritemplate==3.0.1
 urllib3==1.25.9
 vertica-python==0.10.4
 vine==1.3.0
-virtualenv==20.0.24
+virtualenv==20.0.25
 watchtower==0.7.3
-wcwidth==0.2.4
+wcwidth==0.2.5
 websocket-client==0.57.0
 wrapt==1.12.1
 xmltodict==0.12.0
diff --git a/requirements/requirements-python3.7.txt b/requirements/requirements-python3.7.txt
index e18701c..14ca634 100644
--- a/requirements/requirements-python3.7.txt
+++ b/requirements/requirements-python3.7.txt
@@ -28,7 +28,7 @@ PyYAML==5.3.1
 Pygments==2.6.1
 SQLAlchemy-JSONField==0.9.0
 SQLAlchemy-Utils==0.36.6
-SQLAlchemy==1.3.17
+SQLAlchemy==1.3.18
 Sphinx==3.1.1
 Unidecode==1.1.1
 WTForms==2.3.1
@@ -72,19 +72,19 @@ beautifulsoup4==4.7.1
 billiard==3.6.3.0
 black==19.10b0
 blinker==1.4
-boto3==1.14.8
+boto3==1.14.11
 boto==2.49.0
-botocore==1.17.8
+botocore==1.17.11
 bowler==0.8.0
 cached-property==1.5.1
 cachetools==4.1.0
 cassandra-driver==3.20.2
 cattrs==1.0.0
-celery==4.4.5
+celery==4.4.6
 certifi==2020.6.20
 cffi==1.14.0
 cfgv==3.1.0
-cfn-lint==0.33.1
+cfn-lint==0.33.2
 cgroupspy==0.1.6
 chardet==3.0.4
 click==6.7
@@ -100,7 +100,7 @@ cryptography==2.9.2
 curlify==2.2.1
 cx-Oracle==7.3.0
 dask==2.19.0
-datadog==0.37.0
+datadog==0.37.1
 decorator==4.4.2
 defusedxml==0.6.0
 dill==0.3.2
@@ -158,7 +158,7 @@ google-cloud-monitoring==1.0.0
 google-cloud-pubsub==1.6.0
 google-cloud-redis==1.0.0
 google-cloud-secret-manager==1.0.0
-google-cloud-spanner==1.17.0
+google-cloud-spanner==1.17.1
 google-cloud-speech==1.3.2
 google-cloud-storage==1.29.0
 google-cloud-tasks==1.5.0
@@ -172,7 +172,7 @@ graphviz==0.14
 greenlet==0.4.16
 grpc-google-iam-v1==0.12.3
 grpcio-gcp==0.2.2
-grpcio==1.29.0
+grpcio==1.30.0
 gunicorn==19.10.0
 hdfs==2.5.8
 hmsclient==0.1.1
@@ -185,7 +185,7 @@ ijson==2.6.1
 imagesize==1.2.0
 importlib-metadata==1.6.1
 inflection==0.5.0
-ipdb==0.13.2
+ipdb==0.13.3
 ipython-genutils==0.2.0
 ipython==7.15.0
 iso8601==0.1.12
@@ -204,7 +204,7 @@ jsonschema==3.2.0
 junit-xml==1.9
 jupyter-client==6.1.3
 jupyter-core==4.6.3
-kombu==4.6.10
+kombu==4.6.11
 kubernetes==11.0.0
 lazy-object-proxy==1.5.0
 ldap3==2.7
@@ -220,7 +220,7 @@ monotonic==1.5
 more-itertools==8.4.0
 moto==1.3.14
 msgpack==1.0.0
-msrest==0.6.16
+msrest==0.6.17
 msrestazure==0.6.3
 multi-key-dict==2.0.3
 multidict==4.7.6
@@ -264,7 +264,7 @@ psutil==5.7.0
 psycopg2-binary==2.8.5
 ptyprocess==0.6.0
 py4j==0.10.9
-py==1.8.2
+py==1.9.0
 pyOpenSSL==19.1.0
 pyarrow==0.17.1
 pyasn1-modules==0.2.8
@@ -272,13 +272,13 @@ pyasn1==0.4.8
 pycodestyle==2.6.0
 pycountry==19.8.18
 pycparser==2.20
-pycryptodomex==3.9.7
+pycryptodomex==3.9.8
 pydata-google-auth==1.1.0
 pydruid==0.5.8
 pyexasol==0.13.1
 pyflakes==2.2.0
 pykerberos==1.2.1
-pylint==2.4.4
+pylint==2.5.3
 pymongo==3.10.1
 pymssql==2.1.4
 pyodbc==4.0.30
@@ -288,7 +288,7 @@ pyrsistent==0.16.0
 pysftp==0.2.9
 pyspark==3.0.0
 pytest-cov==2.10.0
-pytest-forked==1.1.3
+pytest-forked==1.2.0
 pytest-instafail==0.4.2
 pytest-rerunfailures==9.0
 pytest-timeout==1.4.1
@@ -321,17 +321,17 @@ rsa==4.6
 s3transfer==0.3.3
 sasl==0.2.1
 semver==2.10.2
-sendgrid==6.3.1
+sendgrid==6.4.1
 sentinels==1.0.0
 sentry-sdk==0.15.1
 setproctitle==1.1.10
 sh==1.13.1
 simple-salesforce==1.1.0
 six==1.15.0
-slackclient==2.7.1
+slackclient==2.7.2
 smmap==3.0.4
 snowballstemmer==2.0.0
-snowflake-connector-python==2.2.7
+snowflake-connector-python==2.2.8
 snowflake-sqlalchemy==1.2.3
 sortedcontainers==2.2.2
 soupsieve==2.0.1
@@ -352,6 +352,7 @@ sphinxcontrib-serializinghtml==1.1.4
 spython==0.0.84
 sshpubkeys==3.1.0
 sshtunnel==0.1.5
+starkbank-ecdsa==1.0.0
 statsd==3.3.0
 swagger-ui-bundle==0.0.6
 tableauserverclient==0.9
@@ -375,9 +376,9 @@ uritemplate==3.0.1
 urllib3==1.25.9
 vertica-python==0.10.4
 vine==1.3.0
-virtualenv==20.0.24
+virtualenv==20.0.25
 watchtower==0.7.3
-wcwidth==0.2.4
+wcwidth==0.2.5
 websocket-client==0.57.0
 wrapt==1.12.1
 xmltodict==0.12.0
diff --git a/requirements/requirements-python3.8.txt b/requirements/requirements-python3.8.txt
index 918f3ef..c708f66 100644
--- a/requirements/requirements-python3.8.txt
+++ b/requirements/requirements-python3.8.txt
@@ -28,7 +28,7 @@ PyYAML==5.3.1
 Pygments==2.6.1
 SQLAlchemy-JSONField==0.9.0
 SQLAlchemy-Utils==0.36.6
-SQLAlchemy==1.3.17
+SQLAlchemy==1.3.18
 Sphinx==3.1.1
 Unidecode==1.1.1
 WTForms==2.3.1
@@ -45,7 +45,7 @@ apispec==1.3.3
 appdirs==1.4.4
 argcomplete==1.11.1
 asn1crypto==1.3.0
-astroid==2.3.3
+astroid==2.4.2
 async-generator==1.10
 async-timeout==3.0.1
 atlasclient==1.0.0
@@ -72,19 +72,19 @@ beautifulsoup4==4.7.1
 billiard==3.6.3.0
 black==19.10b0
 blinker==1.4
-boto3==1.14.8
+boto3==1.14.11
 boto==2.49.0
-botocore==1.17.8
+botocore==1.17.11
 bowler==0.8.0
 cached-property==1.5.1
 cachetools==4.1.0
 cassandra-driver==3.20.2
 cattrs==1.0.0
-celery==4.4.5
+celery==4.4.6
 certifi==2020.6.20
 cffi==1.14.0
 cfgv==3.1.0
-cfn-lint==0.33.1
+cfn-lint==0.33.2
 cgroupspy==0.1.6
 chardet==3.0.4
 click==6.7
@@ -100,7 +100,7 @@ cryptography==2.9.2
 curlify==2.2.1
 cx-Oracle==7.3.0
 dask==2.19.0
-datadog==0.37.0
+datadog==0.37.1
 decorator==4.4.2
 defusedxml==0.6.0
 dill==0.3.2
@@ -158,7 +158,7 @@ google-cloud-monitoring==1.0.0
 google-cloud-pubsub==1.6.0
 google-cloud-redis==1.0.0
 google-cloud-secret-manager==1.0.0
-google-cloud-spanner==1.17.0
+google-cloud-spanner==1.17.1
 google-cloud-speech==1.3.2
 google-cloud-storage==1.29.0
 google-cloud-tasks==1.5.0
@@ -172,7 +172,7 @@ graphviz==0.14
 greenlet==0.4.16
 grpc-google-iam-v1==0.12.3
 grpcio-gcp==0.2.2
-grpcio==1.29.0
+grpcio==1.30.0
 gunicorn==19.10.0
 hdfs==2.5.8
 hmsclient==0.1.1
@@ -185,7 +185,7 @@ ijson==2.6.1
 imagesize==1.2.0
 importlib-metadata==1.6.1
 inflection==0.5.0
-ipdb==0.13.2
+ipdb==0.13.3
 ipython-genutils==0.2.0
 ipython==7.15.0
 iso8601==0.1.12
@@ -204,7 +204,7 @@ jsonschema==3.2.0
 junit-xml==1.9
 jupyter-client==6.1.3
 jupyter-core==4.6.3
-kombu==4.6.10
+kombu==4.6.11
 kubernetes==11.0.0
 lazy-object-proxy==1.5.0
 ldap3==2.7
@@ -220,7 +220,7 @@ monotonic==1.5
 more-itertools==8.4.0
 moto==1.3.14
 msgpack==1.0.0
-msrest==0.6.16
+msrest==0.6.17
 msrestazure==0.6.3
 multi-key-dict==2.0.3
 multidict==4.7.6
@@ -264,7 +264,7 @@ psutil==5.7.0
 psycopg2-binary==2.8.5
 ptyprocess==0.6.0
 py4j==0.10.9
-py==1.8.2
+py==1.9.0
 pyOpenSSL==19.1.0
 pyarrow==0.17.1
 pyasn1-modules==0.2.8
@@ -272,13 +272,13 @@ pyasn1==0.4.8
 pycodestyle==2.6.0
 pycountry==19.8.18
 pycparser==2.20
-pycryptodomex==3.9.7
+pycryptodomex==3.9.8
 pydata-google-auth==1.1.0
 pydruid==0.5.8
 pyexasol==0.13.1
 pyflakes==2.2.0
 pykerberos==1.2.1
-pylint==2.4.4
+pylint==2.5.3
 pymongo==3.10.1
 pyodbc==4.0.30
 pyparsing==2.4.7
@@ -287,7 +287,7 @@ pyrsistent==0.16.0
 pysftp==0.2.9
 pyspark==3.0.0
 pytest-cov==2.10.0
-pytest-forked==1.1.3
+pytest-forked==1.2.0
 pytest-instafail==0.4.2
 pytest-rerunfailures==9.0
 pytest-timeout==1.4.1
@@ -320,17 +320,17 @@ rsa==4.6
 s3transfer==0.3.3
 sasl==0.2.1
 semver==2.10.2
-sendgrid==6.3.1
+sendgrid==6.4.1
 sentinels==1.0.0
 sentry-sdk==0.15.1
 setproctitle==1.1.10
 sh==1.13.1
 simple-salesforce==1.1.0
 six==1.15.0
-slackclient==2.7.1
+slackclient==2.7.2
 smmap==3.0.4
 snowballstemmer==2.0.0
-snowflake-connector-python==2.2.7
+snowflake-connector-python==2.2.8
 snowflake-sqlalchemy==1.2.3
 sortedcontainers==2.2.2
 soupsieve==2.0.1
@@ -351,6 +351,7 @@ sphinxcontrib-serializinghtml==1.1.4
 spython==0.0.84
 sshpubkeys==3.1.0
 sshtunnel==0.1.5
+starkbank-ecdsa==1.0.0
 statsd==3.3.0
 swagger-ui-bundle==0.0.6
 tableauserverclient==0.9
@@ -374,9 +375,9 @@ uritemplate==3.0.1
 urllib3==1.25.9
 vertica-python==0.10.4
 vine==1.3.0
-virtualenv==20.0.24
+virtualenv==20.0.25
 watchtower==0.7.3
-wcwidth==0.2.4
+wcwidth==0.2.5
 websocket-client==0.57.0
 wrapt==1.12.1
 xmltodict==0.12.0
diff --git a/requirements/setup-3.6.md5 b/requirements/setup-3.6.md5
index 86c4da4..deeb4dd 100644
--- a/requirements/setup-3.6.md5
+++ b/requirements/setup-3.6.md5
@@ -1 +1 @@
-cac9433ddd48ca884fa160b007be3818  /opt/airflow/setup.py
+ab047ae7da10b1a5efb746c9c4a403fe  /opt/airflow/setup.py
diff --git a/requirements/setup-3.7.md5 b/requirements/setup-3.7.md5
index 86c4da4..deeb4dd 100644
--- a/requirements/setup-3.7.md5
+++ b/requirements/setup-3.7.md5
@@ -1 +1 @@
-cac9433ddd48ca884fa160b007be3818  /opt/airflow/setup.py
+ab047ae7da10b1a5efb746c9c4a403fe  /opt/airflow/setup.py
diff --git a/requirements/setup-3.8.md5 b/requirements/setup-3.8.md5
index 86c4da4..deeb4dd 100644
--- a/requirements/setup-3.8.md5
+++ b/requirements/setup-3.8.md5
@@ -1 +1 @@
-cac9433ddd48ca884fa160b007be3818  /opt/airflow/setup.py
+ab047ae7da10b1a5efb746c9c4a403fe  /opt/airflow/setup.py
diff --git a/setup.py b/setup.py
index 4443514..5259c85 100644
--- a/setup.py
+++ b/setup.py
@@ -455,7 +455,7 @@ devel = [
     'paramiko',
     'pipdeptree',
     'pre-commit',
-    'pylint==2.4.4',
+    'pylint==2.5.3',
     'pysftp',
     'pytest',
     'pytest-cov',
diff --git a/tests/executors/test_celery_executor.py b/tests/executors/test_celery_executor.py
index 4fe0178..28a3285 100644
--- a/tests/executors/test_celery_executor.py
+++ b/tests/executors/test_celery_executor.py
@@ -125,7 +125,7 @@ class TestCeleryExecutor(unittest.TestCase):
                 ]
 
                 # "Enqueue" them. We don't have a real SimpleTaskInstance, so directly edit the dict
-                for (key, simple_ti, command, queue, task) in task_tuples_to_send:
+                for (key, simple_ti, command, queue, task) in task_tuples_to_send:  # pylint: disable=W0612
                     executor.queued_tasks[key] = (command, 1, queue, simple_ti)
 
                 executor._process_tasks(task_tuples_to_send)
diff --git a/tests/plugins/test_plugins_manager.py b/tests/plugins/test_plugins_manager.py
index ac882d7..b932562 100644
--- a/tests/plugins/test_plugins_manager.py
+++ b/tests/plugins/test_plugins_manager.py
@@ -69,12 +69,8 @@ class TestPluginsRBAC(unittest.TestCase):
         self.assertTrue('test_plugin' in self.app.blueprints)
         self.assertEqual(self.app.blueprints['test_plugin'].name, bp.name)
 
-    @mock.patch('airflow.plugins_manager.import_errors', return_value={})
-    @mock.patch('airflow.plugins_manager.plugins', return_value=[])
     @mock.patch('airflow.plugins_manager.pkg_resources.iter_entry_points')
-    def test_entrypoint_plugin_errors_dont_raise_exceptions(
-        self, mock_ep_plugins, mock_plugins, mock_import_errors
-    ):
+    def test_entrypoint_plugin_errors_dont_raise_exceptions(self, mock_ep_plugins):
         """
         Test that Airflow does not raise an Error if there is any Exception because of the
         Plugin.
@@ -95,7 +91,7 @@ class TestPluginsRBAC(unittest.TestCase):
             assert "Traceback (most recent call last):" in received_logs
             assert "Version Conflict" in received_logs
             assert "Failed to import plugin test-entrypoint" in received_logs
-            assert "Version Conflict", "test.plugins.test_plugins_manager" in import_errors.items()
+            assert ("test.plugins.test_plugins_manager", "Version Conflict") in import_errors.items()
 
 
 class TestPluginsManager(unittest.TestCase):
diff --git a/tests/test_core.py b/tests/test_core.py
index b0c4307..bcba38f 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -272,7 +272,7 @@ class TestCore(unittest.TestCase):
             def __len__(self):  # pylint: disable=invalid-length-returned
                 return NotImplemented
 
-            def __bool__(self):
+            def __bool__(self):  # pylint: disable=invalid-bool-returned, bad-option-value
                 return NotImplemented
 
         op = OperatorSubclass(
diff --git a/tests/test_utils/fake_datetime.py b/tests/test_utils/fake_datetime.py
index 3e7a374..192856b 100644
--- a/tests/test_utils/fake_datetime.py
+++ b/tests/test_utils/fake_datetime.py
@@ -24,5 +24,5 @@ class FakeDatetime(datetime):
     A fake replacement for datetime that can be mocked for testing.
     """
 
-    def __new__(cls, *args, **kwargs):
+    def __new__(cls, *args, **kwargs):  # pylint: disable=signature-differs
         return datetime.__new__(datetime, *args, **kwargs)