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 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