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:
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