Beispiel #1
0
def setup_extensions_source_code():
    try:
        from MTfit.utilities.extensions import get_extensions
    except Exception:
        # Haven't installed the package so add src to the system path
        sys.path.insert(0, 'src')
        from MTfit.utilities.extensions import get_extensions
    ext_source_code_names, ext_source_code = get_extensions(
        'MTfit.source_code')
    extensions_source_code = """
    MTfit.extensions
====================

Contents
***********
.. toctree::
   :maxdepth: 1

   MTfit.extensions.scatangle<source-scatangle>""" + '\n    '.join([
        ext.replace('_', ' ').capitalize() + ' <' + ext + '>'
        for ext in ext_source_code_names
    ]) + """

For the extensions documentation see :ref:`extensions`"""
    with open('./docs/source/source-extensions.rst', 'w') as f:
        f.write(extensions_source_code)
    for ext in ext_source_code_names:
        with open('./docs/source/' + ext + '.rst', 'w') as f:
            f.write(ext_source_code[ext])
Beispiel #2
0
def setup_extensions():
    try:
        from MTfit.utilities.extensions import get_extensions
        from MTfit.extensions import rst_table, rst_docs, __doc1__
    except Exception:
        # Haven't installed the package so add src to the system path
        sys.path.insert(0, 'src')
        from MTfit.utilities.extensions import get_extensions
        from MTfit.extensions import rst_table, rst_docs, __doc1__
    ext_doc_names, ext_docs = get_extensions('MTfit.documentation')
    if len(ext_doc_names):
        # Have extension documentation so add extensions as toc including entry_points
        entry_points_file = 'entry_points'
        entry_points = """*********************************
MTfit Entry Points
*********************************

"""
        for ext in ext_doc_names:
            with open('./docs/source/' + ext + '.rst', 'w') as f:
                f.write(ext_docs[ext])
    else:
        entry_points_file = 'extensions'
        entry_points = """*********************************
Extending MTfit
*********************************

"""
    try:
        entry_points += """MTfit has been written with the view that it is desirable to be able to easily extend the code. This is done using `entry points <https://pythonhosted.org/setuptools/pkg_resources.html#entry-points>`_ from the `setuptools <https://pythonhosted.org/setuptools>`_ module.

The entry points are:

"""
        entry_points = entry_points.replace(
            'The entry points are:',
            'The entry points are:\n\n.. only:: latex\n\n    .. tabularcolumns:: |l|L|\n\n'
            + rst_table + '\n\n' + __doc1__.replace(
                'extensions/scatangle.py',
                ':download:`extensions/scatangle.py <../../src/MTfit/extensions/scatangle.py>`'
            ).replace('setup.py', '``setup.py``') + '\n\n' + rst_docs)
        with open('./docs/source/' + entry_points_file + '.rst', 'w') as f:
            f.write(entry_points)
    except Exception:
        traceback.print_exc()
    setup_extensions_source_code()
Beispiel #3
0
 def test_get_extensions(self):
     from MTfit.utilities.extensions import get_extensions
     (name, extensions) = get_extensions('MTfit.parsers')
     self.assertTrue(any(['.hyp' in u for u in name]))
     self.assertTrue(any(['.csv' in u for u in name]))
Beispiel #4
0
def test_suite(verbosity=2):
    test_suites = [scatangle_test_suite(verbosity)]
    extension_names, extensions = get_extensions('MTfit.tests')
    for extension in extensions:
        test_suites.append(extension)
    return unittest.TestSuite(test_suites)