opener-chained-daemon 3.0.5 → 3.1.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: 3d0b1b563afb30110fd2592c79c196622df4388aa370b98356e951cef818db73
4
- data.tar.gz: bd223a5042e3ccf8fa04b736cb6d8403f20173f45d7bbd306a96fc254c5a77a8
3
+ metadata.gz: 2f35c2981bde4e7e2b83deb6b9a412cdd5aa61ccc6c3c89bc454d728a7c54ee9
4
+ data.tar.gz: e12cf2b8dd8df0483fa1bb304cf32b6185aa110bf468bcdb991cd3053aef48ed
5
5
  SHA512:
6
- metadata.gz: 0ab381cdb194d8d189478f775749d2e18c9ab62105ae731a86217f588d5e7164569845ea7bb919b7d5f7761209b5e53ae47959a6facc2706bee461f96081b00a
7
- data.tar.gz: 9ca55c537ce234fc74748d116a328f82da37fb7815ac6cb6bf0af9172e0839eb677e7fe30e84370fc8230e472dd5cc5d211e41899e3ba63a5acd0e1191b8efc3
6
+ metadata.gz: 56185c5656db86a96b1171d932e4cd746d3ce4e4ec9022647889076e07ddddac580cb5770d9bcb676d2d140182bf47a99d08ffd55db7cd15192752205e567a3e
7
+ data.tar.gz: 7c13d54407fb02a78b96e6495cddea4a338798cf1a86066623c831ba562a6e785f8a9eb4fec764e263508b451e9b1469de4bb58526d35f385afe61b45b7d4bc5
@@ -3,6 +3,9 @@ require 'oga'
3
3
  require 'hashie'
4
4
  require 'google/cloud/translate'
5
5
 
6
+ require 'rexml/document'
7
+ require 'rexml/formatters/pretty'
8
+
6
9
  require 'opener/daemons'
7
10
 
8
11
  require_relative 'chained_daemon/languages_cache'
@@ -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
- params = JSON.parse ENV['PARAMS'] if ENV['PARAMS']
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'] }
@@ -1,7 +1,7 @@
1
1
  module Opener
2
2
  class ChainedDaemon
3
3
 
4
- VERSION = '3.0.5'
4
+ VERSION = '3.1.2'
5
5
 
6
6
  end
7
7
  end
@@ -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
- unless LANGUAGES_CACHE.get.include? kaf.language
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 = word['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
- raise "Didn't find a map for #{u_pos}" if pos.nil?
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.1'
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.4'
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.0.5
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-09 00:00:00.000000000 Z
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.1
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.1
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.4
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.4
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