Releases: wq/django-rest-pandas
DRP 1.1.0
Django REST Pandas 1.1.0 includes a new filename option (#31), confirmed support for Django 2, and a couple of minor fixes.
New Functionality
Added a get_pandas_filename()
view method, for cases where you have users downloading files through the API (#31). For example:
class TimeSeriesView(PandasView):
# If a filename is returned, rest_pandas will include the following header:
# 'Content-Disposition: attachment; filename="Data Export.xlsx"'
def get_pandas_filename(self, request, format):
if format in ('xls', 'xlsx'):
# Use custom filename and Content-Disposition header
return "Data Export" # Extension will be appended automatically
else:
# Default filename from URL (no Content-Disposition header)
return None
Bug Fixes
- Don't crash if
renderer_context
is missing (#34) PandasBoxplotSerializer
: handle non-numeric columns and duplicate rows (abeb576)
Documentation Improvements
DRP 1.0.0
Django REST Pandas 1.0.0 brings a number of API improvements that make it easier to integrate with existing DRF projects.
New Functionality
- Support mixing with DRP renderers with regular DRF renderers, including in
REST_FRAMEWORK["DEFAULT_RENDERER_CLASSES"]
(#28) - Better detection of default index field name (#13, #29)
- Include index field(s) in default JSON output (#29). The
orient
parameter now defaults to a DRP-specific"records-index"
, which is like"records"
but callsreset_index()
before rendering.
Bug Fixes
- Don't crash if
"id"
is not a serializer field (#13) - Fix null value handling in
PandasScatterSerializer
(2636cc4)
Documentation Improvements
- Supported URL parameters for JSON output (#26)
DateTimeField
serialization tips (#27)django-pandas
integration (#11)- HTML output and integration with wq/chartapp.js (#2)
DRP 0.5.0
Django REST Pandas 0.5.0 introduces a simple PandasHTMLRenderer
for use in a browseable visualization API (#2). To enable it by default, you just need to add rest_pandas
to your INSTALLED_APPS
. You will need a template called rest_pandas.html
, or you can install django-mustache to use the provided mustache template (which is optimized for integration with a wq-powered application).
This release also includes updates for pandas 0.19 and drops support for Django REST Framework 2.4 (#23).
DRP 0.4.1
DRP 0.4.0
Django REST Pandas 0.4.0 brings a few new features as well as confirmed compatibility with Django 1.9.
- #15 - Ability to override JSON format via URL keyword (via @kevinmickey)
- #17 -
Unstacked
,Scatter
, andBoxplot
serializers for common charting uses, generalized from wq.db.contrib.chart. - #14 - Better documentation and tests for "simple" use case
DRP 0.3.2
This release is just to verify compatiblity with Django 1.8 and pandas 0.16.0. Older versions should still work, though note that Django 1.6 is no longer being tested against.
The only actual code change is 5faa4ec, which switches the JSON renderer from a default of orient="index"
to orient="records"
to get around a breaking test because it's a more reasonable default. You can restore the old behavior by subclassing PandasJSONRenderer
and overriding get_pandas_kwargs()
, but:
- As is noted in the README, the CSV renderer is the one you probably want to be using anyway. You can use wq/pandas.js to convert CSV to JSON after you've loaded it on the client.
- If you really want JSON output, you're probably already using the vanilla DRF
JSONRenderer
anyway.
DRP 0.3.1
DRP 0.3.0
Django REST pandas 0.3.0 adds support for Django REST Framework 3 (#10) and a better separation between model serialization and DataFrame
creation - the latter now happening in a separate serializer (#8).
The new code is mostly backwards compatible (the tests haven't changed) but there are a couple of implementation changes that may affect you if you've customized or extended DRP.
PandasBaseSerializer
has been renamed toPandasSerializer
and replaces the formerPandasSerializer
. When using DRP with DRF 3, the newPandasSerializer
is a ListSerializer and can only be used as such.PandasSimpleSerializer
has been renamed toSimpleSerializer
and no longer has any pandas-related functionality (since that's now handled in a separate step).- For the DRP views, a new
PandasMixin
class encapsulates the functionality needed to add Pandas capabilities to a serialized result. This is accomplished via the newwith_pandas_serializer(cls)
method that customizes any existingserializer_class
to enable Pandas capabilities as needed. The Pandas serializer can be overridden by specifyingpandas_serializer_class
.