Local and Remote Path Utilities

Local and Remote Path Utilities#

immlib includes a number of functions that integrate with the cloudpathlib and the pathlib libraries in order to provide a single interface for managing paths. This is simplified to a large extent by the similarity between the libraries to begin with.

To obtain a path object—either a CloudPath or Path—the immlib.path function can be used.

import immlib as il

p = il.path(il.doc.__file__)
print(type(p), ': ', il.pathstr(p), sep='')

cp = il.path(
    's3://natural-scenes-dataset/nsddata/',
    no_sign_request=True)
print(type(cp), ': ', il.pathstr(cp), sep='')
<class 'pathlib.PosixPath'>: /home/runner/work/immlib/immlib/src/immlib/doc/__init__.py
<class 'cloudpathlib.s3.s3path.S3Path'>: s3://natural-scenes-dataset/nsddata/

immlib also provides an OSFPath type for accessing the Open Science Framework (osf.io). An OSF repository can be accessed using its 5-digit ID:

import immlib as il

p = il.path('osf://bw9ec/')
list(p.iterdir())
[OSFPath('osf://bw9ec/analyzePRF_HCP7TRET.zip'),
 OSFPath('osf://bw9ec/subjectrank.mat'),
 OSFPath('osf://bw9ec/prfresultsmgz.zip'),
 OSFPath('osf://bw9ec/apertures.zip'),
 OSFPath('osf://bw9ec/prfresults.mat'),
 OSFPath('osf://bw9ec/generateFigure8.m'),
 OSFPath('osf://bw9ec/atlasmgz.zip'),
 OSFPath('osf://bw9ec/samplestimulusmovieRETBAR.mov'),
 OSFPath('osf://bw9ec/atlas.mat'),
 OSFPath('osf://bw9ec/generateFigure7.m'),
 OSFPath('osf://bw9ec/rotatingsurfaces'),
 OSFPath('osf://bw9ec/Wiki images'),
 OSFPath('osf://bw9ec/analysis.m'),
 OSFPath('osf://bw9ec/behavior.mat'),
 OSFPath('osf://bw9ec/prfresultsnii.zip'),
 OSFPath('osf://bw9ec/analysis_ONOFF.m')]