scout-essentials 1.6.0 → 1.6.2

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: 24500b0c2c21f23844c3eb87ce87ed1ea4fd6f0e9ee635ef474b29d919baffdf
4
- data.tar.gz: b54836819a0a394bf3b2907d641b6ae34b7b4c4b9ced9b2dd0b78b3d22d30cc9
3
+ metadata.gz: a682bf691d2d27784726f6eb108223abc0cc62a3a289f5580ef3ec9a850daffa
4
+ data.tar.gz: ac4409c3954aeaa68bfb45844de8701c265b3e896fbe77bb51dfae953ad47035
5
5
  SHA512:
6
- metadata.gz: 12c4740363f2e5d64e3c3f691dfa0ca6086617d84a82b666d25d683e0d0e36c3fe062bcc3f210b3c38358a0a36f0b1a2ab6b3c7c6628a9b74fa4ebb2b92afb1e
7
- data.tar.gz: 86df3be0b64051d8aa0007d061f181f281835a241c1cbeeb113dd53d0595b0c52adf7bfa269b91c70bdf2233c0fef7b0ca3064c3763fb2a49e5ca3f6e7e0d5ad
6
+ metadata.gz: a9db53026e267d734499b85a2673933c43a7e549497fa76420872dff237fb2858da535fcd654c30153f5b78e4afc9568b884db0ca656f70f1a936d89cff570ab
7
+ data.tar.gz: 6868e8baf1d445bfc2aeebee9a0e0cb0c0f9e481e41ef87f3c670d2f9b628445fb8502b7a27a39decb445dabd4ff571145562f16fd0b477ae426d63e1a23d61b
data/.vimproject CHANGED
@@ -50,6 +50,7 @@ scout-essentials=/$PWD filter="*.rb *.txt *.md *.conf *.yaml" {
50
50
  find.rb
51
51
  tmpfile.rb
52
52
  util.rb
53
+ digest.rb
53
54
  }
54
55
  concurrent_stream.rb
55
56
  cmd.rb
@@ -59,6 +60,7 @@ scout-essentials=/$PWD filter="*.rb *.txt *.md *.conf *.yaml" {
59
60
  remote.rb
60
61
  stream.rb
61
62
  util.rb
63
+ bgzf.rb
62
64
  }
63
65
  resource.rb
64
66
  resource=resource{
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.6.2
@@ -1,5 +1,6 @@
1
1
  module Misc
2
2
  MAX_ARRAY_DIGEST_LENGTH = 100_000
3
+
3
4
  def self.digest_str(obj)
4
5
  if obj.respond_to?(:digest_str)
5
6
  obj.digest_str
@@ -106,4 +106,17 @@ module Misc
106
106
  sd = Misc.sd(list)
107
107
  (e.to_f - m) / sd
108
108
  end
109
+
110
+ def self.softmax(array)
111
+ # Compute the exponentials of the input array elements
112
+ exp_array = array.map { |x| Math.exp(x) }
113
+
114
+ # Sum of all exponentials
115
+ sum_exp = exp_array.sum
116
+
117
+ # Compute the softmax values by dividing each exponential by the sum of exponentials
118
+ softmax_array = exp_array.map { |x| x / sum_exp }
119
+
120
+ return softmax_array
121
+ end
109
122
  end
@@ -1,5 +1,6 @@
1
1
  module Misc
2
2
  def self.pid_alive?(pid)
3
+ return true if Process.pid == pid
3
4
  !! Process.kill(0, pid) rescue false
4
5
  end
5
6
 
@@ -84,9 +84,18 @@ module NamedArray
84
84
 
85
85
 
86
86
  def concat(other)
87
- super(other)
88
- self.fields.concat(other.fields) if NamedArray === other
89
- self
87
+ if Hash === other
88
+ new_fields = []
89
+ other.each do |k,v|
90
+ new_fields << k
91
+ self << v
92
+ end
93
+ self.fields.concat(new_fields)
94
+ else
95
+ super(other)
96
+ self.fields.concat(other.fields) if NamedArray === other
97
+ self
98
+ end
90
99
  end
91
100
 
92
101
  def to_hash
@@ -236,6 +236,7 @@ module Open
236
236
  begin
237
237
  Open.ln(source, target, options)
238
238
  rescue
239
+ Log.debug "Could not make regular link, trying symbolic: #{Misc.fingerprint(source)} -> #{Misc.fingerprint(target)}"
239
240
  Open.ln_s(source, target, options)
240
241
  end
241
242
  nil
@@ -0,0 +1,13 @@
1
+ require_relative '../misc/digest'
2
+ module Path
3
+ def digest_str
4
+ case
5
+ when File.directory?(self)
6
+ "Directory MD5: #{Misc.digest_str(Dir.glob(File.join(self, "*")))}"
7
+ when self.located? && File.exist?(self)
8
+ "File MD5: #{Misc.digest_file(self)}"
9
+ else
10
+ '\'' << self << '\''
11
+ end
12
+ end
13
+ end
data/lib/scout/path.rb CHANGED
@@ -2,6 +2,7 @@ require_relative 'annotation'
2
2
  require_relative 'path/find'
3
3
  require_relative 'path/util'
4
4
  require_relative 'path/tmpfile'
5
+ require_relative 'path/digest'
5
6
 
6
7
  module Path
7
8
  extend Annotation
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: scout-essentials 1.6.0 ruby lib
5
+ # stub: scout-essentials 1.6.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "scout-essentials".freeze
9
- s.version = "1.6.0".freeze
9
+ s.version = "1.6.2".freeze
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Miguel Vazquez".freeze]
14
- s.date = "2024-06-05"
14
+ s.date = "2024-07-01"
15
15
  s.description = "Things a scout can use anywhere".freeze
16
16
  s.email = "mikisvaz@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -63,6 +63,7 @@ Gem::Specification.new do |s|
63
63
  "lib/scout/open/stream.rb",
64
64
  "lib/scout/open/util.rb",
65
65
  "lib/scout/path.rb",
66
+ "lib/scout/path/digest.rb",
66
67
  "lib/scout/path/find.rb",
67
68
  "lib/scout/path/tmpfile.rb",
68
69
  "lib/scout/path/util.rb",
@@ -106,6 +107,7 @@ Gem::Specification.new do |s|
106
107
  "test/scout/open/test_remote.rb",
107
108
  "test/scout/open/test_stream.rb",
108
109
  "test/scout/open/test_util.rb",
110
+ "test/scout/path/test_digest.rb",
109
111
  "test/scout/path/test_find.rb",
110
112
  "test/scout/path/test_util.rb",
111
113
  "test/scout/persist/test_open.rb",
@@ -5,5 +5,11 @@ class TestMiscMath < Test::Unit::TestCase
5
5
  def test_mean
6
6
  assert_equal 4, Misc.mean([6,2])
7
7
  end
8
+
9
+ def test_softmax
10
+ assert_equal 0.5, Misc.softmax([1,1]).first
11
+ assert Misc.softmax([1,2]).first < 0.5
12
+ assert Misc.softmax([2,1]).first > 0.5
13
+ end
8
14
  end
9
15
 
@@ -0,0 +1,20 @@
1
+ require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
2
+ require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
3
+
4
+ class TestClass < Test::Unit::TestCase
5
+ def test_digest_path
6
+ TmpFile.with_path("TEXT") do |file|
7
+ assert_include file.digest_str, "File MD5"
8
+ end
9
+
10
+ TmpFile.with_path do |dir|
11
+ Open.write(dir.test, "TEXT")
12
+ assert_include dir.digest_str, "Directory"
13
+ end
14
+
15
+ TmpFile.with_path do |file|
16
+ assert_include "'#{file}'", file.digest_str
17
+ end
18
+ end
19
+ end
20
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scout-essentials
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-05 00:00:00.000000000 Z
11
+ date: 2024-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shoulda
@@ -160,6 +160,7 @@ files:
160
160
  - lib/scout/open/stream.rb
161
161
  - lib/scout/open/util.rb
162
162
  - lib/scout/path.rb
163
+ - lib/scout/path/digest.rb
163
164
  - lib/scout/path/find.rb
164
165
  - lib/scout/path/tmpfile.rb
165
166
  - lib/scout/path/util.rb
@@ -203,6 +204,7 @@ files:
203
204
  - test/scout/open/test_remote.rb
204
205
  - test/scout/open/test_stream.rb
205
206
  - test/scout/open/test_util.rb
207
+ - test/scout/path/test_digest.rb
206
208
  - test/scout/path/test_find.rb
207
209
  - test/scout/path/test_util.rb
208
210
  - test/scout/persist/test_open.rb