:py:mod:`wfexs_backend.pushers.b2share_export`
==============================================

.. py:module:: wfexs_backend.pushers.b2share_export

.. autodoc2-docstring:: wfexs_backend.pushers.b2share_export
   :allowtitles:

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

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`B2SHAREPublisher <wfexs_backend.pushers.b2share_export.B2SHAREPublisher>`
     - .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`INTROSPECT_VALIDATOR_MAPPER <wfexs_backend.pushers.b2share_export.INTROSPECT_VALIDATOR_MAPPER>`
     - .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.INTROSPECT_VALIDATOR_MAPPER
          :summary:

API
~~~

.. py:data:: INTROSPECT_VALIDATOR_MAPPER
   :canonical: wfexs_backend.pushers.b2share_export.INTROSPECT_VALIDATOR_MAPPER
   :type: Mapping[str, Type[jsonschema.validators._Validator]]
   :value: None

   .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.INTROSPECT_VALIDATOR_MAPPER

.. py:class:: B2SHAREPublisher(refdir: pathlib.Path, setup_block: Optional[SecurityContextConfig] = None, default_licences: Sequence[LicenceDescription] = [], default_orcids: Sequence[ResolvedORCID] = [], default_preferred_id: Optional[str] = None)
   :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher

   Bases: :py:obj:`wfexs_backend.pushers.abstract_token_sandboxed_export.AbstractTokenSandboxedExportPlugin`

   .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher

   .. rubric:: Initialization

   .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__init__

   .. py:attribute:: PLUGIN_NAME
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.PLUGIN_NAME
      :type: ClassVar[SymbolicName]
      :value: 'cast(...)'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.PLUGIN_NAME

   .. py:attribute:: ENABLED
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.ENABLED
      :type: ClassVar[bool]
      :value: True

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.ENABLED

   .. py:attribute:: B2SHARE_API_PREFIX
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.B2SHARE_API_PREFIX
      :type: Final[str]
      :value: 'https://b2share.eudat.eu/api/'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.B2SHARE_API_PREFIX

   .. py:attribute:: SANDBOX_B2SHARE_API_PREFIX
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.SANDBOX_B2SHARE_API_PREFIX
      :type: Final[str]
      :value: 'https://trng-b2share.eudat.eu/api/'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.SANDBOX_B2SHARE_API_PREFIX

   .. py:attribute:: B2SHARE_DOI_PREFIX
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.B2SHARE_DOI_PREFIX
      :type: Final[str]
      :value: '10.23728/b2share.'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.B2SHARE_DOI_PREFIX

   .. py:attribute:: SANDBOX_B2SHARE_DOI_PREFIX
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.SANDBOX_B2SHARE_DOI_PREFIX
      :type: Final[str]
      :value: 'XXXX/b2share.'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.SANDBOX_B2SHARE_DOI_PREFIX

   .. py:attribute:: DEFAULT_B2SHARE_COMMUNITY
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.DEFAULT_B2SHARE_COMMUNITY
      :type: Final[str]
      :value: 'EUDAT'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.DEFAULT_B2SHARE_COMMUNITY

   .. py:attribute:: BANNED_SCHEMA_KEYS
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.BANNED_SCHEMA_KEYS
      :type: Final[Sequence[str]]
      :value: ['$future_doi', 'owners']

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.BANNED_SCHEMA_KEYS

   .. py:attribute:: BANNED_PATCH_OPS_KEYS
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.BANNED_PATCH_OPS_KEYS
      :type: Final[Sequence[str]]
      :value: None

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.BANNED_PATCH_OPS_KEYS

   .. py:attribute:: DEFAULT_DESCRIPTION_TYPE
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.DEFAULT_DESCRIPTION_TYPE
      :type: Final[str]
      :value: 'TechnicalInfo'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.DEFAULT_DESCRIPTION_TYPE

   .. py:method:: get_api_prefix() -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_api_prefix

   .. py:method:: get_community_metadata(community_id_or_name: Optional[str]) -> Optional[Mapping[str, Any]]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_community_metadata

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_community_metadata

   .. py:method:: _get_community_api_prefix(community_id: str) -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_api_prefix

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_api_prefix

   .. py:method:: _get_community_metadata(community_id: str) -> Mapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_metadata

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_metadata

   .. py:method:: __fetch_schema(schema_url: str) -> Tuple[str, Mapping[str, Any]]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__fetch_schema
      :staticmethod:

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__fetch_schema

   .. py:method:: _get_community_schema(community_id: str) -> Optional[Tuple[str, Mapping[str, Any], str, Optional[str]]]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_schema

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_community_schema

   .. py:method:: _get_entries_schema(community_id: str) -> Tuple[str, Mapping[str, Any], str]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_entries_schema

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_entries_schema

   .. py:method:: _validate_community_schema(community_id: str, community_specific_metadata: Mapping[str, Any]) -> Optional[str]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._validate_community_schema

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._validate_community_schema

   .. py:method:: _validate_entry_schema(community_id: str, entry_metadata: Mapping[str, Any]) -> None
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._validate_entry_schema

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._validate_entry_schema

   .. py:method:: _get_records_prefix() -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_records_prefix

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_records_prefix

   .. py:method:: _get_query_params(include_credentials: bool, **kwargs: str) -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_query_params

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_query_params

   .. py:method:: _create_draft_record(metadata: Optional[Mapping[str, Any]] = None, community_specific_metadata: Optional[Mapping[str, Any]] = None, base_id: Optional[str] = None, do_validate: bool = False, title: Optional[str] = None, description: Optional[str] = None, licences: Sequence[LicenceDescription] = [], resolved_orcids: Sequence[ResolvedORCID] = []) -> Mapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._create_draft_record

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._create_draft_record

   .. py:attribute:: INTERNAL_ID_PAT
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.INTERNAL_ID_PAT
      :type: Final[re.Pattern[str]]
      :value: 'compile(...)'

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.INTERNAL_ID_PAT

   .. py:method:: get_pid_metadata(pid: str) -> Optional[Mapping[str, Any]]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_pid_metadata

   .. py:method:: book_pid(preferred_id: Optional[str] = None, initially_required_metadata: Optional[Mapping[str, Any]] = None, initially_required_community_specific_metadata: Optional[Mapping[str, Any]] = None, title: Optional[str] = None, description: Optional[str] = None, licences: Sequence[LicenceDescription] = [], resolved_orcids: Sequence[ResolvedORCID] = []) -> Optional[DraftEntry]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.book_pid

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.book_pid

   .. py:property:: _customized_book_pid_error_string
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._customized_book_pid_error_string
      :type: str

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._customized_book_pid_error_string

   .. py:method:: discard_booked_pid(pid_or_draft: Union[str, DraftEntry]) -> bool
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.discard_booked_pid

   .. py:method:: get_file_bucket_prefix(draft_entry: wfexs_backend.pushers.DraftEntry) -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_file_bucket_prefix

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.get_file_bucket_prefix

   .. py:method:: _get_record_prefix_from_record(record: Mapping[str, Any]) -> str
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_record_prefix_from_record

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher._get_record_prefix_from_record

   .. py:method:: upload_file_to_draft(draft_entry: wfexs_backend.pushers.DraftEntry, filename: Union[str, IO[bytes]], remote_filename: Optional[str], content_size: Optional[int] = None) -> Mapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.upload_file_to_draft

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.upload_file_to_draft

   .. py:method:: __update_meta(draft_record_metadata: Mapping[str, Any], metadata: Mapping[str, Any]) -> MutableMapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__update_meta
      :staticmethod:

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__update_meta

   .. py:method:: __PatchOps(draft_record_metadata: Mapping[str, Any], metadata: Mapping[str, Any], prefix: str = '/') -> Sequence[Mapping[str, Any]]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__PatchOps
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.__PatchOps

   .. py:method:: update_record_metadata(draft_entry: wfexs_backend.pushers.DraftEntry, metadata: Optional[Mapping[str, Any]] = None, community_specific_metadata: Optional[Mapping[str, Any]] = None, title: Optional[str] = None, description: Optional[str] = None, licences: Sequence[LicenceDescription] = [], resolved_orcids: Sequence[ResolvedORCID] = [], do_validate: bool = False) -> Mapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.update_record_metadata

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.update_record_metadata

   .. py:method:: publish_draft_record(draft_entry: wfexs_backend.pushers.DraftEntry) -> Mapping[str, Any]
      :canonical: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.publish_draft_record

      .. autodoc2-docstring:: wfexs_backend.pushers.b2share_export.B2SHAREPublisher.publish_draft_record
