ruby-hdf5 0.0.1 → 0.0.3
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/README.md +72 -64
- data/lib/hdf5/attribute.rb +222 -34
- data/lib/hdf5/data_helpers.rb +54 -0
- data/lib/hdf5/dataset.rb +553 -70
- data/lib/hdf5/dtype.rb +200 -0
- data/lib/hdf5/ffi.rb +48 -10
- data/lib/hdf5/ffi_20.rb +10213 -0
- data/lib/hdf5/file.rb +69 -11
- data/lib/hdf5/file_context.rb +70 -0
- data/lib/hdf5/group.rb +51 -21
- data/lib/hdf5/hierarchy.rb +107 -0
- data/lib/hdf5/selection.rb +81 -0
- data/lib/hdf5/string_codec.rb +93 -0
- data/lib/hdf5/version.rb +1 -1
- data/lib/hdf5.rb +31 -0
- metadata +24 -3
data/lib/hdf5.rb
CHANGED
|
@@ -1,15 +1,40 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'ffi'
|
|
4
|
+
require 'English'
|
|
5
|
+
require 'numo/narray/alt'
|
|
4
6
|
require_relative 'hdf5/version'
|
|
5
7
|
|
|
6
8
|
module HDF5
|
|
7
9
|
class Error < StandardError; end
|
|
10
|
+
class ClosedError < Error; end
|
|
11
|
+
class UnsupportedTypeError < Error; end
|
|
12
|
+
class UnsupportedFeatureError < Error; end
|
|
13
|
+
class ShapeError < Error; end
|
|
14
|
+
class ConversionError < Error; end
|
|
15
|
+
class NativeError < Error; end
|
|
16
|
+
|
|
17
|
+
class Empty
|
|
18
|
+
attr_reader :dtype
|
|
19
|
+
|
|
20
|
+
def initialize(dtype)
|
|
21
|
+
@dtype = dtype.is_a?(DType) ? dtype : DType.for_symbol(dtype)
|
|
22
|
+
freeze
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
Slice = Struct.new(:range, :step, keyword_init: true)
|
|
8
26
|
DEFAULT_PROPERTY_LIST = 0
|
|
9
27
|
|
|
10
28
|
class << self
|
|
11
29
|
attr_accessor :lib_path
|
|
12
30
|
|
|
31
|
+
def slice(range, step:)
|
|
32
|
+
raise ArgumentError, 'slice step must be a positive integer' unless step.is_a?(Integer) && step.positive?
|
|
33
|
+
raise ArgumentError, 'slice range must be a Range' unless range.is_a?(Range)
|
|
34
|
+
|
|
35
|
+
Slice.new(range:, step:)
|
|
36
|
+
end
|
|
37
|
+
|
|
13
38
|
def search_hdf5lib
|
|
14
39
|
name = "libhdf5.#{FFI::Platform::LIBSUFFIX}"
|
|
15
40
|
env_path = ENV['HDF5_LIB_PATH']
|
|
@@ -37,6 +62,12 @@ end
|
|
|
37
62
|
|
|
38
63
|
require_relative 'hdf5/ffi'
|
|
39
64
|
|
|
65
|
+
require_relative 'hdf5/file_context'
|
|
66
|
+
require_relative 'hdf5/dtype'
|
|
67
|
+
require_relative 'hdf5/data_helpers'
|
|
68
|
+
require_relative 'hdf5/selection'
|
|
69
|
+
require_relative 'hdf5/hierarchy'
|
|
70
|
+
require_relative 'hdf5/string_codec'
|
|
40
71
|
require_relative 'hdf5/file'
|
|
41
72
|
require_relative 'hdf5/group'
|
|
42
73
|
require_relative 'hdf5/dataset'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby-hdf5
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kojix2
|
|
@@ -23,6 +23,20 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: numo-narray-alt
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
26
40
|
- !ruby/object:Gem::Dependency
|
|
27
41
|
name: pkg-config
|
|
28
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -48,12 +62,19 @@ files:
|
|
|
48
62
|
- README.md
|
|
49
63
|
- lib/hdf5.rb
|
|
50
64
|
- lib/hdf5/attribute.rb
|
|
65
|
+
- lib/hdf5/data_helpers.rb
|
|
51
66
|
- lib/hdf5/dataset.rb
|
|
67
|
+
- lib/hdf5/dtype.rb
|
|
52
68
|
- lib/hdf5/ffi.rb
|
|
53
69
|
- lib/hdf5/ffi_10.rb
|
|
54
70
|
- lib/hdf5/ffi_14.rb
|
|
71
|
+
- lib/hdf5/ffi_20.rb
|
|
55
72
|
- lib/hdf5/file.rb
|
|
73
|
+
- lib/hdf5/file_context.rb
|
|
56
74
|
- lib/hdf5/group.rb
|
|
75
|
+
- lib/hdf5/hierarchy.rb
|
|
76
|
+
- lib/hdf5/selection.rb
|
|
77
|
+
- lib/hdf5/string_codec.rb
|
|
57
78
|
- lib/hdf5/version.rb
|
|
58
79
|
licenses:
|
|
59
80
|
- MIT
|
|
@@ -66,14 +87,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
66
87
|
requirements:
|
|
67
88
|
- - ">="
|
|
68
89
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 3.
|
|
90
|
+
version: 3.4.0
|
|
70
91
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
92
|
requirements:
|
|
72
93
|
- - ">="
|
|
73
94
|
- !ruby/object:Gem::Version
|
|
74
95
|
version: '0'
|
|
75
96
|
requirements: []
|
|
76
|
-
rubygems_version: 4.0.
|
|
97
|
+
rubygems_version: 4.0.21
|
|
77
98
|
specification_version: 4
|
|
78
99
|
summary: hdf5
|
|
79
100
|
test_files: []
|