Skip to main content

NGP IRIS 👀

NGP IRIS, or just Iris, is a tool for interacting with a Hitachi Content Platform (HCP) using S3 in the boto3 package. NGP Iris is designed with two use cases in mind:

  • A simple, clear, real-time interaction with NGPr file management
  • Improving process flow for performing off-site data analysis by using automated transfer scripts

Both of these cases can be achieved as either a Python package or as a Command Line Interface (CLI).

Getting started

Prerequisites

Installation

Iris can be installed via PyPi by running the following:

pip install NGPIris

If you wish, you can also install NGP Iris with the following steps:

  1. Clone this repository
  2. Open a terminal in your local copy of the repository
  3. Run pip install . at the root of the repository. This will install Iris along with the required Python packages in your current Python environment

NGPr credentials

In order to use Iris, a JSON file containing your credentials for NGPr is required. The template of the JSON file can be found in credentials/credentials_template.json. Depending on your needs, you can either enter

  • only the credentials for the HCP
  • only for the HCI or both.

Do note that you can't leave some parts of either the HCP or HCI credentials empty:

{
  "hcp" : {
      "endpoint" : "some_endpoint",
      "username" : "",
      "password" : ""
  },
  "hci" : {
      "username" : "some_user",
      "password" : "some_password",
      "address" : "some_address",
      "auth_port" : "some_auth_port",
      "api_port" : "some_api_port"
  }
}

This will prompt Iris to complain about incomplete credentials (since the entries username and password in the hcp section are empty). Of course, the same error would occur if the reverse between the hcp and hci sections would be true.

Technical package documentation

A thorough package documentation can be found in the technical documentation pages. In order to compile the documentation, see here.

Basic usage

Iris can be used as a Python package or by using the command line. The following sections cover some examples of how Iris might be used as a package and how to use its various commands. However, we highly recommend checking out the tutorial containing more example use cases.

As a Python package

Connect to HCP

In order to connect to the HCP, we first need to create an HCPHandler object and mount it to some bucket:

from NGPIris import HCPHandler

hcp_h = HCPHandler("credentials.json")

hcp_h.mount_bucket("myBucket")

If you are unsure which buckets you are allowed to see, you can use hcp_h.list_buckets() in order to list all available buckets to you.

When you have successfully mounted a bucket, you can then do different operations in the bucket. Object names on the bucket can be listed by typing print(hcp_h.list_objects()).

Upload files
# Upload a single file to HCP
hcp_h.upload_file("myFile")

# Upload folder contents to HCP
hcp_h.upload_folder("myFiles/")
Download files
# Download a single object from HCP
hcp_h.download_file("myFile")

# Download folder contents from HCP
hcp_h.download_folder("myFiles/")

Connect to HCI

In order to connect to the HCI, we first need to create an HCIHandler object and request an authorization token:

from NGPIris import HCIHandler

hci_h = HCIHandler("credentials.json")

Note that the token is stored inside of the HCIHandler object called hci_h. We can now request a list of indexes that are available by typing print(hci_h.list_index_names()). We can also look up information about a certain index with print(hci_h.look_up_index("myIndex")). It is recommended to combine the use of the pretty print module pprint (or similar packages) and the json module for this output, as it is mostly unreadable otherwise:

from NGPIris import HCIHandler
from pprint import pprint

hci_h = HCIHandler("credentials.json")

pprint(
    json.dumps(
        hci_h.look_up_index("myIndex"),
        indent = 4
    )
)

Miscellaneous utilities (utils.py)

The utils module contains two functions: one for converting a string to base64 encoding and one for MD5 encoding.

As a command line tool

NGP Iris comes with two commands: iris and iris_generate_credentials_file. The latter command is used solely to generate the .json credentials file. The iris command is used for communicating with the HCP. This includes uploads to and downloads from the HCP. Running iris --help will yield more detailed information. Each sub-command has its own help message and is displayed by running iris [sub-command] --help after replacing [sub-command] with the command of interest.

Testing

Assuming that the repository has been cloned, do the following:

  1. Create a test config file based on test_conf_template.ini
  2. Run the following command:
pytest --config [test config file] tests/test_hcp.py -v -s

Update documentation

With force flag -f:

cd docs/
sphinx-apidoc ../NGPIris/ -o . -F -f

Without force flag

cd docs/
sphinx-apidoc ../NGPIris/ -o . -F

Compiling the documentation

cd docs/
make html

Metadata

Release files for NGPIris 5.6.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for NGPIris 5.6.9
File Size Uploaded Provenance Actions
ngpiris-5.6.9.tar.gz 374.5 kB Without provenance Details for ngpiris-5.6.9.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for NGPIris 5.6.9
File Interpreter ABI Platform Actions
ngpiris-5.6.9-py3-none-any.whl Python 3 none any Details for ngpiris-5.6.9-py3-none-any.whl

Total release size: 413.2 kB

Release files / ngpiris-5.6.9.tar.gz

Download URL ngpiris-5.6.9.tar.gz
Size 374.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9477c2d5a4606e5f2e726213d5edcef3074873c681ec241222ee1fda1746f99d
BLAKE2b-256 checksum
How to use checksums
667e1b4058d7ec0ac4954636be8534900044fd1718bb19fed4d01ee7873f828d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / ngpiris-5.6.9-py3-none-any.whl

Download URL ngpiris-5.6.9-py3-none-any.whl
Size 38.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f60de39c580e9c8c278895edb50f441c490069c5545802f9d5b246fbe1a1b9b
BLAKE2b-256 checksum
How to use checksums
f7baf2b3a20bcaa3777642e245fc83e34f6925d3270efbb04f95216f86e77d73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for NGPIris 5.6.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

5.6.9 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page