src.imagedata.archives package

Submodules

src.imagedata.archives.abstractarchive module

Abstract class for archives.

Defines generic functions.

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

Bases: object

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.

plugin_type = 'archive'
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 src.imagedata.archives.abstractarchive.Member(filename, info=None, fh=None, local_file=None)[source]

Bases: object

Class definition for filehandle in imagedata archives.

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

Bases: Exception

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

Bases: Exception

src.imagedata.archives.filesystemarchive module

Read/Write local files

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

Bases: AbstractArchive, ABC

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.

authors = 'Erling Andersen'
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.

description = 'Read and write local files.'
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)

mimetypes = ['*']
name = 'filesystem'
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

url = 'www.helse-bergen.no'
use_query()[source]

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

version = '1.1.0'
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 src.imagedata.archives.filesystemarchive.NoSuchFile[source]

Bases: Exception

exception src.imagedata.archives.filesystemarchive.ReadOnlyError[source]

Bases: Exception

exception src.imagedata.archives.filesystemarchive.WriteOnFile[source]

Bases: Exception

src.imagedata.archives.zipfilearchive module

Read/Write files from a zipfile

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

Bases: FileIO

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 src.imagedata.archives.zipfilearchive.ZipfileArchive(transport=None, url=None, mode='r', read_directory_only=False, opts=None)[source]

Bases: AbstractArchive, ABC

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

authors = 'Erling Andersen'
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.

description = 'Read and write image files from a zipfile.'
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)

mimetypes = ['application/zip', 'application/x-zip-compressed']
name = 'zip'
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

url = 'www.helse-bergen.no'
use_query()[source]

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

version = '1.1.0'
writedata(filename, data)[source]

Write data to a named file in the archive.

Parameters
  • filename – named file in the archive

  • data – data to write

src.imagedata.archives.zipfilearchive.list_files(startpath)[source]

Module contents

This module provides plugins for various image archive formats.

Standard plugins provides support for filesystem, tar, tar.gz, tar.bz2, gzip, zip.

exception src.imagedata.archives.ArchivePluginNotFound[source]

Bases: Exception

exception src.imagedata.archives.FileAlreadyExistsError[source]

Bases: Exception

src.imagedata.archives.find_mimetype_plugin(mimetype, url, mode='r', opts=None)[source]

Return plugin for given file type.

src.imagedata.archives.find_plugin(pfind, url, mode='r', opts=None)[source]

Return plugin for given image archive type.