opener-chained-daemon 3.0.6 → 3.1.3

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: 3920c098f2410f265049d37ab9fe5d68bb29884987c51c117ea6ff7445b7ec2c
4
- data.tar.gz: ccbc7b603bf3e7c7d840ebc52c8b30e9984f0e9b16f1724fc486ae975f854446
3
+ metadata.gz: 1dafbc02ba750a4f1f2e360e5febf6521bdb3c5019c3c9bea961ec2a20b56ef3
4
+ data.tar.gz: '09915d7c540dd6932da9f5da8bee68fa259611ba628e53b6796c775b7ff73368'
5
5
  SHA512:
6
- metadata.gz: 1ebd4d06c582fac7f857f8ea6975dee9a869557c8d457fe181a399a5266336e3b2e4b606740281be8977b367c7d0e3ac456de5ada10d23e67aa8f34aa4b71794
7
- data.tar.gz: 1e1485573eb03d540519365d0c7b5feaf29b9a41ddb99b6f86f098409fdfde87c832f0c3b9b46bc44865457c2fc9bdde3e66dab23ab966d80cdf24148a24e749
6
+ metadata.gz: 8f89040096bb0f6f9c755c0db9564cbc8a63e772352b5f05c0e4a4341f659e7bd8abdfe3b8b1aa87b6cccf7db17355628105079d95fd0679e4f650f504fcc41e
7
+ data.tar.gz: 3fbb26c4542fae6143077292a288e10ec0aba51c9b2f463f55355d3a3cab518b4c2f1135de978d6f8aeec6e2b30d06f50bc60da9d2cc0cb4ee072a3040e6f81a
@@ -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
@@ -1,7 +1,7 @@
1
1
  module Opener
2
2
  class ChainedDaemon
3
3
 
4
- VERSION = '3.0.6'
4
+ VERSION = '3.1.3'
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,20 +38,36 @@ 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
 
42
- response = Faraday.post BASE_URL, {lang: kaf.language, input: kaf.raw}.to_query
46
+ input = kaf.raw
47
+ input = input.gsub(/\,[^\ ]/, ', ')
48
+ response = Faraday.post BASE_URL, {lang: kaf.language, input: input}.to_query
43
49
  raise Core::UnsupportedLanguageError, kaf.language if response.status == 406
44
50
  raise response.body if response.status >= 400
45
51
  tokens = JSON.parse response.body
46
52
 
47
53
  w_index = 0
54
+
55
+ tokens.map{ |t| t.reverse! } if RTL_LANGUAGES.include? kaf.language
48
56
  tokens.each_with_index do |sentence, s_index|
57
+ miscs = {}
49
58
  sentence.each_with_index do |word|
50
59
  w_index += 1
51
- misc = word['misc']
60
+ # save misc for later usase in a MWT case
61
+ if word['id'].is_a? Array
62
+ word['id'].each { |id| miscs[id] = word['misc'] }
63
+ next
64
+ end
65
+ misc = word['misc'] || miscs[word['id']]
66
+
67
+ Rollbar.scoped({ input: input, params: params, tokens: tokens, word: word }) do
68
+ raise 'Missing misc'
69
+ end if misc.nil?
70
+
52
71
  offset = misc.match(/start_char=(\d+)|/)[1].to_i
53
72
  length = misc.match(/end_char=(\d+)/)[1].to_i - offset
54
73
 
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
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.6
4
+ version: 3.1.3
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-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -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