Manifest#

class project_composer.manifest.base.BaseConfig(*args, **kwargs)[source]#

Bases: object

Configuration class abstract.

_FIELDS#

Required list of enabled configuration fields.

Type:

list

classmethod validate_attributes(**kwargs)[source]#

Validate given data against field descriptions.

Although it’s a classmethod, it is safe to call it as an instance method.

Parameters:

**kwargs – Fields datas.

install_attributes(**kwargs)[source]#

Install defined field as object attributes with given possible values from kwargs.

BaseConfig.validate_attributes() must be runned before to ensure field values are valid.

Parameters:

**kwargs – Keyword arguments for field values to set as object attribute value.

classmethod get_fields()[source]#

Return model field definitions.

Parameters:

cls (class or object) – Config class or object.

Returns:

Lists every defined field object.

Return type:

list

classmethod get_fieldnames()[source]#

Return model field names.

Parameters:

cls (class or object) – Config class or object.

Returns:

Lists every defined field name.

Return type:

list

classmethod get_fieldtypes()[source]#

Return model field types.

Parameters:

cls (class or object) – Config class or object.

Returns:

List every defined field type name.

Return type:

list

to_dict()[source]#

Dump manifest values as Python dictionnary.

Recursively walk in to_dict method of item that are a children of BaseConfig.

Returns:

Dictionnary of all field values, including the “requirements” ones.

Return type:

dict

class project_composer.manifest.base.BasePluginConfig(*args, **kwargs)[source]#

Bases: BaseConfig

Plugin configuration abstract.

class project_composer.manifest.fields.BaseField(name, default=None, required=False, plugin=None)[source]#

Bases: object

Field class abstract.

Parameters:

name (string) – The field name.

Keyword Arguments:
  • default (object) – Default value when field is empty.

  • required (boolean) – True if the field is required to be set.

  • plugin (BasePluginConfig) – The plugin object where to store plugin fields.

_DEFAULT_VALUE#

Default value to use when no one is explicitely given from arguments. It must fit to the field type. By default this is None.

Type:

object

TYPE#

alias of object

get_default(default=None)[source]#

Return default value.

Keyword Arguments:

default (object) – Default value according to the field type.

Returns:

Either default value given as argument if any, else the default

field type value.

Return type:

object

fieldtype()[source]#

Return the Class name that is used as the field type.

class project_composer.manifest.fields.CharField(name, default=None, required=False, plugin=None)[source]#

Bases: BaseField

For simple string value.

TYPE#

alias of str

class project_composer.manifest.fields.ListField(name, default=None, required=False, plugin=None)[source]#

Bases: BaseField

For a list value.

TYPE#

alias of list

class project_composer.manifest.fields.BooleanField(name, default=None, required=False, plugin=None)[source]#

Bases: BaseField

For a boolean value.

TYPE#

alias of bool

class project_composer.manifest.fields.PluginField(*args, plugin, **kwargs)[source]#

Bases: BaseField

For a plugin value.

A plugin is a special field that include sub configuration object.

TYPE#

alias of dict

class project_composer.manifest.plugins.RequirementsConfig(*args, **kwargs)[source]#

Bases: BasePluginConfig

Requirements file plugin.

class project_composer.manifest.manifesto.Manifest(*args, **kwargs)[source]#

Bases: BaseConfig

The manifest model.

Manifest fields are given as keyword arguments.

Fields are:

name (string)

The manifest title name.

collection (list)

A list of application module names for enabled application.

repository (string)

A Python path where to search for enabled application modules.

syspaths (list)

A list of Path object to load in sys.path by Composer.

requirements (dict)

A dictionnary of items to load in RequirementsConfig for specific requirements composer. In fact this is used by TextContentComposer but requirements is actually its unique implementation.

name#

The manifest title name.

Type:

string

collection#

A list of application module names for enabled application.

Type:

list

requirements#

Requirements specific options. Either as RequirementsConfig object or a dict of values respecting the RequirementsConfig attributes.

Type:

dict or RequirementsConfig

classmethod load(source)[source]#

Loading a manifest source.

Parameters:
  • cls (class) – Manifest class.

  • source (string or pathlib.Path or dict or Manifest) –

    The Manifest source to load. It can be either:

    • A Manifest object, it will just be returned as it without any validation, you are responsible of its correctness;

    • A string for the file path to load in JSON or TOML format;

    • A Path object to the file to load in JSON or TOML format;

    • A Dictionnary which respect the manifest structure;

    Source file format are guessed from their file extension such as JSON for .json or TOML for .toml.

Returns:

A Manifest model instance.

Return type:

Manifest