wq.db 0.5.0
As part of the wq 0.5.0 “Charted Waters” release, this release of brings a number of enhancements to the data management and exploration capabilities of wq.db. This release also brings a number of improvements and tests for compatibility with Django 1.6.
API improvements
- Restructured the vera module to improve stability and performance (#10, #17).
- Completely separated the
models
implementation from that ofannotate
. While vera’s ERAV data model is logically an extension of annotate’s EAV, tying the the implementations together limited the stability of the former and the generality of the latter. Specifically,BaseParameter
andBaseResult
are no longer subclasses ofBaseAnnotationType
andBaseAnnotation
. - Added a denormalized
EventResult
model for fast read-only analysis (i.e. charting). This model uses a signal to track changes to theEvent
,Report
, andResult
models, automatically maintaining a list of the “authoritative” versions of the Results for each Event-Parameter pair. Since Event and Result may be swapped for user-supplied versions, the actual class definition is created at run time viacreate_eventresult_model()
.
- Completely separated the
- Don’t set CRS object when serializing models with simple latitude and longitude in GeoJSON (in #17)
New Modules (in contrib
)
- dbio: Replaces
vera.io
as part of the above reorganization (#10) - chart: a charting service for wq.app’s chart.js that utilizes the new
vera.EventResult
model. Uses the new Django REST Pandas library to facilitated data transformation. (#10, #17)
Other Changes
- Extended the wq.db test suite with tests for
annotate
,vera
, anddbio
, andfiles
. The plan is that going forward, each improvement to wq.db will generally start as a pull request with a failing test. - Split the internal
swapper
API into a separate PyPI module - Fixed issues with Django 1.6 compatibility in
patterns
(#9), and submitted a patch to Django REST Framework (tomchristie/django-rest-framework#1318). - Fixed various issues with nested serializers (#4, #15), file management (in #16), and the `` context variable (in #10).