# ckanext-datapackage
[![Build](https://img.shields.io/github/actions/workflow/status/frictionlessdata/ckanext-datapackage/general.yaml?branch=main)](https://github.com/frictionlessdata/ckanext-datapackage/actions)
[![Codebase](https://img.shields.io/badge/codebase-github-brightgreen)](https://github.com/frictionlessdata/ckanext-datapackage)
[![Release](https://img.shields.io/pypi/v/ckanext-datapackage.svg)](https://pypi.python.org/pypi/ckanext-datapackage)
Data Package integreation for CKAN.
## Purpose
This lightweight CKAN plugin adds a `dataset/<id>/datapackage.json` endpoint to every dataset in the data catalog. Read more about the [Data Package Standard](https://datapackage.org/).
## Requirements
The extension requires Python 3.8+. It is being developed and tested with CKAN 2.10. Please fill an issue if it doesn't work as expected with other versions.
## Installation
1. Install the extension:
```bash
$ pip install ckanext-datapackage
```
2. Enable the plugin in your ini file:
```text
ckan.plugins = ... datapackage
```
## Endpoint
Data Package representations of a particular dataset can be accessed using the following endpoint:
```
https://{ckan-instance-host}/dataset/{dataset-id}/datapackage.json
```
Read more about [Data Package Standard](https://datapackage.org/) specifications and `datapackage.json` metadata format.
## Example
Consider there is a dataset as below:
> http://ckan:5000/dataset/example
![Dataset](assets/dataset.png)
The Data Package representation of this dataset can be accessed using the following endpoint (note that the link is also available on the dataset page in the "Additional Info" section):
> http://ckan:5000/dataset/example/datapackage.json
```json
{
"$schema": "https://datapackage.org/profiles/2.0/datapackage.json",
"ckan:id": "8bb0257b-37be-48ca-9129-59040264acd5",
"contributors": [
{
"email": "eskarev@gmail.com",
"roles": ["author"],
"title": "Evgeny Karev"
},
{
"email": "eskarev@gmail.com",
"roles": ["maintainer"],
"title": "Evgeny Karev"
}
],
"created": "2024-04-22T14:08:29.297417+01:00",
"description": "It is an examplar dataset",
"keywords": ["data", "open"],
"licenses": [
{
"name": "cc-by",
"path": "http://www.opendefinition.org/licenses/cc-by",
"title": "Creative Commons Attribution"
}
],
"name": "example",
"resources": [
{
"bytes": 1497,
"ckan:id": "03eec88c-a4b0-4ba9-8940-58dd4d383936",
"description": "It's a table about cars",
"format": "csv",
"mediatype": "text/csv",
"name": "table_cars",
"path": "http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/03eec88c-a4b0-4ba9-8940-58dd4d383936/download/table-cars.csv",
"schema": {
"fields": [
{
"name": "brand",
"type": "string"
},
{
"name": "model",
"type": "string"
},
{
"name": "price",
"type": "number"
},
{
"name": "kmpl",
"type": "number"
},
{
"name": "bhp",
"type": "number"
},
{
"name": "type",
"type": "string"
}
]
},
"type": "table"
},
{
"bytes": 13,
"ckan:id": "f3425eea-0ec9-481e-9679-382e7c499474",
"description": "It's a textual file",
"format": "txt",
"mediatype": "text/plain",
"name": "text",
"path": "http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/f3425eea-0ec9-481e-9679-382e7c499474/download/text.txt"
}
],
"title": "Example",
"version": "1.0"
}
```
## Benefits
Having a Data Package representation of a dataset allows for using a rich ecosystem of tools and libraries that support the [Data Package Standard](https://datapackage.org/). For example, data portal users can use the [frictionless-r](https://docs.ropensci.org/frictionless/) or [frictionless-py](https://framework.frictionlessdata.io/docs/console/overview.html) to access the data without loosing metadata and information about data types:
```bash
frictionless extract http://ckan:5000/dataset/example/datapackage.json
```
```text
────────────────────────────────────────────────────────────── Dataset ──────────────────────────────────────────────────────────────
┏━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ name ┃ type ┃ path ┃
┡━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ table_cars │ table │ http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/03eec88c-a4b0-4ba9-8940-58dd4d383936… │
│ text │ text │ http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/f3425eea-0ec9-481e-9679-382e7c499474… │
└────────────┴───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
────────────────────────────────────────────────────────────── Tables ───────────────────────────────────────────────────────────────
table_cars
┏━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━┳━━━━━━━┓
┃ brand ┃ model ┃ price ┃ kmpl ┃ bhp ┃ type ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━╇━━━━━━━┩
│ Volkswagen │ Vento │ 785 │ 16.1 │ 104 │ Sedan │
│ Hyundai │ Verna │ 774 │ 17.4 │ 106 │ Sedan │
│ Skoda │ Rapid │ 756 │ 15 │ 104 │ Sedan │
│ Suzuki │ Ciaz │ 725 │ 20.7 │ 91 │ Sedan │
│ Renault │ Scala │ 724 │ 16.9 │ 98 │ Sedan │
│ Suzuki │ SX4 │ 715 │ 16.5 │ 103 │ Sedan │
│ Fiat │ Linea │ 700 │ 15.7 │ 112 │ Sedan │
│ Nissan │ Sunny │ 699 │ 16.9 │ 98 │ Sedan │
│ Fiat │ Linea Classic │ 612 │ 14.9 │ 89 │ Sedan │
│ Toyota │ Etios │ 603 │ 16.8 │ 89 │ Sedan │
│ ... │ ... │ ... │ ... │ ... │ ... │
└────────────┴───────────────┴───────┴──────┴─────┴───────┘
```
Note that remote Data Package support is also under development in [Open Data Editor](https://opendataeditor.okfn.org/).
## Development
Please follow the [Contribution Guide](CONTRIBUTING.md).
## Changelog
Please refer to the [Changelog](CHANGELOG.md).
## Funding
This project is funded through [NGI0 Entrust](https://nlnet.nl/entrust), a fund established by [NLnet](https://nlnet.nl) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu) program. Learn more at the [NLnet project page](https://nlnet.nl/project/FrictionlessStandards/).
[<img src="https://nlnet.nl/logo/banner.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl)
[<img src="https://nlnet.nl/image/logos/NGI0_tag.svg" alt="NGI Zero Logo" width="20%" />](https://nlnet.nl/entrust)
Raw data
{
"_id": null,
"home_page": null,
"name": "ckanext-datapackage",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "data package, data validation, json schema, json table schema, open data, tabular data package",
"author": null,
"author_email": "Open Knowledge Foundation <info@okfn.org>",
"download_url": "https://files.pythonhosted.org/packages/2b/2d/ef0bc1ae4c72526d88b27583e9e603d495d010b924d22264e182ca9a2c46/ckanext_datapackage-0.2.4.tar.gz",
"platform": null,
"description": "# ckanext-datapackage\n\n[![Build](https://img.shields.io/github/actions/workflow/status/frictionlessdata/ckanext-datapackage/general.yaml?branch=main)](https://github.com/frictionlessdata/ckanext-datapackage/actions)\n[![Codebase](https://img.shields.io/badge/codebase-github-brightgreen)](https://github.com/frictionlessdata/ckanext-datapackage)\n[![Release](https://img.shields.io/pypi/v/ckanext-datapackage.svg)](https://pypi.python.org/pypi/ckanext-datapackage)\n\nData Package integreation for CKAN.\n\n## Purpose\n\nThis lightweight CKAN plugin adds a `dataset/<id>/datapackage.json` endpoint to every dataset in the data catalog. Read more about the [Data Package Standard](https://datapackage.org/).\n\n## Requirements\n\nThe extension requires Python 3.8+. It is being developed and tested with CKAN 2.10. Please fill an issue if it doesn't work as expected with other versions.\n\n## Installation\n\n1. Install the extension:\n\n```bash\n$ pip install ckanext-datapackage\n```\n\n2. Enable the plugin in your ini file:\n\n```text\nckan.plugins = ... datapackage\n```\n\n## Endpoint\n\nData Package representations of a particular dataset can be accessed using the following endpoint:\n\n```\nhttps://{ckan-instance-host}/dataset/{dataset-id}/datapackage.json\n```\n\nRead more about [Data Package Standard](https://datapackage.org/) specifications and `datapackage.json` metadata format.\n\n## Example\n\nConsider there is a dataset as below:\n\n> http://ckan:5000/dataset/example\n\n![Dataset](assets/dataset.png)\n\nThe Data Package representation of this dataset can be accessed using the following endpoint (note that the link is also available on the dataset page in the \"Additional Info\" section):\n\n> http://ckan:5000/dataset/example/datapackage.json\n\n```json\n{\n \"$schema\": \"https://datapackage.org/profiles/2.0/datapackage.json\",\n \"ckan:id\": \"8bb0257b-37be-48ca-9129-59040264acd5\",\n \"contributors\": [\n {\n \"email\": \"eskarev@gmail.com\",\n \"roles\": [\"author\"],\n \"title\": \"Evgeny Karev\"\n },\n {\n \"email\": \"eskarev@gmail.com\",\n \"roles\": [\"maintainer\"],\n \"title\": \"Evgeny Karev\"\n }\n ],\n \"created\": \"2024-04-22T14:08:29.297417+01:00\",\n \"description\": \"It is an examplar dataset\",\n \"keywords\": [\"data\", \"open\"],\n \"licenses\": [\n {\n \"name\": \"cc-by\",\n \"path\": \"http://www.opendefinition.org/licenses/cc-by\",\n \"title\": \"Creative Commons Attribution\"\n }\n ],\n \"name\": \"example\",\n \"resources\": [\n {\n \"bytes\": 1497,\n \"ckan:id\": \"03eec88c-a4b0-4ba9-8940-58dd4d383936\",\n \"description\": \"It's a table about cars\",\n \"format\": \"csv\",\n \"mediatype\": \"text/csv\",\n \"name\": \"table_cars\",\n \"path\": \"http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/03eec88c-a4b0-4ba9-8940-58dd4d383936/download/table-cars.csv\",\n \"schema\": {\n \"fields\": [\n {\n \"name\": \"brand\",\n \"type\": \"string\"\n },\n {\n \"name\": \"model\",\n \"type\": \"string\"\n },\n {\n \"name\": \"price\",\n \"type\": \"number\"\n },\n {\n \"name\": \"kmpl\",\n \"type\": \"number\"\n },\n {\n \"name\": \"bhp\",\n \"type\": \"number\"\n },\n {\n \"name\": \"type\",\n \"type\": \"string\"\n }\n ]\n },\n \"type\": \"table\"\n },\n {\n \"bytes\": 13,\n \"ckan:id\": \"f3425eea-0ec9-481e-9679-382e7c499474\",\n \"description\": \"It's a textual file\",\n \"format\": \"txt\",\n \"mediatype\": \"text/plain\",\n \"name\": \"text\",\n \"path\": \"http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/f3425eea-0ec9-481e-9679-382e7c499474/download/text.txt\"\n }\n ],\n \"title\": \"Example\",\n \"version\": \"1.0\"\n}\n```\n\n## Benefits\n\nHaving a Data Package representation of a dataset allows for using a rich ecosystem of tools and libraries that support the [Data Package Standard](https://datapackage.org/). For example, data portal users can use the [frictionless-r](https://docs.ropensci.org/frictionless/) or [frictionless-py](https://framework.frictionlessdata.io/docs/console/overview.html) to access the data without loosing metadata and information about data types:\n\n```bash\nfrictionless extract http://ckan:5000/dataset/example/datapackage.json\n```\n\n```text\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Dataset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 name \u2503 type \u2503 path \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 table_cars \u2502 table \u2502 http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/03eec88c-a4b0-4ba9-8940-58dd4d383936\u2026 \u2502\n\u2502 text \u2502 text \u2502 http://ckan:5000/dataset/8bb0257b-37be-48ca-9129-59040264acd5/resource/f3425eea-0ec9-481e-9679-382e7c499474\u2026 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n table_cars\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 brand \u2503 model \u2503 price \u2503 kmpl \u2503 bhp \u2503 type \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 Volkswagen \u2502 Vento \u2502 785 \u2502 16.1 \u2502 104 \u2502 Sedan \u2502\n\u2502 Hyundai \u2502 Verna \u2502 774 \u2502 17.4 \u2502 106 \u2502 Sedan \u2502\n\u2502 Skoda \u2502 Rapid \u2502 756 \u2502 15 \u2502 104 \u2502 Sedan \u2502\n\u2502 Suzuki \u2502 Ciaz \u2502 725 \u2502 20.7 \u2502 91 \u2502 Sedan \u2502\n\u2502 Renault \u2502 Scala \u2502 724 \u2502 16.9 \u2502 98 \u2502 Sedan \u2502\n\u2502 Suzuki \u2502 SX4 \u2502 715 \u2502 16.5 \u2502 103 \u2502 Sedan \u2502\n\u2502 Fiat \u2502 Linea \u2502 700 \u2502 15.7 \u2502 112 \u2502 Sedan \u2502\n\u2502 Nissan \u2502 Sunny \u2502 699 \u2502 16.9 \u2502 98 \u2502 Sedan \u2502\n\u2502 Fiat \u2502 Linea Classic \u2502 612 \u2502 14.9 \u2502 89 \u2502 Sedan \u2502\n\u2502 Toyota \u2502 Etios \u2502 603 \u2502 16.8 \u2502 89 \u2502 Sedan \u2502\n\u2502 ... \u2502 ... \u2502 ... \u2502 ... \u2502 ... \u2502 ... \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\nNote that remote Data Package support is also under development in [Open Data Editor](https://opendataeditor.okfn.org/).\n\n## Development\n\nPlease follow the [Contribution Guide](CONTRIBUTING.md).\n\n## Changelog\n\nPlease refer to the [Changelog](CHANGELOG.md).\n\n## Funding\n\nThis project is funded through [NGI0 Entrust](https://nlnet.nl/entrust), a fund established by [NLnet](https://nlnet.nl) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu) program. Learn more at the [NLnet project page](https://nlnet.nl/project/FrictionlessStandards/).\n\n[<img src=\"https://nlnet.nl/logo/banner.png\" alt=\"NLnet foundation logo\" width=\"20%\" />](https://nlnet.nl)\n[<img src=\"https://nlnet.nl/image/logos/NGI0_tag.svg\" alt=\"NGI Zero Logo\" width=\"20%\" />](https://nlnet.nl/entrust)\n",
"bugtrack_url": null,
"license": null,
"summary": "Data Package integreation for CKAN",
"version": "0.2.4",
"project_urls": {
"homepage": "https://github.com/frictionlessdata/ckanext-datapackage"
},
"split_keywords": [
"data package",
" data validation",
" json schema",
" json table schema",
" open data",
" tabular data package"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ea3e92283c8a71907631aee2e7f32c93d4e0f62dd954fbe138e5dbc133c95f92",
"md5": "f086509aba73ee70da46de6464405a8d",
"sha256": "c16003542ef42819685455cf51ad1b6ccb3f4dfdddabaad418b080dc95467390"
},
"downloads": -1,
"filename": "ckanext_datapackage-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f086509aba73ee70da46de6464405a8d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 8531,
"upload_time": "2024-06-04T13:54:42",
"upload_time_iso_8601": "2024-06-04T13:54:42.886274Z",
"url": "https://files.pythonhosted.org/packages/ea/3e/92283c8a71907631aee2e7f32c93d4e0f62dd954fbe138e5dbc133c95f92/ckanext_datapackage-0.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b2def0bc1ae4c72526d88b27583e9e603d495d010b924d22264e182ca9a2c46",
"md5": "de623b86f4dc78410e0881ef093032d1",
"sha256": "562422ac81cc5eeb229e1984ee882a60f4ec11dd374f3623fec2c7b3a2ea5a78"
},
"downloads": -1,
"filename": "ckanext_datapackage-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "de623b86f4dc78410e0881ef093032d1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 166115,
"upload_time": "2024-06-04T13:54:44",
"upload_time_iso_8601": "2024-06-04T13:54:44.544194Z",
"url": "https://files.pythonhosted.org/packages/2b/2d/ef0bc1ae4c72526d88b27583e9e603d495d010b924d22264e182ca9a2c46/ckanext_datapackage-0.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-04 13:54:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "frictionlessdata",
"github_project": "ckanext-datapackage",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ckanext-datapackage"
}