opener-chained-daemon 3.0.5 → 3.1.2
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/opener/chained_daemon.rb +3 -0
- data/lib/opener/chained_daemon/chained_daemon.rb +12 -0
- data/lib/opener/chained_daemon/cli.rb +8 -1
- data/lib/opener/chained_daemon/languages_cache.rb +1 -1
- data/lib/opener/chained_daemon/version.rb +1 -1
- data/lib/opener/stanza/tokenizer_pos.rb +18 -3
- data/opener-chained-daemon.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f35c2981bde4e7e2b83deb6b9a412cdd5aa61ccc6c3c89bc454d728a7c54ee9
|
4
|
+
data.tar.gz: e12cf2b8dd8df0483fa1bb304cf32b6185aa110bf468bcdb991cd3053aef48ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56185c5656db86a96b1171d932e4cd746d3ce4e4ec9022647889076e07ddddac580cb5770d9bcb676d2d140182bf47a99d08ffd55db7cd15192752205e567a3e
|
7
|
+
data.tar.gz: 7c13d54407fb02a78b96e6495cddea4a338798cf1a86066623c831ba562a6e785f8a9eb4fec764e263508b451e9b1469de4bb58526d35f385afe61b45b7d4bc5
|
@@ -47,6 +47,7 @@ module Opener
|
|
47
47
|
output = xml.to_s
|
48
48
|
end
|
49
49
|
|
50
|
+
output = pretty_print output if params[:cache_keys][:environment] == 'staging'
|
50
51
|
output
|
51
52
|
|
52
53
|
rescue Core::UnsupportedLanguageError
|
@@ -54,6 +55,17 @@ module Opener
|
|
54
55
|
output
|
55
56
|
end
|
56
57
|
|
58
|
+
def pretty_print(output)
|
59
|
+
doc = REXML::Document.new output
|
60
|
+
doc.context[:attribute_quote] = :quote
|
61
|
+
out = ""
|
62
|
+
formatter = REXML::Formatters::Pretty.new
|
63
|
+
formatter.compact = true
|
64
|
+
formatter.write(doc, out)
|
65
|
+
|
66
|
+
out.strip
|
67
|
+
end
|
68
|
+
|
57
69
|
def translate xml, params
|
58
70
|
raw = xml.at :raw
|
59
71
|
case translate_service params
|
@@ -47,7 +47,14 @@ Example:
|
|
47
47
|
run do |opts, args|
|
48
48
|
daemon = ChainedDaemon.new args: args
|
49
49
|
input = STDIN.tty? ? nil : STDIN.read
|
50
|
-
|
50
|
+
|
51
|
+
params = if ENV['PARAMS']
|
52
|
+
JSON.parse ENV['PARAMS']
|
53
|
+
else
|
54
|
+
{}
|
55
|
+
end
|
56
|
+
# Set environment as staging from console for testing purposes
|
57
|
+
params[:cache_keys] = { environment: 'staging', merged: true }
|
51
58
|
|
52
59
|
puts daemon.run input, params || {}
|
53
60
|
end
|
@@ -23,7 +23,7 @@ module Opener
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def cache_update
|
26
|
-
puts "loading supported languages from url #{@url}"
|
26
|
+
puts "loading supported languages from url #{@url}" if ENV['DEBUG']
|
27
27
|
|
28
28
|
languages = JSON.parse http.get(@url).body
|
29
29
|
@cache = languages['data'].map { |l| l['code'] }
|
@@ -8,6 +8,9 @@ module Opener
|
|
8
8
|
BASE_URL = ENV['STANZA_SERVER']
|
9
9
|
LANGUAGES_CACHE = Opener::ChainedDaemon::LanguagesCache.new
|
10
10
|
|
11
|
+
RTL_LANGUAGES = [ "ar", "ara", "arc", "ae", "ave", "egy", "he", "heb", "nqo", "pal", "phn", "sam",
|
12
|
+
"syc", "syr", "fa", "per", "fas", "ku", "kur", "ur", "urd" ]
|
13
|
+
|
11
14
|
POS = {
|
12
15
|
'DET' => 'D',
|
13
16
|
'ADJ' => 'G',
|
@@ -35,7 +38,8 @@ module Opener
|
|
35
38
|
|
36
39
|
kaf = KAF::Document.from_xml input
|
37
40
|
|
38
|
-
|
41
|
+
prod = params[:cache_keys][:environment] != 'staging'
|
42
|
+
if prod and !LANGUAGES_CACHE.get.include?(kaf.language)
|
39
43
|
raise Core::UnsupportedLanguageError.new kaf.language
|
40
44
|
end
|
41
45
|
|
@@ -45,16 +49,27 @@ module Opener
|
|
45
49
|
tokens = JSON.parse response.body
|
46
50
|
|
47
51
|
w_index = 0
|
52
|
+
|
53
|
+
tokens.map{ |t| t.reverse! } if RTL_LANGUAGES.include? kaf.language
|
48
54
|
tokens.each_with_index do |sentence, s_index|
|
55
|
+
miscs = {}
|
49
56
|
sentence.each_with_index do |word|
|
50
57
|
w_index += 1
|
51
|
-
misc
|
58
|
+
# save misc for later usase in a MWT case
|
59
|
+
if word['id'].is_a? Array
|
60
|
+
word['id'].each { |id| miscs[id] = word['misc'] }
|
61
|
+
next
|
62
|
+
end
|
63
|
+
misc = word['misc'] || miscs[word['id']]
|
64
|
+
|
52
65
|
offset = misc.match(/start_char=(\d+)|/)[1].to_i
|
53
66
|
length = misc.match(/end_char=(\d+)/)[1].to_i - offset
|
54
67
|
|
55
68
|
u_pos = word['upos']
|
56
69
|
pos = POS[u_pos]
|
57
|
-
|
70
|
+
Rollbar.scoped({ input: input, params: params, tokens: tokens }) do
|
71
|
+
raise "Didn't find a map for #{u_pos}"
|
72
|
+
end if pos.nil?
|
58
73
|
type = if POS_OPEN.include? pos then 'open' else 'close' end
|
59
74
|
|
60
75
|
params = {
|
@@ -29,14 +29,14 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_dependency 'roda'
|
30
30
|
spec.add_dependency 'rack-timeout'
|
31
31
|
spec.add_dependency 'faraday'
|
32
|
-
spec.add_dependency 'opener-daemons', '~> 2.7.
|
32
|
+
spec.add_dependency 'opener-daemons', '~> 2.7.2'
|
33
33
|
spec.add_dependency 'opener-callback-handler', '~> 1.0'
|
34
34
|
|
35
35
|
spec.add_dependency 'opener-language-identifier', '>= 4.4.0'
|
36
36
|
spec.add_dependency 'opener-tokenizer', '>= 2.2.0'
|
37
37
|
spec.add_dependency 'opener-pos-tagger', '>= 3.2.0'
|
38
38
|
spec.add_dependency 'opener-polarity-tagger', '>= 3.2.7'
|
39
|
-
spec.add_dependency 'opener-property-tagger', '>= 3.3.
|
39
|
+
spec.add_dependency 'opener-property-tagger', '>= 3.3.5'
|
40
40
|
spec.add_dependency 'opener-opinion-detector-basic', '>= 3.2.3'
|
41
41
|
|
42
42
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opener-chained-daemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- development@olery.com
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.7.
|
117
|
+
version: 2.7.2
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 2.7.
|
124
|
+
version: 2.7.2
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: opener-callback-handler
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - ">="
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 3.3.
|
201
|
+
version: 3.3.5
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 3.3.
|
208
|
+
version: 3.3.5
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: opener-opinion-detector-basic
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|