# kmf files

## openKmf()

`canlib.kvmlib.``openKmf`(path, device_type=<Device.MHYDRA_EXT: 1>)

  Open a kmf file from disk

  Parameters: | path (`str`) – The filepath to the .KMF file (e.g. `"data/kmf/LOG00000.KMF"`). device_type (`canlib.kvmlib.Device`) – The type of the memorator that created the .KMF file(s) (defaults to `canlib.kvmlib.Device.MHYDRA_EXT`)
  Returns: | `Kmf`

  New in version 1.6.

## Kmf

class `canlib.kvmlib.``Kmf`(handle, ldf_version)

  A kmf file opened with `kvmlib.openKmf`

  The main use of this class is using its `log` attribute, which is a `MountedLog` object (see its documentation for how to use it).

  Also see the base class `kvmlib.KmfSystem` for inherited functionality.

  Variables: | log (`MountedLog`) – Object representing the log of log files within the kmf container-file.

  New in version 1.6.

## KmfSystem

class `canlib.kvmlib.``KmfSystem`(handle)

  The base class of `Kmf` and `Memorator`

  The `Kmf` and `Memorator` classes are very similar, they are different ways of reading log files (`LogFile`) created by a memorator. This class represents the common ground between all ways of accessing log files.

  All subclasses should have a `log` attribute which is an `UnmountedLog` or subclass thereof.

  This class automatically closes its internal handle when garbage collected.

  New in version 1.6.

  class `DiskUsage`(used, total)
    `total`

      Alias for field number 1

    `used`

      Alias for field number 0

  `close`()

    Close the internal handle

    Warning

    This invalidates the object.

  `disk_usage`

    The disk usage

    The tuple has one `used` and one `total` field (in that order), which reference disk space in megabytes.

    Type: | `KmfSystem.DiskUsage`