[Twisted-Python] Re: [Twisted-commits] r22428 - Deprecation API for functions and methods.
glyph at divmod.com
glyph at divmod.com
Thu Jan 31 11:11:10 EST 2008
On 02:45 pm, exarkun at divmod.com wrote:
>What's the right way to get a string describing a Version now? It's an
>harder decision to make than it was before. Is it:
> * str(Version(...))
> * repr(Version(...))
> * Version(...).base()
> * Version(...).short()
> * getVersionString(Version(...))
>Can we do something to make this better?
This collection is super ad-hoc. Let me try to express some of the
requirements that lead to the current confusion:
* Sometimes you want a string that is formatted for use at a REPL,
which can be eval'd to give the user the idea that it is a structured
object and how they can build something similar (repr())
* sometimes you want something that's human-readable and expresses all
the information available about the version (str()). The square
brackets probably come from the fact that I was playing WoW at the time,
and square brackets meant "this is a thing, not just something a guy
said". I was thinking you'd want to see like [Twisted Epic Spaulders of
the Owl] for the version number. (Maybe a bad call.)
* Sometimes you want just the version number in canonical format
(x.y.z+dev) not the name of the package (.short())
* I hypothesize that sometimes you want to omit the +dev part because
you're trying to fit into a stricter format, but I don't really remember
why .base() exists.
Was getVersionString added because the other string representations
weren't "friendly" enough? I guess the 'rUnknown' makes them look a
little gnarly, but I'd actually like to see the SVN revision in the
cases where it's present; the right thing to do to make it friendly
would be to fix the entries-file parser.
Also, in any case, it should really be a method. There's no reason to
have a free function defined right after a class whose only argument is
a single instance of that class :).
More information about the Twisted-Python