Skip to content

Commit 7c5169e

Browse files
authored
[qa] Switched to enforcing double quotes for Python code #451
Removed flag from function to ebfirce Black enforces double quotes. Fixes #451
1 parent ad85b27 commit 7c5169e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+2140
-2140
lines changed

openwisp-qa-check

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ runisort() {
145145
}
146146

147147
runblack() {
148-
black -S --check --diff --quiet . &&
148+
black --check --diff --quiet . &&
149149
echo "SUCCESS: Black check successful!" ||
150150
{
151151
echoerr "ERROR: Black check failed! Hint: did you forget to run openwisp-qa-format?"

openwisp-qa-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -e
33

44
isort .
5-
black -S .
5+
black .
66
docstrfmt --no-docstring-trailing-line --ignore-cache --line-length 74 .
77

88
if which prettier > /dev/null; then

openwisp_utils/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
VERSION = (1, 2, 0, 'alpha')
1+
VERSION = (1, 2, 0, "alpha")
22
__version__ = VERSION # alias
33

44

55
def get_version():
6-
version = '%s.%s' % (VERSION[0], VERSION[1])
6+
version = "%s.%s" % (VERSION[0], VERSION[1])
77
if VERSION[2]:
8-
version = '%s.%s' % (version, VERSION[2])
9-
if VERSION[3:] == ('alpha', 0):
10-
version = '%s pre-alpha' % version
8+
version = "%s.%s" % (version, VERSION[2])
9+
if VERSION[3:] == ("alpha", 0):
10+
version = "%s pre-alpha" % version
1111
else:
12-
if VERSION[3] != 'final':
12+
if VERSION[3] != "final":
1313
try:
1414
rev = VERSION[4]
1515
except IndexError:
1616
rev = 0
17-
version = '%s%s%s' % (version, VERSION[3][0:1], rev)
17+
version = "%s%s%s" % (version, VERSION[3][0:1], rev)
1818
return version

openwisp_utils/admin.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class TimeReadonlyAdminMixin(object):
88
"""A mixin that automatically flags `created` and `modified` as readonly."""
99

1010
def __init__(self, *args, **kwargs):
11-
self.readonly_fields += ('created', 'modified')
11+
self.readonly_fields += ("created", "modified")
1212
super().__init__(*args, **kwargs)
1313

1414

@@ -26,8 +26,8 @@ def __init__(self, *args, **kwargs):
2626

2727
def get_actions(self, request):
2828
actions = super().get_actions(request)
29-
if 'delete_selected' in actions: # pragma: no cover
30-
del actions['delete_selected']
29+
if "delete_selected" in actions: # pragma: no cover
30+
del actions["delete_selected"]
3131
return actions
3232

3333
def has_add_permission(self, request):
@@ -47,8 +47,8 @@ def save_related(self, request, form, formsets, change): # pragma: nocover
4747

4848
def change_view(self, request, object_id, extra_context=None):
4949
extra_context = extra_context or {}
50-
extra_context['show_save_and_continue'] = False
51-
extra_context['show_save'] = False
50+
extra_context["show_save_and_continue"] = False
51+
extra_context["show_save"] = False
5252
return super().change_view(request, object_id, extra_context=extra_context)
5353

5454

@@ -77,15 +77,15 @@ class CopyableFieldsAdmin(ModelAdmin):
7777
"""
7878

7979
copyable_fields = ()
80-
change_form_template = 'admin/change_form.html'
80+
change_form_template = "admin/change_form.html"
8181

8282
def _check_copyable_subset_fields(self, copyable_fields, fields):
8383
if not set(copyable_fields).issubset(fields):
8484
class_name = self.__class__.__name__
8585
raise CopyableFieldError(
8686
(
87-
f'{copyable_fields} not in {class_name}.fields {fields}, '
88-
f'Check copyable_fields attribute of class {class_name}.'
87+
f"{copyable_fields} not in {class_name}.fields {fields}, "
88+
f"Check copyable_fields attribute of class {class_name}."
8989
)
9090
)
9191

@@ -111,18 +111,18 @@ def get_readonly_fields(self, request, obj=None):
111111
return tuple([*readonly_fields, *self.copyable_fields])
112112
return readonly_fields
113113

114-
def add_view(self, request, form_url='', extra_context=None):
114+
def add_view(self, request, form_url="", extra_context=None):
115115
extra_context = extra_context or {}
116-
extra_context['copyable_fields'] = []
116+
extra_context["copyable_fields"] = []
117117
return super().add_view(
118118
request,
119119
form_url,
120120
extra_context=extra_context,
121121
)
122122

123-
def change_view(self, request, object_id, form_url='', extra_context=None):
123+
def change_view(self, request, object_id, form_url="", extra_context=None):
124124
extra_context = extra_context or {}
125-
extra_context['copyable_fields'] = list(self.copyable_fields)
125+
extra_context["copyable_fields"] = list(self.copyable_fields)
126126
return super().change_view(
127127
request,
128128
object_id,
@@ -131,7 +131,7 @@ def change_view(self, request, object_id, form_url='', extra_context=None):
131131
)
132132

133133
class Media:
134-
js = ('admin/js/jquery.init.js', 'openwisp-utils/js/copyable.js')
134+
js = ("admin/js/jquery.init.js", "openwisp-utils/js/copyable.js")
135135

136136

137137
class UUIDAdmin(CopyableFieldsAdmin):
@@ -142,12 +142,12 @@ class UUIDAdmin(CopyableFieldsAdmin):
142142
OpenWISP modules show `uuid` as the only copyable field.
143143
"""
144144

145-
copyable_fields = ('uuid',)
145+
copyable_fields = ("uuid",)
146146

147147
def uuid(self, obj):
148148
return obj.pk
149149

150-
uuid.short_description = _('UUID')
150+
uuid.short_description = _("UUID")
151151

152152

153153
class ReceiveUrlAdmin(ModelAdmin):
@@ -160,8 +160,8 @@ class ReceiveUrlAdmin(ModelAdmin):
160160
- receive_url_object_arg
161161
"""
162162

163-
receive_url_querystring_arg = 'key'
164-
receive_url_object_arg = 'pk'
163+
receive_url_querystring_arg = "key"
164+
receive_url_object_arg = "pk"
165165
receive_url_name = None
166166
receive_url_urlconf = None
167167
receive_url_baseurl = None
@@ -177,7 +177,7 @@ def change_view(self, request, *args, **kwargs):
177177
def receive_url(self, obj):
178178
""":param obj: Object for which the url is generated"""
179179
if self.receive_url_name is None:
180-
raise ValueError('receive_url_name is not set up')
180+
raise ValueError("receive_url_name is not set up")
181181
reverse_kwargs = {}
182182
if self.receive_url_object_arg:
183183
reverse_kwargs = {
@@ -190,9 +190,9 @@ def receive_url(self, obj):
190190
)
191191
baseurl = self.receive_url_baseurl
192192
if not baseurl:
193-
baseurl = '{0}://{1}'.format(self.request.scheme, self.request.get_host())
193+
baseurl = "{0}://{1}".format(self.request.scheme, self.request.get_host())
194194
if self.receive_url_querystring_arg:
195-
url = '{0}{1}?{2}={3}'.format(
195+
url = "{0}{1}?{2}={3}".format(
196196
baseurl,
197197
receive_path,
198198
self.receive_url_querystring_arg,
@@ -201,17 +201,17 @@ def receive_url(self, obj):
201201
return url
202202

203203
class Media:
204-
js = ('admin/js/jquery.init.js', 'openwisp-utils/js/receive_url.js')
204+
js = ("admin/js/jquery.init.js", "openwisp-utils/js/receive_url.js")
205205

206-
receive_url.short_description = _('URL')
206+
receive_url.short_description = _("URL")
207207

208208

209209
class HelpTextStackedInline(StackedInline):
210210
help_text = None
211-
template = 'admin/edit_inline/help_text_stacked.html'
211+
template = "admin/edit_inline/help_text_stacked.html"
212212

213213
class Media:
214-
css = {'all': ['admin/css/help-text-stacked.css']}
214+
css = {"all": ["admin/css/help-text-stacked.css"]}
215215

216216
def get_formset(self, request, obj=None, **kwargs):
217217
formset = super().get_formset(request, obj, **kwargs)

openwisp_utils/admin_theme/admin.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121

2222
class OpenwispAdminSite(admin.AdminSite):
2323
# <title>
24-
site_title = getattr(settings, 'OPENWISP_ADMIN_SITE_TITLE', 'OpenWISP Admin')
24+
site_title = getattr(settings, "OPENWISP_ADMIN_SITE_TITLE", "OpenWISP Admin")
2525
# h1 text
26-
site_header = getattr(settings, 'OPENWISP_ADMIN_SITE_HEADER', 'OpenWISP')
26+
site_header = getattr(settings, "OPENWISP_ADMIN_SITE_HEADER", "OpenWISP")
2727
# text at the top of the admin index page
2828
index_title = _(
29-
getattr(settings, 'OPENWISP_ADMIN_INDEX_TITLE', 'Network Administration')
29+
getattr(settings, "OPENWISP_ADMIN_INDEX_TITLE", "Network Administration")
3030
)
3131
enable_nav_sidebar = False
3232
metric_collection = MetricCollectionAdminSiteHelper
@@ -35,32 +35,32 @@ def index(self, request, extra_context=None):
3535
if app_settings.ADMIN_DASHBOARD_ENABLED:
3636
context = get_dashboard_context(request)
3737
else:
38-
context = {'dashboard_enabled': False}
38+
context = {"dashboard_enabled": False}
3939
self.metric_collection.show_consent_info(request)
4040
return super().index(request, extra_context=context)
4141

4242
def openwisp_info(self, request, *args, **kwargs):
4343
context = {
44-
'enabled_openwisp_modules': get_enabled_openwisp_modules(),
45-
'system_info': get_os_details(),
46-
'openwisp_version': get_openwisp_version(),
47-
'title': _('System Information'),
48-
'site_title': self.site_title,
44+
"enabled_openwisp_modules": get_enabled_openwisp_modules(),
45+
"system_info": get_os_details(),
46+
"openwisp_version": get_openwisp_version(),
47+
"title": _("System Information"),
48+
"site_title": self.site_title,
4949
}
5050
self.metric_collection.manage_form(request, context)
51-
return render(request, 'admin/openwisp_info.html', context)
51+
return render(request, "admin/openwisp_info.html", context)
5252

5353
def get_urls(self):
5454
autocomplete_view = import_string(app_settings.AUTOCOMPLETE_FILTER_VIEW)
5555
return [
5656
path(
57-
'ow-auto-filter/',
57+
"ow-auto-filter/",
5858
self.admin_view(autocomplete_view.as_view(admin_site=self)),
59-
name='ow-auto-filter',
59+
name="ow-auto-filter",
6060
),
6161
path(
62-
'openwisp-system-info/',
62+
"openwisp-system-info/",
6363
self.admin_view(self.openwisp_info),
64-
name='ow-info',
64+
name="ow-info",
6565
),
6666
] + super().get_urls()

openwisp_utils/admin_theme/apps.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ def _staticfy(value):
3434

3535

3636
class OpenWispAdminThemeConfig(AppConfig):
37-
app_label = 'openwisp_admin'
38-
name = 'openwisp_utils.admin_theme'
37+
app_label = "openwisp_admin"
38+
name = "openwisp_utils.admin_theme"
3939

4040
def ready(self):
4141
admin_theme_settings_checks(self)
@@ -53,28 +53,28 @@ def register_menu_groups(self):
5353
# register dashboard item
5454
register_menu_group(
5555
position=10,
56-
config={'label': _('Home'), 'url': '/admin', 'icon': 'ow-dashboard-icon'},
56+
config={"label": _("Home"), "url": "/admin", "icon": "ow-dashboard-icon"},
5757
)
5858
register_menu_group(
5959
position=899,
6060
config={
61-
'label': _('System info'),
62-
'url': '/admin/openwisp-system-info/',
63-
'icon': 'ow-info-icon',
61+
"label": _("System info"),
62+
"url": "/admin/openwisp-system-info/",
63+
"icon": "ow-info-icon",
6464
},
6565
)
6666

6767
def modify_admin_theme_settings_links(self):
6868
link_files = []
6969
for link_file in theme.THEME_LINKS:
70-
href = link_file['href']
71-
href = href.replace('/static/', '')
72-
link_file['href'] = _staticfy(href)
70+
href = link_file["href"]
71+
href = href.replace("/static/", "")
72+
link_file["href"] = _staticfy(href)
7373
link_files.append(link_file)
7474

7575
js_files = []
7676
for js_file in theme.THEME_JS:
77-
js_file = js_file.replace('/static/', '')
77+
js_file = js_file.replace("/static/", "")
7878
js_files.append(_staticfy(js_file))
7979

8080
theme.THEME_LINKS = link_files

openwisp_utils/admin_theme/checks.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ def admin_theme_settings_checks(app_configs, **kwargs):
1111
if not isinstance(item, dict):
1212
links_error = True
1313
break
14-
if any(['rel' not in item, 'type' not in item, 'href' not in item]):
14+
if any(["rel" not in item, "type" not in item, "href" not in item]):
1515
links_error = True
1616
break
1717
if links_error:
1818
errors.append(
1919
Error(
20-
msg='Invalid item: {}'.format(item),
21-
hint='OPENWISP_ADMIN_THEME_LINKS should be a list of dictionaries, '
22-
'each dictionary must contain the following keys: rel, type and href.',
23-
obj='OPENWISP_ADMIN_THEME_LINKS',
20+
msg="Invalid item: {}".format(item),
21+
hint="OPENWISP_ADMIN_THEME_LINKS should be a list of dictionaries, "
22+
"each dictionary must contain the following keys: rel, type and href.",
23+
obj="OPENWISP_ADMIN_THEME_LINKS",
2424
)
2525
)
2626

@@ -30,9 +30,9 @@ def admin_theme_settings_checks(app_configs, **kwargs):
3030
if not isinstance(app_settings.OPENWISP_ADMIN_THEME_JS, list) or not is_list_of_str:
3131
errors.append(
3232
Error(
33-
msg='Improperly Configured',
34-
hint='OPENWISP_ADMIN_THEME_JS should be a list of strings.',
35-
obj='OPENWISP_ADMIN_THEME_JS',
33+
msg="Improperly Configured",
34+
hint="OPENWISP_ADMIN_THEME_JS should be a list of strings.",
35+
obj="OPENWISP_ADMIN_THEME_JS",
3636
)
3737
)
3838
return errors

openwisp_utils/admin_theme/context_processor.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,45 @@
1111

1212
def menu_groups(request):
1313
menu = build_menu(request)
14-
if menu and sys.argv[1:2] != ['test']:
14+
if menu and sys.argv[1:2] != ["test"]:
1515
logging.warning(
16-
'register_menu_items is deprecated. Please update to use register_menu_group'
16+
"register_menu_items is deprecated. Please update to use register_menu_group"
1717
)
1818
menu_groups = build_menu_groups(request)
1919
return {
20-
'openwisp_menu_items': menu,
21-
'openwisp_menu_groups': menu_groups,
22-
'show_userlinks_block': getattr(
23-
settings, 'OPENWISP_ADMIN_SHOW_USERLINKS_BLOCK', False
20+
"openwisp_menu_items": menu,
21+
"openwisp_menu_groups": menu_groups,
22+
"show_userlinks_block": getattr(
23+
settings, "OPENWISP_ADMIN_SHOW_USERLINKS_BLOCK", False
2424
),
2525
}
2626

2727

2828
def build_menu(request):
29-
default_items = getattr(settings, 'OPENWISP_DEFAULT_ADMIN_MENU_ITEMS', [])
30-
custom_items = getattr(settings, 'OPENWISP_ADMIN_MENU_ITEMS', [])
29+
default_items = getattr(settings, "OPENWISP_DEFAULT_ADMIN_MENU_ITEMS", [])
30+
custom_items = getattr(settings, "OPENWISP_ADMIN_MENU_ITEMS", [])
3131
items = custom_items or default_items
3232
menu = []
3333
# loop over each item to build the menu
3434
# and check user has permission to see each item
3535
for item in items:
36-
app_label, model = item['model'].split('.')
36+
app_label, model = item["model"].split(".")
3737
model_class = registry.apps.get_model(app_label, model)
3838
model_label = model.lower()
39-
url = reverse(f'admin:{app_label}_{model_label}_changelist')
40-
label = item.get('label', model_class._meta.verbose_name_plural)
41-
view_perm = f'{app_label}.view_{model_label}'
42-
change_perm = f'{app_label}.change_{model_label}'
39+
url = reverse(f"admin:{app_label}_{model_label}_changelist")
40+
label = item.get("label", model_class._meta.verbose_name_plural)
41+
view_perm = f"{app_label}.view_{model_label}"
42+
change_perm = f"{app_label}.change_{model_label}"
4343
user = request.user
4444
if user.has_perm(view_perm) or user.has_perm(change_perm):
45-
menu.append({'url': url, 'label': label, 'class': model_label})
45+
menu.append({"url": url, "label": label, "class": model_label})
4646
return menu
4747

4848

4949
def admin_theme_settings(request):
5050
return {
51-
'OPENWISP_ADMIN_THEME_LINKS': theme.THEME_LINKS,
52-
'OPENWISP_ADMIN_THEME_JS': theme.THEME_JS,
51+
"OPENWISP_ADMIN_THEME_LINKS": theme.THEME_LINKS,
52+
"OPENWISP_ADMIN_THEME_JS": theme.THEME_JS,
5353
}
5454

5555

0 commit comments

Comments
 (0)