Browse Source

ref(py3): implement list coercion compat layer for map, filter, zip, and enforce via lint (#17270)

josh 5 years ago
parent
commit
d46213a3cb

+ 2 - 1
.travis.yml

@@ -133,7 +133,8 @@ matrix:
     # Proactive linting on 3.7 during the porting process
     - python: 3.7
       name: 'Linter (Python 3.7)'
-      install: pip install 'sentry-flake8>=0.2.0,<0.3.0'
+      # XXX: this must be synced with requirements-dev.txt
+      install: pip install 'sentry-flake8==0.3.0'
       # configuration for flake8 can be found in setup.cfg
       script: flake8
 

+ 1 - 1
requirements-dev.txt

@@ -11,5 +11,5 @@ pytest-html==1.22.0
 pytest-sentry==0.1.1
 pytest-rerunfailures==8.0
 responses>=0.8.1,<0.9.0
-sentry-flake8==0.1.1
+sentry-flake8==0.3.0
 werkzeug==0.15.5

+ 2 - 2
src/bitfield/admin.py

@@ -22,9 +22,9 @@ class BitFieldListFilter(FieldListFilter):
         )
 
     def queryset(self, request, queryset):
-        filter = dict((p, bitor(F(p), v)) for p, v in six.iteritems(self.used_parameters))
+        _filter = dict((p, bitor(F(p), v)) for p, v in six.iteritems(self.used_parameters))
         try:
-            return queryset.filter(**filter)
+            return queryset.filter(**_filter)
         except ValidationError as e:
             raise IncorrectLookupParameters(e)
 

+ 1 - 0
src/sentry/analytics/event.py

@@ -1,4 +1,5 @@
 from __future__ import absolute_import, print_function
+from sentry.utils.compat import map
 
 __all__ = ("Attribute", "Event", "Map")
 

+ 1 - 0
src/sentry/api/bases/organization.py

@@ -22,6 +22,7 @@ from sentry.models import (
 from sentry.utils import auth
 from sentry.utils.hashlib import hash_values
 from sentry.utils.sdk import bind_organization_context
+from sentry.utils.compat import map
 
 
 class OrganizationEventsError(Exception):

+ 2 - 1
src/sentry/api/bases/organization_events.py

@@ -7,6 +7,7 @@ from sentry.api.bases import OrganizationEndpoint, OrganizationEventsError
 from sentry.api.event_search import get_filter, InvalidSearchQuery
 from sentry.models.project import Project
 from sentry.snuba.discover import ReferenceEvent
+from sentry.utils.compat import map
 
 
 class OrganizationEventsEndpointBase(OrganizationEndpoint):
@@ -44,7 +45,7 @@ class OrganizationEventsEndpointBase(OrganizationEndpoint):
             # Instead of using this parameter clients should use `issue.id`
             # in their query string.
             try:
-                group_ids = set(map(int, filter(None, group_ids)))
+                group_ids = set(map(int, [_f for _f in group_ids if _f]))
             except ValueError:
                 raise OrganizationEventsError("Invalid group parameter. Values must be numbers")
 

+ 1 - 0
src/sentry/api/endpoints/assistant.py

@@ -12,6 +12,7 @@ from rest_framework.response import Response
 from sentry.api.base import Endpoint
 from sentry.models import AssistantActivity
 from sentry.assistant import manager
+from sentry.utils.compat import zip
 
 VALID_STATUSES = frozenset(("viewed", "dismissed"))
 

+ 2 - 1
src/sentry/api/endpoints/chunk.py

@@ -2,7 +2,7 @@ from __future__ import absolute_import
 
 import logging
 import six
-from six.moves import zip
+
 from io import BytesIO
 from gzip import GzipFile
 from rest_framework import status
@@ -15,6 +15,7 @@ from sentry import options
 from sentry.models import FileBlob
 from sentry.api.bases.organization import OrganizationEndpoint, OrganizationReleasePermission
 from sentry.utils.files import get_max_file_size
+from sentry.utils.compat import zip
 
 
 # The blob size must be a power of two

+ 2 - 0
src/sentry/api/endpoints/group_similar_issues.py

@@ -9,6 +9,8 @@ from sentry.api.serializers import serialize
 from sentry.models import Group
 from sentry.similarity import features
 from sentry.utils.functional import apply_values
+from sentry.utils.compat import map
+from sentry.utils.compat import filter
 
 
 class GroupSimilarIssuesEndpoint(GroupEndpoint):

+ 1 - 1
src/sentry/api/endpoints/organization_config_integrations.py

@@ -19,7 +19,7 @@ class OrganizationConfigIntegrationsEndpoint(OrganizationEndpoint):
         )
 
         if "provider_key" in request.GET:
-            serialized = list(filter(lambda d: d["key"] == request.GET["provider_key"], serialized))
+            serialized = [d for d in serialized if d["key"] == request.GET["provider_key"]]
 
         if not serialized:
             return Response({"detail": "Providers do not exist"}, status=404)

Some files were not shown because too many files changed in this diff