Open-like context managers for remote globus files.
glopen(filename, mode, endpoint):
Creates a temporary file
[On a read mode:] Transfers the remote file to the temporary file
Opens the temporary file with the given mode
Yields the open temporary file
Closes the temporary file
[On a write mode:] Transfers the temporary file to the remote file
Deletes the temporary file
glopen_many(filenames, mode, endpoint) takes a list of filenames and yeilds a list of open files. The remote copies are grouped into a single globus transfer, improving performance for small files.
Example
>>> from glopen import glopen
>>> with glopen("path/to/remote/file.anything", mode="r",
endpoint="globusid#endpoint") as f:
... lines = f.readlines()
>>> from glopen import glopen_many
>>> files = ["file1", "file2", "file3"]
>>> with glopen_many(files, mode="w", endpoint="globusid#endpoint") as fs:
... for f,d in zip(fs,d):
... f.write(d)
Install
glopen is on the Python Package Index (PyPI):
pip install glopen
It depends on globussh, a light-weight wrapper around the globus SSH interface. Your local machine must be a globus endpoint, so you can either run Globus connect personal or Globus connect server.
Configuration
glopen transfers files to and from a temporary directory on your local machine, so it needs to know the machine’s endpoint name and a directory that globus can access. You tell glopen the endpoint and temporary directory in a ~/.glopen config file:
{
"local_endpoint" : "<globusid>#<endpoint_name>",
"tempdir" : "/home/<username>/tmp"
}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file glopen-0.0.12.tar.gz.
File metadata
- Download URL: glopen-0.0.12.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf946d170b37cfd30d8afdf5ce8b202eab1b6e7cae16210e6957cb838d7579a0
|
|
| MD5 |
302b196abff7e6b981f0c35174726b9d
|
|
| BLAKE2b-256 |
c5f5a49806625bd9550ea21280021339a55c3c39d8ae5c494035602b48a8f08f
|