diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-tiled.spec | 786 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 788 insertions, 0 deletions
@@ -0,0 +1 @@ +/tiled-0.1.0a91.tar.gz diff --git a/python-tiled.spec b/python-tiled.spec new file mode 100644 index 0000000..1197ae2 --- /dev/null +++ b/python-tiled.spec @@ -0,0 +1,786 @@ +%global _empty_manifest_terminate_build 0 +Name: python-tiled +Version: 0.1.0a91 +Release: 1 +Summary: Tile-based access to SciPy/PyData data structures over the web in many formats +License: BSD (3-clause) +URL: https://github.com/bluesky/tiled +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/07/2e/6ac953e63c210aad93613a9f57cef01b80009e57032c16013a07df7a81ef/tiled-0.1.0a91.tar.gz +BuildArch: noarch + +Requires: python3-aiofiles +Requires: python3-aiosqlite +Requires: python3-alembic +Requires: python3-anyio +Requires: python3-appdirs +Requires: python3-blosc +Requires: python3-cachetools +Requires: python3-cachey +Requires: python3-click +Requires: python3-dask +Requires: python3-dask[array] +Requires: python3-dask[dataframe] +Requires: python3-entrypoints +Requires: python3-fastapi +Requires: python3-h5netcdf +Requires: python3-h5py +Requires: python3-heapdict +Requires: python3-httpx +Requires: python3-jinja2 +Requires: python3-jmespath +Requires: python3-jsonschema +Requires: python3-lz4 +Requires: python3-msgpack +Requires: python3-ndindex +Requires: python3-numpy +Requires: python3-openpyxl +Requires: python3-orjson +Requires: python3-packaging +Requires: python3-pandas +Requires: python3-pillow +Requires: python3-prometheus-client +Requires: python3-psutil +Requires: python3-pyarrow +Requires: python3-pydantic +Requires: python3-dateutil +Requires: python3-jose[cryptography] +Requires: python3-multipart +Requires: python3-pyyaml +Requires: python3-sparse +Requires: python3-sqlalchemy +Requires: python3-starlette +Requires: python3-tifffile +Requires: python3-toolz +Requires: python3-typer +Requires: python3-uvicorn[standard] +Requires: python3-watchgod +Requires: python3-xarray +Requires: python3-zstandard +Requires: python3-appdirs +Requires: python3-blosc +Requires: python3-click +Requires: python3-dask[array] +Requires: python3-dask[dataframe] +Requires: python3-entrypoints +Requires: python3-heapdict +Requires: python3-httpx +Requires: python3-jsonschema +Requires: python3-lz4 +Requires: python3-msgpack +Requires: python3-ndindex +Requires: python3-numpy +Requires: python3-pandas +Requires: python3-pyarrow +Requires: python3-pyyaml +Requires: python3-sparse +Requires: python3-typer +Requires: python3-xarray +Requires: python3-zstandard +Requires: python3-aiofiles +Requires: python3-aiosqlite +Requires: python3-alembic +Requires: python3-anyio +Requires: python3-appdirs +Requires: python3-blosc +Requires: python3-cachetools +Requires: python3-cachey +Requires: python3-click +Requires: python3-dask +Requires: python3-dask[array] +Requires: python3-dask[dataframe] +Requires: python3-entrypoints +Requires: python3-fastapi +Requires: python3-h5netcdf +Requires: python3-h5py +Requires: python3-heapdict +Requires: python3-httpx +Requires: python3-jinja2 +Requires: python3-jmespath +Requires: python3-jsonschema +Requires: python3-lz4 +Requires: python3-msgpack +Requires: python3-ndindex +Requires: python3-numpy +Requires: python3-openpyxl +Requires: python3-orjson +Requires: python3-packaging +Requires: python3-pandas +Requires: python3-pillow +Requires: python3-prometheus-client +Requires: python3-psutil +Requires: python3-pyarrow +Requires: python3-pydantic +Requires: python3-dateutil +Requires: python3-jose[cryptography] +Requires: python3-multipart +Requires: python3-pyyaml +Requires: python3-sparse +Requires: python3-sqlalchemy +Requires: python3-starlette +Requires: python3-tifffile +Requires: python3-toolz +Requires: python3-typer +Requires: python3-uvicorn[standard] +Requires: python3-watchgod +Requires: python3-xarray +Requires: python3-zstandard +Requires: python3-h5py +Requires: python3-h5netcdf +Requires: python3-openpyxl +Requires: python3-pillow +Requires: python3-tifffile +Requires: python3-appdirs +Requires: python3-click +Requires: python3-entrypoints +Requires: python3-heapdict +Requires: python3-httpx +Requires: python3-jsonschema +Requires: python3-msgpack +Requires: python3-pyyaml +Requires: python3-typer +Requires: python3-aiofiles +Requires: python3-aiosqlite +Requires: python3-alembic +Requires: python3-anyio +Requires: python3-appdirs +Requires: python3-cachey +Requires: python3-cachetools +Requires: python3-click +Requires: python3-dask +Requires: python3-fastapi +Requires: python3-httpx +Requires: python3-jinja2 +Requires: python3-jmespath +Requires: python3-jsonschema +Requires: python3-msgpack +Requires: python3-orjson +Requires: python3-packaging +Requires: python3-psutil +Requires: python3-prometheus-client +Requires: python3-pydantic +Requires: python3-dateutil +Requires: python3-jose[cryptography] +Requires: python3-multipart +Requires: python3-pyyaml +Requires: python3-sqlalchemy +Requires: python3-starlette +Requires: python3-toolz +Requires: python3-typer +Requires: python3-uvicorn[standard] +Requires: python3-watchgod +Requires: python3-aiofiles +Requires: python3-aiosqlite +Requires: python3-alembic +Requires: python3-anyio +Requires: python3-appdirs +Requires: python3-blosc +Requires: python3-cachetools +Requires: python3-cachey +Requires: python3-click +Requires: python3-dask +Requires: python3-dask[array] +Requires: python3-dask[dataframe] +Requires: python3-fastapi +Requires: python3-httpx +Requires: python3-jinja2 +Requires: python3-jmespath +Requires: python3-jsonschema +Requires: python3-lz4 +Requires: python3-msgpack +Requires: python3-ndindex +Requires: python3-numpy +Requires: python3-orjson +Requires: python3-packaging +Requires: python3-pandas +Requires: python3-prometheus-client +Requires: python3-psutil +Requires: python3-pyarrow +Requires: python3-pydantic +Requires: python3-dateutil +Requires: python3-jose[cryptography] +Requires: python3-multipart +Requires: python3-pyyaml +Requires: python3-sparse +Requires: python3-sqlalchemy +Requires: python3-starlette +Requires: python3-toolz +Requires: python3-typer +Requires: python3-uvicorn[standard] +Requires: python3-watchgod +Requires: python3-xarray +Requires: python3-zstandard + +%description +# Tiled + +*Disclaimer: This is very early work, still in the process of defining scope.* + +Tiled is a **data access** service for data-aware portals and data science tools. +Tiled has a Python client and integrates naturally with Python data science +libraries, but nothing about the service is Python-specific; it also works from +a web browser or any Internet-connected program. + +Tiled’s service can sit atop databases, filesystems, and/or remote +services to enable **search** and **structured, chunkwise access to data** in an +extensible variety of appropriate formats, providing data in a consistent +structure regardless of the format the data happens to be stored in at rest. The +natively-supported formats span slow but widespread interchange formats (e.g. +CSV, JSON) and fast, efficient ones (e.g. C buffers, Apache Arrow and Parquet). +Tiled enables slicing and sub-selection to read and transfer only the data of +interest, and it enables parallelized download of many chunks at once. Users can +access data with very light software dependencies and fast partial downloads. + +Tiled puts an emphasis on **structures** rather than formats, including: + +* N-dimensional strided arrays (i.e. numpy-like arrays) +* Sparse arrays +* Tabular data (e.g. pandas-like "dataframes") +* Hierarchical structures thereof (e.g. xarrays, HDF5-compatible structures like NeXus) + +Tiled implements extensible **access control enforcement** based on web security +standards, similar to JuptyerHub. Like Jupyter, Tiled can be used by a single +user or deployed as a shared public or private resource. Tiled can be configured +to use third party services for login, such as Google, ORCID. or any OIDC +or SAML authentication providers. + +Tiled facilitates **client-side caching** in a standard web browser or in +Tiled's Python client, making efficient use of bandwidth and enabling an offline +"airplane mode." It uses **service-side caching** of "hot" datasets and +resources to expedite both repeat requests (e.g. when several users are requesting +the same chunks of data) and distinct requests for different parts of the same +dataset (e.g. when the user is requesting various slices or columns from a +dataset). + +| Distribution | Where to get it | +| -------------- | ------------------------------------------------------------ | +| PyPI | `pip install tiled` | +| Conda | Coming Soon | +| Source code | [github.com/bluesky/tiled](https://github.com/bluesky/tiled) | +| Documentation | [blueskyproject.io/tiled](https://blueskyproject.io/tiled) | + +## Example + +In this example, we'll serve of a collection of data that is generated in +memory. Alternatively, it could be read on demand from a directory of files, +network resource, database, or some combination of these. + +``` +tiled serve demo +# equivalent to: +# tiled serve pyobject --public tiled.examples.generated:tree +``` + +And then access the data efficiently via the Python client, a web browser, or +any HTTP client. + +```python +>>> from tiled.client import from_uri + +>>> client = from_uri("http://localhost:8000") + +>>> client +<Node {'short_table', 'long_table', 'structured_data', ...} ~10 entries> + +>>> list(client) +'big_image', + 'small_image', + 'tiny_image', + 'tiny_cube', + 'tiny_hypercube', + 'low_entropy', + 'high_entropy', + 'short_table', + 'long_table', + 'labeled_data', + 'structured_data'] + +>>> client['medium_image'] +<ArrayClient> + +>>> client['medium_image'][:] +array([[0.49675483, 0.37832119, 0.59431287, ..., 0.16990737, 0.5396537 , + 0.61913812], + [0.97062498, 0.93776709, 0.81797714, ..., 0.96508877, 0.25208564, + 0.72982507], + [0.87173234, 0.83127946, 0.91758202, ..., 0.50487542, 0.03052536, + 0.9625512 ], + ..., + [0.01884645, 0.33107071, 0.60018523, ..., 0.02268164, 0.46955907, + 0.37842628], + [0.03405101, 0.77886243, 0.14856727, ..., 0.02484926, 0.03850398, + 0.39086524], + [0.16567224, 0.1347261 , 0.48809697, ..., 0.55021249, 0.42324589, + 0.31440635]]) + +>>> client['long_table'] +<DataFrameClient ['A', 'B', 'C']> + +>>> client['long_table'].read() + A B C +index +0 0.246920 0.493840 0.740759 +1 0.326005 0.652009 0.978014 +2 0.715418 1.430837 2.146255 +3 0.425147 0.850294 1.275441 +4 0.781036 1.562073 2.343109 +... ... ... ... +99995 0.515248 1.030495 1.545743 +99996 0.639188 1.278376 1.917564 +99997 0.269851 0.539702 0.809553 +99998 0.566848 1.133695 1.700543 +99999 0.101446 0.202892 0.304338 + +[100000 rows x 3 columns] + +>>> client['long_table'].read(['A', 'B']) + A B +index +0 0.748885 0.769644 +1 0.071319 0.364743 +2 0.322665 0.897854 +3 0.328785 0.810159 +4 0.158253 0.822505 +... ... ... +95 0.913758 0.488304 +96 0.969652 0.287850 +97 0.769774 0.941785 +98 0.350033 0.052412 +99 0.356245 0.683540 + +[100 rows x 2 columns] +``` + +Using an Internet browser or a command-line HTTP client like +[curl](https://curl.se/) or [httpie](https://httpie.io/) you can download the +data in whole or in efficiently-chunked parts in the format of your choice: + +``` +# Download tabular data as CSV +http://localhost:8000/api/v1/node/full/long_table?format=csv + +# or XLSX (Excel) +http://localhost:8000/api/v1/node/full/long_table?format=xslx + +# and subselect columns. +http://localhost:8000/api/v1/node/full/long_table?format=xslx&field=A&field=B + +# View or download (2D) array data as PNG +http://localhost:8000/api/v1/array/full/medium_image?format=png + +# and slice regions of interest. +http://localhost:8000/api/v1/array/full/medium_image?format=png&slice=:50,100:200 +``` + +Web-based data access usually involves downloading complete files, in the +manner of [Globus](https://www.globus.org/); or using modern chunk-based +storage formats, such as [TileDB](https://tiledb.com/) and +[Zarr](https://zarr.readthedocs.io/en/stable/) in local or cloud storage; or +using custom solutions tailored to a particular large dataset. Waiting for an +entire file to download when only the first frame of an image stack or a +certain column of a table are of interest is wasteful and can be prohibitive +for large longitudinal analyses. Yet, it is not always practical to transcode +the data into a chunk-friendly format or build a custom tile-based-access +solution. (Though if you can do either of those things, you should consider +them instead!) + + +%package -n python3-tiled +Summary: Tile-based access to SciPy/PyData data structures over the web in many formats +Provides: python-tiled +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-tiled +# Tiled + +*Disclaimer: This is very early work, still in the process of defining scope.* + +Tiled is a **data access** service for data-aware portals and data science tools. +Tiled has a Python client and integrates naturally with Python data science +libraries, but nothing about the service is Python-specific; it also works from +a web browser or any Internet-connected program. + +Tiled’s service can sit atop databases, filesystems, and/or remote +services to enable **search** and **structured, chunkwise access to data** in an +extensible variety of appropriate formats, providing data in a consistent +structure regardless of the format the data happens to be stored in at rest. The +natively-supported formats span slow but widespread interchange formats (e.g. +CSV, JSON) and fast, efficient ones (e.g. C buffers, Apache Arrow and Parquet). +Tiled enables slicing and sub-selection to read and transfer only the data of +interest, and it enables parallelized download of many chunks at once. Users can +access data with very light software dependencies and fast partial downloads. + +Tiled puts an emphasis on **structures** rather than formats, including: + +* N-dimensional strided arrays (i.e. numpy-like arrays) +* Sparse arrays +* Tabular data (e.g. pandas-like "dataframes") +* Hierarchical structures thereof (e.g. xarrays, HDF5-compatible structures like NeXus) + +Tiled implements extensible **access control enforcement** based on web security +standards, similar to JuptyerHub. Like Jupyter, Tiled can be used by a single +user or deployed as a shared public or private resource. Tiled can be configured +to use third party services for login, such as Google, ORCID. or any OIDC +or SAML authentication providers. + +Tiled facilitates **client-side caching** in a standard web browser or in +Tiled's Python client, making efficient use of bandwidth and enabling an offline +"airplane mode." It uses **service-side caching** of "hot" datasets and +resources to expedite both repeat requests (e.g. when several users are requesting +the same chunks of data) and distinct requests for different parts of the same +dataset (e.g. when the user is requesting various slices or columns from a +dataset). + +| Distribution | Where to get it | +| -------------- | ------------------------------------------------------------ | +| PyPI | `pip install tiled` | +| Conda | Coming Soon | +| Source code | [github.com/bluesky/tiled](https://github.com/bluesky/tiled) | +| Documentation | [blueskyproject.io/tiled](https://blueskyproject.io/tiled) | + +## Example + +In this example, we'll serve of a collection of data that is generated in +memory. Alternatively, it could be read on demand from a directory of files, +network resource, database, or some combination of these. + +``` +tiled serve demo +# equivalent to: +# tiled serve pyobject --public tiled.examples.generated:tree +``` + +And then access the data efficiently via the Python client, a web browser, or +any HTTP client. + +```python +>>> from tiled.client import from_uri + +>>> client = from_uri("http://localhost:8000") + +>>> client +<Node {'short_table', 'long_table', 'structured_data', ...} ~10 entries> + +>>> list(client) +'big_image', + 'small_image', + 'tiny_image', + 'tiny_cube', + 'tiny_hypercube', + 'low_entropy', + 'high_entropy', + 'short_table', + 'long_table', + 'labeled_data', + 'structured_data'] + +>>> client['medium_image'] +<ArrayClient> + +>>> client['medium_image'][:] +array([[0.49675483, 0.37832119, 0.59431287, ..., 0.16990737, 0.5396537 , + 0.61913812], + [0.97062498, 0.93776709, 0.81797714, ..., 0.96508877, 0.25208564, + 0.72982507], + [0.87173234, 0.83127946, 0.91758202, ..., 0.50487542, 0.03052536, + 0.9625512 ], + ..., + [0.01884645, 0.33107071, 0.60018523, ..., 0.02268164, 0.46955907, + 0.37842628], + [0.03405101, 0.77886243, 0.14856727, ..., 0.02484926, 0.03850398, + 0.39086524], + [0.16567224, 0.1347261 , 0.48809697, ..., 0.55021249, 0.42324589, + 0.31440635]]) + +>>> client['long_table'] +<DataFrameClient ['A', 'B', 'C']> + +>>> client['long_table'].read() + A B C +index +0 0.246920 0.493840 0.740759 +1 0.326005 0.652009 0.978014 +2 0.715418 1.430837 2.146255 +3 0.425147 0.850294 1.275441 +4 0.781036 1.562073 2.343109 +... ... ... ... +99995 0.515248 1.030495 1.545743 +99996 0.639188 1.278376 1.917564 +99997 0.269851 0.539702 0.809553 +99998 0.566848 1.133695 1.700543 +99999 0.101446 0.202892 0.304338 + +[100000 rows x 3 columns] + +>>> client['long_table'].read(['A', 'B']) + A B +index +0 0.748885 0.769644 +1 0.071319 0.364743 +2 0.322665 0.897854 +3 0.328785 0.810159 +4 0.158253 0.822505 +... ... ... +95 0.913758 0.488304 +96 0.969652 0.287850 +97 0.769774 0.941785 +98 0.350033 0.052412 +99 0.356245 0.683540 + +[100 rows x 2 columns] +``` + +Using an Internet browser or a command-line HTTP client like +[curl](https://curl.se/) or [httpie](https://httpie.io/) you can download the +data in whole or in efficiently-chunked parts in the format of your choice: + +``` +# Download tabular data as CSV +http://localhost:8000/api/v1/node/full/long_table?format=csv + +# or XLSX (Excel) +http://localhost:8000/api/v1/node/full/long_table?format=xslx + +# and subselect columns. +http://localhost:8000/api/v1/node/full/long_table?format=xslx&field=A&field=B + +# View or download (2D) array data as PNG +http://localhost:8000/api/v1/array/full/medium_image?format=png + +# and slice regions of interest. +http://localhost:8000/api/v1/array/full/medium_image?format=png&slice=:50,100:200 +``` + +Web-based data access usually involves downloading complete files, in the +manner of [Globus](https://www.globus.org/); or using modern chunk-based +storage formats, such as [TileDB](https://tiledb.com/) and +[Zarr](https://zarr.readthedocs.io/en/stable/) in local or cloud storage; or +using custom solutions tailored to a particular large dataset. Waiting for an +entire file to download when only the first frame of an image stack or a +certain column of a table are of interest is wasteful and can be prohibitive +for large longitudinal analyses. Yet, it is not always practical to transcode +the data into a chunk-friendly format or build a custom tile-based-access +solution. (Though if you can do either of those things, you should consider +them instead!) + + +%package help +Summary: Development documents and examples for tiled +Provides: python3-tiled-doc +%description help +# Tiled + +*Disclaimer: This is very early work, still in the process of defining scope.* + +Tiled is a **data access** service for data-aware portals and data science tools. +Tiled has a Python client and integrates naturally with Python data science +libraries, but nothing about the service is Python-specific; it also works from +a web browser or any Internet-connected program. + +Tiled’s service can sit atop databases, filesystems, and/or remote +services to enable **search** and **structured, chunkwise access to data** in an +extensible variety of appropriate formats, providing data in a consistent +structure regardless of the format the data happens to be stored in at rest. The +natively-supported formats span slow but widespread interchange formats (e.g. +CSV, JSON) and fast, efficient ones (e.g. C buffers, Apache Arrow and Parquet). +Tiled enables slicing and sub-selection to read and transfer only the data of +interest, and it enables parallelized download of many chunks at once. Users can +access data with very light software dependencies and fast partial downloads. + +Tiled puts an emphasis on **structures** rather than formats, including: + +* N-dimensional strided arrays (i.e. numpy-like arrays) +* Sparse arrays +* Tabular data (e.g. pandas-like "dataframes") +* Hierarchical structures thereof (e.g. xarrays, HDF5-compatible structures like NeXus) + +Tiled implements extensible **access control enforcement** based on web security +standards, similar to JuptyerHub. Like Jupyter, Tiled can be used by a single +user or deployed as a shared public or private resource. Tiled can be configured +to use third party services for login, such as Google, ORCID. or any OIDC +or SAML authentication providers. + +Tiled facilitates **client-side caching** in a standard web browser or in +Tiled's Python client, making efficient use of bandwidth and enabling an offline +"airplane mode." It uses **service-side caching** of "hot" datasets and +resources to expedite both repeat requests (e.g. when several users are requesting +the same chunks of data) and distinct requests for different parts of the same +dataset (e.g. when the user is requesting various slices or columns from a +dataset). + +| Distribution | Where to get it | +| -------------- | ------------------------------------------------------------ | +| PyPI | `pip install tiled` | +| Conda | Coming Soon | +| Source code | [github.com/bluesky/tiled](https://github.com/bluesky/tiled) | +| Documentation | [blueskyproject.io/tiled](https://blueskyproject.io/tiled) | + +## Example + +In this example, we'll serve of a collection of data that is generated in +memory. Alternatively, it could be read on demand from a directory of files, +network resource, database, or some combination of these. + +``` +tiled serve demo +# equivalent to: +# tiled serve pyobject --public tiled.examples.generated:tree +``` + +And then access the data efficiently via the Python client, a web browser, or +any HTTP client. + +```python +>>> from tiled.client import from_uri + +>>> client = from_uri("http://localhost:8000") + +>>> client +<Node {'short_table', 'long_table', 'structured_data', ...} ~10 entries> + +>>> list(client) +'big_image', + 'small_image', + 'tiny_image', + 'tiny_cube', + 'tiny_hypercube', + 'low_entropy', + 'high_entropy', + 'short_table', + 'long_table', + 'labeled_data', + 'structured_data'] + +>>> client['medium_image'] +<ArrayClient> + +>>> client['medium_image'][:] +array([[0.49675483, 0.37832119, 0.59431287, ..., 0.16990737, 0.5396537 , + 0.61913812], + [0.97062498, 0.93776709, 0.81797714, ..., 0.96508877, 0.25208564, + 0.72982507], + [0.87173234, 0.83127946, 0.91758202, ..., 0.50487542, 0.03052536, + 0.9625512 ], + ..., + [0.01884645, 0.33107071, 0.60018523, ..., 0.02268164, 0.46955907, + 0.37842628], + [0.03405101, 0.77886243, 0.14856727, ..., 0.02484926, 0.03850398, + 0.39086524], + [0.16567224, 0.1347261 , 0.48809697, ..., 0.55021249, 0.42324589, + 0.31440635]]) + +>>> client['long_table'] +<DataFrameClient ['A', 'B', 'C']> + +>>> client['long_table'].read() + A B C +index +0 0.246920 0.493840 0.740759 +1 0.326005 0.652009 0.978014 +2 0.715418 1.430837 2.146255 +3 0.425147 0.850294 1.275441 +4 0.781036 1.562073 2.343109 +... ... ... ... +99995 0.515248 1.030495 1.545743 +99996 0.639188 1.278376 1.917564 +99997 0.269851 0.539702 0.809553 +99998 0.566848 1.133695 1.700543 +99999 0.101446 0.202892 0.304338 + +[100000 rows x 3 columns] + +>>> client['long_table'].read(['A', 'B']) + A B +index +0 0.748885 0.769644 +1 0.071319 0.364743 +2 0.322665 0.897854 +3 0.328785 0.810159 +4 0.158253 0.822505 +... ... ... +95 0.913758 0.488304 +96 0.969652 0.287850 +97 0.769774 0.941785 +98 0.350033 0.052412 +99 0.356245 0.683540 + +[100 rows x 2 columns] +``` + +Using an Internet browser or a command-line HTTP client like +[curl](https://curl.se/) or [httpie](https://httpie.io/) you can download the +data in whole or in efficiently-chunked parts in the format of your choice: + +``` +# Download tabular data as CSV +http://localhost:8000/api/v1/node/full/long_table?format=csv + +# or XLSX (Excel) +http://localhost:8000/api/v1/node/full/long_table?format=xslx + +# and subselect columns. +http://localhost:8000/api/v1/node/full/long_table?format=xslx&field=A&field=B + +# View or download (2D) array data as PNG +http://localhost:8000/api/v1/array/full/medium_image?format=png + +# and slice regions of interest. +http://localhost:8000/api/v1/array/full/medium_image?format=png&slice=:50,100:200 +``` + +Web-based data access usually involves downloading complete files, in the +manner of [Globus](https://www.globus.org/); or using modern chunk-based +storage formats, such as [TileDB](https://tiledb.com/) and +[Zarr](https://zarr.readthedocs.io/en/stable/) in local or cloud storage; or +using custom solutions tailored to a particular large dataset. Waiting for an +entire file to download when only the first frame of an image stack or a +certain column of a table are of interest is wasteful and can be prohibitive +for large longitudinal analyses. Yet, it is not always practical to transcode +the data into a chunk-friendly format or build a custom tile-based-access +solution. (Though if you can do either of those things, you should consider +them instead!) + + +%prep +%autosetup -n tiled-0.1.0a91 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-tiled -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.0a91-1 +- Package Spec generated @@ -0,0 +1 @@ +d4535ae5e75843fe2e6075d7a927390f tiled-0.1.0a91.tar.gz |
