openstudio-analysis 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc59c73e27b32b06db2f67f981af1a23c0f415da10ee476dabe0b9a90de0bfd6
4
- data.tar.gz: 875f5b5a4047f6e97246030b570c14902c940a61b909627cd605565ab0531c05
3
+ metadata.gz: 8b57a1b469c94255be338f754cd6b450e3c059210ec05897d9b0d6825904e6f7
4
+ data.tar.gz: a663a6646924dde02c9b45ce6d9761d5b5aed59ef2f3067ceab4d6786c09259d
5
5
  SHA512:
6
- metadata.gz: 90646bf5489ba4ea2b9a1b748efee310da650ea367fac91426287d1b7898aaf9b08989e2ea0c8dd81efe6642e80c562ddc797bb7a5c37a895f2548830755dcf8
7
- data.tar.gz: c5106d321b8e4860017f801e1df137a333bfd6874656e29cb589d7e7ad24e6ad7e602ee7286591023c3a6f7b44b60a14ea8b1064cbc48f675019098ec0a1e8c7
6
+ metadata.gz: 20acbefdd350cb6706814d39e513f92abee35dc32538e61aabc209b2c17b3059ecfe2c5ce1dd5489e15d5dd20d5c5af686c74228f54038e187b1956830de3012
7
+ data.tar.gz: c37631b399d554ba2115d1946280a20d40766a26e1521c0e301ed79722c5e77d05974140691823119e93d7b29d0a04765251ffb8089300e6444037b9ee4d1074
data/CHANGELOG.md CHANGED
@@ -1,17 +1,34 @@
1
1
  OpenStudio Analysis Gem Change Log
2
2
  ==================================
3
3
 
4
+ Version 1.3.3
5
+ -------------
6
+ * Add arguments to .save_osa_zip() to add all files in weather and/or seed directories to zip file. defaults to false.
7
+
4
8
  Version 1.3.2
5
9
  -------------
6
- * Add more paths to the measures dir list
10
+ * Add array of search paths to .convert_osw() to find measures in various directories.
11
+ * warn if :weather_file and :seed_model are not defined.
12
+ * use :file_paths in the OSW to search for :seed_model and :weather_file.
13
+ * add .stat and .ddy files to analysis.zip if in same directory as .epw defined in :weather_file.
14
+ * use :measure_paths in OSW to search for measures.
7
15
 
8
16
  Version 1.3.1
9
17
  -------------
10
- * Add method to delete a Variable
18
+ * Add method to delete a Variable: **analysis.remove_variable()**
19
+ * fix bug related to multiple calls to analysis.to_hash deleting variables
20
+ * Add PSO and Optim to allowed algorithms
11
21
 
12
22
  Version 1.3.0
13
23
  -------------
14
- * Create an OSA from an OSW
24
+ * Create an OSA from an OSW: **analysis.convert_osw()**
25
+ * Add output variables and objective functions: **analysis.add_output()**
26
+ * Add server initialization and finalization scripts: **analysis.server_scripts.add()**
27
+ * Set algorithm attributes: **analysis.algorithm.set_attribute()**
28
+ * Set algorithm type: **analysis.analysis_type()**
29
+ * Add additional library/data files: **analysis.libraries.add()**
30
+ * create analysis.json: **File.write('analysis.json',JSON.pretty_generate(analysis.to_hash))**
31
+ * create analysis.zip: **analysis.save_osa_zip('analysis.zip')**
15
32
 
16
33
  Version 1.2.0
17
34
  -------------
@@ -351,12 +351,12 @@ module OpenStudio
351
351
  end
352
352
 
353
353
 
354
- def save_osa_zip(filename)
354
+ def save_osa_zip(filename, all_weather_files = false, all_seed_files = false)
355
355
  filename += '.zip' if File.extname(filename) == ''
356
356
 
357
357
  FileUtils.mkdir_p File.dirname(filename) unless Dir.exist? File.dirname(filename)
358
358
 
359
- save_analysis_zip_osa(filename)
359
+ save_analysis_zip_osa(filename, all_weather_files, all_seed_files)
360
360
  end
361
361
 
362
362
  # convert an OSW to an OSA
@@ -487,12 +487,11 @@ module OpenStudio
487
487
  # New format for OSAs. Package up the seed, weather files, and measures
488
488
  # filename is the name of the file to be saved. ex: analysis.zip
489
489
  # it will parse the OSA and zip up all the files defined in the workflow
490
- def save_analysis_zip_osa(filename)
490
+ def save_analysis_zip_osa(filename, all_weather_files = false, all_seed_files = false)
491
491
  def add_directory_to_zip_osa(zipfile, local_directory, relative_zip_directory)
492
492
  puts "Add Directory #{local_directory}"
493
493
  Dir[File.join(local_directory.to_s, '**', '**')].each do |file|
494
494
  puts "Adding File #{file}"
495
-
496
495
  zipfile.add(file.sub(local_directory, relative_zip_directory), file)
497
496
  end
498
497
  zipfile
@@ -503,27 +502,30 @@ module OpenStudio
503
502
  puts "osw_path: #{@osw_path}"
504
503
  osw_full_path = File.dirname(File.expand_path(@osw_path))
505
504
  puts "osw_full_path: #{osw_full_path}"
506
-
505
+
507
506
  Zip::File.open(filename, create: true) do |zf|
508
- ## Weather files
507
+ ## Weather files
509
508
  puts 'Adding Support Files: Weather'
510
- #check if weather file exists. use abs path. remove leading ./ from @weather_file path if there.
511
- #check if path is already absolute
509
+ # check if weather file exists. use abs path. remove leading ./ from @weather_file path if there.
510
+ # check if path is already absolute
512
511
  if @weather_file[:file]
513
512
  if File.exists?(@weather_file[:file])
514
513
  puts " Adding #{@weather_file[:file]}"
515
514
  #zf.add("weather/#{File.basename(@weather_file[:file])}", @weather_file[:file])
516
515
  base_name = File.basename(@weather_file[:file], ".*")
517
516
  puts "base_name: #{base_name}"
518
- #convert backslash on windows to forward slash so Dir.glob will work (in case user uses \)
517
+ # convert backslash on windows to forward slash so Dir.glob will work (in case user uses \)
519
518
  weather_dirname = File.dirname(@weather_file[:file]).gsub("\\", "/")
520
519
  puts "weather_dirname: #{weather_dirname}"
521
- Dir.glob(File.join(weather_dirname, "#{base_name}.*")) do |file_path|
522
- puts "file_path: #{file_path}"
523
- puts "zip path: weather/#{File.basename(file_path)}"
524
- zf.add("weather/#{File.basename(file_path)}", file_path)
525
- end
526
- #make absolute path and check for file
520
+ # If all_weather_files is true, add all files in the directory to the zip.
521
+ # Otherwise, add only files that match the base name.
522
+ file_pattern = all_weather_files ? "*" : "#{base_name}.*"
523
+ Dir.glob(File.join(weather_dirname, file_pattern)) do |file_path|
524
+ puts "file_path: #{file_path}"
525
+ puts "zip path: weather/#{File.basename(file_path)}"
526
+ zf.add("weather/#{File.basename(file_path)}", file_path)
527
+ end
528
+ # make absolute path and check for file
527
529
  elsif File.exists?(File.join(osw_full_path,@weather_file[:file].sub(/^\.\//, '')))
528
530
  puts " Adding: #{File.join(osw_full_path,@weather_file[:file].sub(/^\.\//, ''))}"
529
531
  #zf.add("weather/#{File.basename(@weather_file[:file])}", File.join(osw_full_path,@weather_file[:file].sub(/^\.\//, '')))
@@ -531,7 +533,8 @@ module OpenStudio
531
533
  puts "base_name2: #{base_name}"
532
534
  weather_dirname = File.dirname(File.join(osw_full_path,@weather_file[:file].sub(/^\.\//, ''))).gsub("\\", "/")
533
535
  puts "weather_dirname: #{weather_dirname}"
534
- Dir.glob(File.join(weather_dirname, "#{base_name}.*")) do |file_path|
536
+ file_pattern = all_weather_files ? "*" : "#{base_name}.*"
537
+ Dir.glob(File.join(weather_dirname, file_pattern)) do |file_path|
535
538
  puts "file_path2: #{file_path}"
536
539
  puts "zip path2: weather/#{File.basename(file_path)}"
537
540
  zf.add("weather/#{File.basename(file_path)}", file_path)
@@ -541,7 +544,7 @@ module OpenStudio
541
544
  end
542
545
  else
543
546
  warn "weather_file[:file] is not defined"
544
- end
547
+ end
545
548
 
546
549
  ## Seed files
547
550
  puts 'Adding Support Files: Seed Models'
@@ -551,16 +554,37 @@ module OpenStudio
551
554
  if File.exists?(@seed_model[:file])
552
555
  puts " Adding #{@seed_model[:file]}"
553
556
  zf.add("seeds/#{File.basename(@seed_model[:file])}", @seed_model[:file])
557
+ if all_seed_files
558
+ seed_dirname = File.dirname(@seed_model[:file]).gsub("\\", "/")
559
+ puts "seed_dirname: #{seed_dirname}"
560
+ Dir.glob(File.join(seed_dirname, '*')) do |file_path|
561
+ next if file_path == @seed_model[:file] # Skip if the file is the same as @seed_model[:file] so not added twice
562
+ puts "file_path: #{file_path}"
563
+ puts "zip path: seeds/#{File.basename(file_path)}"
564
+ zf.add("seeds/#{File.basename(file_path)}", file_path)
565
+ end
566
+ end
554
567
  #make absolute path and check for file
555
568
  elsif File.exists?(File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, '')))
556
569
  puts " Adding #{File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, ''))}"
557
570
  zf.add("seeds/#{File.basename(@seed_model[:file])}", File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, '')))
571
+ if all_seed_files
572
+ seed_dirname = File.dirname(File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, ''))).gsub("\\", "/")
573
+ puts "seed_dirname: #{seed_dirname}"
574
+ Dir.glob(File.join(seed_dirname, '*')) do |file_path|
575
+ next if file_path == File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, '')) # Skip if the file is the same as @seed_model[:file] so not added twice
576
+ puts "file_path: #{file_path}"
577
+ puts "zip path: seeds/#{File.basename(file_path)}"
578
+ zf.add("seeds/#{File.basename(file_path)}", file_path)
579
+ end
580
+ end
558
581
  else
559
582
  raise "seed_file[:file] does not exist at: #{File.join(osw_full_path,@seed_model[:file].sub(/^\.\//, ''))}"
560
583
  end
561
584
  else
562
585
  warn "seed_file[:file] is not defined"
563
- end
586
+ end
587
+
564
588
  puts 'Adding Support Files: Libraries'
565
589
  @libraries.each do |lib|
566
590
  raise "Libraries must specify their 'library_name' as metadata which becomes the directory upon zip" unless lib[:metadata][:library_name]
@@ -37,6 +37,6 @@ module OpenStudio
37
37
  module Analysis
38
38
  # format should be ^.*\-{1}[a-z]+[0-9]+
39
39
  # for example: -rc1, -beta6, -customusecase0
40
- VERSION = '1.3.2'.freeze
40
+ VERSION = '1.3.3'.freeze
41
41
  end
42
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-analysis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Long
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-20 00:00:00.000000000 Z
11
+ date: 2023-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcl