Move canonical library version to __init__.py.

pull/220/head
David Wilson 7 years ago
parent 6fb3a76e68
commit 1fc7df5be5

@ -17,6 +17,7 @@ mitogen Package
.. automodule:: mitogen .. automodule:: mitogen
.. autodata:: mitogen.__version__
.. autodata:: mitogen.is_master .. autodata:: mitogen.is_master
.. autodata:: mitogen.context_id .. autodata:: mitogen.context_id
.. autodata:: mitogen.parent_id .. autodata:: mitogen.parent_id

@ -1,6 +1,17 @@
import os
import sys import sys
sys.path.append('..') sys.path.append('..')
def grep_version():
path = os.path.join(os.path.dirname(__file__), '../mitogen/__init__.py')
with open(path) as fp:
for line in fp:
if line.startswith('__version__'):
_, _, s = line.partition('=')
return '.'.join(map(str, eval(s)))
author = u'David Wilson' author = u'David Wilson'
copyright = u'2016, David Wilson' copyright = u'2016, David Wilson'
exclude_patterns = ['_build'] exclude_patterns = ['_build']
@ -20,8 +31,8 @@ language = None
master_doc = 'toc' master_doc = 'toc'
project = u'Mitogen' project = u'Mitogen'
pygments_style = 'sphinx' pygments_style = 'sphinx'
release = u'master' release = grep_version()
source_suffix = '.rst' source_suffix = '.rst'
templates_path = ['_templates'] templates_path = ['_templates']
todo_include_todos = False todo_include_todos = False
version = u'master' version = grep_version()

@ -31,6 +31,11 @@ On the Mitogen master, this is imported from ``mitogen/__init__.py`` as would
be expected. On the slave, it is built dynamically during startup. be expected. On the slave, it is built dynamically during startup.
""" """
#: Library version as a tuple.
__version__ = (0, 0, 2)
#: This is ``False`` in slave contexts. It is used in single-file Python #: This is ``False`` in slave contexts. It is used in single-file Python
#: programs to avoid reexecuting the program's :py:func:`main` function in the #: programs to avoid reexecuting the program's :py:func:`main` function in the
#: slave. For example: #: slave. For example:

@ -1586,7 +1586,8 @@ class ExternalContext(object):
sys.modules['mitogen.core'] = mitogen.core sys.modules['mitogen.core'] = mitogen.core
del sys.modules['__main__'] del sys.modules['__main__']
def _setup_globals(self, context_id, parent_ids): def _setup_globals(self, version, context_id, parent_ids):
mitogen.__version__ = version
mitogen.is_master = False mitogen.is_master = False
mitogen.context_id = context_id mitogen.context_id = context_id
mitogen.parent_ids = parent_ids mitogen.parent_ids = parent_ids
@ -1646,7 +1647,7 @@ class ExternalContext(object):
self.dispatch_stopped = True self.dispatch_stopped = True
def main(self, parent_ids, context_id, debug, profiling, log_level, def main(self, parent_ids, context_id, debug, profiling, log_level,
max_message_size, in_fd=100, out_fd=1, core_src_fd=101, max_message_size, version, in_fd=100, out_fd=1, core_src_fd=101,
setup_stdio=True, setup_package=True, importer=None, setup_stdio=True, setup_package=True, importer=None,
whitelist=(), blacklist=()): whitelist=(), blacklist=()):
self._setup_master(max_message_size, profiling, parent_ids[0], self._setup_master(max_message_size, profiling, parent_ids[0],
@ -1657,7 +1658,7 @@ class ExternalContext(object):
self._setup_importer(importer, core_src_fd, whitelist, blacklist) self._setup_importer(importer, core_src_fd, whitelist, blacklist)
if setup_package: if setup_package:
self._setup_package() self._setup_package()
self._setup_globals(context_id, parent_ids) self._setup_globals(version, context_id, parent_ids)
if setup_stdio: if setup_stdio:
self._setup_stdio() self._setup_stdio()

@ -350,6 +350,7 @@ def run(dest, router, args, deadline=None, econtext=None):
'parent_ids': parent_ids, 'parent_ids': parent_ids,
'profiling': getattr(router, 'profiling', False), 'profiling': getattr(router, 'profiling', False),
'setup_stdio': False, 'setup_stdio': False,
'version': mitogen.__version__,
},)) },))
finally: finally:
fp.close() fp.close()

@ -685,6 +685,7 @@ class Stream(mitogen.core.Stream):
'whitelist': self._router.get_module_whitelist(), 'whitelist': self._router.get_module_whitelist(),
'blacklist': self._router.get_module_blacklist(), 'blacklist': self._router.get_module_blacklist(),
'max_message_size': self.max_message_size, 'max_message_size': self.max_message_size,
'version': mitogen.__version__,
} }
def get_preamble(self): def get_preamble(self):

@ -28,9 +28,19 @@
from setuptools import find_packages, setup from setuptools import find_packages, setup
def grep_version():
path = os.path.join(os.path.dirname(__file__), 'mitogen/__init__.py')
with open(path) as fp:
for line in fp:
if line.startswith('__version__'):
_, _, s = line.partition('=')
return '.'.join(map(str, eval(s)))
setup( setup(
name = 'mitogen', name = 'mitogen',
version = '0.0.2', version = grep_version(),
description = 'Library for writing distributed self-replicating programs.', description = 'Library for writing distributed self-replicating programs.',
author = 'David Wilson', author = 'David Wilson',
license = 'New BSD', license = 'New BSD',

Loading…
Cancel
Save