urbanopt-cli 0.3.0.pre1 → 0.3.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 300f91ac0998cd778f0cc3a1e250920ef9b4c522170b259b6d670353bb49bd78
4
- data.tar.gz: fc8c993cc405be6a972d9e3126bce4df1b4ee983a9797df3a638829190e7f9d5
3
+ metadata.gz: 5b94efb3b879736fb2ae42066df09074df251a867bc9a6e5445176b22f8f6f98
4
+ data.tar.gz: 66675088de2f51c32e75412b96ba1668a413237cfab5dfa7393770c2d5f6af87
5
5
  SHA512:
6
- metadata.gz: ebd6d8338f24f1f1a90dbe790971e9e76ae2fe6017f8536a062b60daf4954aa11d574b13fee67a62469376007dd8d2e902d26f98bc3bd21fe86eae4340813a2d
7
- data.tar.gz: 5e3ec3f318c88138869b4001f0ac3b01f1b584904c411036399c65ca07886d62e3027945bca86c5702bf571150cd86a63bceaea13c2c41c826bdabbd6593d63f
6
+ metadata.gz: 50315f0fc6c9e65046f64d8e32d24fdd33ead8c6ae26e2269c148caf98c75f034ddf4d3c9b6c359d5c9aba8aa8b7b36e32aaffa0924274a5e2ab54424330540b
7
+ data.tar.gz: de80f0f613d5fd773e521b0c423a9bdcf647d9bd87b7d2d64c5963b3870f0f6eb2030e5ab9cbfed12a49e0ef1ed226f271efd25bfd4e46f8758293ecade93e43
@@ -1,8 +1,14 @@
1
1
  # Changelog
2
2
 
3
- ## Version 0.3.0.pre1
3
+ ## Version 0.3.0
4
4
 
5
- Date Range: 04/23/20 - 05/20/20
5
+ Date Range: 04/23/20 - 06/05/20
6
+
7
+ - Fixed [#96]( https://github.com/urbanopt/urbanopt-cli/issues/96 ), Better error checking
8
+ - Fixed [#99]( https://github.com/urbanopt/urbanopt-cli/issues/99 ), CLI complexity is hindering usage
9
+ - Fixed [#100]( https://github.com/urbanopt/urbanopt-cli/issues/100 ), REopt gem is used even for non-reopt simulations and post-processing
10
+ - Fixed [#102]( https://github.com/urbanopt/urbanopt-cli/issues/102 ), Update change_log functionality
11
+ - Fixed [#103]( https://github.com/urbanopt/urbanopt-cli/issues/103 ), Update CLI to work with OS 3.0
6
12
 
7
13
  Update to OpenStudio 3.x and Ruby 2.5.x
8
14
 
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  # Specify dependencies in uo_cli.gemspec
@@ -38,7 +39,7 @@ allow_local = ENV['FAVOR_LOCAL_GEMS']
38
39
  # elsif allow_local
39
40
  # gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'develop'
40
41
  # else
41
- # gem 'urbanopt-scenario', '0.2.0'
42
+ # gem 'urbanopt-scenario', '0.3.0'
42
43
  # # temporary
43
44
  # # gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'develop'
44
45
  # end
@@ -49,7 +50,7 @@ allow_local = ENV['FAVOR_LOCAL_GEMS']
49
50
  # elsif allow_local
50
51
  # gem 'urbanopt-geojson', github: 'URBANopt/urbanopt-geojson-gem', branch: 'develop'
51
52
  # else
52
- # gem 'urbanopt-geojson', '0.2.0'
53
+ # gem 'urbanopt-geojson', '0.3.0'
53
54
  # # temporary
54
55
  # # gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'develop'
55
56
  # end
@@ -59,5 +60,5 @@ allow_local = ENV['FAVOR_LOCAL_GEMS']
59
60
  # elsif allow_local
60
61
  # gem 'urbanopt-reopt', github: 'URBANopt/urbanopt-reopt-gem', branch: 'develop'
61
62
  # else
62
- # gem 'urbanopt-reopt', '0.2.1'
63
+ # gem 'urbanopt-reopt', '0.3.0'
63
64
  # end
data/Rakefile CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  require 'bundler/gem_tasks'
2
3
  require 'rspec/core/rake_task'
3
4
  require 'rubocop/rake_task'
@@ -5,4 +6,9 @@ require 'rubocop/rake_task'
5
6
  RSpec::Core::RakeTask.new(:spec)
6
7
  RuboCop::RakeTask.new
7
8
 
9
+ # Load in the rake tasks from the base openstudio-extension gem
10
+ require 'openstudio/extension/rake_task'
11
+ os_extension = OpenStudio::Extension::RakeTask.new
12
+ os_extension.set_extension_class(OpenStudio::Extension::Extension, 'urbanopt/urbanopt-cli')
13
+
8
14
  task default: :spec
@@ -1,3 +1,4 @@
1
+
1
2
  # *********************************************************************************
2
3
  # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
4
  # contributors. All rights reserved.
@@ -1,3 +1,4 @@
1
+
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  ruby '~> 2.5.0'
@@ -10,50 +11,44 @@ ruby '~> 2.5.0'
10
11
  # checkout the latest version (develop) from github.
11
12
  allow_local = ENV['FAVOR_LOCAL_GEMS']
12
13
 
13
- # Uncomment the extension, common measures, core gems if you need to test local development versions. Otherwise
14
+ # Uncomment the extension, core gems if you need to test local development versions. Otherwise
14
15
  # these are included in the model articulation and urbanopt gems
15
16
  #
16
17
  # if allow_local && File.exist?('../OpenStudio-extension-gem')
17
18
  # gem 'openstudio-extension', path: '../OpenStudio-extension-gem'
18
19
  # elsif allow_local
19
- # gem 'openstudio-extension', github: 'NREL/OpenStudio-extension-gem', branch: 'develop'
20
+ # gem 'openstudio-extension', github: 'NREL/openstudio-extension-gem', branch: 'develop'
20
21
  # end
21
- #
22
- # if allow_local && File.exist?('../openstudio-common-measures-gem')
23
- # gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
24
- # elsif allow_local
25
- # gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', branch: 'develop'
26
- # end
27
- #
22
+
28
23
  # if allow_local && File.exist?('../urbanopt-core-gem')
29
24
  # gem 'urbanopt-core', path: '../urbanopt-core-gem'
30
25
  # elsif allow_local
31
- # gem 'urbanopt-core', github: 'URBANopt/urbanopt-core-gem', branch: 'develop'
26
+ # gem 'urbanopt-core', github: 'URBANopt/urbanopt-core-gem', branch: 'develop'
32
27
  # end
33
28
  #
34
29
 
35
- # if allow_local && File.exist?('../openstudio-common-measures-gem')
36
- # gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
37
- # elsif allow_local
38
- # gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', branch: 'develop'
39
- # end
40
-
41
- # if allow_local && File.exist?('../openstudio-model-articulation-gem')
42
- # gem 'openstudio-model-articulation', path: '../openstudio-model-articulation-gem'
43
- # elsif allow_local
44
- # gem 'openstudio-model-articulation', github: 'NREL/openstudio-model-articulation-gem', branch: 'develop'
45
- # else
46
- # gem 'openstudio-model-articulation', '0.1.0'
47
- # end
30
+ if allow_local && File.exist?('../openstudio-common-measures-gem')
31
+ gem 'openstudio-common-measures', path: '../openstudio-common-measures-gem'
32
+ elsif allow_local
33
+ gem 'openstudio-common-measures', github: 'NREL/openstudio-common-measures-gem', branch: 'develop'
34
+ else
35
+ gem 'openstudio-common-measures', '~> 0.2.0'
36
+ end
48
37
 
49
- gem 'urbanopt-reopt', '0.3.0.pre1'
38
+ if allow_local && File.exist?('../openstudio-model-articulation-gem')
39
+ gem 'openstudio-model-articulation', path: '../openstudio-model-articulation-gem'
40
+ elsif allow_local
41
+ gem 'openstudio-model-articulation', github: 'NREL/openstudio-model-articulation-gem', branch: 'develop'
42
+ else
43
+ gem 'openstudio-model-articulation', '~> 0.2.0'
44
+ end
50
45
 
51
46
  if allow_local && File.exist?('../urbanopt-scenario-gem')
52
47
  gem 'urbanopt-scenario', path: '../urbanopt-scenario-gem'
53
48
  elsif allow_local
54
49
  gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'develop'
55
50
  else
56
- gem 'urbanopt-scenario', '0.3.0.pre1'
51
+ gem 'urbanopt-scenario', '~> 0.3.0'
57
52
  end
58
53
 
59
54
  if allow_local && File.exist?('../urbanopt-geojson-gem')
@@ -61,5 +56,5 @@ if allow_local && File.exist?('../urbanopt-geojson-gem')
61
56
  elsif allow_local
62
57
  gem 'urbanopt-geojson', github: 'URBANopt/urbanopt-geojson-gem', branch: 'develop'
63
58
  else
64
- gem 'urbanopt-geojson', '0.3.0.pre1'
59
+ gem 'urbanopt-geojson', '~> 0.3.0'
65
60
  end
@@ -1,3 +1,4 @@
1
+
1
2
  # *********************************************************************************
2
3
  # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
4
  # contributors. All rights reserved.
@@ -1,3 +1,4 @@
1
+
1
2
  # *********************************************************************************
2
3
  # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
4
  # contributors. All rights reserved.
@@ -287,8 +287,7 @@ module URBANopt
287
287
 
288
288
  config_file = 'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/master/example_files/runner.conf'
289
289
  example_feature_file = 'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/master/example_files/example_project.json'
290
- # FIXME: Gemfile is TEMPORARILY pointint to branch. Restore to master before merging to master.
291
- example_gem_file = 'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/openstudio-3.x/example_files/Gemfile'
290
+ example_gem_file = 'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/master/example_files/Gemfile'
292
291
  remote_weather_files = [
293
292
  'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/master/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.epw',
294
293
  'https://raw.githubusercontent.com/urbanopt/urbanopt-cli/master/example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.ddy',
@@ -1,5 +1,6 @@
1
+
1
2
  module URBANopt
2
3
  module CLI
3
- VERSION = '0.3.0.pre1'.freeze
4
+ VERSION = '0.3.0'.freeze
4
5
  end
5
6
  end
@@ -31,14 +31,11 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ['lib']
32
32
  spec.required_ruby_version = '~> 2.5.0'
33
33
 
34
- # use specific versions of these dependencies while using Ruby 2.2
35
- #spec.add_development_dependency 'rack', '2.1.2'
36
-
37
34
  # use specific versions of urbanopt and openstudio dependencies while under heavy development
38
35
  spec.add_dependency 'optimist'
39
- spec.add_dependency 'urbanopt-geojson', '0.3.0.pre1'
40
- spec.add_dependency 'urbanopt-reopt', '0.3.0.pre1'
41
- spec.add_dependency 'urbanopt-scenario', '0.3.0.pre1'
36
+ spec.add_dependency 'urbanopt-geojson', '~> 0.3.0'
37
+ spec.add_dependency 'urbanopt-reopt', '~> 0.3.0'
38
+ spec.add_dependency 'urbanopt-scenario', '~> 0.3.0'
42
39
 
43
40
  spec.add_development_dependency 'bundler', '~> 2.1'
44
41
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanopt-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.pre1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-20 00:00:00.000000000 Z
11
+ date: 2020-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: optimist
@@ -28,44 +28,44 @@ dependencies:
28
28
  name: urbanopt-geojson
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '='
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.0.pre1
33
+ version: 0.3.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '='
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.0.pre1
40
+ version: 0.3.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: urbanopt-reopt
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.3.0.pre1
47
+ version: 0.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.3.0.pre1
54
+ version: 0.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: urbanopt-scenario
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.3.0.pre1
61
+ version: 0.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.3.0.pre1
68
+ version: 0.3.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +136,6 @@ files:
136
136
  - ".gitignore"
137
137
  - ".rspec"
138
138
  - ".rubocop.yml"
139
- - ".ruby-version"
140
139
  - CHANGELOG.md
141
140
  - CONTRIBUTING.md
142
141
  - Gemfile
@@ -162,7 +161,6 @@ files:
162
161
  - example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.ddy
163
162
  - example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.epw
164
163
  - example_files/weather/USA_NY_Buffalo-Greater.Buffalo.Intl.AP.725280_TMY3.stat
165
- - lib/change_log.rb
166
164
  - lib/uo_cli.rb
167
165
  - lib/uo_cli/version.rb
168
166
  - uo_cli.gemspec
@@ -182,9 +180,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
180
  version: 2.5.0
183
181
  required_rubygems_version: !ruby/object:Gem::Requirement
184
182
  requirements:
185
- - - ">"
183
+ - - ">="
186
184
  - !ruby/object:Gem::Version
187
- version: 1.3.1
185
+ version: '0'
188
186
  requirements: []
189
187
  rubygems_version: 3.1.2
190
188
  signing_key:
@@ -1,152 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'github_api'
4
- require 'date'
5
- require 'optparse'
6
- require 'optparse/date'
7
-
8
- # Instructions:
9
- # Get a token from github's settings (https://github.com/settings/tokens)
10
- # For security, set your token as an env variable. This script is prepared for one called GITHUB_CHANGELOG_TOKEN
11
- #
12
- # Example:
13
- # ruby change_log.rb -t abcdefghijklmnopqrstuvwxyz -s 2017-09-06
14
- #
15
-
16
- options = {}
17
- OptionParser.new do |opts|
18
- opts.banner = "Usage: change_log.rb [options]\n" \
19
- 'Prints New, Open, Closed Issues, and number of accepted PRs'
20
- opts.separator ''
21
-
22
- # defaults, go back 90 days
23
- options[:start_date] = Date.today - 90
24
- # Add one day to end date to make it inclusive of current day.
25
- options[:end_date] = Date.today + 1
26
-
27
- opts.on('-s', '--start-date [DATE]', Date, 'Start of data (e.g. 2017-09-06)') do |v|
28
- options[:start_date] = v
29
- end
30
- opts.on('-e', '--end-date [DATE]', Date, 'End of data (e.g. 2017-09-13)') do |v|
31
- options[:end_date] = v
32
- end
33
- opts.on('-t', '--token [String]', String, 'Github API Token') do |v|
34
- options[:token] = v
35
- end
36
- end.parse!
37
-
38
- # Convert dates to time objects
39
- options[:start_date] = Time.parse(options[:start_date].to_s)
40
- options[:end_date] = Time.parse(options[:end_date].to_s)
41
- puts options
42
-
43
- ### Repository options
44
- repo_owner = 'URBANopt'
45
- repo = 'uo-cli'
46
-
47
- github = Github.new
48
- if options[:token]
49
- puts 'Using github token'
50
- github = Github.new oauth_token: options[:token]
51
- elsif ENV['GITHUB_CHANGELOG_TOKEN']
52
- puts 'Using Github token from user environment'
53
- github = Github.new oauth_token: ENV['GITHUB_CHANGELOG_TOKEN']
54
- end
55
-
56
- total_open_issues = []
57
- total_open_pull_requests = []
58
- new_issues = []
59
- closed_issues = []
60
- accepted_pull_requests = []
61
-
62
- def get_num(issue)
63
- issue.html_url.split('/')[-1].to_i
64
- end
65
-
66
- def get_issue_num(issue)
67
- "\##{get_num(issue)}"
68
- end
69
-
70
- def get_html_url(issue)
71
- issue.html_url
72
- end
73
-
74
- def get_title(issue)
75
- issue.title
76
- end
77
-
78
- def print_issue(issue)
79
- is_feature = false
80
- issue.labels.each { |label| is_feature = true if label.name == 'Feature Request' }
81
-
82
- if is_feature
83
- "- Improved [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
84
- else
85
- "- Fixed [#{get_issue_num(issue)}]( #{get_html_url(issue)} ), #{get_title(issue)}"
86
- end
87
- end
88
-
89
- # Process Open Issues
90
- results = -1
91
- page = 1
92
- while results != 0
93
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
94
- state: 'open', per_page: 100, page: page
95
- results = resp.length
96
- resp.env[:body].each do |issue, _index|
97
- created = Time.parse(issue.created_at)
98
- if !issue.key?(:pull_request)
99
- total_open_issues << issue
100
- if created >= options[:start_date] && created <= options[:end_date]
101
- new_issues << issue
102
- end
103
- else
104
- total_open_pull_requests << issue
105
- end
106
- end
107
-
108
- page += 1
109
- end
110
-
111
- # Process Closed Issues
112
- results = -1
113
- page = 1
114
- while results != 0
115
- resp = github.issues.list user: repo_owner, repo: repo, sort: 'created', direction: 'asc',
116
- state: 'closed', per_page: 100, page: page
117
- results = resp.length
118
- resp.env[:body].each do |issue, _index|
119
- created = Time.parse(issue.created_at)
120
- closed = Time.parse(issue.closed_at)
121
- if !issue.key?(:pull_request)
122
- if created >= options[:start_date] && created <= options[:end_date]
123
- new_issues << issue
124
- end
125
- if closed >= options[:start_date] && closed <= options[:end_date]
126
- closed_issues << issue
127
- end
128
- elsif closed >= options[:start_date] && closed <= options[:end_date]
129
- accepted_pull_requests << issue
130
- end
131
- end
132
-
133
- page += 1
134
- end
135
-
136
- closed_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
137
- new_issues.sort! { |x, y| get_num(x) <=> get_num(y) }
138
- accepted_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
139
- total_open_pull_requests.sort! { |x, y| get_num(x) <=> get_num(y) }
140
-
141
- puts "Total Open Issues: #{total_open_issues.length}"
142
- puts "Total Open Pull Requests: #{total_open_pull_requests.length}"
143
- puts "\nDate Range: #{options[:start_date].strftime('%m/%d/%y')} - #{options[:end_date].strftime('%m/%d/%y')}:"
144
- puts "\nNew Issues: #{new_issues.length} (" + new_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'
145
-
146
- puts "\nClosed Issues: #{closed_issues.length}"
147
- closed_issues.each { |issue| puts print_issue(issue) }
148
-
149
- puts "\nAccepted Pull Requests: #{accepted_pull_requests.length}"
150
- accepted_pull_requests.each { |issue| puts print_issue(issue) }
151
-
152
- puts "\nAll Open Issues: #{total_open_issues.length} (" + total_open_issues.map { |issue| get_issue_num(issue) }.join(', ') + ')'