Archives API Reference

Module imagedata.archives.abstractarchive

Abstract class for archives.

Defines generic functions.

class imagedata.archives.abstractarchive.AbstractArchive(name, description, authors, version, url, _mimetypes)[source]

Abstract base class definition for imagedata archive plugins. Plugins must be a subclass of AbstractPlugin and must define the attributes set in __init__() and the following methods:

__init__() method use_query() method getnames() method basename() method open() method getmembers() method to_localfile() method add_localfile() method writedata() method is_file() method

abstract add_localfile(local_file, filename)[source]

Add a local file to the archive.

Parameters
  • local_file – named local file

  • filename – filename in the archive

property authors

Plugin authors

Multi-line string naming the author(s) of the plugin.

abstract basename(filehandle)[source]

Basename of file.

Examples

if archive.basename(filehandle) == “DICOMDIR”:

Parameters

filehandle – reference to member object

Returns

str

Return type

Basename of file

abstract close()[source]

Close archive.

property description

Plugin description

Single line string describing the image format.

abstract getmembers(files=None)[source]

Get the members of the archive.

Parameters

files – List of filename matches.

Returns

The members of the archive as a list of Filehandles.

The list has the same order as the members of the archive.

abstract getnames(files=None)[source]

Get name list of the members.

Parameters

files – List or single str of filename matches.

Returns

The members as a list of their names.

It has the same order as the members of the archive.

abstract is_file(member)[source]

Determine whether the named file is a single file.

Parameters

member – file member.

Returns

whether member is a single file (bool)

property mimetypes

MIME types supported by this plugin.

List of strings.

property name

Plugin name

Single word string describing the image format. Typical names: dicom, nifti, itk.

abstract open(member, mode='rb')[source]

Open file.

Parameters
  • member – Handle to file.

  • mode – Open mode.

Returns

An IO object for the member.

abstract to_localfile(member)[source]

Access a member object through a local file.

Parameters

member – handle to member file.

Returns

filename to file guaranteed to be local.

property transport

Underlying transport plugin

property url

Plugin URL

URL string to the site of the plugin or the author(s).

abstract use_query()[source]

Does the plugin need the ?query part of the url?

property version

Plugin version

String giving the plugin version. Version scheme: 1.0.0

abstract writedata(filename, data)[source]

Write data to a named file in the archive.

Parameters
  • filename – named file in the archive

  • data – data to write

class imagedata.archives.abstractarchive.Member(filename, info=None, fh=None, local_file=None)[source]

Class definition for filehandle in imagedata archives.

exception imagedata.archives.abstractarchive.NoOtherInstance[source]
exception imagedata.archives.abstractarchive.WriteMultipleArchives[source]

Module imagedata.archives.filesystemarchive

Read/Write local files

class imagedata.archives.filesystemarchive.FilesystemArchive(transport=None, url=None, mode='r', read_directory_only=True, opts=None)[source]

Read/write local files.

Parameters
  • transport – a Transport instance

  • url (str) – URL to filesystem

  • mode (str) – filesystem access mode

  • read_directory_only (bool) – Whether url should refer to a directory.

  • opts (dict) – Options

Returns

FilesystemArchive instance

add_localfile(local_file, filename)[source]

Add a local file to the archive.

Parameters
  • local_file – named local file

  • filename – filename in the archive

Raises

imagedata.archives.FileAlreadyExistsError – When file already exists.

basename(filehandle)[source]

Basename of file.

Examples

if archive.basename(filehandle) == “DICOMDIR”:

Parameters

filehandle – reference to member object

Returns

str

Return type

Basename of file

close()[source]

Close function.

getmembers(files=None)[source]

Get the members of the archive.

Parameters

files – List of filename matches

Returns

The members of the archive as a list of member objects.

The list has the same order as the members in the archive.

Raises

FileNotFoundError – When no matching file is found.

getnames(files=None)[source]

Get name list of the members.

Parameters

files – List or single str of filename matches.

Returns

The members as a list of their names.

It has the same order as the members of the archive.

Raises

FileNotFoundError – when no matching file is found.

is_file(member)[source]

Determine whether the named file is a single file.

Parameters

member – file member

Returns

whether named file is a single file (bool)

open(member, mode='rb')[source]

Open file.

Parameters
  • member – Handle to file

  • mode – Open mode

Returns

An IO object for the member

to_localfile(member)[source]

Access a member object through a local file.

Parameters

member – handle to member file.

Returns

filename to file guaranteed to be local.

property transport

Underlying transport plugin

use_query()[source]

Does the plugin need the ?query part of the url?

writedata(filename, data)[source]

Write data to a named file in the archive.

Parameters
  • filename – named file in the archive

  • data – data to write

Raises
exception imagedata.archives.filesystemarchive.NoSuchFile[source]
exception imagedata.archives.filesystemarchive.ReadOnlyError[source]
exception imagedata.archives.filesystemarchive.WriteOnFile[source]

Module imagedata.archives.zipfilearchive

Read/Write files from a zipfile

class imagedata.archives.zipfilearchive.WriteFileIO(archive, member, local_file)[source]

Local object making sure the new file is written to zip archive before closing.

close()[source]

Close file, copy it to archive, then delete local file.

class imagedata.archives.zipfilearchive.ZipfileArchive(transport=None, url=None, mode='r', read_directory_only=False, opts=None)[source]

Read/write image files from a zipfile.

add_localfile(local_file, filename)[source]

Add a local file to the archive.

Parameters
  • local_file – named local file

  • filename – filename in the archive

basename(filehandle)[source]

Basename of file.

Examples

if archive.basename(filehandle) == “DICOMDIR”:

Parameters

filehandle – reference to member object

Returns

str

Return type

Basename of file

close()[source]

Close zip file.

getmembers(files=None)[source]

Get the members of the archive.

Parameters

files – List of filename matches

Returns

The members of the archive as a list of Filehandles.

The list same order as the members in the archive.

getnames(files=None)[source]

Get name list of the members.

Parameters

files – List or single str of filename matches

Returns

The members as a list of their names.

It has the same order as the members of the archive.

Raises

FileNotFoundError – When no matching file is found.

is_file(member)[source]

Determine whether the named file is a single file.

Parameters

member – file member

Returns

whether named file is a single file (bool)

open(member, mode='rb')[source]

Open file.

Extract the member object to local file space. This is necessary to allow the seek() operation on open files.

Parameters
  • member (Member) – Handle to file.

  • mode (str) – Open mode.

Returns

An IO object for the member.

Raises
  • FileNotFoundError – when file is not found.

  • PermissionError – When archive is read-only.

to_localfile(member)[source]

Access a member object through a local file.

Parameters

member – handle to member file.

Returns

filename to file guaranteed to be local.

Raises

FileNotFoundError – when file is not found.

property transport

Underlying transport plugin

use_query()[source]

Does the plugin need the ?query part of the url?

writedata(filename, data)[source]

Write data to a named file in the archive.

Parameters
  • filename – named file in the archive

  • data – data to write