stac 0.2.0 → 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 +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +10 -0
- data/GETTING_STARTED.md +384 -0
- data/Gemfile.lock +48 -37
- data/README.md +12 -59
- data/Rakefile +62 -4
- data/Steepfile +2 -0
- data/lib/stac/asset.rb +3 -1
- data/lib/stac/catalog.rb +78 -8
- data/lib/stac/collection.rb +43 -9
- data/lib/stac/common_metadata.rb +1 -1
- data/lib/stac/errors.rb +2 -5
- data/lib/stac/extension.rb +34 -0
- data/lib/stac/extensions/electro_optical.rb +67 -0
- data/lib/stac/extensions/projection.rb +42 -0
- data/lib/stac/extensions/scientific_citation.rb +84 -0
- data/lib/stac/extensions/view_geometry.rb +38 -0
- data/lib/stac/extent.rb +39 -31
- data/lib/stac/file_writer.rb +31 -0
- data/lib/stac/hash_like.rb +74 -0
- data/lib/stac/item.rb +56 -22
- data/lib/stac/link.rb +51 -9
- data/lib/stac/object_resolver.rb +4 -4
- data/lib/stac/properties.rb +3 -1
- data/lib/stac/provider.rb +5 -1
- data/lib/stac/simple_http_client.rb +3 -0
- data/lib/stac/stac_object.rb +138 -36
- data/lib/stac/version.rb +1 -1
- data/lib/stac.rb +12 -1
- data/sig/stac/asset.rbs +1 -3
- data/sig/stac/catalog.rbs +28 -5
- data/sig/stac/collection.rbs +13 -5
- data/sig/stac/common_metadata.rbs +2 -2
- data/sig/stac/errors.rbs +1 -4
- data/sig/stac/extension.rbs +12 -0
- data/sig/stac/extensions/electro_optical.rbs +40 -0
- data/sig/stac/extensions/projection.rbs +32 -0
- data/sig/stac/extensions/scientific_citation.rbs +38 -0
- data/sig/stac/extensions/view_geometry.rbs +22 -0
- data/sig/stac/extent.rbs +13 -16
- data/sig/stac/file_writer.rbs +13 -0
- data/sig/stac/hash_like.rbs +13 -0
- data/sig/stac/item.rbs +16 -7
- data/sig/stac/link.rbs +20 -12
- data/sig/stac/object_resolver.rbs +2 -2
- data/sig/stac/properties.rbs +1 -3
- data/sig/stac/provider.rbs +2 -3
- data/sig/stac/simple_http_client.rbs +3 -0
- data/sig/stac/stac_object.rbs +33 -10
- data/stac.gemspec +1 -1
- metadata +18 -3
data/sig/stac/link.rbs
CHANGED
@@ -1,25 +1,33 @@
|
|
1
1
|
module STAC
|
2
|
+
class LinkHrefError < Error
|
3
|
+
attr_reader link: Link
|
4
|
+
|
5
|
+
def initialize: (?String? msg, link: Link) -> void
|
6
|
+
end
|
7
|
+
|
2
8
|
class Link
|
9
|
+
include HashLike
|
10
|
+
|
3
11
|
def self.from_hash: (Hash[String, untyped]) -> Link
|
4
12
|
|
5
13
|
attr_accessor rel: String
|
6
|
-
|
14
|
+
attr_writer href: String?
|
7
15
|
attr_accessor type: String?
|
8
16
|
attr_accessor title: String?
|
9
|
-
attr_accessor
|
10
|
-
attr_accessor owner: STACObject | nil
|
17
|
+
attr_accessor owner: STACObject?
|
11
18
|
attr_accessor http_client: _HTTPClient
|
12
|
-
@target:
|
19
|
+
@target: STACObject?
|
13
20
|
@resolver: ObjectResolver
|
14
21
|
|
15
|
-
def initialize: (rel: String, href: String
|
16
|
-
|
17
|
-
def
|
22
|
+
def initialize: (?STACObject? target, rel: String, href: String?, ?type: String?, ?title: String?, **untyped) -> void
|
23
|
+
def resolved?: -> bool
|
24
|
+
def href: -> String?
|
18
25
|
def absolute_href: -> String?
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
def
|
26
|
+
def relative_href: -> String?
|
27
|
+
def target: (?http_client: _HTTPClient) -> STACObject?
|
28
|
+
|
29
|
+
def href!: -> String
|
30
|
+
def absolute_href!: -> String
|
31
|
+
def relative_href!: -> String
|
24
32
|
end
|
25
33
|
end
|
@@ -2,7 +2,7 @@ module STAC
|
|
2
2
|
class ObjectResolver
|
3
3
|
RESOLVABLES: Array[_STACObjectClass]
|
4
4
|
|
5
|
-
|
5
|
+
attr_reader self.resolvables: Array[_STACObjectClass]
|
6
6
|
|
7
7
|
def self.default_http_client: -> _HTTPClient
|
8
8
|
|
@@ -18,7 +18,7 @@ module STAC
|
|
18
18
|
end
|
19
19
|
|
20
20
|
interface _STACObjectClass
|
21
|
-
def type: -> String
|
21
|
+
def type: -> String?
|
22
22
|
def from_hash: (Hash[String, untyped] hash) -> untyped
|
23
23
|
end
|
24
24
|
end
|
data/sig/stac/properties.rbs
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
module STAC
|
2
2
|
class Properties
|
3
|
+
include HashLike
|
3
4
|
include CommonMetadata
|
4
5
|
|
5
6
|
def self.from_hash: (Hash[String, untyped] hash) -> Properties
|
6
7
|
|
7
8
|
attr_accessor datetime: Time?
|
8
|
-
attr_accessor extra: Hash[String, untyped]
|
9
9
|
|
10
10
|
def initialize: (datetime: Time?, **untyped) -> void
|
11
|
-
|
12
|
-
def to_h: -> Hash[String, untyped]
|
13
11
|
end
|
14
12
|
end
|
data/sig/stac/provider.rbs
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
module STAC
|
2
2
|
class Provider
|
3
|
+
include HashLike
|
4
|
+
|
3
5
|
def self.from_hash: (Hash[String, untyped] hash) -> Provider
|
4
6
|
|
5
7
|
attr_accessor name: String
|
6
8
|
attr_accessor description: String?
|
7
9
|
attr_accessor roles: Array[String]?
|
8
10
|
attr_accessor url: String?
|
9
|
-
attr_accessor extra: Hash[String, untyped]
|
10
11
|
|
11
12
|
def initialize: (name: String, ?description: String?, ?roles: Array[String]?, ?url: String?, **untyped) -> void
|
12
|
-
|
13
|
-
def to_h: -> Hash[String, untyped]
|
14
13
|
end
|
15
14
|
end
|
data/sig/stac/stac_object.rbs
CHANGED
@@ -1,28 +1,51 @@
|
|
1
1
|
module STAC
|
2
|
+
class NoSelfHrefError < Error
|
3
|
+
attr_reader stac_object: STACObject
|
4
|
+
|
5
|
+
def initialize: (?String? msg, stac_object: STACObject) -> void
|
6
|
+
end
|
7
|
+
|
2
8
|
class STACObject
|
3
|
-
|
9
|
+
include HashLike
|
10
|
+
|
11
|
+
@@extendables: Hash[String, Extension]
|
12
|
+
|
13
|
+
attr_reader self.type: String?
|
4
14
|
|
5
|
-
def self.
|
15
|
+
def self.extendables: -> Array[Extension]
|
16
|
+
def self.add_extendable: (Extension) -> self
|
17
|
+
def self.from_hash: (Hash[String | Symbol, untyped]) -> STACObject
|
6
18
|
|
7
|
-
attr_accessor stac_extensions: Array[String]?
|
8
|
-
attr_accessor extra: Hash[String, untyped]
|
9
19
|
attr_accessor http_client: _HTTPClient
|
20
|
+
attr_reader stac_extensions: Array[String]
|
10
21
|
attr_reader links: Array[Link]
|
11
22
|
|
23
|
+
@extended: Array[Extension]
|
24
|
+
|
12
25
|
def initialize: (
|
13
|
-
links: Array[
|
26
|
+
?links: Array[Hash[String, String]], ?stac_extensions: Array[String], **untyped
|
14
27
|
) -> void
|
15
28
|
|
16
29
|
def type: -> String
|
17
|
-
def
|
18
|
-
def
|
19
|
-
def
|
30
|
+
def extended: -> Array[Extension]
|
31
|
+
def add_extension: (Extension | String) -> self
|
32
|
+
def find_link: (rel: String, ?type: String?) -> Link?
|
33
|
+
def add_link: (?STACObject? target, rel: String, ?href: String?, ?type: String?, ?title: String?, **untyped) -> self
|
20
34
|
def self_href: -> String?
|
21
35
|
def self_href=: (String) -> void
|
22
|
-
def
|
36
|
+
def root: -> Catalog?
|
37
|
+
def root=: (Catalog? catalog) -> void
|
38
|
+
def parent: -> Catalog?
|
39
|
+
def parent=: (Catalog? catalog) -> void
|
40
|
+
def save: (?String? dest, ?writer: _Writer) -> void
|
41
|
+
|
42
|
+
def self_href!: -> String
|
23
43
|
|
24
44
|
private
|
25
45
|
|
26
|
-
def
|
46
|
+
def extensions: -> Array[Extension]
|
47
|
+
def apply_extensions!: -> void
|
48
|
+
def apply_extension!: (Module) -> void
|
49
|
+
def remove_links: (rel: String) -> Array[Link]?
|
27
50
|
end
|
28
51
|
end
|
data/stac.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.files = Dir.chdir(__dir__) do
|
27
27
|
`git ls-files -z`.split("\x0").reject do |f|
|
28
28
|
(f == __FILE__) || f.match(
|
29
|
-
%r{\A(?:(?:bin|spec
|
29
|
+
%r{\A(?:(?:bin|spec)/|\.(?:git|vscode|devcontainer)|stac-spec)},
|
30
30
|
)
|
31
31
|
end
|
32
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stac
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takahiro Miyoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -21,6 +21,7 @@ files:
|
|
21
21
|
- ".rubocop.yml"
|
22
22
|
- CHANGELOG.md
|
23
23
|
- CODE_OF_CONDUCT.md
|
24
|
+
- GETTING_STARTED.md
|
24
25
|
- Gemfile
|
25
26
|
- Gemfile.lock
|
26
27
|
- LICENSE.txt
|
@@ -33,7 +34,14 @@ files:
|
|
33
34
|
- lib/stac/collection.rb
|
34
35
|
- lib/stac/common_metadata.rb
|
35
36
|
- lib/stac/errors.rb
|
37
|
+
- lib/stac/extension.rb
|
38
|
+
- lib/stac/extensions/electro_optical.rb
|
39
|
+
- lib/stac/extensions/projection.rb
|
40
|
+
- lib/stac/extensions/scientific_citation.rb
|
41
|
+
- lib/stac/extensions/view_geometry.rb
|
36
42
|
- lib/stac/extent.rb
|
43
|
+
- lib/stac/file_writer.rb
|
44
|
+
- lib/stac/hash_like.rb
|
37
45
|
- lib/stac/item.rb
|
38
46
|
- lib/stac/link.rb
|
39
47
|
- lib/stac/object_resolver.rb
|
@@ -50,7 +58,14 @@ files:
|
|
50
58
|
- sig/stac/collection.rbs
|
51
59
|
- sig/stac/common_metadata.rbs
|
52
60
|
- sig/stac/errors.rbs
|
61
|
+
- sig/stac/extension.rbs
|
62
|
+
- sig/stac/extensions/electro_optical.rbs
|
63
|
+
- sig/stac/extensions/projection.rbs
|
64
|
+
- sig/stac/extensions/scientific_citation.rbs
|
65
|
+
- sig/stac/extensions/view_geometry.rbs
|
53
66
|
- sig/stac/extent.rbs
|
67
|
+
- sig/stac/file_writer.rbs
|
68
|
+
- sig/stac/hash_like.rbs
|
54
69
|
- sig/stac/item.rbs
|
55
70
|
- sig/stac/link.rbs
|
56
71
|
- sig/stac/object_resolver.rbs
|
@@ -86,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
101
|
- !ruby/object:Gem::Version
|
87
102
|
version: '0'
|
88
103
|
requirements: []
|
89
|
-
rubygems_version: 3.3.
|
104
|
+
rubygems_version: 3.3.26
|
90
105
|
signing_key:
|
91
106
|
specification_version: 4
|
92
107
|
summary: A library for working with SpatioTemporal Asset Catalog (STAC)
|