napari.plugins.PackageMetadata

class napari.plugins.PackageMetadata(*, metadata_version: Literal['1.0', '1.1', '1.2', '2.0', '2.1', '2.2'] = '1.0', name: npe2.manifest._package_metadata.ConstrainedStrValue, version: str, dynamic: List[str] = None, platform: List[str] = None, supported_platform: List[str] = None, summary: str = None, description: str = None, description_content_type: str = None, keywords: str = None, home_page: str = None, download_url: str = None, author: str = None, author_email: str = None, maintainer: str = None, maintainer_email: str = None, license: str = None, classifier: List[str] = None, requires_dist: List[str] = None, requires_python: str = None, requires_external: List[str] = None, project_url: List[str] = None, provides_extra: List[str] = None, provides_dist: List[str] = None, obsoletes_dist: List[str] = None)[source]

Bases: pydantic.main.BaseModel

Pydantic model for standard python package metadata.

https://www.python.org/dev/peps/pep-0566/ https://packaging.python.org/specifications/core-metadata/

The importlib.metadata provides the metadata() function, but it returns a somewhat awkward email.message.Message object.

Methods

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy(*[, include, exclude, update, deep])

Duplicate a model, optionally choose which fields to include, exclude and change.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

for_package(name)

Get PackageMetadata from a package name.

from_dist_metadata(meta)

Accepts importlib.metadata.Distribution.metadata

from_orm(obj)

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate(value)

Attributes

metadata_version

name

version

dynamic

platform

supported_platform

summary

description

description_content_type

keywords

home_page

download_url

author

author_email

maintainer

maintainer_email

license

classifier

requires_dist

requires_python

requires_external

project_url

provides_extra

provides_dist

obsoletes_dist

Details

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, update: DictStrAny = None, deep: bool = False) Model

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns

new model instance

dict(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod for_package(name: str) npe2.manifest._package_metadata.PackageMetadata[source]

Get PackageMetadata from a package name.

classmethod from_dist_metadata(meta: email.message.Message) PackageMetadata[source]

Accepts importlib.metadata.Distribution.metadata

json(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod update_forward_refs(**localns: Any) None

Try to update ForwardRefs on fields based on this Model, globalns and localns.