On Wed, Apr 14, 2021 at 5:44 PM Christopher Barker <pythonchb@gmail.com> wrote:
Another possible issue: using Version would require an extra import in many module initializations -- is that a performance issue that would matter?

I like having a `Version` object that is easily importable in the standard library.  I think it should relatively polymorphic.  I.e. it should accept a module or package as an argument, but also should accept a string or a tuple.  Maybe other objects from which one could reasonably extract a version.

In particular, I think initializing this object with a module object should at least look for a .__version__ attribute, and appropriately case either a string (that looks sufficiently version-like) or a tuple.  I think that if it doesn't succeed, it should become some sort of "cannot determine" object that is neither less than nor greater than any other Version object.  In particular, the Vaex example with a dictionary of versions of each component should probably just become this "cannot determine" value (but as an instance of Version).

--
The dead increasingly dominate and strangle both the living and the
not-yet born.  Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.