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"
}
Release files for glopen 0.0.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| glopen-0.0.12.tar.gz | 3.9 kB | Details |
Release files / glopen-0.0.12.tar.gz
| Download URL | glopen-0.0.12.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf946d170b37cfd30d8afdf5ce8b202eab1b6e7cae16210e6957cb838d7579a0
|
|
BLAKE2b-256 checksum How to use checksums |
c5f5a49806625bd9550ea21280021339a55c3c39d8ae5c494035602b48a8f08f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |