Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion profiling/construct_api_calls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import os
import sys
Expand Down
1 change: 0 additions & 1 deletion profiling/extract_api_calls.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-

import os
import sys
Expand Down
1 change: 0 additions & 1 deletion requirements-to-freeze.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ requests

nose>=1.3.7
django-nose
mock
mock_django
responses
django-debug-toolbar>3
Expand Down
1 change: 0 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ importlib-metadata==4.13.0
jmespath==1.0.1
kombu==5.2.4
Markdown==2.6.11
mock==5.0.1
mock-django==0.6.10
nose==1.3.7
oauthlib==3.2.2
Expand Down
2 changes: 0 additions & 2 deletions src/project/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


# This will make sure the app is always imported when
# Django starts so that shared_task will use this app.
from .celery import app as celery_app
2 changes: 0 additions & 2 deletions src/project/celery.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@

from __future__ import absolute_import, unicode_literals
import os
import sys
from os.path import abspath, join
Expand Down
4 changes: 1 addition & 3 deletions src/project/twinkie.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# -*- coding: utf-8 -*-

from django.conf import settings
from wsgiref.headers import Headers
from wsgiref.handlers import format_date_time
Expand All @@ -9,7 +7,7 @@
log = getLogger(__name__)


class ExpiresMiddleware (object):
class ExpiresMiddleware:
"""WSGI middleware that intercepts calls to the static files
directory, as defined by the STATIC_URL setting, and serves those files.
"""
Expand Down
2 changes: 1 addition & 1 deletion src/remote_client_user/middleware.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def get_authed_user(request):
return user


class RemoteClientMiddleware(object):
class RemoteClientMiddleware:
def process_request(self, request):
user = get_authed_user(request)

Expand Down
24 changes: 12 additions & 12 deletions src/sa_api_v2/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def render(self, name, value, attrs=None):
except ValueError:
# If we cannot, then we should still display the value
pass
return super(PrettyAceWidget, self).render(name, value, attrs=attrs)
return super().render(name, value, attrs=attrs)


BaseGeoAdmin = admin.OSMGeoAdmin if settings.USE_GEODB else admin.ModelAdmin
Expand All @@ -98,14 +98,14 @@ def submitter_name(self, obj):
return obj.submitter.username if obj.submitter else None

def get_queryset(self, request):
qs = super(SubmittedThingAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(dataset__owner=user)
return qs

def get_form(self, request, obj=None, **kwargs):
FormWithJSONCleaning = super(SubmittedThingAdmin, self).get_form(request, obj=obj, **kwargs)
FormWithJSONCleaning = super().get_form(request, obj=obj, **kwargs)

def clean_json_blob(form):
data = form.cleaned_data['data']
Expand Down Expand Up @@ -223,7 +223,7 @@ class WebhookAdmin(admin.ModelAdmin):
# list_filter = ('name',)

def get_queryset(self, request):
qs = super(WebhookAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(dataset__owner=user)
Expand All @@ -246,7 +246,7 @@ def clear_cache(self, request, obj):

def clone_dataset(self, request, obj):
siblings = models.DataSet.objects.filter(owner=obj.owner)
slugs = set([ds.slug for ds in siblings])
slugs = {ds.slug for ds in siblings}

for uniquifier in itertools.count(2):
unique_slug = '-'.join([obj.slug, str(uniquifier)])
Expand Down Expand Up @@ -275,7 +275,7 @@ def api_path(self, instance):
api_path.allow_tags = True

def get_queryset(self, request):
qs = super(DataSetAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(owner=user)
Expand All @@ -286,7 +286,7 @@ def get_form(self, request, obj=None, **kwargs):
# user should be assumed to be owned by themselves.
if not request.user.is_superuser:
self.exclude = (self.exclude or ()) + ('owner',)
return super(DataSetAdmin, self).get_form(request, obj, **kwargs)
return super().get_form(request, obj, **kwargs)

def save_model(self, request, obj, form, change):
# Set the current user as the owner if the object has no owner and the
Expand All @@ -295,7 +295,7 @@ def save_model(self, request, obj, form, change):
if not user.is_superuser:
if obj.owner_id is None:
obj.owner = user
super(DataSetAdmin, self).save_model(request, obj, form, change)
super().save_model(request, obj, form, change)


class PlaceAdmin(SubmittedThingAdmin):
Expand Down Expand Up @@ -338,15 +338,15 @@ class ActionAdmin(admin.ModelAdmin):

# Pre-Django 1.6
def queryset(self, request):
qs = super(ActionAdmin, self).queryset(request)
qs = super().queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(thing__dataset__owner=user)
return qs.select_related('submitter', 'thing', 'thing__place')

# Django 1.6+
def get_queryset(self, request):
qs = super(ActionAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(thing__dataset__owner=user)
Expand Down Expand Up @@ -380,7 +380,7 @@ class Media:
)

def get_queryset(self, request):
qs = super(GroupAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(dataset__owner=user)
Expand All @@ -401,7 +401,7 @@ class UserAdmin(BaseUserAdmin):
)

def get_queryset(self, request):
qs = super(UserAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
# Only show users that have contributed to the owner's datasets
Expand Down
2 changes: 1 addition & 1 deletion src/sa_api_v2/apikey/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class Media:
)

def get_queryset(self, request):
qs = super(ApiKeyAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(dataset__owner=user)
Expand Down
2 changes: 1 addition & 1 deletion src/sa_api_v2/apikey/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
KEY_HEADER = 'HTTP_X_SHAREABOUTS_KEY'


class APIKeyBackend(object):
class APIKeyBackend:
"""
Django authentication backend purely by API key.
"""
Expand Down
4 changes: 2 additions & 2 deletions src/sa_api_v2/apikey/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def clone_related(self, onto):
permission.clone(overrides={'key': onto})

def get_ignore_fields(self, ModelClass):
fields = super(ApiKey, self).get_ignore_fields(ModelClass)
fields = super().get_ignore_fields(ModelClass)
# Do not copy over the actual key value
if ModelClass == ApiKey:
fields.add('key')
Expand All @@ -87,7 +87,7 @@ def get_ignore_fields(self, ModelClass):
def save(self, *args, **kwargs):
if self.logged_ip == '':
self.logged_ip = None
return super(ApiKey, self).save(*args, **kwargs)
return super().save(*args, **kwargs)


def create_data_permissions(sender, instance, created, **kwargs):
Expand Down
2 changes: 1 addition & 1 deletion src/sa_api_v2/auth_backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ class CachedModelBackend (ModelBackend):
def get_user(self, user_id):
user = UserCache.get_instance(user_id=user_id)
if user is None:
user = super(CachedModelBackend, self).get_user(user_id)
user = super().get_user(user_id)
UserCache.set_instance(user, user_id=user_id)
return user
24 changes: 12 additions & 12 deletions src/sa_api_v2/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# A sentinel object to differentiate from None
Undefined = object()

class CacheBuffer (object):
class CacheBuffer:
def __init__(self, initial_buffer=None):
# When we get a value from the remote cache, it goes in to the buffer
# so that we can retrieve it quickly on our next try.
Expand Down Expand Up @@ -45,7 +45,7 @@ def get_many(self, keys):

# TODO: Is this what's supposed to happen? get_many returns None for
# each key that wasn't found?
all_results = dict([(key, Undefined) for key in set(keys) - set(results.keys())])
all_results = {key: Undefined for key in set(keys) - set(results.keys())}
self.buffer.update(all_results)
return results

Expand Down Expand Up @@ -165,7 +165,7 @@ def reset(self):
cache_buffer = CacheBuffer()


class Cache (object):
class Cache:
"""
The base class for objects responsible for caching Shareabouts data
structure information
Expand Down Expand Up @@ -285,7 +285,7 @@ def get_serialized_data_keys(self, inst_key):
meta_key = self.get_serialized_data_meta_key(inst_key)
if meta_key is not None:
keys = cache_buffer.get(meta_key)
return (keys or set()) | set([meta_key])
return (keys or set()) | {meta_key}
else:
return set()

Expand All @@ -301,7 +301,7 @@ def clear_instance(self, obj):
#Serialized data keys
data_keys = self.get_serialized_data_keys(obj)
# Collect other related keys
other_keys = self.get_other_keys(**params) | set([self.get_instance_params_key(obj.pk)])
other_keys = self.get_other_keys(**params) | {self.get_instance_params_key(obj.pk)}
# Clear all the keys
self.clear_keys(*(prefixed_keys | data_keys | other_keys))

Expand Down Expand Up @@ -336,7 +336,7 @@ def get_request_prefixes(cls, **params):

@classmethod
def get_other_keys(cls, **params):
return set([cls.get_instance_key(**params)])
return {cls.get_instance_key(**params)}


class DataSetCache (Cache):
Expand Down Expand Up @@ -384,7 +384,7 @@ def get_instance_params(self, dataset_obj):
# == Cache invalidation
def get_request_prefixes(self, **params):
owner, dataset = list(map(params.get, ('owner_username', 'dataset_slug')))
prefixes = super(DataSetCache, self).get_request_prefixes(**params)
prefixes = super().get_request_prefixes(**params)

instance_path = reverse('dataset-detail', args=[owner, dataset])
collection_path = reverse('dataset-list', args=[owner])
Expand All @@ -393,7 +393,7 @@ def get_request_prefixes(self, **params):
return prefixes

def get_other_keys(self, **params):
return set([self.get_instance_key(**params), self.get_permissions_key(**params)])
return {self.get_instance_key(**params), self.get_permissions_key(**params)}


class PlaceCache (Cache):
Expand All @@ -411,7 +411,7 @@ def get_instance_params(self, place_obj):

def get_request_prefixes(self, **params):
owner, dataset, place = list(map(params.get, ('owner_username', 'dataset_slug', 'place_id')))
prefixes = super(PlaceCache, self).get_request_prefixes(**params)
prefixes = super().get_request_prefixes(**params)

instance_path = reverse('place-detail', args=[owner, dataset, place])
collection_path = reverse('place-list', args=[owner, dataset])
Expand Down Expand Up @@ -447,7 +447,7 @@ def get_other_keys(self, **params):

def get_request_prefixes(self, **params):
owner, dataset, place, submission_set_name, submission = list(map(params.get, ['owner_username', 'dataset_slug', 'place_id', 'submission_set_name', 'submission_id']))
prefixes = super(SubmissionCache, self).get_request_prefixes(**params)
prefixes = super().get_request_prefixes(**params)

# TODO: it's pretty clear that a developer should be able to register
# a URL with or cache key or prefix or something to be cleared. How
Expand Down Expand Up @@ -516,7 +516,7 @@ def get_instance_params(self, attachment_obj):
return params

def get_request_prefixes(self, **params):
prefixes = super(AttachmentCache, self).get_request_prefixes(**params)
prefixes = super().get_request_prefixes(**params)
if params['thing_type'] == 'submission':
return prefixes | self.get_submission_attachment_request_prefixes(**params)
else:
Expand Down Expand Up @@ -563,4 +563,4 @@ def get_other_keys(self, **params):
thing_serialized_data_keys = self.place_cache.get_serialized_data_keys(thing_id)

# Union the two sets
return set([thing_attachments_key]) | thing_serialized_data_keys
return {thing_attachments_key} | thing_serialized_data_keys
4 changes: 2 additions & 2 deletions src/sa_api_v2/cors/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Media:
)

def get_queryset(self, request):
qs = super(OriginAdmin, self).get_queryset(request)
qs = super().get_queryset(request)
user = request.user
if not user.is_superuser:
qs = qs.filter(dataset__owner=user)
Expand All @@ -31,6 +31,6 @@ def get_queryset(self, request):
def save_model(self, request, obj, form, change):
if obj.logged_ip == '':
obj.logged_ip = None
super(OriginAdmin, self).save_model(request, obj, form, change)
super().save_model(request, obj, form, change)

admin.site.register(Origin, OriginAdmin)
2 changes: 1 addition & 1 deletion src/sa_api_v2/cors/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def clone_related(self, onto):
def save(self, *args, **kwargs):
if self.logged_ip == '':
self.logged_ip = None
return super(Origin, self).save(*args, **kwargs)
return super().save(*args, **kwargs)


def create_data_permissions(sender, instance, created, **kwargs):
Expand Down
7 changes: 2 additions & 5 deletions src/sa_api_v2/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# -*- coding: utf-8 -*-


from django.db import models, migrations
import sa_api_v2.models.caching
import django.contrib.gis.db.models.fields
Expand Down Expand Up @@ -324,7 +321,7 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='group',
unique_together=set([('name', 'dataset')]),
unique_together={('name', 'dataset')},
),
migrations.AddField(
model_name='datasnapshot',
Expand All @@ -334,7 +331,7 @@ class Migration(migrations.Migration):
),
migrations.AlterUniqueTogether(
name='dataset',
unique_together=set([('owner', 'slug')]),
unique_together={('owner', 'slug')},
),
migrations.AddField(
model_name='dataindex',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# -*- coding: utf-8 -*-


from django.db import models, migrations


Expand Down
3 changes: 0 additions & 3 deletions src/sa_api_v2/migrations/0003_django18_upgrade.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# -*- coding: utf-8 -*-


from django.db import migrations, models
import sa_api_v2.models.profiles
import django.core.validators
Expand Down
2 changes: 0 additions & 2 deletions src/sa_api_v2/migrations/0004_django_19_updates.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.13 on 2019-06-07 22:56
from __future__ import unicode_literals

import django.core.validators
from django.db import migrations, models
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.28 on 2020-02-29 16:58
from __future__ import unicode_literals

import django.contrib.auth.validators
from django.db import migrations, models
Expand Down
Loading