hermes.commands.harvest.cff
===========================

.. py:module:: hermes.commands.harvest.cff


Attributes
----------

.. autoapisummary::

   hermes.commands.harvest.cff._CFF_VERSION
   hermes.commands.harvest.cff._log


Classes
-------

.. autoapisummary::

   hermes.commands.harvest.cff.CffHarvestSettings
   hermes.commands.harvest.cff.CffHarvestPlugin


Module Contents
---------------

.. py:data:: _CFF_VERSION
   :value: '1.2.0'


.. py:data:: _log

.. py:class:: CffHarvestSettings(/, **data: Any)

   Bases: :py:obj:`pydantic.BaseModel`


   Custom settings for CFF harvester.


   .. py:attribute:: enable_validation
      :type:  bool
      :value: True



.. py:class:: CffHarvestPlugin

   Bases: :py:obj:`hermes.commands.harvest.base.HermesHarvestPlugin`


   Base plugin that does harvesting.

   TODO: describe the harvesting process and how this is mapped to this plugin.


   .. py:attribute:: settings_class


   .. py:method:: __call__(command: hermes.commands.harvest.base.HermesHarvestCommand) -> Tuple[Dict, Dict]

      Execute the plugin.

      :param command: The command that triggered this plugin to run.



   .. py:method:: _load_cff_from_file(cff_data: str) -> Any


   .. py:method:: _patch_author_emails(cff: dict, codemeta: dict) -> dict


   .. py:method:: _convert_cff_to_codemeta(cff_data: str) -> Any


   .. py:method:: _validate(cff_file: pathlib.Path, cff_dict: Dict) -> bool


   .. py:method:: _get_single_cff(path: pathlib.Path) -> Optional[pathlib.Path]


