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 NoneBug Fixes
- Don't crash if
renderer_contextis 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
orientparameter 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)
DateTimeFieldserialization tips (#27)django-pandasintegration (#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, andBoxplotserializers 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
JSONRendereranyway.
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.
PandasBaseSerializerhas been renamed toPandasSerializerand replaces the formerPandasSerializer. When using DRP with DRF 3, the newPandasSerializeris a ListSerializer and can only be used as such.PandasSimpleSerializerhas been renamed toSimpleSerializerand no longer has any pandas-related functionality (since that's now handled in a separate step).- For the DRP views, a new
PandasMixinclass 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_classto enable Pandas capabilities as needed. The Pandas serializer can be overridden by specifyingpandas_serializer_class.