An xpublish plugin for serving intake catalogs
Project description
xpublish-intake
An xpublish
plugin for serving intake catalogs
Why?
As data access services are moved from custom APIs into xpublish
plugins, data users need a way to discover these new plugins as they become available without changing their analysis code. One way to standardize dataset access for those that can be loaded via intake
is to provide an intake
catalog of the plugins endpoints.
Ideas
This plugin currently supports the xpublish.plugins.included.zarr.ZarrPlugin
plugin (which is intake
compatible). In the future it would be nice if this library did not have to understand each and every plugin that is intake
compatible and left it up to the plugin authors to add intake
catalog support into their access services where applicable. This library could provide a mixin for xpublish
plugins to use to register their endpoints in a standard way to then be advertised in an intake
catalog.
Installation
For conda
users you can
conda install --channel conda-forge xpublish_intake
or, if you are a pip
user
pip install xpublish_intake
Setup
The intake
plugin will be automatically discoverd by xpublish
if you have the library installed. This will work for most users if you don't need to customize the endpoints.
If you specify your plugins manually you will need to add IntakePlugin
to the plugins
argument of xpublish.Rest
or register the IntakePlugin
explicitly.
from xpublish_intake.plugins import IntakePlugin
# Included in the `plugins` map
rest = Rest(
...
plugins={
...
'intake': IntakePlugin()
}
)
# Registered explicitly
rest = Rest(...)
rest.register_plugin(IntakePlugin())
Usage
The intake
plugin is by default configured with
-
app_router_prefix='/intake'
which creates the/intake.yaml
route for the rootintake
catalog containing all datasets in anxpublish.Rest
instance. By default that route is available athttp://.../intake.yaml
. -
dataset_router_prefix=''
which creates an/datasets/[name]/catalog.yaml
router for all datasets in thexpublish.Rest
instance. By default those route are available athttp://.../datasets/[name]/catalog.yaml
.
Get in touch
Report bugs, suggest features or view the source code on GitHub.
License and copyright
xpublish_intake
is licensed under the MIT License.
Development occurs on GitHub at https://github.com/axiom-data-science/xpublish-intake.
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
Built Distribution
File details
Details for the file xpublish-intake-1.0.0.tar.gz
.
File metadata
- Download URL: xpublish-intake-1.0.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd647c3205f32734e1a0265ead68333df4dd7b564ae0f13a0a2c818bb23bcd51 |
|
MD5 | 9093e166fdd593bed151f903a01d24cb |
|
BLAKE2b-256 | ab293d6f3c5ff6bcf0ce04093c72630bf9e7d1b8190cd1f5650eaffaf4e17eeb |
File details
Details for the file xpublish_intake-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: xpublish_intake-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 694c4407fb46b4a81daf90f419dbd12806487513df7d262e8be8c72317b36fba |
|
MD5 | af4add4c0f109d95b70c5789b100263e |
|
BLAKE2b-256 | 2613c053c50d854634845ec127c39023e813a5c2a9b375252f1f13ad7a7c0545 |