Skip to main content

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

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)

Source distribution for commondata 0.0.2
File Size Uploaded
commondata-0.0.2.tar.gz 4.1 kB Details

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

Release history Release notifications | RSS feed

25.2.0

2 release files

24.3.4

2 release files

24.3.3

2 release files

24.3.2

2 release files

24.3.1

2 release files

24.3.0

2 release files

This release

0.0.2 This release

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page