opener-chained-daemon 3.0.6 → 3.1.3

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