• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created almost 9 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

h5py distributed - Python client library for HDF Rest API

h5pyd

https://travis-ci.org/HDFGroup/h5pyd.svg?branch=master

Python client library for HDF5 REST interface

Introduction

This repository contains library, test, and examples of h5pyd - a Python package for the HDF REST interface.

The library is provides a high-level interface to the REST specification that is generally easier to use than invoking http calls directly.

The package is based on the popular h5py package and aims to be source compatible with the h5py high level interface.

Websites

Installing

Via pip:

pip install h5pyd

From a release tarball or Git checkout:

python setup.py install

By default the examples look for a local instance of HSDS. See the https://github.com/HDFGroup/hsds for instructions on installing and running HSDS.

These tests are also to designed to work with HSDS (see https://github.com/HDFGroup/hsds). Install HSDS locally, or set environment variables (see next section) to point to an existing HSDS instance.

h5pyd can all be run in serverless mode with either AWS Lambda or direct mode (storage system accessed directly).

To use with AWS Lambda, set the HS_ENDPOINT to: "http+lambda://hslambda" where "hslambda" is the name of the lambda function. When using AWS Lambda some additional environment variables need to be set:

  • AWS_LAMBDA_GATEWAY - AWS Lambda endpoint, e.g.: https://lambda.us-west-2.amazonaws.com
  • AWS_REGION - Region where the Lambda function is installed, e.g.: us-west-2
  • AWS_SECRET_ACCESS_KEY - Your AWS secret access AWS_SECRET_ACCESS_KEY
  • AWS_ACCESS_KEY_ID - Your AWS access key ID

To use in direct mode, set the HS_ENDPOINT to "local". For direct mode, some additional environment variables are needed to be defined:

  • BUCKET_NAME - name of the S3 Bucket, Azure Container, or Posix top level folder

To use "local" mode with S3, define these variables:

  • AWS_S3_GATEWAY - AWS S3 endpoint, e.g.: https://s3.us-west-2.amazonaws.com
  • AWS_REGION - Region where the Lambda function is installed, e.g.: us-west-2
  • AWS_SECRET_ACCESS_KEY - Your AWS secret access AWS_SECRET_ACCESS_KEY
  • AWS_ACCESS_KEY_ID - Your AWS access key ID

To use "local" mode with Azure, defined these variables:

  • AZURE_CONNECTION_STRING - The connection string for your Azure storage account

To use "local" with Posix storage, define these variables:

  • ROOT_DIR - The top level directory used for storage (i.e. the parent directory of "buckets")

H5PYD Command Line Apps

Serveral utility applications are included with this package:

  • hsconfigure - save endpoint, username, and password in config files
  • hsacl - read/update ACL (access control list) for a given folder or domain
  • hscopy - copy a domain
  • hsrm - delete a domain or folder
  • hsdiff - compare HDF5 file with HSDS domain
  • hsget - create an HDF5 file from HSDS domain
  • hsinfo - get server status or domain details
  • hsload - upload an HDF5 file to an HSDS domain
  • hsls - list contents of domain or folder
  • hsmv - change the naame of a domain
  • hstouch - create new domain or folder

Use the --help option to get usage information for each command.

Testing

Setup the following environment variables that inform h5pyd which endpoint and username to use:

  • HS_ENDPOINT - "http://127.0.0.1:5000" for HSDS installed locally or appropriate remote endpoint
  • HS_USERNAME - "test_user1" or your preferred username
  • HS_PASSWORD - password for above username - "test" for test_user1 with local HSDS install
  • TEST2_USERNAME - "test_user2" or your preffered username
  • TEST2_PASSWORD - password for above username - "test" for test_user2 with local HSDS install
  • H5PYD_TEST_FOLDER - server folder that will be used for generated files. Example: "/home/test_user1/h5pyd_test/". Use hstouch command to create the folder before running the test, e.g.: $ hstouch /home/test_user1/h5pyd_test/

Run: $python testall.py to execute the test suite.

Uninstalling

Just remove the install directory and all contents to uninstall.

Reporting bugs (and general feedback)

Create new issues at http://github.com/HDFGroup/h5pyd/issues for any problems you find.

For general questions/feedback, please use the HSDS forum (https://forum.hdfgroup.org/c/hsds).

More Repositories

1

hdf5

Official HDF5® Library Repository
C
598
star
2

h5serv

Reference service implementation of the HDF5 REST API
Python
168
star
3

hdf-compass

Python-based viewer for HDF5 on other file formats
Python
130
star
4

hsds

Cloud-native, service based access to HDF data
Python
119
star
5

HDF.PInvoke

Raw HDF5 Power for .NET
C#
81
star
6

hdf5-json

Specification and tools for representing HDF5 in JSON
Python
73
star
7

hdfview

Java
58
star
8

hdf5-cffi

Common Lisp bindings for the HDF5 library using CFFI
Common Lisp
36
star
9

hermes

Extending the HDF5 library to support intelligent I/O buffering for deep memory and storage hierarchy systems
C++
34
star
10

vol-async

Asynchronous I/O for HDF5
C
19
star
11

build_hdf5

Scripts for building HDF5 for various platforms and compilers
Shell
16
star
12

hdf-docker

Dockerfiles for HDF related containers
Dockerfile
16
star
13

vol-cache

HDF5 Cache VOL connector for caching data on fast storage layers and moving data asynchronously to the parallel file system to hide I/O overhead.
C
16
star
14

hdf4

Official HDF4 Library Repository
C
14
star
15

hdf-rest-api

Python
12
star
16

hdf5-iotest

HDF5 Performance Analysis Checklist
Jupyter Notebook
12
star
17

hdf5_plugins

CMake
11
star
18

h5ld

Python reader for Linked Data in HDF5 files
Python
11
star
19

PyHexad

A PyXLL-based Excel add-in for HDF5
Python
9
star
20

datacontainer

Data Container Study
Shell
8
star
21

hsds_examples

Jupyter Notebook
8
star
22

psh5x

A Windows PowerShell HDF5 Extension
C++
6
star
23

HDF.PInvoke.1.10

HDF.PInvoke for .NET Standard
C#
6
star
24

hdf5-tutorial

A tutorial for new and intermediate HDF5 users (of all ages)
Jupyter Notebook
6
star
25

hdflab_examples

Python Notebook examples for HDFLab
Jupyter Notebook
6
star
26

emacs

Supporting HDF5 in the world's most powerful productivity environment
YASnippet
5
star
27

vol-rest

HDF5 REST VOL Connector
C
5
star
28

hcl

Hermes Container Library
C++
5
star
29

vol-daos

HDF5 VOL connector for DAOS
C
5
star
30

hdf5-poker

Everything you've ever wanted to know about the HDF5 file format (but didn't dare ask).
5
star
31

hdf5-examples

C
4
star
32

dynamic-dns

A dynamic DNS server for mapping files to DNS entries
Python
4
star
33

Tutorial

C
4
star
34

vol-tests

C
4
star
35

hdfcloud_workshop

Jupyter Notebook
3
star
36

hdf5-api-ref

HDF5: API Specification Reference Manual
Python
3
star
37

blog

A repository for material related to postings on the HDF Blog (http://blog.hdfgroup.org/)
Python
3
star
38

Recorder

A Multi-Level Library for Understanding I/O Activity in HPC Applications
C
3
star
39

vol-log-based

Log VOL - an HDF5 VOL connector for storing data in a time-log layout in files
C++
3
star
40

hdf5-spark-connector

HDF5 Connector for Apache Spark
Scala
3
star
41

tar2h5

Convert Tape ARchives to HDF5 files
C
2
star
42

nasa_cloud

Python
2
star
43

alcove

Everything that you have always wanted to know about the HDF5 file format, but were ashamed to ask.
Jupyter Notebook
2
star
44

hdf5doc

HTML
2
star
45

hsds-bucket-loader

Python
2
star
46

cve_hdf5

For testing CVE issues filed against the HDF5 library
Shell
2
star
47

armed-hdf5

HDF5 on ARM architectures
1
star
48

hdf5vfd4hdfs-demo

A demonstration of the HDF5 Virtual File Driver for HDFS
HTML
1
star
49

Replayer

Automatic Generation of I/O Trace Generators for HPC Applications
C++
1
star
50

aiohstools

Async tools for HDF Server
Python
1
star
51

hdf-spack

Python
1
star