On Tue, 2017-05-23 at 21:39 +0900, Yuya Nishihara wrote: > On Mon, 22 May 2017 20:46:21 +0200, Boris Feld wrote: > > # HG changeset patch > > # User Boris Feld <boris.f...@octobus.net> > > # Date 1495188443 -7200 > > # Fri May 19 12:07:23 2017 +0200 > > # Node ID ba781657de9f2e5b735e8a207cdf0b858047190c > > # Parent c87db79b95079c3fd0032be7a25cd41567ed11cb > > # EXP-Topic develforcedate > > util: refactor util.parsedate to raises ValueError > > > > Split most of util.parsedate in util.rawparsedate and make it > > raises ValueError instead > > of error.Abort. > > > > The util.parsedate function is now just a shell function converting > > ValueError > > to error.Abort for existing users. > > > > I need to parse a date from config in a later patch and use > > util.rawparsedate > > with ui.configwith which expect a convert that raises ValueError. > > > > diff -r c87db79b95079c3fd0032be7a25cd41567ed11cb -r > > ba781657de9f2e5b735e8a207cdf0b858047190c mercurial/util.py > > --- a/mercurial/util.py Sat May 20 22:27:52 2017 -0700 > > +++ b/mercurial/util.py Fri May 19 12:07:23 2017 +0200 > > @@ -1924,6 +1924,9 @@ > > The date may be a "unixtime offset" string or in one of the > > specified > > formats. If the date already is a (unixtime, offset) tuple, it > > is returned. > > > > + This function calls rawparsedate and convert ValueError to > > Abort for > > + functions that needs higher level exception. > > + > > >>> parsedate(' today ') == parsedate(\ > > datetime.date.today().strftime(' > > %b %d')) > > True > > @@ -1938,6 +1941,20 @@ > > >>> tz == strtz > > True > > """ > > + try: > > + return rawparsedate(date, formats=formats, bias=bias) > > + except ValueError as exception: > > + raise Abort(str(exception)) > > + > > +def rawparsedate(date, formats=None, bias=None): > > + """parse a localized date/time and return a (unixtime, offset) > > tuple. > > + > > + The date may be a "unixtime offset" string or in one of the > > specified > > + formats. If the date already is a (unixtime, offset) tuple, it > > is returned. > > + > > + See docstring of parsedate for example. > > + Raise ValueError for invalid date value. > > Can you add a specific exception type instead? Embedding non-ascii > string in > ValueError can cause problems on Python 3.
I could but only if I made the new exception type inherits ValueError as ui.configwith only catch ValueError (or subclasses), will it cause problems if the new InvalidDateValue (example name) inherits ValueError ? _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel