# macRes: Tools for reading Mac resource forks

## Overview:

Classic Mac OS files are made up of two parts - the “data fork” which contains the file contents proper, and the “resource fork” which contains a number of structured data items called “resources”. Some fonts, such as Mac “font suitcases” and Type 1 LWFN fonts, still use the resource fork for this kind of structured data, and so to read them, fontTools needs to have access to resource forks.

The Inside Macintosh volume More Macintosh Toolbox explains the structure of resource and data forks.

exception fontTools.misc.macRes.ResourceError

  Bases: `Exception`

class fontTools.misc.macRes.ResourceReader(fileOrPath)

  Bases: `MutableMapping`

  Reader for Mac OS resource forks.

  Parses a resource fork and returns resources according to their type. If run on OS X, this will open the resource fork in the filesystem. Otherwise, it will open the file itself and attempt to read it as though it were a resource fork.

  The returned object can be indexed by type and iterated over, returning in each case a list of py:class:Resource objects representing all the resources of a certain type.

  static openResourceFork(path)
  static openDataFork(path)
  keys()
  property types

    A list of the types of resources in the resource fork.

  countResources(resType)

    Return the number of resources of a given type.

  getIndices(resType)

    Returns a list of indices of resources of a given type.

  getNames(resType)

    Return list of names of all resources of a given type.

  getIndResource(resType, index)

    Return resource of given type located at an index ranging from 1 to the number of resources for that type, or None if not found.

  getNamedResource(resType, name)

    Return the named resource of given type, else return None.

  close()

class fontTools.misc.macRes.Resource(resType=None, resData=None, resID=None, resName=None, resAttr=None)

  Bases: `object`

  Represents a resource stored within a resource fork.

  type

    resource type.

  data

    resource data.

  id

    ID.

  name

    resource name.

  attr

    attributes.

  decompile(refData, reader)