Example #1
0
 def decorator(func):
     out_name_end_index = func.__name__.find('_from_')
     if out_name_end_index == -1:
         raise ValueError('equation_docstring decorator must be applied to '
                          'function whose name contains "_from_"')
     out_quantity = func.__name__[:out_name_end_index]
     in_quantities = inspect.getargspec(func).args
     docstring = 'Calculates {0}'.format(
         quantity_string(out_quantity, quantity_dict))
     try:
         if len(func.assumptions) > 0:
             docstring += ' assuming {0}'.format(
                 assumption_list_string(func.assumptions, assumption_dict))
     except AttributeError:
         pass
     docstring += '.'
     docstring = doc_paragraph(docstring)
     docstring += '\n\n'
     if equation is not None:
         func.equation = equation
         docstring += doc_paragraph(':math:`' + equation.strip() + '`')
         docstring += '\n\n'
     docstring += 'Parameters\n'
     docstring += '----------\n\n'
     docstring += '\n'.join([quantity_spec_string(q, quantity_dict)
                             for q in in_quantities])
     docstring += '\n\n'
     docstring += 'Returns\n'
     docstring += '-------\n\n'
     docstring += quantity_spec_string(out_quantity, quantity_dict)
     if notes is not None:
         docstring += '\n\n'
         docstring += 'Notes\n'
         docstring += '-----\n\n'
         docstring += notes.strip()
     if references is not None:
         if notes is None:  # still need notes header for references
             docstring += '\n\n'
             docstring += 'Notes\n'
             docstring += '-----\n\n'
         func.references = references
         docstring += '\n\n'
         docstring += '**References**\n\n'
         docstring += references.strip()
     docstring += '\n'
     func.__doc__ = docstring
     return func
Example #2
0
 def test_assumption_list_string_triple(self):
     string = assumption_list_string(('a1', 'a2', 'a3'),
                                     self.assumption_dict)
     assert string == 'a1_long, a2_long, and a3_long'
Example #3
0
 def test_assumption_list_string_double(self):
     string = assumption_list_string(('a1', 'a2'), self.assumption_dict)
     assert string == 'a1_long and a2_long'
Example #4
0
 def test_assumption_list_string_single(self):
     string = assumption_list_string(('a1',), self.assumption_dict)
     assert string == 'a1_long'
Example #5
0
 def test_assumption_list_string_invalid(self):
     assumption_list_string(('ooglymoogly',), self.assumption_dict)
Example #6
0
 def test_assumption_list_string_input_string(self):
     assumption_list_string('hello', self.assumption_dict)
Example #7
0
 def test_assumption_list_string_empty(self):
     assumption_list_string((), self.assumption_dict)
Example #8
0
 def test_assumption_list_string_triple(self):
     string = assumption_list_string(('a1', 'a2', 'a3'),
                                     self.assumption_dict)
     assert string == 'a1_long, a2_long, and a3_long'
Example #9
0
 def test_assumption_list_string_double(self):
     string = assumption_list_string(('a1', 'a2'), self.assumption_dict)
     assert string == 'a1_long and a2_long'
Example #10
0
 def test_assumption_list_string_single(self):
     string = assumption_list_string(('a1', ), self.assumption_dict)
     assert string == 'a1_long'
Example #11
0
 def test_assumption_list_string_invalid(self):
     assumption_list_string(('ooglymoogly', ), self.assumption_dict)
Example #12
0
 def test_assumption_list_string_input_string(self):
     assumption_list_string('hello', self.assumption_dict)
Example #13
0
 def test_assumption_list_string_empty(self):
     assumption_list_string((), self.assumption_dict)