Source code for icalendar.tools

from datetime import datetime
from icalendar.parser_tools import to_unicode
from icalendar.prop import vDatetime
from icalendar.prop import vText
from string import ascii_letters
from string import digits

import random


[docs] class UIDGenerator: """If you are too lazy to create real uid's. """ chars = list(ascii_letters + digits)
[docs] @staticmethod def rnd_string(length=16): """Generates a string with random characters of length. """ return ''.join([random.choice(UIDGenerator.chars) for _ in range(length)])
[docs] @staticmethod def uid(host_name='example.com', unique=''): """Generates a unique id consisting of: datetime-uniquevalue@host. Like: 20050105T225746Z-HKtJMqUgdO0jDUwm@example.com """ host_name = to_unicode(host_name) unique = unique or UIDGenerator.rnd_string() today = to_unicode(vDatetime(datetime.today()).to_ical()) return vText(f'{today}-{unique}@{host_name}')
__all__ = ["UIDGenerator"]