Commit c116b927 authored by Mantas Zimnickas's avatar Mantas Zimnickas

An attempt to fix manifest files

Took too long, so dropped it for now.
parent 917e745c
Pipeline #139964707 failed with stage
in 3 minutes and 24 seconds
......@@ -146,7 +146,7 @@ Datasets are used to descripe external data sources, here is an example:
source: /SeimoInformacija/SeimoKadencija/SeimoFrakcija/SeimoFrakcijosNarys
properties:
grupes_rusis:
const: politika/seimas/frakcija
prepare: "'politika/seimas/frakcija'"
grupe:
source: ../@padalinio_id
komitetai:
......@@ -157,7 +157,7 @@ Datasets are used to descripe external data sources, here is an example:
source: /SeimoInformacija/SeimoKadencija/SeimoKomitetas/SeimoKomitetoNarys
properties:
grupes_rusis:
const: politika/seimas/grupė
prepare: "'politika/seimas/grupė'"
grupe:
source: ../@padalinio_id
......@@ -444,7 +444,7 @@ types. Under the hood data is stored using two virtual properties `id` and
politika/seimas/pareigos:
properties:
grupes_rusis:
const: politika/seimas/frakcija
prepare: "'politika/seimas/frakcija'"
grupe:
source: ../@padalinio_id
......
......@@ -86,7 +86,7 @@ Tokio duomenų šaltinio duomenų struktūros aprašas atrodo taip:
type: ref
model: datasets/pavyzdziai/priklausomybes/salis
source:
name: $salis._id
name: param(salis)._id
ref: _id
pavadinimas:
type: string
......@@ -110,10 +110,10 @@ adrese esantis `{salis.kodas}` pakeičiamas į užklausos eilutėje esančią
reikšme. Tokiu būdu, gauname visus miestus.
Modelio `datasets/pavyzdziai/priklausomybes/miestas` savybė `salis`, reikšmę
gauna iš kintamojo `$salis._id`. Pagal nutylėjimą lauko `source.name` reikšmė
atitinka siejamo modelio `source.pk` reikšmę, pagal kurią gaunamas tikrasis
identifikatorius. Tačiau šiuo atveju identifikatorius jau šinomas, todėl
papildomai nurodome, kad šiuo atveju `source.name` rodo į `_id` lauką.
gauna iš kintamojo `param(salis)._id`. Pagal nutylėjimą lauko `source.name`
reikšmė atitinka siejamo modelio `source.pk` reikšmę, pagal kurią gaunamas
tikrasis identifikatorius. Tačiau šiuo atveju identifikatorius jau šinomas,
todėl papildomai nurodome, kad šiuo atveju `source.name` rodo į `_id` lauką.
Galutiniame rezultate gauname tokias dvi lenteles:
......
......@@ -239,10 +239,22 @@ resurso šaltinis
:term:`Aplinkos kintamasis <aplinkos kintamasis>` formuojamas taip::
SPINTA_DATASETS_{manifest.name}_{dataset.name}_{resource.name}
`{manifest.name}` dažniausiai bus `default`, nebent naudojante kelis
manifestų katalogus.
resource.source
SPINTA_BACKENDS__{resource.ref}__DSN
SPINTA_BACKENDS__{dataset.name}__{resource.name}__DSN
SPINTA_BACKENDS__{dataset.name}__DSN
SPINTA_BACKENDS__{resource.type}__DSN
Iš šių variantą nurodytų aukčiau, bus naudojamas pirmas pateiktas. Jei
`dataset.name` arba `resource.name` turi `/` pavadinime, jie turi būti
pakeisti į `_`.
Konkrečiai šiuo atveju, galimi tokie duomenų bazės konfigūracijos
variantai::
SPINTA_BACKENDS__DATASETS_PAVYZDYS_SQL_SQL__DSN=postgresql://[email protected]/dbname
SPINTA_BACKENDS__DATASETS_PAVYZDYS_SQL__DSN=postgresql://[email protected]/dbname
SPINTA_BACKENDS__SQL__DSN=postgresql://[email protected]/dbname
Duomenų bazės šaltinis aprašomas naudojant tokią URL schemą::
......
......@@ -269,7 +269,7 @@ class Loader:
for pname, prop in obj.get('properties', {}).items():
ref_by = (oname, pname)
if prop['type'] == 'ref':
self.validate_model_ref(prop.get('object'), None, ref_by)
self.validate_model_ref(prop.get('model'), None, ref_by)
if prop['type'] == 'backref':
secondary = prop.get('secondary')
if secondary and isinstance(secondary, str):
......
......@@ -13,7 +13,7 @@ from googleapiclient.discovery import build
from google.auth.transport.requests import Request
from google_auth_oauthlib.flow import InstalledAppFlow
from spinta.config import create_context
from spinta.core.context import create_context
from spinta import components
from spinta import commands
......@@ -151,7 +151,7 @@ def update_manifest_files(context, rows):
'type': row.type,
}
if row.ref:
prop['object'] = row.ref
prop['model'] = row.ref
if row.const:
prop['const'] = row.const
if row.title:
......
name: datasets/gov/ivpk/opendata.gov.lt
title: IVPK Informacijos Rinkmenų Sąrašas (IRS)
type: dataset
version:
number: 1
date: '2012-11-22'
owner: gov/ivpk
level: 1
resources:
irs:
type: html
external: http://opendata.gov.lt/
name: gov/ivpk/opendata.gov.lt
title: "IVPK Informacijos Rinkmenų Sąrašas (IRS)"
type: dataset
version:
number: 1
date: "2012-11-22"
owner: gov/ivpk
stars: 1
resources:
irs:
type: html
source: "http://opendata.gov.lt/"
objects:
'':
duomenys/rinkinys:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
source: "Kodas"
urlid:
type: string
local: true
# source: {self: "../url:params:id"}
pavadinimas:
type: string
source: "Pavadinimas"
aprašymas:
type: string
source: "Apibūdinimas"
sukurta:
type: date
source: "Rinkmenos aprašymo publikavimo duomenys"
atnaujinta:
type: date
stars: 0
raktažodžiai:
type: string
source: "Reikšminiai žodžiai"
flags:
- unreadable
kontaktai:
type: string
source: "Kontaktiniai duomenys"
flags:
- unreadable
vietovės:
type: string
stars: 0
flags:
- unreadable
laikotarpiai:
type: string
dažnumas:
type: string
source: "Atnaujinimo dažnumas"
tiekėjas:
type: string
source: "Rinkmenos tvarkytojas"
flags:
- noref
duomenys/raktažodis:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
stars: 0
pavadinimas:
type: string
source: "Reikšminiai žodžiai"
duomenys/kontaktas:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
stars: 0
vardas:
type: string
source: "Kontaktiniai duomenys"
pavardė:
type: string
source: "Kontaktiniai duomenys"
el_paštas:
type: string
source: "Kontaktiniai duomenys"
telefonas:
type: string
source: "Kontaktiniai duomenys"
duomenys/laikotarpis:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
stars: 0
pavadinimas:
type: string
stars: 0
nuo:
type: date
source: "Rinkmenos pradžios data"
iki:
type: date
source: "Rinkmenos pabaigos data"
duomenys/vietovė:
stars: 0
properties:
_id:
type: pk
pavadinimas:
type: string
koordinatės:
type: string
duomenys/dažnumas:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
stars: 0
pavadinimas:
type: string
source: "Atnaujinimo dažnumas"
duomenys/tiekėjas:
source: http://opendata.gov.lt/index.php?vars=/public/public/print/{id}/
properties:
_id:
type: pk
stars: 0
pavadinimas:
type: string
source: "Rinkmenos tvarkytojas"