openstudio-analysis 1.0.0.rc9 → 1.0.0.rc10
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/.rubocop.yml +47 -43
- data/CHANGELOG.md +5 -0
- data/lib/openstudio/analysis/formulation.rb +4 -4
- data/lib/openstudio/analysis/server_api.rb +69 -69
- data/lib/openstudio/analysis/support_files.rb +1 -1
- data/lib/openstudio/analysis/translator/datapoints.rb +61 -42
- data/lib/openstudio/analysis/translator/excel.rb +38 -38
- data/lib/openstudio/analysis/translator/workflow.rb +3 -4
- data/lib/openstudio/analysis/version.rb +1 -1
- data/lib/openstudio/analysis/workflow.rb +8 -8
- data/lib/openstudio/analysis/workflow_step.rb +27 -18
- data/lib/openstudio/analysis.rb +6 -6
- data/lib/openstudio/helpers/string.rb +2 -2
- data/lib/openstudio/weather/epw.rb +2 -2
- data/openstudio-analysis.gemspec +1 -1
- data/spec/openstudio/excel_spec.rb +4 -4
- data/spec/openstudio/formulation_spec.rb +2 -2
- data/spec/openstudio/osw_spec.rb +2 -2
- data/spec/openstudio/support_files_spec.rb +1 -3
- data/spec/openstudio/workflow_spec.rb +1 -1
- data/spec/schema/osa.json +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 730a32510cb39282ef25487714f4b5e5c850ef61
|
4
|
+
data.tar.gz: b1b239cc0d42b7679e6587a12e0a645165f376cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bceff944862e1563f30f59cf098d8b0d5c4f31464774b094d9684e014e10cad4a62862be075410adf6e774aba0d7d9b3ceb0a9fe44ce9307b15f04329aa2bf2d
|
7
|
+
data.tar.gz: 4ee216a32f6a788ffb57f72f1c61e2b575b50fe1e52485745046ab76d6133eb00b38d4aa74feaf55a441eb348814196fda00d2c42075b399542daaa58b5e4091
|
data/.rubocop.yml
CHANGED
@@ -17,63 +17,71 @@ Lint/ParenthesesAsGroupedExpression:
|
|
17
17
|
Lint/RequireParentheses:
|
18
18
|
Enabled: true
|
19
19
|
|
20
|
-
# Offense count: 1
|
21
20
|
Lint/UnreachableCode:
|
22
21
|
Enabled: false
|
23
22
|
|
24
|
-
# Offense count: 51
|
25
23
|
Lint/UselessAssignment:
|
26
24
|
Enabled: true
|
27
25
|
|
26
|
+
Lint/UnusedBlockArgument:
|
27
|
+
Description: 'Checks for unused block arguments.'
|
28
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Lint/UnusedMethodArgument:
|
32
|
+
Description: 'Checks for unused method arguments.'
|
33
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Lint/UselessAssignment:
|
37
|
+
Description: 'Checks for useless assignment to a local variable.'
|
38
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
# ==================== Performance ========================
|
42
|
+
|
43
|
+
Performance/Casecmp:
|
44
|
+
Enabled: false
|
45
|
+
|
28
46
|
# ==================== Styles / Metrics====================
|
29
|
-
|
47
|
+
|
30
48
|
Metrics/BlockNesting:
|
31
49
|
Max: 4
|
32
50
|
|
33
|
-
# Offense count: 18
|
34
|
-
# Configuration parameters: CountComments.
|
35
51
|
Metrics/ClassLength:
|
36
52
|
Max: 500
|
37
53
|
|
38
|
-
# Offense count: 27
|
39
54
|
Metrics/CyclomaticComplexity:
|
40
|
-
Max:
|
55
|
+
Max: 50
|
41
56
|
|
42
|
-
# Offense count: 974
|
43
57
|
Metrics/LineLength:
|
44
|
-
Max:
|
58
|
+
Max: 120
|
45
59
|
|
46
|
-
# Offense count: 87
|
47
|
-
# Configuration parameters: CountComments.
|
48
60
|
Metrics/MethodLength:
|
49
61
|
Max: 350
|
50
62
|
|
51
|
-
# Offense count: 1
|
52
|
-
# Configuration parameters: CountKeywordArgs.
|
53
63
|
Metrics/ParameterLists:
|
54
64
|
Max: 8
|
55
65
|
|
56
66
|
# ==================== Disabled on Purpose ====================
|
57
|
-
# Offense count: 3
|
58
|
-
Style/AccessorMethodName:
|
59
|
-
Enabled: true
|
60
67
|
|
61
|
-
#
|
62
|
-
# Offense count: 9
|
68
|
+
# Allow indented case statements
|
63
69
|
# Configuration parameters: IndentWhenRelativeTo, SupportedStyles, IndentOneStep.
|
64
70
|
Style/CaseIndentation:
|
65
71
|
Enabled: false
|
66
72
|
|
67
|
-
#
|
73
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly.
|
74
|
+
# SupportedStyles: assign_to_condition, assign_inside_condition
|
75
|
+
Style/ConditionalAssignment:
|
76
|
+
Enabled: false
|
77
|
+
|
68
78
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
69
79
|
Style/ClassAndModuleChildren:
|
70
80
|
Enabled: false
|
71
81
|
|
72
|
-
# Offense count: 2
|
73
82
|
Style/ClassVars:
|
74
83
|
Enabled: false
|
75
84
|
|
76
|
-
# Offense count: 42
|
77
85
|
Style/Documentation:
|
78
86
|
Enabled: false
|
79
87
|
|
@@ -81,31 +89,36 @@ Style/Documentation:
|
|
81
89
|
Style/EachWithObject:
|
82
90
|
Enabled: false
|
83
91
|
|
84
|
-
# Offense count: 2
|
85
92
|
# Configuration parameters: AllowedVariables.
|
86
93
|
Style/GlobalVars:
|
87
94
|
Enabled: false
|
88
95
|
|
89
|
-
# Offense count: 7
|
90
96
|
# Configuration parameters: MinBodyLength.
|
91
97
|
Style/GuardClause:
|
92
98
|
Enabled: true
|
93
99
|
|
94
|
-
# Offense count: 17
|
95
100
|
# Configuration parameters: MaxLineLength.
|
96
101
|
Style/IfUnlessModifier:
|
97
102
|
Enabled: false
|
98
103
|
|
99
|
-
#
|
100
|
-
#
|
104
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
105
|
+
# SupportedStyles: symmetrical, new_line, same_line
|
106
|
+
Style/MultilineMethodCallBraceLayout:
|
107
|
+
Enabled: false
|
108
|
+
|
109
|
+
# Do NOT enable.
|
101
110
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
102
111
|
Style/Next:
|
103
112
|
Enabled: false
|
104
113
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
114
|
+
Style/NumericLiterals:
|
115
|
+
Description: 'Add underscores to large numeric literals to improve readability.'
|
116
|
+
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
|
117
|
+
Enabled: false
|
118
|
+
|
119
|
+
# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
|
120
|
+
# SupportedStyles: predicate, comparison
|
121
|
+
Style/NumericPredicate:
|
109
122
|
Enabled: false
|
110
123
|
|
111
124
|
# More Changes per DLM -- pulled from https://github.com/bbatsov/rubocop/blob/master/config/enabled.yml
|
@@ -114,22 +127,13 @@ Style/RedundantReturn:
|
|
114
127
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-explicit-return'
|
115
128
|
Enabled: false
|
116
129
|
|
117
|
-
Style/
|
118
|
-
Description: 'Add underscores to large numeric literals to improve readability.'
|
119
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscores-in-numerics'
|
130
|
+
Style/RedundantParentheses:
|
120
131
|
Enabled: false
|
121
132
|
|
122
|
-
|
123
|
-
|
124
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
133
|
+
# Do NOT enable this because it appears $? is different than $CHILD_STATUS.
|
134
|
+
Style/SpecialGlobalVars:
|
125
135
|
Enabled: false
|
126
136
|
|
127
|
-
|
128
|
-
Description: 'Checks for unused method arguments.'
|
129
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
137
|
+
Style/ZeroLengthPredicate:
|
130
138
|
Enabled: false
|
131
139
|
|
132
|
-
Lint/UselessAssignment:
|
133
|
-
Description: 'Checks for useless assignment to a local variable.'
|
134
|
-
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars'
|
135
|
-
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
OpenStudio Analysis Gem Change Log
|
2
2
|
==================================
|
3
3
|
|
4
|
+
Version 1.0.0.rc10
|
5
|
+
------------------
|
6
|
+
* Fix boolean data type in datapoints translator
|
7
|
+
* Allow __skip__ variable in datapoints translator
|
8
|
+
|
4
9
|
Version 1.0.0.rc9
|
5
10
|
-----------------
|
6
11
|
* Fix bug in batch datapoints to look for outputs_json, not outputs when importing the definition of the outputs JSON file.
|
@@ -190,7 +190,7 @@ module OpenStudio
|
|
190
190
|
|
191
191
|
h
|
192
192
|
else
|
193
|
-
|
193
|
+
raise "Version #{version} not defined for #{self.class} and #{__method__}"
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -218,7 +218,7 @@ module OpenStudio
|
|
218
218
|
o.seed_model = h[:analysis][:seed][:path]
|
219
219
|
end
|
220
220
|
else
|
221
|
-
|
221
|
+
raise "Version #{version} not defined for #{self.class} and #{__method__}"
|
222
222
|
end
|
223
223
|
|
224
224
|
o
|
@@ -293,7 +293,7 @@ module OpenStudio
|
|
293
293
|
def save_analysis_zip(filename)
|
294
294
|
def add_directory_to_zip(zipfile, local_directory, relative_zip_directory)
|
295
295
|
# puts "Add Directory #{local_directory}"
|
296
|
-
Dir[File.join(
|
296
|
+
Dir[File.join(local_directory.to_s, '**', '**')].each do |file|
|
297
297
|
# puts "Adding File #{file}"
|
298
298
|
zipfile.add(file.sub(local_directory, relative_zip_directory), file)
|
299
299
|
end
|
@@ -331,7 +331,7 @@ module OpenStudio
|
|
331
331
|
|
332
332
|
puts 'Adding Support Files: Libraries'
|
333
333
|
@libraries.each do |lib|
|
334
|
-
|
334
|
+
raise "Libraries must specify their 'library_name' as metadata which becomes the directory upon zip" unless lib[:metadata][:library_name]
|
335
335
|
|
336
336
|
if File.directory? lib[:file]
|
337
337
|
Dir[File.join(lib[:file], '**', '**')].each do |file|
|
@@ -6,16 +6,16 @@ module OpenStudio
|
|
6
6
|
attr_reader :hostname
|
7
7
|
|
8
8
|
# Define set of anlaysis methods require batch_run to be queued after them
|
9
|
-
BATCH_RUN_METHODS = %w(lhs preflight single_run repeat_run doe diag baseline_perturbation batch_datapoints)
|
9
|
+
BATCH_RUN_METHODS = %w(lhs preflight single_run repeat_run doe diag baseline_perturbation batch_datapoints).freeze
|
10
10
|
|
11
11
|
def initialize(options = {})
|
12
|
-
defaults = {hostname: 'http://localhost:8080'}
|
12
|
+
defaults = { hostname: 'http://localhost:8080' }
|
13
13
|
options = defaults.merge(options)
|
14
14
|
@logger = ::Logger.new('faraday.log')
|
15
15
|
|
16
16
|
@hostname = options[:hostname]
|
17
17
|
|
18
|
-
|
18
|
+
raise 'no host defined for server api class' if @hostname.nil?
|
19
19
|
|
20
20
|
# TODO: add support for the proxy
|
21
21
|
|
@@ -44,7 +44,7 @@ module OpenStudio
|
|
44
44
|
if response.status == 200
|
45
45
|
projects_json = JSON.parse(response.body, symbolize_names: true, max_nesting: false)
|
46
46
|
else
|
47
|
-
|
47
|
+
raise 'did not receive a 200 in get_projects'
|
48
48
|
end
|
49
49
|
|
50
50
|
projects_json
|
@@ -82,12 +82,12 @@ module OpenStudio
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def new_project(options = {})
|
85
|
-
defaults = {project_name: "Project #{::Time.now.strftime('%Y-%m-%d %H:%M:%S')}"}
|
85
|
+
defaults = { project_name: "Project #{::Time.now.strftime('%Y-%m-%d %H:%M:%S')}" }
|
86
86
|
options = defaults.merge(options)
|
87
87
|
project_id = nil
|
88
88
|
|
89
89
|
# TODO: make this a display name and a machine name
|
90
|
-
project_hash = {project: {name:
|
90
|
+
project_hash = { project: { name: (options[:project_name]).to_s } }
|
91
91
|
|
92
92
|
response = @conn.post do |req|
|
93
93
|
req.url '/projects.json'
|
@@ -406,17 +406,17 @@ module OpenStudio
|
|
406
406
|
|
407
407
|
def new_analysis(project_id, options)
|
408
408
|
defaults = {
|
409
|
-
|
410
|
-
|
411
|
-
|
409
|
+
analysis_name: nil,
|
410
|
+
reset_uuids: false,
|
411
|
+
push_to_dencity: false
|
412
412
|
}
|
413
413
|
options = defaults.merge(options)
|
414
414
|
|
415
|
-
|
415
|
+
raise 'No project id passed' if project_id.nil?
|
416
416
|
|
417
417
|
formulation_json = nil
|
418
418
|
if options[:formulation_file]
|
419
|
-
|
419
|
+
raise "No formulation exists #{options[:formulation_file]}" unless File.exist?(options[:formulation_file])
|
420
420
|
formulation_json = JSON.parse(File.read(options[:formulation_file]), symbolize_names: true)
|
421
421
|
end
|
422
422
|
|
@@ -446,16 +446,16 @@ module OpenStudio
|
|
446
446
|
end
|
447
447
|
|
448
448
|
# set the analysis name
|
449
|
-
formulation_json[:analysis][:name] =
|
449
|
+
formulation_json[:analysis][:name] = (options[:analysis_name]).to_s unless options[:analysis_name].nil?
|
450
450
|
else
|
451
451
|
formulation_json = {
|
452
|
-
|
452
|
+
analysis: options
|
453
453
|
}
|
454
454
|
puts formulation_json
|
455
455
|
analysis_id = SecureRandom.uuid
|
456
456
|
formulation_json[:analysis][:uuid] = analysis_id
|
457
457
|
end
|
458
|
-
|
458
|
+
raise "No analysis id defined in analysis.json #{options[:formulation_file]}" if analysis_id.nil?
|
459
459
|
|
460
460
|
# save out this file to compare
|
461
461
|
# File.open('formulation_merge.json', 'w') { |f| f << JSON.pretty_generate(formulation_json) }
|
@@ -475,14 +475,14 @@ module OpenStudio
|
|
475
475
|
upload_to_dencity(analysis_id, formulation_json) if options[:push_to_dencity]
|
476
476
|
puts "new analysis created with ID: #{analysis_id}"
|
477
477
|
else
|
478
|
-
|
478
|
+
raise 'Could not create new analysis'
|
479
479
|
end
|
480
480
|
|
481
481
|
# check if we need to upload the analysis zip file
|
482
482
|
if options[:upload_file]
|
483
|
-
|
483
|
+
raise "upload file does not exist #{options[:upload_file]}" unless File.exist?(options[:upload_file])
|
484
484
|
|
485
|
-
payload = {file: Faraday::UploadIO.new(options[:upload_file], 'application/zip')}
|
485
|
+
payload = { file: Faraday::UploadIO.new(options[:upload_file], 'application/zip') }
|
486
486
|
response = @conn_multipart.post "analyses/#{analysis_id}/upload.json", payload do |req|
|
487
487
|
req.options[:timeout] = 1800 # seconds
|
488
488
|
end
|
@@ -490,7 +490,7 @@ module OpenStudio
|
|
490
490
|
if response.status == 201
|
491
491
|
puts 'Successfully uploaded ZIP file'
|
492
492
|
else
|
493
|
-
|
493
|
+
raise response.inspect
|
494
494
|
end
|
495
495
|
end
|
496
496
|
|
@@ -501,13 +501,13 @@ module OpenStudio
|
|
501
501
|
require 'dencity'
|
502
502
|
puts "Attempting to connect to DEnCity server using settings at '~/.dencity/config.yml'"
|
503
503
|
conn = Dencity.connect
|
504
|
-
|
504
|
+
raise "Could not connect to DEnCity server at #{hostname}." unless conn.connected?
|
505
505
|
begin
|
506
506
|
r = conn.login
|
507
507
|
rescue Faraday::ParsingError => user_id_failure
|
508
|
-
|
508
|
+
raise "Error in user_id field: #{user_id_failure.message}"
|
509
509
|
rescue MultiJson::ParseError => authentication_failure
|
510
|
-
|
510
|
+
raise "Error in attempted authentication: #{authentication_failure.message}"
|
511
511
|
end
|
512
512
|
user_uuid = r.id
|
513
513
|
|
@@ -528,7 +528,7 @@ module OpenStudio
|
|
528
528
|
break
|
529
529
|
end
|
530
530
|
end
|
531
|
-
|
531
|
+
raise "Analysis with user_defined_id of #{analysis_uuid} found on DEnCity." if found_analysis_uuid
|
532
532
|
dencity_hash = OpenStudio::Analysis.to_dencity_analysis(analysis, analysis_uuid)
|
533
533
|
|
534
534
|
# Write the analysis DEnCity hash to dencity_analysis.json
|
@@ -544,14 +544,14 @@ module OpenStudio
|
|
544
544
|
runner.registerError("Upload failure: #{e.message} in #{e.backtrace.join('/n')}")
|
545
545
|
else
|
546
546
|
if NoMethodError == upload_response.class
|
547
|
-
|
547
|
+
raise "ERROR: Server responded with a NoMethodError: #{upload_response}"
|
548
548
|
end
|
549
549
|
if upload_response.status.to_s[0] == '2'
|
550
550
|
puts 'Successfully uploaded processed analysis json file to the DEnCity server.'
|
551
551
|
else
|
552
552
|
puts 'ERROR: Server returned a non-20x status. Response below.'
|
553
553
|
puts upload_response
|
554
|
-
|
554
|
+
raise
|
555
555
|
end
|
556
556
|
end
|
557
557
|
end
|
@@ -562,12 +562,12 @@ module OpenStudio
|
|
562
562
|
# @option options [String] :datapoint_file Path to datapoint JSON to upload
|
563
563
|
# @option options [Boolean] :reset_uuids Flag on whether or not to reset the UUID in the datapoint JSON to a new random value.
|
564
564
|
def upload_datapoint(analysis_id, options)
|
565
|
-
defaults = {reset_uuids: false}
|
565
|
+
defaults = { reset_uuids: false }
|
566
566
|
options = defaults.merge(options)
|
567
567
|
|
568
|
-
|
569
|
-
|
570
|
-
|
568
|
+
raise 'No analysis id passed' if analysis_id.nil?
|
569
|
+
raise 'No datapoints file passed to new_analysis' unless options[:datapoint_file]
|
570
|
+
raise "No datapoints_file exists #{options[:datapoint_file]}" unless File.exist?(options[:datapoint_file])
|
571
571
|
|
572
572
|
dp_hash = JSON.parse(File.open(options[:datapoint_file]).read, symbolize_names: true)
|
573
573
|
|
@@ -591,7 +591,7 @@ module OpenStudio
|
|
591
591
|
puts "new datapoints created for analysis #{analysis_id}"
|
592
592
|
return JSON.parse(response.body, symbolize_names: true)
|
593
593
|
else
|
594
|
-
|
594
|
+
raise "could not create new datapoints #{response.body}"
|
595
595
|
end
|
596
596
|
end
|
597
597
|
|
@@ -601,9 +601,9 @@ module OpenStudio
|
|
601
601
|
defaults = {}
|
602
602
|
options = defaults.merge(options)
|
603
603
|
|
604
|
-
|
605
|
-
|
606
|
-
|
604
|
+
raise 'No analysis id passed' if analysis_id.nil?
|
605
|
+
raise 'No datapoints file passed to new_analysis' unless options[:datapoints_file]
|
606
|
+
raise "No datapoints_file exists #{options[:datapoints_file]}" unless File.exist?(options[:datapoints_file])
|
607
607
|
|
608
608
|
dp_hash = JSON.parse(File.open(options[:datapoints_file]).read, symbolize_names: true)
|
609
609
|
|
@@ -617,12 +617,12 @@ module OpenStudio
|
|
617
617
|
if response.status == 201
|
618
618
|
puts "new datapoints created for analysis #{analysis_id}"
|
619
619
|
else
|
620
|
-
|
620
|
+
raise "could not create new datapoints #{response.body}"
|
621
621
|
end
|
622
622
|
end
|
623
623
|
|
624
624
|
def start_analysis(analysis_id, options)
|
625
|
-
defaults = {analysis_action: 'start', without_delay: false}
|
625
|
+
defaults = { analysis_action: 'start', without_delay: false }
|
626
626
|
options = defaults.merge(options)
|
627
627
|
|
628
628
|
puts "Run analysis is configured with #{options.to_json}"
|
@@ -636,14 +636,14 @@ module OpenStudio
|
|
636
636
|
if response.status == 200
|
637
637
|
puts "Received request to run analysis #{analysis_id}"
|
638
638
|
else
|
639
|
-
|
639
|
+
raise 'Could not start the analysis'
|
640
640
|
end
|
641
641
|
end
|
642
642
|
|
643
643
|
# Kill the analysis
|
644
644
|
# @param analysis [String] Analysis ID to stop
|
645
645
|
def kill_analysis(analysis_id)
|
646
|
-
analysis_action = {analysis_action: 'stop'}
|
646
|
+
analysis_action = { analysis_action: 'stop' }
|
647
647
|
|
648
648
|
response = @conn.post do |req|
|
649
649
|
req.url "analyses/#{analysis_id}/action.json"
|
@@ -750,9 +750,9 @@ module OpenStudio
|
|
750
750
|
def run(formulation_filename, analysis_zip_filename, analysis_type,
|
751
751
|
options = {})
|
752
752
|
defaults = {
|
753
|
-
|
754
|
-
|
755
|
-
|
753
|
+
run_data_point_filename: 'run_openstudio_workflow_monthly.rb',
|
754
|
+
push_to_dencity: false,
|
755
|
+
batch_run_method: 'batch_run'
|
756
756
|
}
|
757
757
|
options = defaults.merge(options)
|
758
758
|
|
@@ -760,20 +760,20 @@ module OpenStudio
|
|
760
760
|
project_id = new_project(project_options)
|
761
761
|
|
762
762
|
analysis_options = {
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
763
|
+
formulation_file: formulation_filename,
|
764
|
+
upload_file: analysis_zip_filename,
|
765
|
+
reset_uuids: true,
|
766
|
+
push_to_dencity: options[:push_to_dencity]
|
767
767
|
}
|
768
768
|
|
769
769
|
analysis_id = new_analysis(project_id, analysis_options)
|
770
770
|
|
771
771
|
run_options = {
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
772
|
+
analysis_action: 'start',
|
773
|
+
without_delay: false,
|
774
|
+
analysis_type: analysis_type,
|
775
|
+
simulate_data_point_filename: 'simulate_data_point.rb', # TODO: remove these from server?
|
776
|
+
run_data_point_filename: options[:run_data_point_filename]
|
777
777
|
}
|
778
778
|
start_analysis(analysis_id, run_options)
|
779
779
|
|
@@ -781,11 +781,11 @@ module OpenStudio
|
|
781
781
|
# because there is no explicit way to tell the system to do it
|
782
782
|
if BATCH_RUN_METHODS.include? analysis_type
|
783
783
|
run_options = {
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
784
|
+
analysis_action: 'start',
|
785
|
+
without_delay: false,
|
786
|
+
analysis_type: options[:batch_run_method],
|
787
|
+
simulate_data_point_filename: 'simulate_data_point.rb',
|
788
|
+
run_data_point_filename: options[:run_data_point_filename]
|
789
789
|
}
|
790
790
|
start_analysis(analysis_id, run_options)
|
791
791
|
end
|
@@ -799,18 +799,18 @@ module OpenStudio
|
|
799
799
|
project_id = new_project(project_options)
|
800
800
|
|
801
801
|
analysis_options = {
|
802
|
-
|
803
|
-
|
804
|
-
|
802
|
+
formulation_file: formulation_filename,
|
803
|
+
upload_file: analysis_zip_filename,
|
804
|
+
reset_uuids: true
|
805
805
|
}
|
806
806
|
analysis_id = new_analysis(project_id, analysis_options)
|
807
807
|
|
808
808
|
run_options = {
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
809
|
+
analysis_action: 'start',
|
810
|
+
without_delay: false,
|
811
|
+
analysis_type: analysis_type,
|
812
|
+
simulate_data_point_filename: 'simulate_data_point.rb',
|
813
|
+
run_data_point_filename: run_data_point_filename
|
814
814
|
}
|
815
815
|
start_analysis(analysis_id, run_options)
|
816
816
|
|
@@ -822,18 +822,18 @@ module OpenStudio
|
|
822
822
|
project_id = new_project(project_options)
|
823
823
|
|
824
824
|
analysis_options = {
|
825
|
-
|
826
|
-
|
827
|
-
|
825
|
+
formulation_file: nil,
|
826
|
+
upload_file: nil,
|
827
|
+
reset_uuids: true
|
828
828
|
}
|
829
829
|
analysis_id = new_analysis(project_id, analysis_options)
|
830
830
|
|
831
831
|
run_options = {
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
832
|
+
analysis_action: 'start',
|
833
|
+
without_delay: false,
|
834
|
+
analysis_type: 'batch_run_analyses',
|
835
|
+
simulate_data_point_filename: 'simulate_data_point.rb',
|
836
|
+
run_data_point_filename: 'run_openstudio_workflow_monthly.rb'
|
837
837
|
}
|
838
838
|
start_analysis(analysis_id, run_options)
|
839
839
|
|
@@ -18,7 +18,7 @@ module OpenStudio
|
|
18
18
|
# @return [Boolean] Returns false if the file does not exist
|
19
19
|
def add(path_or_filename, metadata = {})
|
20
20
|
if !File.exist?(path_or_filename) && !Dir.exist?(path_or_filename)
|
21
|
-
|
21
|
+
raise "Path or file does not exist and cannot be added: #{path_or_filename}"
|
22
22
|
end
|
23
23
|
|
24
24
|
# only add if it isn't allready in the list
|