data.DataDescription

moderngl_window.meta.data.DataDescription[source]

Describes data file to load.

This is a generic resource description type for loading resources that are not textures, programs and scenes. That loaded class is used depends on the kind or the file extension.

Currently used to load:

  • text files

  • json files

  • binary files

# Describe a text file. Text loader is used based on file extension
DataDescription(path='data/text.txt')

# Describe a json file. Json loader is used based on file extension
DataDescription(path='data/data.json')

# Describe a binary file. Specify a binary loader should be used.
DataDescription(path='data/data.bin', kind='binary')

Methods

DataDescription.__init__(path=None, kind=None, **kwargs)[source]

Initialize the resource description.

Keyword Arguments:
  • path (str) – Relative path to the resource

  • kind (str) – The resource kind deciding loader class

  • **kwargs – Additional custom attributes

Attributes

DataDescription.path

The path to a resource when a single file is specified

Type:

str

DataDescription.resolved_path

The resolved path by a finder.

The absolute path to the resource can optionally be assigned by a loader class.

Type:

pathlib.Path

DataDescription.attrs

All keywords arguments passed to the resource

Type:

dict

DataDescription.label

optional name for the resource

Assigning a label is not mandatory but can help when aliasing resources. Some prefer to preload all needed resources and fetch them later by the label. This can he a lot less chaotic in larger applications.

Type:

str

DataDescription.kind

default resource kind.

The resource kind is directly matched with the kind in loader classes.

This property also supports assignment and is useful if the kind is detected based in the the attribute values.

description.kind = 'something'
Type:

str

DataDescription.loader_cls

The loader class for this resource.

This property is assigned to during the loading stage were a loader class is assigned based on the kind.

Type:

Type

DataDescription.default_kind = None

The default kind for this resource type

Type:

str

DataDescription.resource_type = 'data'

A unique identifier for the resource type

Type:

str