Skip to content

Commit 7e5c1f8

Browse files
committed
format code with black
1 parent 99ade51 commit 7e5c1f8

19 files changed

+630
-560
lines changed

rest_pandas/__init__.py

+19-21
Original file line numberDiff line numberDiff line change
@@ -26,25 +26,23 @@
2626

2727

2828
__all__ = [
29-
'PandasMixin',
30-
'PandasSimpleView',
31-
'PandasView',
32-
'PandasViewSet',
33-
34-
'PandasSerializer',
35-
'PandasUnstackedSerializer',
36-
'PandasScatterSerializer',
37-
'PandasBoxplotSerializer',
38-
'SimpleSerializer',
39-
40-
'PandasBaseRenderer',
41-
'PandasFileRenderer',
42-
'PandasCSVRenderer',
43-
'PandasTextRenderer',
44-
'PandasJSONRenderer',
45-
'PandasExcelRenderer',
46-
'PandasOldExcelRenderer',
47-
'PandasImageRenderer',
48-
'PandasPNGRenderer',
49-
'PandasSVGRenderer',
29+
"PandasMixin",
30+
"PandasSimpleView",
31+
"PandasView",
32+
"PandasViewSet",
33+
"PandasSerializer",
34+
"PandasUnstackedSerializer",
35+
"PandasScatterSerializer",
36+
"PandasBoxplotSerializer",
37+
"SimpleSerializer",
38+
"PandasBaseRenderer",
39+
"PandasFileRenderer",
40+
"PandasCSVRenderer",
41+
"PandasTextRenderer",
42+
"PandasJSONRenderer",
43+
"PandasExcelRenderer",
44+
"PandasOldExcelRenderer",
45+
"PandasImageRenderer",
46+
"PandasPNGRenderer",
47+
"PandasSVGRenderer",
5048
]

rest_pandas/renderers.py

+60-50
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77

88

99
RESPONSE_ERROR = (
10-
"Response data is a %s, not a DataFrame! "
11-
"Did you extend PandasMixin?"
10+
"Response data is a %s, not a DataFrame! Did you extend PandasMixin?"
1211
)
1312

1413

@@ -18,18 +17,17 @@ class PandasBaseRenderer(BaseRenderer):
1817
Only works with serializers that return DataFrames as their data object.
1918
Uses a StringIO to capture the output of dataframe.to_[format]()
2019
"""
20+
2121
def render(self, data, accepted_media_type=None, renderer_context=None):
22-
if renderer_context and 'response' in renderer_context:
23-
status_code = renderer_context['response'].status_code
22+
if renderer_context and "response" in renderer_context:
23+
status_code = renderer_context["response"].status_code
2424
if not status.is_success(status_code):
25-
return "Error: %s" % data.get('detail', status_code)
25+
return "Error: %s" % data.get("detail", status_code)
2626

2727
if not isinstance(data, DataFrame):
28-
raise Exception(
29-
RESPONSE_ERROR % type(data).__name__
30-
)
28+
raise Exception(RESPONSE_ERROR % type(data).__name__)
3129

32-
name = getattr(self, 'function', "to_%s" % self.format)
30+
name = getattr(self, "function", "to_%s" % self.format)
3331
if not hasattr(data, name):
3432
raise Exception("Data frame is missing %s property!" % name)
3533

@@ -60,16 +58,17 @@ class PandasFileRenderer(PandasBaseRenderer):
6058
"""
6159
Renderer for output formats that absolutely must use a file (i.e. Excel)
6260
"""
61+
6362
def init_output(self):
64-
file, filename = mkstemp(suffix='.' + self.format)
63+
file, filename = mkstemp(suffix="." + self.format)
6564
self.filename = filename
6665
os.close(file)
6766

6867
def get_pandas_args(self, data):
6968
return [self.filename]
7069

7170
def get_output(self):
72-
file = open(self.filename, 'rb')
71+
file = open(self.filename, "rb")
7372
result = file.read()
7473
file.close()
7574
os.unlink(self.filename)
@@ -82,59 +81,66 @@ class PandasHTMLRenderer(TemplateHTMLRenderer, PandasBaseRenderer):
8281

8382
def render(self, data, accepted_media_type=None, renderer_context=None):
8483
table = PandasBaseRenderer.render(
85-
self, data, accepted_media_type, renderer_context,
84+
self,
85+
data,
86+
accepted_media_type,
87+
renderer_context,
8688
)
8789

8890
return TemplateHTMLRenderer.render(
89-
self, {'table': table}, accepted_media_type, renderer_context,
91+
self,
92+
{"table": table},
93+
accepted_media_type,
94+
renderer_context,
9095
)
9196

9297
def get_template_context(self, data, renderer_context):
93-
view = renderer_context['view']
94-
request = renderer_context['request']
98+
view = renderer_context["view"]
99+
request = renderer_context["request"]
95100

96-
data['name'] = view.get_view_name()
97-
data['description'] = view.get_view_description(html=True)
98-
data['url'] = request.path.replace('.html', '')
101+
data["name"] = view.get_view_name()
102+
data["description"] = view.get_view_description(html=True)
103+
data["url"] = request.path.replace(".html", "")
99104
full_path = request.get_full_path()
100-
if '?' in full_path:
101-
data['url_params'] = full_path[full_path.index('?'):]
102-
data['available_formats'] = [
103-
cls.format for cls in view.renderer_classes
104-
if cls.format != 'html'
105+
if "?" in full_path:
106+
data["url_params"] = full_path[full_path.index("?") :]
107+
data["available_formats"] = [
108+
cls.format for cls in view.renderer_classes if cls.format != "html"
105109
]
106110

107111
chart_type = view.pandas_serializer_class.wq_chart_type
108112
if chart_type:
109-
data['wq_chart_type'] = chart_type
113+
data["wq_chart_type"] = chart_type
110114

111-
if hasattr(view, 'get_template_context'):
115+
if hasattr(view, "get_template_context"):
112116
data.update(view.get_template_context(data))
113117

114118
return data
115119

116120
def get_pandas_kwargs(self, data, renderer_context):
117121
return {
118-
'classes': 'ui-table table-stripe',
119-
'na_rep': '',
122+
"classes": "ui-table table-stripe",
123+
"na_rep": "",
120124
}
121125

122126

123127
class PandasCSVRenderer(PandasBaseRenderer):
124128
"""
125129
Renders data frame as CSV
126130
"""
131+
127132
media_type = "text/csv"
128133
format = "csv"
129134

130135
def get_pandas_kwargs(self, data, renderer_context):
131-
return {'encoding': self.charset}
136+
return {"encoding": self.charset}
132137

133138

134139
class PandasTextRenderer(PandasCSVRenderer):
135140
"""
136141
Renders data frame as CSV, but uses text/plain as media type
137142
"""
143+
138144
media_type = "text/plain"
139145
format = "txt"
140146
function = "to_csv"
@@ -144,52 +150,52 @@ class PandasJSONRenderer(PandasBaseRenderer):
144150
"""
145151
Renders data frame as JSON
146152
"""
153+
147154
media_type = "application/json"
148155
format = "json"
149156

150157
orient_choices = {
151-
'records-index', # Unique to DRP
152-
'split',
153-
'records',
154-
'index',
155-
'columns',
156-
'values',
157-
'table',
158+
"records-index", # Unique to DRP
159+
"split",
160+
"records",
161+
"index",
162+
"columns",
163+
"values",
164+
"table",
158165
}
159-
default_orient = 'records-index'
166+
default_orient = "records-index"
160167

161-
date_format_choices = {'epoch', 'iso'}
162-
default_date_format = 'iso'
168+
date_format_choices = {"epoch", "iso"}
169+
default_date_format = "iso"
163170

164171
def get_pandas_kwargs(self, data, renderer_context):
165-
request = renderer_context['request']
172+
request = renderer_context["request"]
166173

167-
orient = request.GET.get('orient', '')
174+
orient = request.GET.get("orient", "")
168175
if orient not in self.orient_choices:
169176
orient = self.default_orient
170177

171-
date_format = request.GET.get('date_format', '')
178+
date_format = request.GET.get("date_format", "")
172179
if date_format not in self.date_format_choices:
173180
date_format = self.default_date_format
174181

175182
return {
176-
'orient': orient,
177-
'date_format': date_format,
183+
"orient": orient,
184+
"date_format": date_format,
178185
}
179186

180187
def render_dataframe(self, data, name, *args, **kwargs):
181-
if kwargs.get('orient') == 'records-index':
182-
kwargs['orient'] = 'records'
188+
if kwargs.get("orient") == "records-index":
189+
kwargs["orient"] = "records"
183190
data.reset_index(inplace=True)
184-
return super().render_dataframe(
185-
data, name, *args, **kwargs
186-
)
191+
return super().render_dataframe(data, name, *args, **kwargs)
187192

188193

189194
class PandasExcelRenderer(PandasFileRenderer):
190195
"""
191196
Renders data frame as Excel (.xlsx)
192197
"""
198+
193199
media_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" # noqa
194200
format = "xlsx"
195201
function = "to_excel"
@@ -199,6 +205,7 @@ class PandasOldExcelRenderer(PandasFileRenderer):
199205
"""
200206
Renders data frame as Excel (.xls)
201207
"""
208+
202209
media_type = "application/vnd.ms-excel"
203210
format = "xls"
204211
function = "to_excel"
@@ -208,21 +215,24 @@ class PandasImageRenderer(PandasBaseRenderer):
208215
"""
209216
Renders dataframe using built-in plot() function
210217
"""
218+
211219
function = "plot"
212-
matplotlib_backend = 'Agg'
220+
matplotlib_backend = "Agg"
213221

214222
def init_output(self):
215223
import matplotlib
224+
216225
matplotlib.use(self.matplotlib_backend)
217226
import matplotlib.pyplot as plt
227+
218228
self.fig = plt.figure()
219229
self.ax = self.fig.add_subplot(111)
220230

221231
def get_pandas_args(self, data):
222232
return []
223233

224234
def get_pandas_kwargs(self, data, renderer_context):
225-
return {'ax': self.ax}
235+
return {"ax": self.ax}
226236

227237
def get_output(self):
228238
data = BytesIO()

0 commit comments

Comments
 (0)