openstudio-workflow 1.0.0.pat1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +16 -68
- data/Rakefile +9 -9
- data/bin/openstudio_cli +786 -0
- data/lib/openstudio/workflow/adapters/input/local.rb +97 -0
- data/lib/openstudio/workflow/adapters/output/local.rb +90 -0
- data/lib/openstudio/workflow/adapters/output/socket.rb +70 -0
- data/lib/openstudio/workflow/{jobs/run_preflight/run_preflight.rb → adapters/output/web.rb} +37 -19
- data/lib/openstudio/workflow/{adapter.rb → adapters/output_adapter.rb} +53 -51
- data/lib/openstudio/workflow/job.rb +22 -0
- data/lib/openstudio/workflow/jobs/{run_energyplus → resources}/monthly_report.idf +0 -0
- data/lib/openstudio/workflow/jobs/run_energyplus.rb +49 -0
- data/lib/openstudio/workflow/jobs/run_ep_measures.rb +55 -0
- data/lib/openstudio/workflow/jobs/run_initialization.rb +136 -0
- data/lib/openstudio/workflow/jobs/run_os_measures.rb +59 -0
- data/lib/openstudio/workflow/jobs/run_postprocess.rb +53 -0
- data/lib/openstudio/workflow/jobs/run_preprocess.rb +81 -0
- data/lib/openstudio/workflow/jobs/run_reporting_measures.rb +86 -0
- data/lib/openstudio/workflow/jobs/run_translation.rb +49 -0
- data/lib/openstudio/workflow/multi_delegator.rb +1 -3
- data/lib/openstudio/workflow/registry.rb +137 -0
- data/lib/openstudio/workflow/run.rb +182 -221
- data/lib/openstudio/workflow/time_logger.rb +1 -1
- data/lib/openstudio/workflow/util/energyplus.rb +564 -0
- data/lib/openstudio/workflow/util/io.rb +33 -0
- data/lib/openstudio/workflow/util/measure.rb +520 -0
- data/lib/openstudio/workflow/util/model.rb +100 -0
- data/lib/openstudio/workflow/util/post_process.rb +177 -0
- data/lib/openstudio/workflow/util/weather_file.rb +108 -0
- data/lib/openstudio/workflow/util.rb +14 -0
- data/lib/openstudio/workflow/version.rb +1 -1
- data/lib/openstudio/workflow_json.rb +399 -0
- data/lib/openstudio/workflow_runner.rb +213 -0
- data/lib/openstudio-workflow.rb +13 -118
- metadata +45 -85
- data/lib/openstudio/extended_runner.rb +0 -105
- data/lib/openstudio/workflow/adapters/local.rb +0 -101
- data/lib/openstudio/workflow/adapters/mongo.rb +0 -227
- data/lib/openstudio/workflow/jobs/lib/apply_measures.rb +0 -253
- data/lib/openstudio/workflow/jobs/run_energyplus/run_energyplus.rb +0 -314
- data/lib/openstudio/workflow/jobs/run_openstudio/run_openstudio.rb +0 -230
- data/lib/openstudio/workflow/jobs/run_postprocess/run_postprocess.rb +0 -110
- data/lib/openstudio/workflow/jobs/run_reporting_measures/run_reporting_measures.rb +0 -471
- data/lib/openstudio/workflow/jobs/run_runmanager/run_runmanager.rb +0 -247
- data/lib/openstudio/workflow/jobs/run_xml/run_xml.rb +0 -279
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41a1b251ada32dafc258c2f0fc90afbbc4ba043d
|
4
|
+
data.tar.gz: 87b2d6a43d56d43c2eb51317ec060fbdb5737026
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52e7e0b922390bf6ba53039a35d31da5db0a5d1936d014147158c878ec6366b86f39186f6b5834783e46e63d06577933acc369aa21fb6b194be77341ddb66f77
|
7
|
+
data.tar.gz: e307a06376afd682d42a8f02e07450eb939fba1d07bd7d4d096966a7b6d7aad1fc27286ad8d349c089490b5287dc125bf36c972192daed8448835a051fb3853c
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
OpenStudio::Workflow Change Log
|
2
2
|
==================================
|
3
3
|
|
4
|
+
Version '1.0.0-rc1' (Not released)
|
5
|
+
-------------------
|
6
|
+
* Use specific version of OpenStudio Analysis Gem
|
7
|
+
* Fix tests
|
8
|
+
* Remove to_underscore method (use OpenStudio.toUnderscoreCase(...) if needed)
|
9
|
+
|
10
|
+
Version '1.0.0-alpha.0'
|
11
|
+
-----------------------
|
12
|
+
* Support new workflow for PAT 2.0. Many of these changes are breaking changes
|
13
|
+
* Remove rake from gemspec
|
14
|
+
* Update rubyzip to version 1.2
|
15
|
+
|
4
16
|
Version 0.2.0
|
5
17
|
------------------
|
6
18
|
* Use EnergyPlus that is packaged with OpenStudio. The branch of this repo is no longer tied to the version of EnergyPlus
|
data/README.md
CHANGED
@@ -1,68 +1,24 @@
|
|
1
1
|
# OpenStudio::Workflow
|
2
|
-
[![Circle CI](https://circleci.com/gh/NREL/OpenStudio-workflow-gem/tree/
|
3
|
-
[![Coverage Status](https://coveralls.io/repos/NREL/OpenStudio-workflow-gem/badge.svg?branch=
|
4
|
-
[![Dependency Status](https://www.versioneye.com/user/projects/5531fb7b10e714121100102e/badge.svg?style=flat)](https://www.versioneye.com/user/projects/5531fb7b10e714121100102e)
|
2
|
+
[![Circle CI](https://circleci.com/gh/NREL/OpenStudio-workflow-gem/tree/osw.svg?style=svg)](https://circleci.com/gh/NREL/OpenStudio-workflow-gem/tree/osw)
|
3
|
+
[![Coverage Status](https://coveralls.io/repos/NREL/OpenStudio-workflow-gem/badge.svg?branch=osw&service=github)](https://coveralls.io/github/NREL/OpenStudio-workflow-gem?branch=osw)
|
5
4
|
|
6
|
-
|
5
|
+
## OpenStudio Workflow branch
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
The OpenStudio Workflow Gem has the following dependencies:
|
11
|
-
|
12
|
-
* Ruby 2.0
|
13
|
-
* OpenStudio with Ruby 2.0 bindings
|
14
|
-
* EnergyPlus 8.3 (assuming OpenStudio >= 1.7.2)
|
15
|
-
* MongoDB if using MongoDB Adapter (or when running rspec)
|
16
|
-
|
17
|
-
[OpenStudio](http://developer.nrel.gov/downloads/buildings/openstudio/builds/) needs to be installed
|
18
|
-
and in your path. On Mac/Linux it is easiest to add the following to your .bash_profile or /etc/profile.d/<file>.sh to ensure OpenStudio can be loaded.
|
19
|
-
|
20
|
-
export OPENSTUDIO_ROOT=/usr/local
|
21
|
-
export RUBYLIB=$OPENSTUDIO_ROOT/lib/ruby/site_ruby/2.0.0
|
22
|
-
|
23
|
-
Add this line to your application's Gemfile:
|
24
|
-
|
25
|
-
gem 'OpenStudio-workflow'
|
26
|
-
|
27
|
-
And then execute:
|
28
|
-
|
29
|
-
Mac/Linux:
|
30
|
-
|
31
|
-
$ bundle
|
32
|
-
|
33
|
-
Windows (avoids native extensions):
|
34
|
-
|
35
|
-
$ bundle install --without xml profile
|
36
|
-
|
37
|
-
Or install it yourself as:
|
38
|
-
|
39
|
-
$ gem install OpenStudio-workflow
|
40
|
-
|
41
|
-
## Usage
|
42
|
-
|
43
|
-
Note that the branches of the Workflow Gem depict which version of EnergyPlus is in use. The develop branch at the
|
44
|
-
moment should not be used.
|
45
|
-
|
46
|
-
There are currently two adapters to run OpenStudio workflow. The first is a simple Local adapter
|
47
|
-
allowing the user to pass in the directory to simulation. The directory must have an
|
48
|
-
[analysis/problem JSON file](spec/files/local_ex1/analysis_1.json) and a [datapoint JSON file](spec/files/local_ex1/datapoint_1.json).
|
49
|
-
The workflow manager will use these data (and the measures, seed model, and weather data) to assemble and
|
50
|
-
execute the standard workflow of (preflight->openstudio measures->energyplus->postprocess).
|
51
|
-
|
52
|
-
r = OpenStudio::Workflow.load 'Local', '/home/user/a_directory', options
|
53
|
-
r.run
|
54
|
-
|
55
|
-
The workflow manager can also use MongoDB to receive instructions on the workflow to run and the data point values.
|
7
|
+
This branch is the development branch for the OpenStudio 2.0 workflow gem. This will become the primary branch when OpenStudio 2.0 is released.
|
56
8
|
|
57
9
|
## Caveats and Todos
|
58
10
|
|
59
11
|
### Todos
|
60
12
|
|
61
|
-
*
|
13
|
+
* Find a better home for monthly_reports.idf
|
14
|
+
* Fix issues around where standard reports and calibration reports run (and make them optional enabled)
|
15
|
+
* Move registry into the WorkflowRunner class; this includes logging
|
16
|
+
* Add a test to ensure that the models being returned contain alterations after apply_measure
|
17
|
+
* Add unit tests for each util method
|
18
|
+
* Clean up log messages (and code flow) for @current_state in run.rb
|
19
|
+
* Define and document the complete set of options for the adapter and run classes
|
62
20
|
* Implement better error handling with custom exception classes
|
63
21
|
* Add a results adapter to return a string as the last call based on the source of the call. (e.g. R, command line, C++, etc).
|
64
|
-
* Implement a logger in the Adapters, right now they are unable to log
|
65
|
-
* Hook up the measure group based workflows
|
66
22
|
|
67
23
|
## Testing
|
68
24
|
|
@@ -71,24 +27,16 @@ The preferred way for testing is to run rspec either natively or via docker. The
|
|
71
27
|
### Locally
|
72
28
|
|
73
29
|
```
|
74
|
-
|
30
|
+
rspec spec/
|
75
31
|
```
|
76
32
|
|
77
33
|
### Docker
|
78
34
|
|
79
|
-
To run all the tests automatically run:
|
80
|
-
```
|
81
|
-
docker run --rm -v $(pwd):/var/simdata/openstudio nrel/docker-test-containers:openstudio-1.8.5-mongo-2.4 /var/simdata/openstudio/test/bin/docker-run.sh
|
82
|
-
```
|
83
|
-
|
84
|
-
To run the tests inside docker and enable debugging, then create a bash shell in docker with:
|
85
35
|
```
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
# or
|
91
|
-
bundle exec rspec <file>:<line>
|
36
|
+
export OPENSTUDIO_VERSION=1.13.0
|
37
|
+
docker run -v $(pwd):/var/simdata/openstudio \
|
38
|
+
nrel/openstudio:$OPENSTUDIO_VERSION \
|
39
|
+
/var/simdata/openstudio/test/bin/docker-run.sh
|
92
40
|
```
|
93
41
|
|
94
42
|
## Contributing
|
data/Rakefile
CHANGED
@@ -1,12 +1,5 @@
|
|
1
1
|
require 'bundler'
|
2
|
-
|
3
|
-
begin
|
4
|
-
Bundler.setup
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts 'Run `bundle install` to install missing gems'
|
8
|
-
exit e.status_code
|
9
|
-
end
|
2
|
+
Bundler.setup
|
10
3
|
|
11
4
|
require 'rspec/core/rake_task'
|
12
5
|
|
@@ -22,6 +15,7 @@ RSpec::Core::RakeTask.new('spec:unit') do |spec|
|
|
22
15
|
end
|
23
16
|
|
24
17
|
task 'spec:unit' => 'ci:setup:rspec'
|
18
|
+
task default: 'spec:unit'
|
25
19
|
|
26
20
|
require 'rubocop/rake_task'
|
27
21
|
desc 'Run RuboCop on the lib directory'
|
@@ -33,4 +27,10 @@ RuboCop::RakeTask.new(:rubocop) do |task|
|
|
33
27
|
task.fail_on_error = false
|
34
28
|
end
|
35
29
|
|
36
|
-
|
30
|
+
require 'openstudio-workflow'
|
31
|
+
desc 'test extracting zip'
|
32
|
+
task :test_zip do
|
33
|
+
f = File.join(File.dirname(__FILE__), 'spec/files/example_models/the_project.zip')
|
34
|
+
puts "Trying to extract #{f}"
|
35
|
+
OpenStudio::Workflow.extract_archive(f, 'junk_out', true)
|
36
|
+
end
|