Skip to content

Commit 379bb3c

Browse files
authored
New ruff rules, reduce line length to 99 (#392)
* ISC * SIM * line length * furb
1 parent d275647 commit 379bb3c

Some content is hidden

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

82 files changed

+1083
-527
lines changed

backend/config/api_router.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import proteins.api.urls
55
from fpbase.users.api.views import UserViewSet
66

7-
if settings.DEBUG:
8-
router = DefaultRouter()
9-
else:
10-
router = SimpleRouter()
7+
router = DefaultRouter() if settings.DEBUG else SimpleRouter()
118

129
router.register("users", UserViewSet)
1310

backend/config/settings/base.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
READ_DOT_ENV_FILE = env.bool("DJANGO_READ_DOT_ENV_FILE", default=False)
2727

2828
if READ_DOT_ENV_FILE:
29-
# Operating System Environment variables have precedence over variables defined in the .env file,
29+
# Operating System Environment variables have precedence over variables defined in the
30+
# .env file,
3031
# that is to say variables from the .env files will only be used if not defined
3132
# as environment variables.
3233
env_file = str(ROOT_DIR / ".env")
@@ -322,7 +323,8 @@
322323
"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema",
323324
}
324325

325-
# By Default swagger ui is available only to admin user(s). You can change permission classes to change that
326+
# By Default swagger ui is available only to admin user(s). You can change permission
327+
# classes to change that
326328
# See more configuration options at https://drf-spectacular.readthedocs.io/en/latest/settings.html#settings
327329
SPECTACULAR_SETTINGS = {
328330
"TITLE": "fpbase API",
@@ -464,17 +466,18 @@ def add_sentry_context(logger, method_name, event_dict):
464466
using the ID to find the full exception context in Sentry.
465467
"""
466468
# Check if sentry_event_id was explicitly passed in extra dict
467-
if "sentry_event_id" not in event_dict:
468-
# Try to get it from Sentry SDK's last_event_id()
469-
# This works if Django/Sentry integration auto-captured an exception
470-
if event_dict.get("exc_info") or "exception" in event_dict:
471-
try:
472-
import sentry_sdk
473-
474-
if event_id := sentry_sdk.last_event_id():
475-
event_dict["sentry_event_id"] = event_id
476-
except (ImportError, AttributeError, Exception):
477-
pass # Sentry not available
469+
# Try to get it from Sentry SDK's last_event_id()
470+
# This works if Django/Sentry integration auto-captured an exception
471+
if "sentry_event_id" not in event_dict and (
472+
event_dict.get("exc_info") or "exception" in event_dict
473+
):
474+
try:
475+
import sentry_sdk
476+
477+
if event_id := sentry_sdk.last_event_id():
478+
event_dict["sentry_event_id"] = event_id
479+
except (ImportError, AttributeError, Exception):
480+
pass # Sentry not available
478481

479482
return event_dict
480483

backend/config/settings/local.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
EMAIL_PORT = 1025
3030

3131
EMAIL_HOST = "localhost"
32-
EMAIL_BACKEND = env("DJANGO_EMAIL_BACKEND", default="django.core.mail.backends.console.EmailBackend")
32+
EMAIL_BACKEND = env(
33+
"DJANGO_EMAIL_BACKEND", default="django.core.mail.backends.console.EmailBackend"
34+
)
3335

3436
if env("MAILGUN_API_KEY", default=False) and env("MAILGUN_DOMAIN", default=False):
3537
INSTALLED_APPS += [

backend/config/settings/production.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,9 @@ def WHITENOISE_IMMUTABLE_FILE_TEST(path, url):
205205
send_default_pii=True,
206206
release=HEROKU_SLUG_COMMIT,
207207
traces_sample_rate=env.float("SENTRY_TRACES_SAMPLE_RATE", default=0.1), # 10% of all requests
208-
profiles_sample_rate=env.float("SENTRY_PROFILES_SAMPLE_RATE", default=0.05), # 5% of traced requests
208+
profiles_sample_rate=env.float(
209+
"SENTRY_PROFILES_SAMPLE_RATE", default=0.05
210+
), # 5% of traced requests
209211
)
210212

211213
# Scout APM Configuration
@@ -322,7 +324,7 @@ def WHITENOISE_IMMUTABLE_FILE_TEST(path, url):
322324

323325
# Enable API and GraphQL rate limiting in production
324326
REST_FRAMEWORK["DEFAULT_THROTTLE_CLASSES"] = [
325-
"fpbase.views.SameOriginExemptAnonThrottle", # Custom throttle that exempts same-origin requests
327+
"fpbase.views.SameOriginExemptAnonThrottle", # Custom throttle that exempts same-origin
326328
"rest_framework.throttling.UserRateThrottle",
327329
]
328330
# NOTE: Rate limiting settings are used by both REST API and GraphQL

backend/config/urls.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
TemplateView.as_view(template_name="pages/bleaching.html"),
7272
name="bleaching",
7373
),
74-
# path('mutations/', TemplateView.as_view(template_name='pages/mutations.html'), name='mutations'),
7574
path(
7675
"robots.txt",
7776
TemplateView.as_view(template_name="robots.txt", content_type="text/plain"),

backend/conftest.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,12 @@ def mock_get_organism_info(organism_id: str | int):
6161
}
6262

6363
# Use unittest.mock.patch for session-scoped mocking
64-
patcher1 = unittest.mock.patch("proteins.extrest.entrez.doi_lookup", side_effect=mock_doi_lookup)
65-
patcher2 = unittest.mock.patch("proteins.extrest.entrez.get_organism_info", side_effect=mock_get_organism_info)
64+
patcher1 = unittest.mock.patch(
65+
"proteins.extrest.entrez.doi_lookup", side_effect=mock_doi_lookup
66+
)
67+
patcher2 = unittest.mock.patch(
68+
"proteins.extrest.entrez.get_organism_info", side_effect=mock_get_organism_info
69+
)
6670

6771
patcher1.start()
6872
patcher2.start()

backend/favit/managers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ def get_favorite(self, user, obj, model=None):
112112
return None
113113

114114
try:
115-
return self.get_query_set().get(user=user, target_content_type=content_type, target_object_id=obj.id)
115+
return self.get_query_set().get(
116+
user=user, target_content_type=content_type, target_object_id=obj.id
117+
)
116118
except self.model.DoesNotExist:
117119
return None
118120

backend/favit/models.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ class Favorite(models.Model):
2222
on_delete=models.CASCADE,
2323
)
2424
target_content_type_id: int
25-
target_content_type: models.ForeignKey[ContentType] = models.ForeignKey(ContentType, on_delete=models.CASCADE)
25+
target_content_type: models.ForeignKey[ContentType] = models.ForeignKey(
26+
ContentType, on_delete=models.CASCADE
27+
)
2628
target_object_id = models.PositiveIntegerField()
2729
target = GenericForeignKey("target_content_type", "target_object_id")
2830
timestamp = models.DateTimeField(auto_now_add=True, db_index=True)

backend/fpbase/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
from fpbase.celery import app as celery_app
44

55
__version__ = "0.1.0"
6-
__version_info__ = tuple([int(num) if num.isdigit() else num for num in __version__.replace("-", ".", 1).split(".")])
6+
__version_info__ = tuple(
7+
[int(num) if num.isdigit() else num for num in __version__.replace("-", ".", 1).split(".")]
8+
)
79

810

911
__all__ = ("celery_app",)

backend/fpbase/decorators.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ def login_required_message_and_redirect(
4444
message=default_message,
4545
):
4646
if function:
47-
return login_required_message(login_required(function, redirect_field_name, login_url), message)
47+
return login_required_message(
48+
login_required(function, redirect_field_name, login_url), message
49+
)
4850

4951
return lambda deferred_function: login_required_message_and_redirect(
5052
deferred_function, redirect_field_name, login_url, message

0 commit comments

Comments
 (0)