colour_datasets.Community#

class colour_datasets.Community(data: Dict, configuration: Configuration | None = None)[source]#

Bases: Mapping

Define an object storing a Zenodo community data.

Parameters:
  • data (Dict) – Zenodo community data.

  • configuration (Configuration | None) – Colour - Datasets configuration.

Attributes

Methods

Examples

>>> community_data = json_open(
...     "https://zenodo.org/api/communities/colour-science-datasets"
... )
>>> records_data = json_open(community_data["links"]["records"])
>>> community = Community(
...     {
...         "community": community_data,
...         "records": records_data,
...     }
... )
>>> community["3245883"].title
'Camera Spectral Sensitivity Database - Jiang et al. (2013)'
property data: Dict#

Getter property for the Zenodo community data.

Returns:

Zenodo community data.

Return type:

dict

property configuration: Configuration#

Getter property for the Colour - Datasets configuration.

Returns:

Colour - Datasets configuration.

Return type:

colour_datasets.Configuration

property repository: str#

Getter property for the Zenodo community local repository.

Returns:

Zenodo community local repository.

Return type:

str

property records: Dict#

Getter property for the Zenodo community records.

Returns:

Zenodo community records.

Return type:

dict

static from_id(id_: str, configuration: Configuration | None = None, retries: int = 3) Community[source]#

colour_datasets.Community class factory that builds an instance using given Zenodo community id.

Parameters:
  • idZenodo community id.

  • configuration (Configuration | None) –

    configuration :

    Colour - Datasets configuration.

  • retries (int) – Number of retries in case where a networking error occurs.

  • id_ (str) –

Returns:

Zenodo community data.

Return type:

colour_datasets.Community

Examples

>>> community = Community.from_id("colour-science-datasets-tests")
>>> community["3245883"].title
'Camera Spectral Sensitivity Database - Jiang et al. (2013)'
synced() bool[source]#

Return whether the Zenodo community data is synced to the local repository.

Returns:

Whether the Zenodo community data is synced to the local repository.

Return type:

bool

Examples

>>> from colour_datasets.utilities import suppress_stdout
>>> community = Community.from_id("colour-science-datasets-tests")
>>> with suppress_stdout():
...     community.pull()  
>>> community.synced()  
True
>>> community.remove()
>>> community.synced()
False
pull(use_urls_txt_file: bool = True, retries: int = 3)[source]#

Pull the Zenodo community data to the local repository.

Parameters:
  • use_urls_txt_file (bool) – Whether to use the urls.txt file: if such a file is present in a Zenodo record data, the urls it defines take precedence over the record data files. The later will be used in the eventuality where the urls are not available.

  • retries (int) – Number of retries in case where a networking error occurs or the MD5 hash is not matching.

Examples

>>> from colour_datasets.utilities import suppress_stdout
>>> community = Community.from_id("colour-science-datasets-tests")
>>> community.remove()
>>> with suppress_stdout():
...     community.pull()  
>>> community.synced()  
True
remove()[source]#

Remove the Zenodo community data local repository.

Examples

>>> from colour_datasets.utilities import suppress_stdout
>>> community = Community.from_id("colour-science-datasets-tests")
>>> with suppress_stdout():
...     community.pull()  
>>> community.remove()
>>> community.synced()
False