def _uid_str(uid_list: str or [str] or Generator) -> str:
"""
Prepare list of uid for use in commands: delete/copy/move/seen
uid_list can be: str, list, tuple, set, fetch generator
"""
if not uid_list:
raise MailBox.MailBoxUidParamError('uid_list should not be empty')
if type(uid_list) is str:
uid_list = uid_list.split(',')
if inspect.isgenerator(uid_list):
uid_list = [msg.uid for msg in uid_list if msg.uid]
if type(uid_list) not in (list, tuple, set):
raise MailBox.MailBoxUidParamError('Wrong uid_list type: {}'.format(type(uid_list)))
for uid in uid_list:
if type(uid) is not str:
raise MailBox.MailBoxUidParamError('uid {} is not string'.format(str(uid)))
if not uid.strip().isdigit():
raise MailBox.MailBoxUidParamError('Wrong uid: {}'.format(uid))
return ','.join((i.strip() for i in uid_list))
评论列表
文章目录