def add(self, attachments):
if attachments:<EOL><INDENT>if isinstance(attachments, (str, Path)):<EOL><INDENT>attachments = [attachments]<EOL><DEDENT>if isinstance(attachments, (list, tuple, set)):<EOL><INDENT>attachments_temp = [<EOL>self._attachment_constructor(attachment, parent=self)<EOL>for attachment in attachments]<EOL><DEDENT>elif isinstance(attachments,<EOL>dict) and self._cloud_data_key in attachments:<EOL><INDENT>attachments_temp = [self._attachment_constructor(<EOL>{self._cloud_data_key: attachment}, parent=self,<EOL>on_cloud=True)<EOL>for attachment in<EOL>attachments.get(self._cloud_data_key, [])]<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>')<EOL><DEDENT>self.__attachments.extend(attachments_temp)<EOL>self._update_parent_attachments()<EOL>self._track_changes()<EOL><DEDENT>
Add more attachments

        :param attachments: list of attachments
        :type attachments: list[str] or list[Path] or str or Path or dict