'Coerce many types to SubRipTime instance.
Supported types:
- str/unicode
- int/long
- datetime.time
- any iterable
- dict'

@classmethod
def coerce(cls, other):

    if isinstance(other, SubRipTime):
        return other
    if isinstance(other, basestring):
        return cls.from_string(other)
    if isinstance(other, int):
        return cls.from_ordinal(other)
    if isinstance(other, time):
        return cls.from_time(other)
    try:
        return cls(**other)
    except TypeError:
        return cls(*other)
