Handle django-popolo data from multiple separate sources
Project description
This package provides a PopoloSource Django model to represent a URL from which you can fetch Popolo JSON data. It allows you to import data from multiple such sources into django-popolo models while maintaining an association with the source they came from, and making sure that a change in one source doesn’t affect the models from any other.
In addition, this package allows you to track objects that have
been deleted from a source; they are marked as having
disappeared, but the django-popolo models are not deleted. If
they reappear with the same ID in the Popolo JSON source, the
disappeared flag (deleted_from_source
) will be set back to
False
.
It is only the objects that are listed at the top level of a Popolo JSON file that are tracked by the code in this package. That includes:
Area
Membership
Organization
Person
Post
But does not include, for example, ContactDetail
.
Usage
To create a new PopoloSource
you can do:
from popolo_sources.models import PopoloSource
ps = PopoloSource(url='http://example.com/parliament.json')
To then create django-popolo models (Person
,
Organization
, etc.) based on the Popolo JSON at that
URL, you can now do:
ps.update_from_source()
You can run .update_from_source()
again to update the models
based on any changes in the Popolo JSON source.
The model that represents the join table linking PopoloSource
models with django-popolo models is
popolo_sources.models.LinkToPopoloSource
. This model has the
deleted_from_source
attributed, so you can find all
non-deleted top-level django-popolo with code like:
for ltps in LinkToPopoloSource.filter(deleted_from_source=False):
print ltps.popolo_object
Tests
To run the tests you can do:
pip install -e .[test]
./runtests.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file multiple-django-popolo-sources-0.0.3.tar.gz
.
File metadata
- Download URL: multiple-django-popolo-sources-0.0.3.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c347154cf684825bc1be23613b238f9772bbb24622a324990073ea131004f7b4 |
|
MD5 | dae5f810f2ebec88b3c40ff7010a42b5 |
|
BLAKE2b-256 | 647b88b2b64799b717c75cf645e8c4807bffd011cfe0601bcde40ba954e9630e |