Skip to content

Commit 9c323b0

Browse files
committed
fix: style
1 parent 750eae9 commit 9c323b0

11 files changed

Lines changed: 515 additions & 350 deletions

File tree

examples/django-integration/demo/apps.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ def ready(self):
1414
"""Initialize Replane client when Django starts."""
1515
# Avoid double initialization in development with auto-reload
1616
import sys
17+
1718
if "runserver" in sys.argv and "--noreload" not in sys.argv:
1819
# Only initialize in the reloader process, not the main process
1920
import os
21+
2022
if os.environ.get("RUN_MAIN") != "true":
2123
return
2224

examples/django-integration/demo/middleware.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
"""Django middleware for Replane integration."""
22

3-
from django.http import JsonResponse
4-
53
from demo.replane_client import get_replane
4+
from django.http import JsonResponse
65

76

87
class ReplaneMiddleware:

examples/django-integration/demo/urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
"""URL patterns for the demo app."""
22

3-
from django.urls import path
4-
53
from demo.views import ConfigView, HealthView, IndexView, ItemsView, UploadView
4+
from django.urls import path
65

76
urlpatterns = [
87
path("", IndexView.as_view(), name="index"),

examples/django-integration/demo/views.py

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
"""Django views demonstrating Replane integration."""
22

3+
from demo.replane_client import get_replane
34
from django.http import JsonResponse
45
from django.views import View
56

6-
from demo.replane_client import get_replane
7-
87

98
class IndexView(View):
109
"""Homepage with feature flag check."""
@@ -17,15 +16,19 @@ def get(self, request):
1716
new_dashboard = client.get("new-dashboard-enabled", context=ctx)
1817

1918
if new_dashboard:
20-
return JsonResponse({
21-
"message": "Welcome to the new dashboard!",
22-
"version": "v2",
23-
})
19+
return JsonResponse(
20+
{
21+
"message": "Welcome to the new dashboard!",
22+
"version": "v2",
23+
}
24+
)
2425
else:
25-
return JsonResponse({
26-
"message": "Welcome!",
27-
"version": "v1",
28-
})
26+
return JsonResponse(
27+
{
28+
"message": "Welcome!",
29+
"version": "v1",
30+
}
31+
)
2932

3033

3134
class ItemsView(View):
@@ -44,11 +47,13 @@ def get(self, request):
4447
{"id": 3, "name": "Item 3"},
4548
]
4649

47-
return JsonResponse({
48-
"items": items,
49-
"rate_limit": rate_limit,
50-
"user_plan": ctx.get("plan", "unknown"),
51-
})
50+
return JsonResponse(
51+
{
52+
"items": items,
53+
"rate_limit": rate_limit,
54+
"user_plan": ctx.get("plan", "unknown"),
55+
}
56+
)
5257

5358

5459
class UploadView(View):
@@ -73,10 +78,12 @@ def post(self, request):
7378
status=413,
7479
)
7580

76-
return JsonResponse({
77-
"message": "Upload successful",
78-
"allowed_size_mb": max_size_mb,
79-
})
81+
return JsonResponse(
82+
{
83+
"message": "Upload successful",
84+
"allowed_size_mb": max_size_mb,
85+
}
86+
)
8087

8188

8289
class ConfigView(View):
@@ -86,15 +93,17 @@ def get(self, request):
8693
client = get_replane()
8794
ctx = getattr(request, "replane_context", {})
8895

89-
return JsonResponse({
90-
"context": ctx,
91-
"configs": {
92-
"new-dashboard-enabled": client.get("new-dashboard-enabled", context=ctx),
93-
"rate-limit": client.get("rate-limit", context=ctx),
94-
"max-upload-size-mb": client.get("max-upload-size-mb", context=ctx),
95-
"maintenance-mode": client.get("maintenance-mode", context=ctx),
96-
},
97-
})
96+
return JsonResponse(
97+
{
98+
"context": ctx,
99+
"configs": {
100+
"new-dashboard-enabled": client.get("new-dashboard-enabled", context=ctx),
101+
"rate-limit": client.get("rate-limit", context=ctx),
102+
"max-upload-size-mb": client.get("max-upload-size-mb", context=ctx),
103+
"maintenance-mode": client.get("maintenance-mode", context=ctx),
104+
},
105+
}
106+
)
98107

99108

100109
class HealthView(View):
@@ -107,7 +116,9 @@ def get(self, request):
107116
except RuntimeError:
108117
replane_connected = False
109118

110-
return JsonResponse({
111-
"status": "healthy",
112-
"replane_connected": replane_connected,
113-
})
119+
return JsonResponse(
120+
{
121+
"status": "healthy",
122+
"replane_connected": replane_connected,
123+
}
124+
)

examples/feature-flags/main.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ def demo_plan_based_limits(client: SyncReplaneClient):
7676
default=1,
7777
)
7878

79-
print(f"{plan:12} | Rate: {rate_limit:5}/hr | Storage: {storage_gb:4}GB | Members: {max_members}")
79+
print(
80+
f"{plan:12} | Rate: {rate_limit:5}/hr | Storage: {storage_gb:4}GB | Members: {max_members}"
81+
)
8082

8183

8284
def demo_regional_features(client: SyncReplaneClient):
@@ -175,7 +177,9 @@ def demo_complex_conditions(client: SyncReplaneClient):
175177
context=ctx,
176178
default=0,
177179
)
178-
print(f"Plan: {ctx['plan']:10} LTV: ${ctx['ltv']:5} Region: {ctx['region']} -> {discount}% discount")
180+
print(
181+
f"Plan: {ctx['plan']:10} LTV: ${ctx['ltv']:5} Region: {ctx['region']} -> {discount}% discount"
182+
)
179183

180184

181185
def demo_real_time_updates(client: SyncReplaneClient):

examples/flask-integration/app.py

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import atexit
88
import os
99

10-
from flask import Flask, g, jsonify, request
10+
from flask import Flask, jsonify, request
1111

1212
from replane import SyncReplaneClient
1313

@@ -78,15 +78,22 @@ def upload():
7878
max_bytes = max_size_mb * 1024 * 1024
7979

8080
if content_length > max_bytes:
81-
return jsonify({
82-
"error": "File too large",
83-
"max_size_mb": max_size_mb,
84-
}), 413
85-
86-
return jsonify({
87-
"message": "Upload successful",
88-
"allowed_size_mb": max_size_mb,
89-
})
81+
return (
82+
jsonify(
83+
{
84+
"error": "File too large",
85+
"max_size_mb": max_size_mb,
86+
}
87+
),
88+
413,
89+
)
90+
91+
return jsonify(
92+
{
93+
"message": "Upload successful",
94+
"allowed_size_mb": max_size_mb,
95+
}
96+
)
9097

9198

9299
@app.route("/api/items")
@@ -106,26 +113,30 @@ def get_items():
106113
{"id": 3, "name": "Item 3"},
107114
]
108115

109-
return jsonify({
110-
"items": items,
111-
"rate_limit": rate_limit,
112-
"user_plan": ctx["plan"],
113-
})
116+
return jsonify(
117+
{
118+
"items": items,
119+
"rate_limit": rate_limit,
120+
"user_plan": ctx["plan"],
121+
}
122+
)
114123

115124

116125
@app.route("/api/config")
117126
def get_config():
118127
"""Debug endpoint to view current config values."""
119128
ctx = get_user_context()
120129

121-
return jsonify({
122-
"context": ctx,
123-
"configs": {
124-
"new-dashboard-enabled": replane_client.get("new-dashboard-enabled", context=ctx),
125-
"rate-limit": replane_client.get("rate-limit", context=ctx),
126-
"max-upload-size-mb": replane_client.get("max-upload-size-mb", context=ctx),
127-
},
128-
})
130+
return jsonify(
131+
{
132+
"context": ctx,
133+
"configs": {
134+
"new-dashboard-enabled": replane_client.get("new-dashboard-enabled", context=ctx),
135+
"rate-limit": replane_client.get("rate-limit", context=ctx),
136+
"max-upload-size-mb": replane_client.get("max-upload-size-mb", context=ctx),
137+
},
138+
}
139+
)
129140

130141

131142
if __name__ == "__main__":

examples/testing/test_app.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,23 @@
44
"""
55

66
import pytest
7+
from app import OrderService, calculate_discount, get_rate_limit, is_feature_enabled
78

89
from replane.testing import InMemoryReplaneClient, create_test_client
910

10-
from app import OrderService, calculate_discount, get_rate_limit, is_feature_enabled
11-
1211

1312
class TestBasicUsage:
1413
"""Basic testing patterns with InMemoryReplaneClient."""
1514

1615
def test_simple_config_values(self):
1716
"""Test reading simple config values."""
18-
client = create_test_client({
19-
"rate-limit": 100,
20-
"feature-enabled": True,
21-
"api-version": "v2",
22-
})
17+
client = create_test_client(
18+
{
19+
"rate-limit": 100,
20+
"feature-enabled": True,
21+
"api-version": "v2",
22+
}
23+
)
2324

2425
assert client.get("rate-limit") == 100
2526
assert client.get("feature-enabled") is True
@@ -170,10 +171,12 @@ def test_is_feature_enabled(self):
170171

171172
def test_calculate_discount(self):
172173
"""Test the calculate_discount function."""
173-
client = create_test_client({
174-
"base-discount": 10,
175-
"premium-bonus": 15,
176-
})
174+
client = create_test_client(
175+
{
176+
"base-discount": 10,
177+
"premium-bonus": 15,
178+
}
179+
)
177180

178181
# Regular user gets base discount
179182
assert calculate_discount(client, "user-1", is_premium=False) == 10

pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ target-version = "py310"
110110
ignore_missing_imports = true
111111
no_site_packages = true
112112
check_untyped_defs = true
113+
exclude = [
114+
"examples/",
115+
"docs/",
116+
]
113117

114118
[[tool.mypy.overrides]]
115119
module = "tests.*"

tests/mock_server.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import socketserver
1212
import threading
1313
import time
14-
from http.server import BaseHTTPRequestHandler, HTTPServer, ThreadingHTTPServer
14+
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
1515
from typing import Any
1616

1717

0 commit comments

Comments
 (0)