This avoids a name collision with mypackage.__version__
(the string).
In addition, the single underscore shows it's a 'private' module
that has no special meaning to the Python interpreter.
By moving __version__ to __init__.py, it becomes an attribute of the
module. This is recommended in PEP 396 and a common practice in many
contemporary packages.
This enables the following:
>>> import mypackage
>>> print(mypackage.__version__)
'5.2.0'
Generate the __version__ string from the version tuple.
Having a tuple like this makes it easy for other packages to compare versions, e.g.:
if VERSION > (3,):
if VERSION < (1, 8):