lara-sdk 1.6.0 → 1.7.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/lib/lara/audio.rb +4 -3
- data/lib/lara/glossaries.rb +35 -0
- data/lib/lara/memories.rb +35 -0
- data/lib/lara/models/glossaries.rb +2 -1
- data/lib/lara/models/memories.rb +2 -1
- data/lib/lara/models/shares.rb +56 -0
- data/lib/lara/models/text.rb +5 -3
- data/lib/lara/styleguides.rb +35 -0
- data/lib/lara/version.rb +1 -1
- data/lib/lara.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 07f0f176e933b058cb2389a2f42b9eca44f340697f90f7249071ca7db164da86
|
|
4
|
+
data.tar.gz: f44fd4c0ec64c2051a77273eab0d4fdff5f1f47f4188c8fe6b21f6f3dfd492a6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f70a02eabf9588e9b6348efcffed1e4e051cfa11fea586c804ffc47e36c8a65fc9da2c1cfa466539a09b8dea0547727ce9d26dde0259056c1ed993409289380d
|
|
7
|
+
data.tar.gz: 96d6199390210e3b8c8628c9f048668981870671d78e08ee59f9bc1b08b8f856d8cd90070cf9150a2964fcfa3f8ce5198edda88f437e6609a718f5782cd5054d
|
data/lib/lara/audio.rb
CHANGED
|
@@ -25,7 +25,7 @@ module Lara
|
|
|
25
25
|
# Uploads an audio file to S3 and creates a translation job.
|
|
26
26
|
# @return [Lara::Models::Audio]
|
|
27
27
|
def upload(file_path:, filename:, target:, source: nil, adapt_to: nil, glossaries: nil,
|
|
28
|
-
no_trace: false, style: nil, voice_gender: nil)
|
|
28
|
+
no_trace: false, style: nil, voice_gender: nil, voice_cloning: nil)
|
|
29
29
|
response_data = @client.get("/v2/audio/upload-url", params: { filename: filename })
|
|
30
30
|
url = response_data["url"]
|
|
31
31
|
fields = response_data["fields"]
|
|
@@ -39,6 +39,7 @@ module Lara
|
|
|
39
39
|
adapt_to: adapt_to,
|
|
40
40
|
glossaries: glossaries,
|
|
41
41
|
style: style,
|
|
42
|
+
voice_cloning: voice_cloning,
|
|
42
43
|
voice_gender: voice_gender
|
|
43
44
|
}.compact
|
|
44
45
|
|
|
@@ -68,10 +69,10 @@ module Lara
|
|
|
68
69
|
# Translates an audio file end-to-end
|
|
69
70
|
# @return [String] translated audio bytes
|
|
70
71
|
def translate(file_path:, filename:, target:, source: nil, adapt_to: nil, glossaries: nil,
|
|
71
|
-
no_trace: false, style: nil, voice_gender: nil)
|
|
72
|
+
no_trace: false, style: nil, voice_gender: nil, voice_cloning: nil)
|
|
72
73
|
audio = upload(file_path: file_path, filename: filename, target: target, source: source,
|
|
73
74
|
adapt_to: adapt_to, glossaries: glossaries, no_trace: no_trace, style: style,
|
|
74
|
-
voice_gender: voice_gender)
|
|
75
|
+
voice_gender: voice_gender, voice_cloning: voice_cloning)
|
|
75
76
|
|
|
76
77
|
max_wait_time = 60 * 15 # 15 minutes
|
|
77
78
|
start = Time.now
|
data/lib/lara/glossaries.rb
CHANGED
|
@@ -57,6 +57,35 @@ module Lara
|
|
|
57
57
|
body: { name: name }).transform_keys(&:to_sym))
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
+
# @return [Lara::Models::GlossaryShares]
|
|
61
|
+
def get_shares(id)
|
|
62
|
+
Lara::Models::GlossaryShares.new(**@client.get("/v2/glossaries/#{id}/shares").transform_keys(&:to_sym))
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def add_account_share(id, name: nil)
|
|
66
|
+
glossary_from(@client.post("/v2/glossaries/#{id}/shares", body: { name: name }.compact))
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def rename_account_share(id, name:)
|
|
70
|
+
glossary_from(@client.put("/v2/glossaries/#{id}/shares", body: { name: name }))
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def revoke_account_share(id)
|
|
74
|
+
glossary_from(@client.delete("/v2/glossaries/#{id}/shares"))
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def add_group_share(id, group_id, name: nil)
|
|
78
|
+
glossary_from(@client.post("/v2/glossaries/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def rename_group_share(id, group_id, name:)
|
|
82
|
+
glossary_from(@client.put("/v2/glossaries/#{id}/shares/groups/#{group_id}", body: { name: name }))
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def revoke_group_share(id, group_id)
|
|
86
|
+
glossary_from(@client.delete("/v2/glossaries/#{id}/shares/groups/#{group_id}"))
|
|
87
|
+
end
|
|
88
|
+
|
|
60
89
|
# @return [Lara::Models::GlossaryCounts]
|
|
61
90
|
def counts(id)
|
|
62
91
|
Lara::Models::GlossaryCounts.new(**@client.get("/v2/glossaries/#{id}/counts").transform_keys(&:to_sym))
|
|
@@ -169,5 +198,11 @@ module Lara
|
|
|
169
198
|
Lara::Models::GlossaryImport.new(**@client.delete("/v2/glossaries/#{glossary_id}/content",
|
|
170
199
|
body: body).transform_keys(&:to_sym))
|
|
171
200
|
end
|
|
201
|
+
|
|
202
|
+
private
|
|
203
|
+
|
|
204
|
+
def glossary_from(response)
|
|
205
|
+
Lara::Models::Glossary.new(**response.transform_keys(&:to_sym))
|
|
206
|
+
end
|
|
172
207
|
end
|
|
173
208
|
end
|
data/lib/lara/memories.rb
CHANGED
|
@@ -69,6 +69,35 @@ module Lara
|
|
|
69
69
|
models.first
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
+
# @return [Lara::Models::MemoryShares]
|
|
73
|
+
def get_shares(id)
|
|
74
|
+
Lara::Models::MemoryShares.new(**@client.get("/v2/memories/#{id}/shares").transform_keys(&:to_sym))
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def add_account_share(id, name: nil)
|
|
78
|
+
memory_from(@client.post("/v2/memories/#{id}/shares", body: { name: name }.compact))
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def rename_account_share(id, name:)
|
|
82
|
+
memory_from(@client.put("/v2/memories/#{id}/shares", body: { name: name }))
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def revoke_account_share(id)
|
|
86
|
+
memory_from(@client.delete("/v2/memories/#{id}/shares"))
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def add_group_share(id, group_id, name: nil)
|
|
90
|
+
memory_from(@client.post("/v2/memories/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def rename_group_share(id, group_id, name:)
|
|
94
|
+
memory_from(@client.put("/v2/memories/#{id}/shares/groups/#{group_id}", body: { name: name }))
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def revoke_group_share(id, group_id)
|
|
98
|
+
memory_from(@client.delete("/v2/memories/#{id}/shares/groups/#{group_id}"))
|
|
99
|
+
end
|
|
100
|
+
|
|
72
101
|
# @return [Lara::Models::MemoryImport]
|
|
73
102
|
def add_translation(id_or_ids, source:, target:, sentence:, translation:, tuid: nil,
|
|
74
103
|
sentence_before: nil, sentence_after: nil, headers: nil)
|
|
@@ -166,5 +195,11 @@ module Lara
|
|
|
166
195
|
end
|
|
167
196
|
current
|
|
168
197
|
end
|
|
198
|
+
|
|
199
|
+
private
|
|
200
|
+
|
|
201
|
+
def memory_from(response)
|
|
202
|
+
Lara::Models::Memory.new(**response.transform_keys(&:to_sym))
|
|
203
|
+
end
|
|
169
204
|
end
|
|
170
205
|
end
|
|
@@ -16,7 +16,8 @@ module Lara
|
|
|
16
16
|
@created_at = Base.parse_time(created_at)
|
|
17
17
|
@updated_at = Base.parse_time(updated_at)
|
|
18
18
|
@shared_at = Base.parse_time(shared_at)
|
|
19
|
-
|
|
19
|
+
# The API sends is_personal: true and omits the key otherwise; it never sends false or null.
|
|
20
|
+
@is_personal = is_personal || false
|
|
20
21
|
end
|
|
21
22
|
end
|
|
22
23
|
|
data/lib/lara/models/memories.rb
CHANGED
|
@@ -21,7 +21,8 @@ module Lara
|
|
|
21
21
|
@secret = secret
|
|
22
22
|
@collaborators_count = collaborators_count
|
|
23
23
|
@shared_at = Base.parse_time(shared_at)
|
|
24
|
-
|
|
24
|
+
# The API sends is_personal: true and omits the key otherwise; it never sends false or null.
|
|
25
|
+
@is_personal = is_personal || false
|
|
25
26
|
end
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "base"
|
|
4
|
+
|
|
5
|
+
module Lara
|
|
6
|
+
module Models
|
|
7
|
+
class ResourceShareEntry < Base
|
|
8
|
+
attr_reader :id, :name, :share_name, :shared_at, :permissions
|
|
9
|
+
|
|
10
|
+
def initialize(id:, name:, share_name:, shared_at:, permissions:, **_kwargs)
|
|
11
|
+
super()
|
|
12
|
+
@id = id
|
|
13
|
+
@name = name
|
|
14
|
+
@share_name = share_name
|
|
15
|
+
@shared_at = Base.parse_time(shared_at)
|
|
16
|
+
@permissions = permissions
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class MemoryShares < Base
|
|
21
|
+
attr_reader :memory, :account, :groups, :users
|
|
22
|
+
|
|
23
|
+
def initialize(memory:, account: nil, groups: [], users: [], **_kwargs)
|
|
24
|
+
super()
|
|
25
|
+
@memory = Memory.new(**memory.transform_keys(&:to_sym))
|
|
26
|
+
@account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
|
|
27
|
+
@groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
28
|
+
@users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class GlossaryShares < Base
|
|
33
|
+
attr_reader :glossary, :account, :groups, :users
|
|
34
|
+
|
|
35
|
+
def initialize(glossary:, account: nil, groups: [], users: [], **_kwargs)
|
|
36
|
+
super()
|
|
37
|
+
@glossary = Glossary.new(**glossary.transform_keys(&:to_sym))
|
|
38
|
+
@account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
|
|
39
|
+
@groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
40
|
+
@users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class StyleguideShares < Base
|
|
45
|
+
attr_reader :styleguide, :account, :groups, :users
|
|
46
|
+
|
|
47
|
+
def initialize(styleguide:, account: nil, groups: [], users: [], **_kwargs)
|
|
48
|
+
super()
|
|
49
|
+
@styleguide = Styleguide.new(**styleguide.transform_keys(&:to_sym))
|
|
50
|
+
@account = ResourceShareEntry.new(**account.transform_keys(&:to_sym)) if account
|
|
51
|
+
@groups = groups.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
52
|
+
@users = users.map { |entry| ResourceShareEntry.new(**entry.transform_keys(&:to_sym)) }
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
data/lib/lara/models/text.rb
CHANGED
|
@@ -115,10 +115,10 @@ module Lara
|
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
class Styleguide < Base
|
|
118
|
-
attr_reader :id, :name, :content, :owner_id, :created_at, :updated_at, :is_personal
|
|
118
|
+
attr_reader :id, :name, :content, :owner_id, :created_at, :updated_at, :shared_at, :is_personal
|
|
119
119
|
|
|
120
120
|
def initialize(id:, name:, content: nil, owner_id: nil, created_at: nil, updated_at: nil,
|
|
121
|
-
is_personal: nil, **_kwargs)
|
|
121
|
+
shared_at: nil, is_personal: nil, **_kwargs)
|
|
122
122
|
super()
|
|
123
123
|
@id = id
|
|
124
124
|
@name = name
|
|
@@ -126,7 +126,9 @@ module Lara
|
|
|
126
126
|
@owner_id = owner_id
|
|
127
127
|
@created_at = Base.parse_time(created_at)
|
|
128
128
|
@updated_at = Base.parse_time(updated_at)
|
|
129
|
-
@
|
|
129
|
+
@shared_at = Base.parse_time(shared_at)
|
|
130
|
+
# The API sends is_personal: true and omits the key otherwise; it never sends false or null.
|
|
131
|
+
@is_personal = is_personal || false
|
|
130
132
|
end
|
|
131
133
|
|
|
132
134
|
def to_s
|
data/lib/lara/styleguides.rb
CHANGED
|
@@ -40,5 +40,40 @@ module Lara
|
|
|
40
40
|
def delete(id)
|
|
41
41
|
Lara::Models::Styleguide.new(**@client.delete("/v2/styleguides/#{id}").transform_keys(&:to_sym))
|
|
42
42
|
end
|
|
43
|
+
|
|
44
|
+
# @return [Lara::Models::StyleguideShares]
|
|
45
|
+
def get_shares(id)
|
|
46
|
+
Lara::Models::StyleguideShares.new(**@client.get("/v2/styleguides/#{id}/shares").transform_keys(&:to_sym))
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def add_account_share(id, name: nil)
|
|
50
|
+
styleguide_from(@client.post("/v2/styleguides/#{id}/shares", body: { name: name }.compact))
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def rename_account_share(id, name:)
|
|
54
|
+
styleguide_from(@client.put("/v2/styleguides/#{id}/shares", body: { name: name }))
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def revoke_account_share(id)
|
|
58
|
+
styleguide_from(@client.delete("/v2/styleguides/#{id}/shares"))
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def add_group_share(id, group_id, name: nil)
|
|
62
|
+
styleguide_from(@client.post("/v2/styleguides/#{id}/shares/groups/#{group_id}", body: { name: name }.compact))
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def rename_group_share(id, group_id, name:)
|
|
66
|
+
styleguide_from(@client.put("/v2/styleguides/#{id}/shares/groups/#{group_id}", body: { name: name }))
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def revoke_group_share(id, group_id)
|
|
70
|
+
styleguide_from(@client.delete("/v2/styleguides/#{id}/shares/groups/#{group_id}"))
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
private
|
|
74
|
+
|
|
75
|
+
def styleguide_from(response)
|
|
76
|
+
Lara::Models::Styleguide.new(**response.transform_keys(&:to_sym))
|
|
77
|
+
end
|
|
43
78
|
end
|
|
44
79
|
end
|
data/lib/lara/version.rb
CHANGED
data/lib/lara.rb
CHANGED
|
@@ -19,6 +19,7 @@ require_relative "lara/models/base"
|
|
|
19
19
|
require_relative "lara/models/text"
|
|
20
20
|
require_relative "lara/models/memories"
|
|
21
21
|
require_relative "lara/models/glossaries"
|
|
22
|
+
require_relative "lara/models/shares"
|
|
22
23
|
require_relative "lara/models/documents"
|
|
23
24
|
require_relative "lara/models/images"
|
|
24
25
|
require_relative "lara/models/audio"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lara-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Translated
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-08-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -165,6 +165,7 @@ files:
|
|
|
165
165
|
- lib/lara/models/glossaries.rb
|
|
166
166
|
- lib/lara/models/images.rb
|
|
167
167
|
- lib/lara/models/memories.rb
|
|
168
|
+
- lib/lara/models/shares.rb
|
|
168
169
|
- lib/lara/models/text.rb
|
|
169
170
|
- lib/lara/s3_client.rb
|
|
170
171
|
- lib/lara/styleguides.rb
|