Skip to content

Commit 85d6e80

Browse files
authored
Merge pull request #4 from bobmyhill/fix_in
Code formatting, fixed code variables
2 parents f6c9871 + e46ceba commit 85d6e80

File tree

124 files changed

+11521
-6683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+11521
-6683
lines changed
Lines changed: 77 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
import os
2-
import sys
31
import inspect
42
import dispy
53

64
import pyeq3
75

86

9-
# Standard lowest sum-of-squared errors in this example, see IModel.fittingTargetDictionary
10-
fittingTargetString = 'SSQABS'
7+
# Standard lowest sum-of-squared errors in this example,
8+
# see IModel.fittingTargetDictionary
9+
fittingTargetString = "SSQABS"
1110

1211
#####################################################
1312
# this value is used to make the example run faster, you
1413
# will very likely want equations with more than 2 coefficients
1514
#####################################################
1615
smoothnessControl = 2
1716

18-
textData = '''
17+
textData = """
1918
X Y
2019
5.357 0.376
2120
5.457 0.489
@@ -28,21 +27,35 @@
2827
8.442 4.744
2928
9.769 7.068
3029
9.861 7.104
31-
'''
30+
"""
3231

3332

3433
# this is the function to be run on the cluster
35-
def SetParametersAndFit(equationString, inFittingTargetString, inExtendedVersionString, inTextData):
34+
def SetParametersAndFit(
35+
equationString, inFittingTargetString, inExtendedVersionString, inTextData
36+
):
3637

3738
# individual cluster nodes must be able to import pyeq3
3839
import pyeq3
3940

40-
equation = eval('equationString +'("' + inFittingTargetString + '", "' + inExtendedVersionString + '")')
41-
pyeq3.dataConvertorService().ConvertAndSortColumnarASCII(inTextData, equation, False)
41+
equation = eval(
42+
equationString
43+
+ '("'
44+
+ inFittingTargetString
45+
+ '", "'
46+
+ inExtendedVersionString
47+
+ '")'
48+
)
49+
50+
pyeq3.dataConvertorService().ConvertAndSortColumnarASCII(
51+
inTextData, equation, False
52+
)
4253

4354
try:
4455
# check for number of coefficients > number of data points to be fitted
45-
if len(equation.GetCoefficientDesignators()) > len(equation.dataCache.allDataCacheDictionary['DependentData']):
56+
if len(equation.GetCoefficientDesignators()) > len(
57+
equation.dataCache.allDataCacheDictionary["DependentData"]
58+
):
4659
return None
4760

4861
# check for functions requiring non-zero nor non-negative data such as 1/x, etc.
@@ -52,69 +65,92 @@ def SetParametersAndFit(equationString, inFittingTargetString, inExtendedVersion
5265
equation.Solve()
5366

5467
fittedTarget = equation.CalculateAllDataFittingTarget(
55-
equation.solvedCoefficients)
56-
if fittedTarget > 1.0E290: # error too large
68+
equation.solvedCoefficients
69+
)
70+
if fittedTarget > 1.0e290: # error too large
5771
return None
58-
except:
72+
except AttributeError:
5973
return None
6074

61-
return [fittedTarget, equation.GetDisplayName(), equation.solvedCoefficients, equationString, inExtendedVersionString]
75+
return [
76+
fittedTarget,
77+
equation.GetDisplayName(),
78+
equation.solvedCoefficients,
79+
equationString,
80+
inExtendedVersionString,
81+
]
6282

6383

6484
print()
65-
print('Creating dispy JobCluster')
85+
print("Creating dispy JobCluster")
6686
cluster = dispy.JobCluster(SetParametersAndFit)
6787

6888
jobs = []
6989

70-
# this example has named equations only, for simplicity it has no polyrationals or polyfunctions
90+
# this example has named equations only,
91+
# for simplicity it has no polyrationals or polyfunctions
7192
for submodule in inspect.getmembers(pyeq3.Models_2D):
7293
if inspect.ismodule(submodule[1]):
7394
for equationClass in inspect.getmembers(submodule[1]):
7495
if inspect.isclass(equationClass[1]):
7596

7697
# ignore these special classes for simplicity
77-
if equationClass[1].splineFlag or \
78-
equationClass[1].userSelectablePolynomialFlag or \
79-
equationClass[1].userCustomizablePolynomialFlag or \
80-
equationClass[1].userSelectablePolyfunctionalFlag or \
81-
equationClass[1].userSelectableRationalFlag or \
82-
equationClass[1].userDefinedFunctionFlag:
98+
if (
99+
equationClass[1].splineFlag
100+
or equationClass[1].userSelectablePolynomialFlag
101+
or equationClass[1].userCustomizablePolynomialFlag
102+
or equationClass[1].userSelectablePolyfunctionalFlag
103+
or equationClass[1].userSelectableRationalFlag
104+
or equationClass[1].userDefinedFunctionFlag
105+
):
83106
continue
84107

85-
for extendedVersionString in ['Default', 'Offset']:
108+
for extendedVersionString in ["Default", "Offset"]:
86109

87-
if (extendedVersionString == 'Offset') and (equationClass[1].autoGenerateOffsetForm is False):
110+
if (extendedVersionString == "Offset") and (
111+
equationClass[1].autoGenerateOffsetForm is False
112+
):
88113
continue
89114

90115
equationInstance = equationClass[1](
91-
fittingTargetString, extendedVersionString)
116+
fittingTargetString, extendedVersionString
117+
)
92118

93-
if len(equationInstance.GetCoefficientDesignators()) > smoothnessControl:
119+
if (
120+
len(equationInstance.GetCoefficientDesignators())
121+
> smoothnessControl
122+
):
94123
continue
95124

96-
equationString = equationInstance.__module__ + \
97-
"." + equationInstance.__class__.__name__
125+
equationString = (
126+
equationInstance.__module__
127+
+ "."
128+
+ equationInstance.__class__.__name__
129+
)
98130

99131
job = cluster.submit(
100-
equationString, fittingTargetString, extendedVersionString, textData)
132+
equationString,
133+
fittingTargetString,
134+
extendedVersionString,
135+
textData,
136+
)
101137
jobs.append(job)
102138

103139

104-
print('Waiting on jobs to complete and collecting results')
140+
print("Waiting on jobs to complete and collecting results")
105141
allResultList = []
106142
for job in jobs:
107143
results = job()
108144
if job.exception: # can also use job.status
109-
print('Remote Exception in one of the jobs\n', str(job.exception))
145+
print("Remote Exception in one of the jobs\n", str(job.exception))
110146
else:
111147
if results:
112148
print("Remotely fitted", results[1])
113149
allResultList.append(results)
114150

115151

116152
print()
117-
print('Done. Fitted named equations only.')
153+
print("Done. Fitted named equations only.")
118154
print()
119155

120156

@@ -127,8 +163,14 @@ def SetParametersAndFit(equationString, inFittingTargetString, inExtendedVersion
127163
equationString = topResult[3]
128164
extendedVersionString = topResult[4]
129165

130-
equation = eval('equationString +'("' + fittingTargetString + '", "' + extendedVersionString + '")')
166+
equation = eval(
167+
equationString + '("' + fittingTargetString + '", "' + extendedVersionString + '")'
168+
)
131169

132-
print('Lowest fitting target result was ' +
133-
fittingTargetString + " of " + str(fittedTargetValue))
170+
print(
171+
"Lowest fitting target result was "
172+
+ fittingTargetString
173+
+ " of "
174+
+ str(fittedTargetValue)
175+
)
134176
print('for the equation "' + equationDisplayName + '"')

0 commit comments

Comments
 (0)