The commondata namespace package
Note: we are discussing whether this package is meaningful. See http://lino-framework.org/tickets/109.html
This package is the heart of “common data”, a sustainable way of maintaining and sharing structured common knowledge. The Python package itself contains just some utilities and defines the commondata namespace. It is the base for packages like
commondata.be : Common knowledge about Belgium
commondata.ee: Common knowledge about Estonia
commondata.eg: Common knowledge about Egypt
Features
Maintained in Python
The Python programming language brings together two qualities
a syntax which makes it easy (or at least possible) to be used by non-programmers
a powerful programming language working behind the scenes
Freely available under the GPL
Free software should not depend on non-free material.
Designed to be imported
The library does not provide much querying functionality. Just the basic minimum, used to write test cases. This is a design choice. This data is meant to be imported into existing systems which offer their own querying facilities.
Installation
The easiest way is to type:
pip install commondata.ee commondata.be
Alternatively you might prefer to use the development version:
$ git clone https://github.com/lsaffre/commondata.git $ git clone https://github.com/lsaffre/commondata-ee.git $ git clone https://github.com/lsaffre/commondata-be.git $ pip install -e commondata $ pip install -e commondata.ee $ pip install -e commondata.be
Online version of this document on https://github.com/lsaffre/commondata
Utilities
How to use the Place and PlaceGenerator classes.
You define a subclass of Place for each “type” of place:
>>> from commondata.utils import Place, PlaceGenerator >>> class PlaceInFoo(Place): ... def __str__(self): ... return self.name >>> class Kingdom(PlaceInFoo): ... value = 1 >>> class County(PlaceInFoo): ... value = 2 >>> class Borough(PlaceInFoo): ... value = 3 >>> class Village(PlaceInFoo): ... value = 3
The PlaceGenerator is used to instantiate to populate
Part 1 : configuration:
>>> pg = PlaceGenerator()
>>> pg.install(Kingdom, County, Borough, Village)
>>> pg.set_args('name')
Part 2 : filling data
>>> root = pg.kingdom("Kwargia")
>>> def fill(pg):
... pg.county("Kwargia")
... pg.borough("Kwargia")
... pg.village("Virts")
... pg.village("Vinks")
... pg.county("Gorgia")
... pg.village("Girts")
... pg.village("Ginks")
>>> fill(pg)
Part 3 : using the data
>>> [str(x) for x in root.children] ['Kwargia', 'Gorgia'] >>> kwargia = root.children[0] >>> [str(x) for x in kwargia.children] ['Kwargia', 'Virts', 'Vinks']
Multilingual place names
You use the commondata.utils.PlaceGenerator.set_args() method to specify the names of the fields of subsequent places.
>>> pg = PlaceGenerator()
>>> pg.install(Kingdom, County, Borough, Village)
>>> pg.set_args('name name_ar')
>>> root = pg.kingdom("Egypt", u'\u0645\u0635\u0631')
>>> print(root.name_ar)
مصر
Metadata
Release files for commondata 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| commondata-0.0.2.tar.gz | 4.1 kB | Without provenance | Details for commondata-0.0.2.tar.gz |
Release files / commondata-0.0.2.tar.gz
| Download URL | commondata-0.0.2.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
249d22e288532fb3364648b7b389b267d73b5867149ebc2fae1b03bc241f658a
|
|
BLAKE2b-256 checksum How to use checksums |
0d625bc9340f4043be75f0c9dc18b1efa54eab6b7c717e19141bf2b08038a9a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for commondata 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.