urbanopt-cli 0.11.0 → 0.12.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 +4 -4
- data/.github/workflows/nightly_ci_build.yml +13 -16
- data/CHANGELOG.md +21 -0
- data/CMakeLists.txt +12 -7
- data/FindOpenStudioSDK.cmake +13 -8
- data/Gemfile +3 -3
- data/bin/console +0 -7
- data/example_files/Gemfile +3 -3
- data/example_files/mappers/Baseline.rb +1 -1
- data/example_files/mappers/residential/template/util.rb +0 -2
- data/example_files/mappers/residential/util.rb +0 -1
- data/example_files/measures/BuildResidentialModel/measure.rb +3 -4
- data/example_files/measures/BuildResidentialModel/tests/test_build_residential_model.rb +23 -23
- data/example_files/python_deps/dependencies.json +4 -4
- data/example_files/python_deps/install_python.ps1 +1 -1
- data/example_files/reopt/base_assumptions.json +121 -144
- data/example_files/reopt/multiPV_assumptions.json +160 -180
- data/lib/uo_cli/version.rb +1 -1
- data/lib/uo_cli.rb +97 -44
- data/scripts/setup-env-gitbash.sh +1 -2
- data/scripts/setup-env-unix.sh +1 -1
- data/scripts/setup-env.bat +3 -4
- data/scripts/setup-env.ps1 +6 -7
- data/uo_cli.gemspec +3 -3
- metadata +8 -9
- data/example_files/Gemfile.lock +0 -177
data/lib/uo_cli.rb
CHANGED
@@ -66,6 +66,8 @@ module URBANopt
|
|
66
66
|
send("opt_#{@command}") ## dispatch to command handling method
|
67
67
|
rescue NoMethodError
|
68
68
|
abort('Invalid command, please run uo --help for a list of available commands')
|
69
|
+
rescue StandardError => e
|
70
|
+
puts "\nERROR: #{e.message}"
|
69
71
|
end
|
70
72
|
end
|
71
73
|
|
@@ -288,26 +290,26 @@ module URBANopt
|
|
288
290
|
@subopts = Optimist.options do
|
289
291
|
banner "\nURBANopt #{@command}:\n \n"
|
290
292
|
|
291
|
-
opt :default, "\nStandard post-processing for your scenario"
|
293
|
+
opt :default, "\nStandard post-processing for your scenario", short: :d
|
292
294
|
|
293
|
-
opt :opendss, "\nPost-process with OpenDSS"
|
295
|
+
opt :opendss, "\nPost-process with OpenDSS", short: :o
|
294
296
|
|
295
|
-
opt :disco, "\nPost-process with DISCO"
|
297
|
+
opt :disco, "\nPost-process with DISCO", short: :i
|
296
298
|
|
297
299
|
opt :reopt_scenario, "\nOptimize for entire scenario with REopt. Used with the --reopt-scenario-assumptions-file to specify the assumptions to use.\n" \
|
298
|
-
'Example: uo process --reopt-scenario'
|
300
|
+
'Example: uo process --reopt-scenario', short: :r
|
299
301
|
|
300
302
|
opt :reopt_feature, "\nOptimize for each building individually with REopt\n" \
|
301
|
-
'Example: uo process --reopt-feature'
|
303
|
+
'Example: uo process --reopt-feature', short: :e
|
302
304
|
|
303
305
|
opt :reopt_resilience, "\nInclude resilience reporting in REopt optimization\n" \
|
304
|
-
'Example: uo process --reopt-scenario --reopt-resilience'
|
306
|
+
'Example: uo process --reopt-scenario --reopt-resilience', short: :p
|
305
307
|
|
306
308
|
opt :reopt_keep_existing, "\nKeep existing reopt feature optimizations instead of rerunning them to avoid rate limit issues.\n" \
|
307
309
|
'Example: uo process --reopt-feature --reopt-keep-existing', short: :k
|
308
310
|
|
309
311
|
opt :with_database, "\nInclude a sql database output of post-processed results\n" \
|
310
|
-
'Example: uo process --default --with-database'
|
312
|
+
'Example: uo process --default --with-database', short: :w
|
311
313
|
|
312
314
|
opt :reopt_scenario_assumptions_file, "\nPath to the scenario REopt assumptions JSON file you want to use. Use with the --reopt-scenario post-processor.\n" \
|
313
315
|
'If not specified, the reopt/base_assumptions.json file will be used', type: String, short: :a
|
@@ -362,20 +364,25 @@ module URBANopt
|
|
362
364
|
@subopts = Optimist.options do
|
363
365
|
banner "\nURBANopt #{@command}:\n \n"
|
364
366
|
|
365
|
-
opt :
|
367
|
+
opt :sys_param, "\nBuild a system parameters JSON config file for Modelica District Energy System or Ground Heat Exchanger simulation using URBANopt SDK outputs\n" \
|
366
368
|
"Provide path/name of json file to be created\n" \
|
367
|
-
'Example: uo des_params --sys-param
|
369
|
+
'Example: uo des_params --sys-param path/to/sys_params.json', type: String, required: true, short: :y
|
368
370
|
|
369
371
|
opt :scenario, "\nPath to the scenario CSV file\n" \
|
370
|
-
"Example: uo des_params --sys-param
|
372
|
+
"Example: uo des_params --sys-param path/to/sys_params.json --scenario path/to/baseline_scenario.csv\n", type: String, required: true, short: :s
|
371
373
|
|
372
374
|
opt :feature, "\nPath to the feature JSON file\n" \
|
373
|
-
"Example: uo des_params --sys-param
|
375
|
+
"Example: uo des_params --sys-param path/to/sys_params.json --feature path/to/example_project.json\n", type: String, required: true, short: :f
|
374
376
|
|
375
377
|
opt :model_type, "\nSelection for which kind of DES simulation to perform\n" \
|
376
378
|
"Valid choices: 'time_series'", type: String, default: 'time_series'
|
377
379
|
|
378
|
-
opt :
|
380
|
+
opt :district_type, "\nSelection for which kind of district system parameters to generate\n" \
|
381
|
+
"Example: uo des_params --sys-param path/to/sys_params.json --feature path/to/example_project.json --district-type 5G_ghe\n" \
|
382
|
+
'If not specified, the default 4G district type will be used', type: String, required: false, short: :t
|
383
|
+
|
384
|
+
opt :overwrite, "\nDelete and rebuild existing sys-param file\n", short: :o
|
385
|
+
'Example: uo des_params --sys-param path/to/sys_params.json --feature path/to/example_project.json --overwrite'
|
379
386
|
end
|
380
387
|
end
|
381
388
|
|
@@ -383,18 +390,17 @@ module URBANopt
|
|
383
390
|
@subopts = Optimist.options do
|
384
391
|
banner "\nURBANopt #{@command}:\n"
|
385
392
|
|
386
|
-
opt :sys_param, "
|
393
|
+
opt :sys_param, "\nPath to system parameters config file, possibly created with 'des_params' command in this CLI\n" \
|
387
394
|
"Example: uo des_create --sys-param system_parameters.json\n", type: String, required: true, short: :y
|
388
395
|
|
389
|
-
opt :feature, "
|
396
|
+
opt :feature, "\nPath to the feature JSON file\n" \
|
390
397
|
'Example: uo des_create --feature path/to/example_project.json', type: String, required: true, short: :f
|
391
398
|
|
392
399
|
opt :des_name, "\nPath to Modelica project dir to be created\n" \
|
393
|
-
'Example: uo des_create --des-name path/to/example_modelica_project', type: String, required: true
|
394
|
-
|
395
|
-
opt :model_type, "\nSelection for which kind of DES simulation to perform\n" \
|
396
|
-
"Valid choices: 'time_series'", type: String, default: 'time_series'
|
400
|
+
'Example: uo des_create --des-name path/to/example_modelica_project', type: String, required: true, short: :n
|
397
401
|
|
402
|
+
opt :overwrite, "\nDelete and rebuild existing model directory\n", short: :o
|
403
|
+
'Example: uo des_create --des-name path/to/example_modelica_project --overwrite'
|
398
404
|
end
|
399
405
|
end
|
400
406
|
|
@@ -436,6 +442,8 @@ module URBANopt
|
|
436
442
|
end
|
437
443
|
rescue NoMethodError
|
438
444
|
abort('Invalid command, please run uo --help for a list of available commands')
|
445
|
+
rescue StandardError => e
|
446
|
+
puts "\nERROR: #{e.message}"
|
439
447
|
end
|
440
448
|
|
441
449
|
# FIXME: Can this be combined with the above block? This isn't very DRY
|
@@ -466,9 +474,11 @@ module URBANopt
|
|
466
474
|
|
467
475
|
feature_file = URBANopt::GeoJSON::GeoFile.from_file(featurefile)
|
468
476
|
if @opthash.subopts[:reopt] == true || @opthash.subopts[:reopt_scenario] == true || @opthash.subopts[:reopt_feature] == true
|
469
|
-
|
470
|
-
|
471
|
-
|
477
|
+
parsed_scenario_file = CSV.read(csv_file, headers: true, col_sep: ',')
|
478
|
+
# TODO: determine what to do if multiple assumptions are provided
|
479
|
+
# num_unique_reopt_assumptions = parsed_scenario_file['REopt Assumptions'].tally.size
|
480
|
+
# Use the first assumption as the default
|
481
|
+
reopt_assumptions_filename = parsed_scenario_file['REopt Assumptions'][0]
|
472
482
|
scenario_output = URBANopt::Scenario::REoptScenarioCSV.new(
|
473
483
|
@scenario_name.downcase,
|
474
484
|
@root_dir,
|
@@ -507,6 +517,8 @@ module URBANopt
|
|
507
517
|
# Rescue if file isn't json
|
508
518
|
rescue JSON::ParserError => e
|
509
519
|
abort("\nOops! You didn't provide a json file. Please provide path to the geojson feature_file")
|
520
|
+
rescue StandardError => e
|
521
|
+
puts "\nERROR: #{e.message}"
|
510
522
|
end
|
511
523
|
Dir["#{@feature_path}/mappers/*.rb"].each do |mapper_file|
|
512
524
|
mapper_name = File.basename(mapper_file, File.extname(mapper_file))
|
@@ -534,6 +546,8 @@ module URBANopt
|
|
534
546
|
# Rescue if json isn't a geojson feature_file
|
535
547
|
rescue NoMethodError
|
536
548
|
abort("\nOops! You didn't provde a valid feature_file. Please provide path to the geojson feature_file")
|
549
|
+
rescue StandardError => e
|
550
|
+
puts "\nERROR: #{e.message}"
|
537
551
|
end
|
538
552
|
end
|
539
553
|
end
|
@@ -934,7 +948,7 @@ module URBANopt
|
|
934
948
|
|
935
949
|
# Check Python
|
936
950
|
def self.check_python(python_only: false)
|
937
|
-
results = { python: false, pvars: [], message:
|
951
|
+
results = { python: false, pvars: [], message: [], python_deps: false, result: false }
|
938
952
|
puts 'Checking system.....'
|
939
953
|
pvars = setup_python_variables
|
940
954
|
results[:pvars] = pvars
|
@@ -942,7 +956,7 @@ module URBANopt
|
|
942
956
|
# check vars
|
943
957
|
if pvars[:python_path].nil? || pvars[:pip_path].nil?
|
944
958
|
# need to install
|
945
|
-
results[:message]
|
959
|
+
results[:message] << 'Python paths have not yet been initialized with URBANopt.'
|
946
960
|
puts results[:message]
|
947
961
|
return results
|
948
962
|
end
|
@@ -952,7 +966,7 @@ module URBANopt
|
|
952
966
|
if stderr.empty?
|
953
967
|
puts "...python found at #{pvars[:python_path]}"
|
954
968
|
else
|
955
|
-
results[:message]
|
969
|
+
results[:message] << "ERROR installing python: #{stderr}"
|
956
970
|
puts results[:message]
|
957
971
|
return results
|
958
972
|
end
|
@@ -962,7 +976,7 @@ module URBANopt
|
|
962
976
|
if stderr.empty?
|
963
977
|
puts "...pip found at #{pvars[:pip_path]}"
|
964
978
|
else
|
965
|
-
results[:message]
|
979
|
+
results[:message] << "ERROR finding pip: #{stderr}"
|
966
980
|
puts results[:message]
|
967
981
|
return results
|
968
982
|
end
|
@@ -982,6 +996,12 @@ module URBANopt
|
|
982
996
|
else
|
983
997
|
stdout, stderr, status = Open3.capture3("#{pvars[:pip_path]} show #{dep[:name]}")
|
984
998
|
end
|
999
|
+
if @opthash.subopts[:verbose]
|
1000
|
+
puts dep[:name]
|
1001
|
+
puts "stdout: #{stdout}"
|
1002
|
+
puts "status: #{status}"
|
1003
|
+
end
|
1004
|
+
|
985
1005
|
if stderr.empty?
|
986
1006
|
# check versions
|
987
1007
|
m = stdout.match(/^Version: (\S{3,}$)/)
|
@@ -996,14 +1016,17 @@ module URBANopt
|
|
996
1016
|
end
|
997
1017
|
end
|
998
1018
|
if err
|
999
|
-
results[:message]
|
1019
|
+
results[:message] << "incorrect version found for #{dep[:name]}...expecting version #{dep[:version]}"
|
1000
1020
|
puts results[:message]
|
1001
1021
|
errors << stderr
|
1002
1022
|
end
|
1003
1023
|
else
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1024
|
+
# ignore warnings
|
1025
|
+
unless stderr.include? 'WARNING:'
|
1026
|
+
results[:message] << stderr
|
1027
|
+
puts results[:message]
|
1028
|
+
errors << stderr
|
1029
|
+
end
|
1007
1030
|
end
|
1008
1031
|
end
|
1009
1032
|
if errors.empty?
|
@@ -1011,8 +1034,11 @@ module URBANopt
|
|
1011
1034
|
end
|
1012
1035
|
end
|
1013
1036
|
|
1014
|
-
# all is good
|
1015
|
-
results[:
|
1037
|
+
# all is good if messages are empty
|
1038
|
+
if results[:message].empty?
|
1039
|
+
results[:result] = true
|
1040
|
+
end
|
1041
|
+
|
1016
1042
|
return results
|
1017
1043
|
end
|
1018
1044
|
|
@@ -1111,7 +1137,7 @@ module URBANopt
|
|
1111
1137
|
if dep[:version].nil?
|
1112
1138
|
the_command = "#{pvars[:pip_path]} install #{dep[:name]}"
|
1113
1139
|
else
|
1114
|
-
the_command = "#{pvars[:pip_path]} install #{dep[:name]}
|
1140
|
+
the_command = "#{pvars[:pip_path]} install #{dep[:name]}==#{dep[:version]}"
|
1115
1141
|
end
|
1116
1142
|
|
1117
1143
|
if @opthash.subopts[:verbose]
|
@@ -1122,7 +1148,7 @@ module URBANopt
|
|
1122
1148
|
puts "status: #{status}"
|
1123
1149
|
puts "stdout: #{stdout}"
|
1124
1150
|
end
|
1125
|
-
if
|
1151
|
+
if !stderr.empty?
|
1126
1152
|
puts "Error installing: #{stderr}"
|
1127
1153
|
end
|
1128
1154
|
end
|
@@ -1291,6 +1317,8 @@ module URBANopt
|
|
1291
1317
|
end
|
1292
1318
|
rescue Errno::ENOENT # Same abort message if there is no run_dir
|
1293
1319
|
abort("ERROR: URBANopt simulations are required before using opendss. Please run and process simulations, then try again.\n")
|
1320
|
+
rescue StandardError => e
|
1321
|
+
puts "\nERROR: #{e.message}"
|
1294
1322
|
end
|
1295
1323
|
|
1296
1324
|
ditto_cli_root = "#{res[:pvars][:ditto_path]} run-opendss "
|
@@ -1334,6 +1362,8 @@ module URBANopt
|
|
1334
1362
|
rescue FileNotFoundError
|
1335
1363
|
abort("\nMust post-process results before running OpenDSS. We recommend 'process --default'." \
|
1336
1364
|
"Once OpenDSS is run, you may then 'process --opendss'")
|
1365
|
+
rescue StandardError => e
|
1366
|
+
puts "\nERROR: #{e.message}"
|
1337
1367
|
end
|
1338
1368
|
end
|
1339
1369
|
|
@@ -1439,6 +1469,8 @@ module URBANopt
|
|
1439
1469
|
runner.post_process
|
1440
1470
|
rescue StandardError => e
|
1441
1471
|
abort("\nError: #{e.message}")
|
1472
|
+
rescue StandardError => e
|
1473
|
+
puts "\nERROR: #{e.message}"
|
1442
1474
|
end
|
1443
1475
|
|
1444
1476
|
# TODO: aggregate back into scenario reports and geojson file
|
@@ -1508,6 +1540,12 @@ module URBANopt
|
|
1508
1540
|
# Ensure reopt default files are prepared
|
1509
1541
|
# create_reopt_files(@opthash.subopts[:scenario])
|
1510
1542
|
|
1543
|
+
if @opthash.subopts[:reopt_resilience] == true
|
1544
|
+
abort('The REopt API is now using open-source optimization solvers; you may experience longer solve times and' \
|
1545
|
+
' timeout errors, especially for evaluations with net metering, resilience, and/or 3+ technologies. ' \
|
1546
|
+
'We will support resilience calculations with the REopt API in a future release.')
|
1547
|
+
end
|
1548
|
+
|
1511
1549
|
scenario_base = default_post_processor.scenario_base
|
1512
1550
|
|
1513
1551
|
# see if reopt-scenario-assumptions-file was passed in, otherwise use the default
|
@@ -1524,7 +1562,8 @@ module URBANopt
|
|
1524
1562
|
if feature[:properties][:district_system_type] && (feature[:properties][:district_system_type] == 'Community Photovoltaic')
|
1525
1563
|
community_photovoltaic << feature
|
1526
1564
|
end
|
1527
|
-
rescue StandardError
|
1565
|
+
rescue StandardError => e
|
1566
|
+
puts "\nERROR: #{e.message}"
|
1528
1567
|
end
|
1529
1568
|
reopt_post_processor = URBANopt::REopt::REoptPostProcessor.new(
|
1530
1569
|
scenario_report,
|
@@ -1551,7 +1590,8 @@ module URBANopt
|
|
1551
1590
|
if feature[:properties][:district_system_type] && (feature[:properties][:district_system_type] == 'Ground Mount Photovoltaic')
|
1552
1591
|
groundmount_photovoltaic[feature[:properties][:associated_building_id]] = feature[:properties][:footprint_area]
|
1553
1592
|
end
|
1554
|
-
rescue StandardError
|
1593
|
+
rescue StandardError => e
|
1594
|
+
puts "\nERROR: #{e.message}"
|
1555
1595
|
end
|
1556
1596
|
scenario_report_features = reopt_post_processor.run_scenario_report_features(
|
1557
1597
|
scenario_report: scenario_report,
|
@@ -1737,18 +1777,15 @@ module URBANopt
|
|
1737
1777
|
end
|
1738
1778
|
|
1739
1779
|
des_cli_root = "#{res[:pvars][:gmt_path]} build-sys-param"
|
1740
|
-
if @opthash.subopts[:
|
1741
|
-
des_cli_addition = " #{@opthash.subopts[:
|
1780
|
+
if @opthash.subopts[:sys_param]
|
1781
|
+
des_cli_addition = " #{@opthash.subopts[:sys_param]}"
|
1742
1782
|
if @opthash.subopts[:scenario]
|
1743
1783
|
des_cli_addition += " #{@opthash.subopts[:scenario]}"
|
1744
1784
|
end
|
1745
1785
|
if @opthash.subopts[:feature]
|
1746
1786
|
des_cli_addition += " #{@opthash.subopts[:feature]}"
|
1747
1787
|
end
|
1748
|
-
if @opthash.subopts[:
|
1749
|
-
des_cli_addition += " #{@opthash.subopts[:model_type]}"
|
1750
|
-
end
|
1751
|
-
if @opthash.subopts[:ghe]
|
1788
|
+
if @opthash.subopts[:district_type]
|
1752
1789
|
run_dir = @root_dir / 'run' / @scenario_name.downcase
|
1753
1790
|
ghe_run_dir = run_dir / 'ghe_dir'
|
1754
1791
|
# make ghe run dir
|
@@ -1756,7 +1793,14 @@ module URBANopt
|
|
1756
1793
|
Dir.mkdir ghe_run_dir
|
1757
1794
|
puts "Creating GHE results folder #{ghe_run_dir}"
|
1758
1795
|
end
|
1759
|
-
des_cli_addition += "
|
1796
|
+
des_cli_addition += " #{@opthash.subopts[:district_type]}"
|
1797
|
+
end
|
1798
|
+
if @opthash.subopts[:model_type]
|
1799
|
+
des_cli_addition += " #{@opthash.subopts[:model_type]}"
|
1800
|
+
end
|
1801
|
+
if @opthash.subopts[:overwrite]
|
1802
|
+
puts "\nDeleting and rebuilding existing sys-param file"
|
1803
|
+
des_cli_addition += ' --overwrite'
|
1760
1804
|
end
|
1761
1805
|
else
|
1762
1806
|
abort("\nCommand must include new system parameter file name, ScenarioFile, & FeatureFile. Please try again")
|
@@ -1765,6 +1809,8 @@ module URBANopt
|
|
1765
1809
|
system(des_cli_root + des_cli_addition)
|
1766
1810
|
rescue FileNotFoundError
|
1767
1811
|
abort("\nMust simulate using 'uo run' before preparing Modelica models.")
|
1812
|
+
rescue StandardError => e
|
1813
|
+
puts "\nERROR: #{e.message}"
|
1768
1814
|
end
|
1769
1815
|
end
|
1770
1816
|
|
@@ -1786,8 +1832,9 @@ module URBANopt
|
|
1786
1832
|
if @opthash.subopts[:des_name]
|
1787
1833
|
des_cli_addition += " #{File.expand_path(@opthash.subopts[:des_name])}"
|
1788
1834
|
end
|
1789
|
-
if @opthash.subopts[:
|
1790
|
-
|
1835
|
+
if @opthash.subopts[:overwrite]
|
1836
|
+
puts "\nDeleting and rebuilding existing Modelica dir"
|
1837
|
+
des_cli_addition += ' --overwrite'
|
1791
1838
|
end
|
1792
1839
|
else
|
1793
1840
|
abort("\nCommand must include system parameter file name, FeatureFile, and model name. Please try again")
|
@@ -1796,6 +1843,8 @@ module URBANopt
|
|
1796
1843
|
system(des_cli_root + des_cli_addition)
|
1797
1844
|
rescue FileNotFoundError
|
1798
1845
|
abort("\nMust simulate using 'uo run' before preparing Modelica models.")
|
1846
|
+
rescue StandardError => e
|
1847
|
+
puts "\nERROR: #{e.message}"
|
1799
1848
|
end
|
1800
1849
|
end
|
1801
1850
|
|
@@ -1818,6 +1867,8 @@ module URBANopt
|
|
1818
1867
|
system(des_cli_root + des_cli_addition)
|
1819
1868
|
rescue FileNotFoundError
|
1820
1869
|
abort("\nMust simulate using 'uo run' before preparing Modelica models.")
|
1870
|
+
rescue StandardError => e
|
1871
|
+
puts "\nERROR: #{e.message}"
|
1821
1872
|
end
|
1822
1873
|
end
|
1823
1874
|
|
@@ -1865,6 +1916,8 @@ module URBANopt
|
|
1865
1916
|
system(ghe_cli_root + ghe_cli_addition)
|
1866
1917
|
rescue FileNotFoundError
|
1867
1918
|
abort("\nFile Not Found Error Holder.")
|
1919
|
+
rescue StandardError => e
|
1920
|
+
puts "\nERROR: #{e.message}"
|
1868
1921
|
end
|
1869
1922
|
|
1870
1923
|
end
|
@@ -10,7 +10,7 @@ BASE_DIR_NAME=$(dirname `which $0`)
|
|
10
10
|
|
11
11
|
GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.7.0
|
12
12
|
GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.7.0
|
13
|
-
PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:$PATH
|
13
|
+
PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/gems/urbanopt-cli-0.11.1/example_files/python_deps/Miniconda-4.12.0/bin:$PATH
|
14
14
|
RUBYLIB=${BASE_DIR_NAME}/OpenStudio/Ruby
|
15
15
|
RUBY_DLL_PATH=${BASE_DIR_NAME}/OpenStudio/Ruby
|
16
16
|
|
@@ -24,4 +24,3 @@ echo "export GEM_PATH=\"${GEM_PATH}\"" >> ~/.env_uo.sh
|
|
24
24
|
echo "export PATH=\"${PATH}\"" >> ~/.env_uo.sh
|
25
25
|
echo "export RUBYLIB=\"${RUBYLIB}\"" >> ~/.env_uo.sh
|
26
26
|
echo "export RUBY_DLL_PATH=\"${RUBY_DLL_PATH}\"" >> ~/.env_uo.sh
|
27
|
-
|
data/scripts/setup-env-unix.sh
CHANGED
@@ -9,7 +9,7 @@ BASE_DIR_NAME="$(cd "$(dirname "$0")" && pwd)"
|
|
9
9
|
|
10
10
|
GEM_HOME=${BASE_DIR_NAME}/gems/ruby/2.7.0
|
11
11
|
GEM_PATH=${BASE_DIR_NAME}/gems/ruby/2.7.0
|
12
|
-
PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:$PATH
|
12
|
+
PATH=${BASE_DIR_NAME}/ruby/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/bin:${BASE_DIR_NAME}/gems/ruby/2.7.0/gems/urbanopt-cli-0.11.1/example_files/python_deps/Miniconda-4.12.0/bin:$PATH
|
13
13
|
RUBYLIB=${BASE_DIR_NAME}/OpenStudio/Ruby
|
14
14
|
RUBY_DLL_PATH=${BASE_DIR_NAME}/OpenStudio/Ruby
|
15
15
|
|
data/scripts/setup-env.bat
CHANGED
@@ -1,21 +1,20 @@
|
|
1
|
-
IF "%HOMEPATH%"=="" ECHO HOMEPATH is NOT defined. Please set this env value to your home directory before running this script.
|
1
|
+
IF "%HOMEPATH%"=="" ECHO HOMEPATH is NOT defined. Please set this env value to your home directory before running this script.
|
2
2
|
IF "%HOMEPATH%"=="" exit /B
|
3
3
|
|
4
4
|
SET BASE_DIR_NAME=%~d0%~p0
|
5
5
|
|
6
6
|
SET GEM_HOME=%BASE_DIR_NAME%\gems\ruby\2.7.0
|
7
7
|
SET GEM_PATH=%BASE_DIR_NAME%\gems\ruby\2.7.0
|
8
|
-
SET PATH=%BASE_DIR_NAME%\ruby\bin;%BASE_DIR_NAME%\gems\ruby\2.7.0\bin;%PATH%
|
8
|
+
SET PATH=%BASE_DIR_NAME%\ruby\bin;%BASE_DIR_NAME%\gems\ruby\2.7.0\bin;%BASE_DIR_NAME%\gems\ruby\2.7.0\gems\urbanopt-cli-0.11.1\example_files\python_deps\python-3.10;%PATH%
|
9
9
|
SET RUBYLIB=%BASE_DIR_NAME%\OpenStudio\Ruby
|
10
10
|
SET RUBY_DLL_PATH=%BASE_DIR_NAME%\OpenStudio\Ruby
|
11
11
|
|
12
12
|
IF EXIST %HOMEPATH%\.env_uo.bat (
|
13
13
|
del "%HOMEPATH%\.env_uo.bat"
|
14
|
-
)
|
14
|
+
)
|
15
15
|
|
16
16
|
echo SET "GEM_HOME=%GEM_HOME%">> "%HOMEPATH%\.env_uo.bat"
|
17
17
|
echo SET "GEM_PATH=%GEM_PATH%">> "%HOMEPATH%\.env_uo.bat"
|
18
18
|
echo SET "PATH=%PATH%">> "%HOMEPATH%\.env_uo.bat"
|
19
19
|
echo SET "RUBYLIB=%RUBYLIB%">> "%HOMEPATH%\.env_uo.bat"
|
20
20
|
echo SET "RUBY_DLL_PATH=%RUBY_DLL_PATH%">> "%HOMEPATH%\.env_uo.bat"
|
21
|
-
|
data/scripts/setup-env.ps1
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
# This is a simple setup script that generates an enviroment file that
|
2
|
-
# is used to setup the ruby enviroment to run the urbanopt-cli tool.
|
3
|
-
# To use just run this script in powershell (e.g. ./setup-env.ps1)
|
4
|
-
# Then you can use this env.ps1 to setup the enviroment.
|
5
|
-
# (e.g. . env.ps1)
|
1
|
+
# This is a simple setup script that generates an enviroment file that
|
2
|
+
# is used to setup the ruby enviroment to run the urbanopt-cli tool.
|
3
|
+
# To use just run this script in powershell (e.g. ./setup-env.ps1)
|
4
|
+
# Then you can use this env.ps1 to setup the enviroment.
|
5
|
+
# (e.g. . env.ps1)
|
6
6
|
|
7
7
|
if (-not (Test-Path $HOME)) { echo "env HOME needs to be set before running this script" }
|
8
8
|
if (-not (Test-Path $HOME)) { exit }
|
@@ -11,7 +11,7 @@ $BASE_DIR_NAME = $PSScriptRoot
|
|
11
11
|
|
12
12
|
$env:GEM_HOME = "$BASE_DIR_NAME\gems\ruby\2.7.0"
|
13
13
|
$env:GEM_PATH = "$BASE_DIR_NAME\gems\ruby\2.7.0"
|
14
|
-
$env:PATH += ";$BASE_DIR_NAME\ruby\bin;$BASE_DIR_NAME\gems\ruby\2.7.0\bin"
|
14
|
+
$env:PATH += ";$BASE_DIR_NAME\ruby\bin;$BASE_DIR_NAME\gems\ruby\2.7.0\bin;$BASE_DIR_NAME\gems\ruby\2.7.0\gems\urbanopt-cli-0.11.1\example_files\python_deps\python-3.10"
|
15
15
|
$env:RUBYLIB = "$BASE_DIR_NAME\OpenStudio\Ruby"
|
16
16
|
$env:RUBY_DLL_PATH = "$BASE_DIR_NAME\OpenStudio\Ruby"
|
17
17
|
|
@@ -23,4 +23,3 @@ Remove-Item $HOME/.env_uo.ps1 -ErrorAction Ignore
|
|
23
23
|
'$env:PATH = "' + $env:PATH + '"' >> $HOME/.env_uo.ps1
|
24
24
|
'$env:RUBYLIB = "' + $env:RUBYLIB + '"' >> $HOME/.env_uo.ps1
|
25
25
|
'$env:RUBY_DLL_PATH = "' + $env:RUBY_DLL_PATH + '"' >> $HOME/.env_uo.ps1
|
26
|
-
|
data/uo_cli.gemspec
CHANGED
@@ -35,10 +35,10 @@ Gem::Specification.new do |spec|
|
|
35
35
|
# use specific versions of urbanopt and openstudio dependencies while under heavy development
|
36
36
|
spec.add_runtime_dependency 'optimist', '~> 3'
|
37
37
|
spec.add_runtime_dependency 'urbanopt-geojson', '~> 0.11.1'
|
38
|
-
spec.add_runtime_dependency 'urbanopt-reopt', '~> 0.
|
39
|
-
spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.
|
38
|
+
spec.add_runtime_dependency 'urbanopt-reopt', '~> 0.12.0'
|
39
|
+
spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.10.0'
|
40
40
|
spec.add_runtime_dependency 'urbanopt-rnm-us', '~> 0.7.0'
|
41
|
-
spec.add_runtime_dependency 'urbanopt-scenario', '~> 0.
|
41
|
+
spec.add_runtime_dependency 'urbanopt-scenario', '~> 0.12.0'
|
42
42
|
|
43
43
|
spec.add_development_dependency 'bundler', '~> 2.1'
|
44
44
|
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.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NREL URBANopt team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: optimist
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.12.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.
|
54
|
+
version: 0.12.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: urbanopt-reporting
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.10.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.
|
68
|
+
version: 0.10.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: urbanopt-rnm-us
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.12.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.12.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: bundler
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,7 +206,6 @@ files:
|
|
206
206
|
- bin/setup
|
207
207
|
- bin/uo
|
208
208
|
- example_files/Gemfile
|
209
|
-
- example_files/Gemfile.lock
|
210
209
|
- example_files/class_project_coincident.json
|
211
210
|
- example_files/class_project_diverse.json
|
212
211
|
- example_files/disco/config.json
|