@classmethod<EOL><INDENT>def from_parts(cls, year, month=None, day=None):<DEDENT>
<EOL>non_empty = itertools.takewhile(<EOL>bool, (str(part) if part else None for part in (year, month, day))<EOL>)<EOL>return cls.parse(u'<STR_LIT:->'.join(non_empty), yearfirst=True)<EOL>
Build a PartialDate from its parts.

        Unlike the standard constructor, the parts don't have to be `int` s but
        can be strings containing textual month information.

        Examples:
            >>> PartialDate.from_parts('1686', 'June', '30')
            PartialDate(year=1686, month=6, day=30)