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
- Python 3.14
- Python dependencies can be found in pyproject.toml
- NGPr credentials (see "NGPr credentials")
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:
- Clone this repository
- Open a terminal in your local copy of the repository
- 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:
- Create a test config file based on
test_conf_template.ini - 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.