openstudio-workflow 0.2.0 → 1.0.0.pat0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -6
- data/lib/openstudio-workflow.rb +2 -0
- data/lib/openstudio/extended_runner.rb +12 -1
- data/lib/openstudio/workflow/adapters/local.rb +2 -2
- data/lib/openstudio/workflow/adapters/mongo.rb +1 -1
- data/lib/openstudio/workflow/jobs/lib/apply_measures.rb +9 -1
- data/lib/openstudio/workflow/jobs/run_energyplus/run_energyplus.rb +7 -54
- data/lib/openstudio/workflow/jobs/run_openstudio/run_openstudio.rb +3 -2
- data/lib/openstudio/workflow/jobs/run_postprocess/run_postprocess.rb +2 -1
- data/lib/openstudio/workflow/jobs/run_preflight/run_preflight.rb +2 -1
- data/lib/openstudio/workflow/jobs/run_reporting_measures/run_reporting_measures.rb +22 -12
- data/lib/openstudio/workflow/jobs/run_runmanager/run_runmanager.rb +2 -1
- data/lib/openstudio/workflow/jobs/run_xml/run_xml.rb +2 -1
- data/lib/openstudio/workflow/run.rb +2 -1
- data/lib/openstudio/workflow/version.rb +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8358ab81f9a6e7ba628d2d890aa6b072e855fa7c
|
4
|
+
data.tar.gz: 775d5d17b2d109c175d3bba6037edd9b577f20a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2a92837bef82dc5f6fd3cbc07bcf01d50c865c6a6ed5ac26922836c20741eb903743946836489a671e643f4cd2412d1178f440b7d9908a77304b991f2cb6813
|
7
|
+
data.tar.gz: de3843c61ab7cb9c575579347800196c46f822a0a2009f803e5c1c415217d92530c320f3b90584f1b2517dc7fb56a8cbb9a20ccf80c6e6ada5a3e02a4dbf6333
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# OpenStudio::Workflow
|
2
|
-
[](https://circleci.com/gh/NREL/OpenStudio-workflow-gem/tree/develop)
|
3
|
+
[](https://coveralls.io/github/NREL/OpenStudio-workflow-gem?branch=develop)
|
4
4
|
[](https://www.versioneye.com/user/projects/5531fb7b10e714121100102e)
|
5
5
|
|
6
6
|
Run an EnergyPlus simulation using a file-based workflow that is read from a Local or MongoDB adapter.
|
@@ -24,10 +24,6 @@ Add this line to your application's Gemfile:
|
|
24
24
|
|
25
25
|
gem 'OpenStudio-workflow'
|
26
26
|
|
27
|
-
Use this line if you want the bleeding edge:
|
28
|
-
|
29
|
-
gem 'OpenStudio-workflow', github: 'NREL/OpenStudio-workflow-gem', branch: 'EnergyPlus-8.2.0'
|
30
|
-
|
31
27
|
And then execute:
|
32
28
|
|
33
29
|
Mac/Linux:
|
data/lib/openstudio-workflow.rb
CHANGED
@@ -62,6 +62,8 @@ module OpenStudio
|
|
62
62
|
def load(adapter_name, run_directory, options = {})
|
63
63
|
defaults = { adapter_options: {} }
|
64
64
|
options = defaults.merge(options)
|
65
|
+
# We don't have deep merge so just check for the rails_env
|
66
|
+
options[:adapter_options][:rails_env] = :development unless options[:adapter_options][:rails_env]
|
65
67
|
|
66
68
|
# Convert various paths to absolute paths
|
67
69
|
if options[:adapter_options] && options[:adapter_options][:mongoid_path] &&
|
@@ -3,15 +3,26 @@ class ExtendedRunner < OpenStudio::Ruleset::OSRunner
|
|
3
3
|
# Allow former arguments to be set and read
|
4
4
|
# TODO: Consider having the former arguments passed in in initialization, and define as attr_reader
|
5
5
|
attr_accessor :former_workflow_arguments
|
6
|
+
attr_accessor :past_results
|
6
7
|
attr_reader :workflow_arguments
|
7
8
|
|
8
9
|
# Add in @workflow_arguments
|
9
|
-
def initialize(multi_logger)
|
10
|
+
def initialize(multi_logger, analysis_hash, datapoint_hash)
|
10
11
|
@multi_logger = multi_logger
|
12
|
+
@analysis = analysis_hash
|
13
|
+
@datapoint = datapoint_hash
|
11
14
|
@workflow_arguments = nil
|
12
15
|
super()
|
13
16
|
end
|
14
17
|
|
18
|
+
def analysis
|
19
|
+
return @analysis
|
20
|
+
end
|
21
|
+
|
22
|
+
def datapoint
|
23
|
+
return @datapoint
|
24
|
+
end
|
25
|
+
|
15
26
|
# Take the OS Argument type and map it correctly to the argument value.
|
16
27
|
# OPENSTUDIO_ENUM( OSArgumentType,
|
17
28
|
# ((Boolean)(Bool)(0))
|
@@ -41,7 +41,7 @@ module OpenStudio
|
|
41
41
|
|
42
42
|
# how do we log within this file?
|
43
43
|
if File.exist? "#{directory}/#{options[:datapoint_filename]}"
|
44
|
-
::
|
44
|
+
::JSON.parse(File.read("#{directory}/#{options[:datapoint_filename]}"), symbolize_names: true)
|
45
45
|
else
|
46
46
|
fail "Data point file does not exist for #{directory}/#{options[:datapoint_filename]}"
|
47
47
|
end
|
@@ -54,7 +54,7 @@ module OpenStudio
|
|
54
54
|
options = defaults.merge(options)
|
55
55
|
|
56
56
|
if File.exist? "#{directory}/#{options[:problem_filename]}"
|
57
|
-
::
|
57
|
+
::JSON.parse(File.read("#{directory}/#{options[:problem_filename]}"), symbolize_names: true)
|
58
58
|
else
|
59
59
|
fail "Problem file does not exist for #{directory}/#{options[:problem_filename]}"
|
60
60
|
end
|
@@ -46,7 +46,7 @@ module OpenStudio
|
|
46
46
|
base_path = @options[:mongoid_path] ? @options[:mongoid_path] : "#{File.dirname(__FILE__)}/mongo"
|
47
47
|
|
48
48
|
Dir["#{base_path}/models/*.rb"].each { |f| require f }
|
49
|
-
Mongoid.load!("#{base_path}/mongoid.yml", :
|
49
|
+
Mongoid.load!("#{base_path}/mongoid.yml", @options[:rails_env])
|
50
50
|
end
|
51
51
|
|
52
52
|
# Tell the system that the process has started
|
@@ -126,8 +126,9 @@ module OpenStudio
|
|
126
126
|
begin
|
127
127
|
require measure_file_path
|
128
128
|
measure = Object.const_get(measure_name).new
|
129
|
-
runner = ExtendedRunner.new @
|
129
|
+
runner = ExtendedRunner.new(@logger, @analysis_json, @datapoint_json)
|
130
130
|
runner.former_workflow_arguments = @workflow_arguments
|
131
|
+
runner.past_results = @past_results
|
131
132
|
rescue => e
|
132
133
|
log_message = "Error requiring measure #{__FILE__}. Failed with #{e.message}, #{e.backtrace.join("\n")}"
|
133
134
|
raise log_message
|
@@ -190,6 +191,8 @@ module OpenStudio
|
|
190
191
|
end
|
191
192
|
@workflow_arguments[workflow_item[:name].to_sym] = runner.workflow_arguments
|
192
193
|
@logger.info "Finished measure.run for '#{workflow_item[:name]}'"
|
194
|
+
|
195
|
+
# run garbage collector after every measure to help address race conditions
|
193
196
|
GC.start
|
194
197
|
rescue => e
|
195
198
|
log_message = "Runner error #{__FILE__} failed with #{e.message}, #{e.backtrace.join("\n")}"
|
@@ -209,6 +212,11 @@ module OpenStudio
|
|
209
212
|
begin
|
210
213
|
measure_attributes = JSON.parse(OpenStudio.toJSON(result.attributes), symbolize_names: true)
|
211
214
|
@output_attributes[workflow_item[:name].to_sym] = measure_attributes[:attributes]
|
215
|
+
@past_results[workflow_item[:name].to_sym] = measure_attributes[:attributes]
|
216
|
+
|
217
|
+
# add an applicability flag to all the measure results
|
218
|
+
@output_attributes[workflow_item[:name].to_sym][:applicable] = result.value.value != -1
|
219
|
+
@past_results[workflow_item[:name].to_sym][:applicable] = result.value.value != -1
|
212
220
|
rescue => e
|
213
221
|
log_message = "#{__FILE__} failed with #{e.message}, #{e.backtrace.join("\n")}"
|
214
222
|
@logger.error log_message
|
@@ -24,7 +24,7 @@ class RunEnergyplus
|
|
24
24
|
# Initialize
|
25
25
|
# param directory: base directory where the simulation files are prepared
|
26
26
|
# param logger: logger object in which to write log messages
|
27
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
27
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
28
28
|
@logger = logger
|
29
29
|
|
30
30
|
energyplus_path = find_energyplus
|
@@ -39,6 +39,7 @@ class RunEnergyplus
|
|
39
39
|
@adapter = adapter
|
40
40
|
@time_logger = time_logger
|
41
41
|
@workflow_arguments = workflow_arguments
|
42
|
+
@past_results = past_results
|
42
43
|
@results = {}
|
43
44
|
|
44
45
|
# container for storing the energyplus files there were copied into the local directory. These will be
|
@@ -258,12 +259,6 @@ class RunEnergyplus
|
|
258
259
|
new_objects = []
|
259
260
|
needs_monthlyoutput = false
|
260
261
|
|
261
|
-
# this is a workaround for OpenStudio issue #1699
|
262
|
-
needs_detailedvariable = false
|
263
|
-
needs_hourlyvariable = false
|
264
|
-
needs_dailyvariable = false
|
265
|
-
needs_runperiodvariable = false
|
266
|
-
|
267
262
|
idf = OpenStudio::IdfFile.load(idf_filename).get
|
268
263
|
# save the pre-preprocess file
|
269
264
|
File.open("#{File.dirname(idf_filename)}/pre-preprocess.idf", 'w') { |f| f << idf.to_s }
|
@@ -275,43 +270,11 @@ class RunEnergyplus
|
|
275
270
|
idf.getObjectsByName('Building Energy Performance - District Heating').empty? ||
|
276
271
|
idf.getObjectsByName('Building Energy Performance - District Cooling').empty?
|
277
272
|
|
278
|
-
# this is a workaround for issue #1699 --
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
meters += idf.getObjectsByType('Output:Meter:Cumulative:MeterFileOnly'.to_IddObjectType) unless idf.getObjectsByType('Output:Meter:Cumulative:MeterFileOnly'.to_IddObjectType).empty?
|
284
|
-
|
285
|
-
# go through each meter and check the reporting frequency
|
286
|
-
meters.each do |meter|
|
287
|
-
reporting_frequency = meter.getString(1, true)
|
288
|
-
if reporting_frequency =~ /detailed/i
|
289
|
-
needs_detailedvariable = true
|
290
|
-
elsif reporting_frequency =~ /hourly/i
|
291
|
-
needs_hourlyvariable = true
|
292
|
-
elsif reporting_frequency =~ /daily/i
|
293
|
-
needs_dailyvariable = true
|
294
|
-
elsif reporting_frequency =~ /monthly/i
|
295
|
-
needs_monthlyvariable = true
|
296
|
-
elsif reporting_frequency =~ /runperiod|environment|annual/i
|
297
|
-
needs_runperiodvariable = true
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
301
|
-
# turn off the requests if the meter is already a variable
|
302
|
-
variables = idf.getObjectsByType('Output:Variable'.to_IddObjectType)
|
303
|
-
variables.each do |variable|
|
304
|
-
reporting_frequency = variable.getString(2, true)
|
305
|
-
if reporting_frequency =~ /detailed/i
|
306
|
-
needs_detailedvariable = false
|
307
|
-
elsif reporting_frequency =~ /hourly/i
|
308
|
-
needs_hourlyvariable = false
|
309
|
-
elsif reporting_frequency =~ /daily/i
|
310
|
-
needs_dailyvariable = false
|
311
|
-
elsif reporting_frequency =~ /runperiod|environment|annual/i
|
312
|
-
needs_runperiodvariable = false
|
313
|
-
end
|
314
|
-
end
|
273
|
+
# this is a workaround for issue #1699 -- remove when 1699 is closed.
|
274
|
+
new_objects << 'Output:Variable,*,Zone Air Temperature,Hourly;'
|
275
|
+
new_objects << 'Output:Variable,*,Zone Air Relative Humidity,Daily;'
|
276
|
+
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Monthly;'
|
277
|
+
new_objects << 'Output:Variable,*,Site Outdoor Air Wetbulb Temperature,Timestep;'
|
315
278
|
|
316
279
|
if needs_sqlobj
|
317
280
|
@logger.info 'Adding SQL Output to IDF'
|
@@ -323,24 +286,14 @@ class RunEnergyplus
|
|
323
286
|
|
324
287
|
if needs_monthlyoutput
|
325
288
|
monthly_report_idf = File.join(File.dirname(__FILE__), 'monthly_report.idf')
|
326
|
-
|
327
289
|
idf_file = OpenStudio::IdfFile.load(File.read(monthly_report_idf), 'EnergyPlus'.to_IddFileType).get
|
328
290
|
idf.addObjects(idf_file.objects)
|
329
291
|
end
|
330
292
|
|
331
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Detailed;' if needs_detailedvariable
|
332
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Hourly;' if needs_hourlyvariable
|
333
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Daily;' if needs_dailyvariable
|
334
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,RunPeriod;' if needs_runperiodvariable
|
335
|
-
|
336
293
|
# These are supposedly needed for the calibration report
|
337
294
|
new_objects << 'Output:Meter:MeterFileOnly,Gas:Facility,Daily;'
|
338
295
|
new_objects << 'Output:Meter:MeterFileOnly,Electricity:Facility,Timestep;'
|
339
296
|
new_objects << 'Output:Meter:MeterFileOnly,Electricity:Facility,Daily;'
|
340
|
-
new_objects << 'Output:Variable,*,Zone Air Temperature,Hourly;'
|
341
|
-
new_objects << 'Output:Variable,*,Zone Air Relative Humidity,Hourly;'
|
342
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Monthly;'
|
343
|
-
new_objects << 'Output:Variable,*,Site Outdoor Air Drybulb Temperature,Timestep;'
|
344
297
|
|
345
298
|
# Always add in the timestep facility meters
|
346
299
|
new_objects << 'Output:Meter,Electricity:Facility,Timestep;'
|
@@ -24,8 +24,8 @@ class RunOpenstudio
|
|
24
24
|
# Initialize
|
25
25
|
# param directory: base directory where the simulation files are prepared
|
26
26
|
# param logger: logger object in which to write log messages
|
27
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
28
|
-
defaults = { format: 'hash',
|
27
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
28
|
+
defaults = { format: 'hash', analysis_root_path: '.' }
|
29
29
|
warn 'Option of use_monthly_reports is deprecated. Monthly reports are always generated.' if options[:use_monthly_reports]
|
30
30
|
|
31
31
|
@options = defaults.merge(options)
|
@@ -37,6 +37,7 @@ class RunOpenstudio
|
|
37
37
|
@logger = logger
|
38
38
|
@time_logger = time_logger
|
39
39
|
@workflow_arguments = workflow_arguments
|
40
|
+
@past_results = past_results
|
40
41
|
@logger.info "#{self.class} passed the following options #{@options}"
|
41
42
|
|
42
43
|
# initialize instance variables that are needed in the perform section
|
@@ -27,7 +27,7 @@ class RunPostprocess
|
|
27
27
|
# Mixin the MeasureApplication module to apply measures
|
28
28
|
include OpenStudio::Workflow::ApplyMeasures
|
29
29
|
|
30
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
30
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
31
31
|
defaults = {}
|
32
32
|
@options = defaults.merge(options)
|
33
33
|
@directory = directory
|
@@ -36,6 +36,7 @@ class RunPostprocess
|
|
36
36
|
@logger = logger
|
37
37
|
@time_logger = time_logger
|
38
38
|
@workflow_arguments = workflow_arguments
|
39
|
+
@past_results = past_results
|
39
40
|
@results = {}
|
40
41
|
@output_attributes = {}
|
41
42
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
# Run Prelight job to prepare the directory for simulations.
|
21
21
|
class RunPreflight
|
22
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
22
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
23
23
|
defaults = {}
|
24
24
|
@options = defaults.merge(options)
|
25
25
|
@directory = directory
|
@@ -27,6 +27,7 @@ class RunPreflight
|
|
27
27
|
@logger = logger
|
28
28
|
@time_logger = time_logger
|
29
29
|
@workflow_arguments = workflow_arguments
|
30
|
+
@past_results = past_results
|
30
31
|
@results = {}
|
31
32
|
end
|
32
33
|
|
@@ -25,7 +25,7 @@ class RunReportingMeasures
|
|
25
25
|
# Mixin the MeasureApplication module to apply measures
|
26
26
|
include OpenStudio::Workflow::ApplyMeasures
|
27
27
|
|
28
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
28
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
29
29
|
defaults = {}
|
30
30
|
@options = defaults.merge(options)
|
31
31
|
@directory = directory
|
@@ -34,6 +34,7 @@ class RunReportingMeasures
|
|
34
34
|
@logger = logger
|
35
35
|
@time_logger = time_logger
|
36
36
|
@workflow_arguments = workflow_arguments
|
37
|
+
@past_results = past_results
|
37
38
|
@results = {}
|
38
39
|
@output_attributes = {}
|
39
40
|
|
@@ -139,7 +140,9 @@ class RunReportingMeasures
|
|
139
140
|
# TODO: move this to cleaner logic. Use ostruct?
|
140
141
|
if variable[:name].include? '.'
|
141
142
|
k, v = variable[:name].split('.')
|
142
|
-
|
143
|
+
|
144
|
+
# look for the objective function key and make sure that it is not nil. False is an okay obj function.
|
145
|
+
if @results.key?(k.to_sym) && !@results[k.to_sym][v.to_sym].nil?
|
143
146
|
@objective_functions["objective_function_#{variable[:objective_function_index] + 1}"] = @results[k.to_sym][v.to_sym]
|
144
147
|
if variable[:objective_function_target]
|
145
148
|
@logger.info "Found objective function target for #{variable[:name]}"
|
@@ -229,17 +232,24 @@ class RunReportingMeasures
|
|
229
232
|
name: 'standard_reports'
|
230
233
|
}
|
231
234
|
@logger.info 'Running packaged Standard Reports measures'
|
232
|
-
|
235
|
+
begin
|
236
|
+
apply_measure(workflow_item)
|
237
|
+
rescue => e
|
238
|
+
@logger.warn "Error applying Standard Reports measure. Failed with #{e.message}, #{e.backtrace.join("\n")} \n Continuing."
|
239
|
+
end
|
233
240
|
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
241
|
+
@logger.info "Found #{@model.getUtilityBills.length} utility bills"
|
242
|
+
if @model.getUtilityBills.length > 0
|
243
|
+
workflow_item = {
|
244
|
+
display_name: 'Calibration Reports',
|
245
|
+
measure_definition_directory: File.expand_path(File.join(OpenStudio::BCLMeasure.calibrationReportMeasure.directory.to_s, 'measure.rb')),
|
246
|
+
measure_definition_class_name: 'CalibrationReports',
|
247
|
+
measure_type: 'CalibrationReports',
|
248
|
+
name: 'calibration_reports'
|
249
|
+
}
|
250
|
+
@logger.info 'Running packaged Calibration Reports measures'
|
251
|
+
apply_measure(workflow_item)
|
252
|
+
end
|
243
253
|
|
244
254
|
@logger.info 'Finished Running Packaged Measures'
|
245
255
|
end
|
@@ -27,7 +27,7 @@ class RunRunmanager
|
|
27
27
|
# Initialize
|
28
28
|
# param directory: base directory where the simulation files are prepared
|
29
29
|
# param logger: logger object in which to write log messages
|
30
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
30
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
31
31
|
@logger = logger
|
32
32
|
|
33
33
|
energyplus_path = find_energyplus
|
@@ -46,6 +46,7 @@ class RunRunmanager
|
|
46
46
|
@logger.info "#{self.class} passed the following options #{@options}"
|
47
47
|
@time_logger = time_logger
|
48
48
|
@workflow_arguments = workflow_arguments
|
49
|
+
@past_results = past_results
|
49
50
|
|
50
51
|
# initialize instance variables that are needed in the perform section
|
51
52
|
@model = nil
|
@@ -22,7 +22,7 @@ require 'libxml'
|
|
22
22
|
# This actually belongs as another class that gets added as a state dynamically
|
23
23
|
class RunXml
|
24
24
|
# RunXml
|
25
|
-
def initialize(directory, logger, time_logger, adapter, workflow_arguments, options = {})
|
25
|
+
def initialize(directory, logger, time_logger, adapter, workflow_arguments, past_results, options = {})
|
26
26
|
defaults = { analysis_root_path: '.', xml_library_file: 'xml_runner.rb' }
|
27
27
|
@options = defaults.merge(options)
|
28
28
|
@directory = directory
|
@@ -33,6 +33,7 @@ class RunXml
|
|
33
33
|
@logger = logger
|
34
34
|
@time_logger = time_logger
|
35
35
|
@workflow_arguments = workflow_arguments
|
36
|
+
@past_results = past_results
|
36
37
|
@logger.info "#{self.class} passed the following options #{@options}"
|
37
38
|
|
38
39
|
# initialize instance variables that are needed in the perform section
|
@@ -95,6 +95,7 @@ module OpenStudio
|
|
95
95
|
@directory = directory
|
96
96
|
@time_logger = TimeLogger.new
|
97
97
|
@workflow_arguments = {}
|
98
|
+
@past_results = {}
|
98
99
|
# TODO: run directory is a convention right now. Move to a configuration item
|
99
100
|
@run_directory = "#{@directory}/run"
|
100
101
|
|
@@ -310,7 +311,7 @@ module OpenStudio
|
|
310
311
|
require_relative "jobs/#{from_method}/#{from_method}"
|
311
312
|
klass_name = from_method.to_s.split('_').map(&:capitalize) * ''
|
312
313
|
@logger.info "Getting method for state transition '#{from_method}'"
|
313
|
-
klass = Object.const_get(klass_name).new(@directory, @logger, @time_logger, @adapter, @workflow_arguments, get_job_options)
|
314
|
+
klass = Object.const_get(klass_name).new(@directory, @logger, @time_logger, @adapter, @workflow_arguments, @past_results, get_job_options)
|
314
315
|
klass
|
315
316
|
end
|
316
317
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-workflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.pat0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicholas Long
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -100,14 +100,14 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 1.2.0
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 1.2.0
|
111
111
|
description: Run OpenStudio based simulations using EnergyPlus
|
112
112
|
email:
|
113
113
|
- nicholas.long@nrel.gov
|
@@ -115,6 +115,10 @@ executables: []
|
|
115
115
|
extensions: []
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
|
+
- CHANGELOG.md
|
119
|
+
- README.md
|
120
|
+
- Rakefile
|
121
|
+
- lib/openstudio-workflow.rb
|
118
122
|
- lib/openstudio/extended_runner.rb
|
119
123
|
- lib/openstudio/workflow/adapter.rb
|
120
124
|
- lib/openstudio/workflow/adapters/local.rb
|
@@ -132,10 +136,6 @@ files:
|
|
132
136
|
- lib/openstudio/workflow/run.rb
|
133
137
|
- lib/openstudio/workflow/time_logger.rb
|
134
138
|
- lib/openstudio/workflow/version.rb
|
135
|
-
- lib/openstudio-workflow.rb
|
136
|
-
- README.md
|
137
|
-
- CHANGELOG.md
|
138
|
-
- Rakefile
|
139
139
|
homepage: https://github.com/NREL/OpenStudio-workflow-gem
|
140
140
|
licenses:
|
141
141
|
- LGPL
|
@@ -151,12 +151,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
151
151
|
version: 1.9.3
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
requirements:
|
154
|
-
- - '
|
154
|
+
- - '>'
|
155
155
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
156
|
+
version: 1.3.1
|
157
157
|
requirements: []
|
158
158
|
rubyforge_project:
|
159
|
-
rubygems_version: 2.
|
159
|
+
rubygems_version: 2.6.6
|
160
160
|
signing_key:
|
161
161
|
specification_version: 4
|
162
162
|
summary: Workflow Manager
|