%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 >>> 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'] >>> 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'] >>> 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 >>> 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'] >>> 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'] >>> 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 >>> 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'] >>> 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'] >>> 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 * Tue May 30 2023 Python_Bot - 0.1.0a91-1 - Package Spec generated