nexosis_api 2.1.0 → 2.2.0

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
  SHA1:
3
- metadata.gz: c12a9dee350193af3df27068feb8161999a7d085
4
- data.tar.gz: c2f3cd6d4b24c211a4eab0c5bd2ed07dd4e6b132
3
+ metadata.gz: c463f70058910101a5ec3b3ed201cc91ed27791c
4
+ data.tar.gz: '09331c0b0cd6c388851e1782942487038e69f50a'
5
5
  SHA512:
6
- metadata.gz: 59e8f973c4aa67adb891ef177deeb8571ed99413a8efb6fc826e46058d286e9a308e1d87c014294ce9a4ae2e8b756402f0b592dbb1b31ba0cebfc9686360a17f
7
- data.tar.gz: b3952c5b3d130305511310e4b77f028ada6832e90ecf1d113f8c842ece1ee2a82754553863d3766998c8c61da6fca998b4afda20de84b11042fd65ecff07ea74
6
+ metadata.gz: aa44a973d907bf7b9a55b4accb1b20669bcd0c8085ee9b92585240926d6d12517f6f14ff25d483097ac7215cc10153bafc319003301bfe23a211910d77f55f23
7
+ data.tar.gz: 0fe95f24b21264037f0e384af3fd9d8f1757b0e2235443c7041066cd167f1f49a2206a979d086ca4852d51e7a68c5dc2c203cf451239114e5a3b45fc2ef709ae
@@ -61,8 +61,8 @@ module NexosisApi
61
61
  # @note For a classification model you may include the extra parameter 'includeClassScores' to
62
62
  # get scores back for each class, not just the chosen class.
63
63
  def predict(model_id, feature_data, extra_parameters = {})
64
- raise ArgumentError, 'Running predictions requires that model_id be specified and it is currently empty.' if model_id.empty?
65
- raise ArgumentError, 'Running predictions requires that feature_data be specified and it is currently empty.' if feature_data.empty?
64
+ raise ArgumentError, 'Running predictions requires that model_id be specified and it is currently empty.' if model_id.nil? || model_id.empty?
65
+ raise ArgumentError, 'Running predictions requires that feature_data be specified and it is currently empty.' if feature_data.nil? || feature_data.empty?
66
66
  predict_url = "/models/#{model_id}/predict"
67
67
  feature_data = [feature_data] unless feature_data.kind_of?(Array)
68
68
  response = self.class.post(predict_url, headers: @headers, body: { 'data': feature_data, 'extraParameters': extra_parameters }.to_json)
@@ -81,7 +81,7 @@ module NexosisApi
81
81
  # @raise [NexosisApi::HttpException]
82
82
  # @raise [ArgumentError]
83
83
  def remove_model(model_id)
84
- raise ArgumentError, 'Deleting a model requires that model_id be specified and it is currently empty.' if model_id.empty?
84
+ raise ArgumentError, 'Deleting a model requires that model_id be specified and it is currently empty.' if model_id.nil? || model_id.empty?
85
85
  delete_url = "/models/#{model_id}"
86
86
  response = self.class.delete(delete_url, @options)
87
87
  unless (response.success?)
@@ -0,0 +1,60 @@
1
+ module NexosisApi
2
+ # class to operate on vocabulary endpoint in Nexosis API
3
+ class Client
4
+ # Vocabluary-based API operations
5
+ # @see http://docs.nexosis.com/
6
+ # @since 2.2.0
7
+ module Vocabulary
8
+ # Gets summary information about the Vocabulary built from the Text columns in a session
9
+ # @param datasource_name [String] optionally limit to those
10
+ # vocabularies created for this data source name.
11
+ # @param created_from_session [String] optionally limit to those
12
+ # vocabularies created for the given session.
13
+ # @param page [Integer] the page number for paged results. Defaults to 0.
14
+ # @param page_size [Integer] the size of each page of paged results. Defaults to 50.
15
+ # @return [NexosisApi::PagedArray of NexosisApi::VocabularySummary] - all vocabularies available within the query parameters
16
+ # @raise [NexosisApi::HttpException]
17
+ def list_vocabularies(datasource_name = nil, created_from_session=nil, page = 0, page_size = 50)
18
+ vocab_url = '/vocabulary'
19
+ query = {
20
+ page: page,
21
+ pageSize: page_size
22
+ }
23
+ query.store('created_from_session', datasource_name) unless created_from_session.nil?
24
+ query.store('dataSourceName', datasource_name) unless datasource_name.nil?
25
+ response = self.class.get(vocab_url, headers: @headers, query: query)
26
+ raise HttpException.new("There was a problem listing vocabularies: #{response.code}.",
27
+ "listing vocabularies with data source name #{datasource_name}",
28
+ response) unless response.success?
29
+ NexosisApi::PagedArray.new(response.parsed_response,
30
+ response.parsed_response['items']
31
+ .map { |item| NexosisApi::VocabularySummary.new(item) })
32
+ end
33
+
34
+ # Gets a list of Vocabulary Words from a vocabulary
35
+ # @param vocabulary_id [String] required unique identifier for vocabulary to get
36
+ # @param type [String] whether to return 'word' types (default), 'stopWord' for only stop words, or nil for both.
37
+ # @param page [Integer] the page number for paged results. Defaults to 0.
38
+ # @param page_size [Integer] the size of each page of paged results. Defaults to 50.
39
+ # @return [NexosisApi::PagedArray of NexosisApi::VocabularyWord]
40
+ # @note words will be sorted in rank order
41
+ # @raise [NexosisApi::HttpException]
42
+ def get_vocabulary(vocabulary_id, type = 'word', page = 0, page_size = 50)
43
+ raise ArgumentError, 'vocabulary_id was not provided and is not optional' if vocabulary_id.nil?
44
+ vocab_url = "/vocabulary/#{vocabulary_id}"
45
+ query = {
46
+ page: page,
47
+ pageSize: page_size
48
+ }
49
+ query.store('type', type) unless type.nil?
50
+ response = self.class.get(vocab_url, headers: @headers, query: query)
51
+ raise HttpException.new("There was a problem getting a vocabulary: #{response.code}.",
52
+ "getting vocabulary #{vocabulary_id}",
53
+ response) unless response.success?
54
+ NexosisApi::PagedArray.new(response.parsed_response,
55
+ response.parsed_response['items']
56
+ .map { |item| NexosisApi::VocabularyWord.new(item) })
57
+ end
58
+ end
59
+ end
60
+ end
@@ -30,11 +30,14 @@ require 'nexosis_api/session'
30
30
  require 'nexosis_api/time_interval'
31
31
  require 'nexosis_api/view_definition'
32
32
  require 'nexosis_api/view_data'
33
+ require 'nexosis_api/vocabulary_summary'
34
+ require 'nexosis_api/vocabulary_word'
33
35
  require 'nexosis_api/client/contest'
34
36
  require 'nexosis_api/client/sessions'
35
37
  require 'nexosis_api/client/datasets'
36
38
  require 'nexosis_api/client/imports'
37
39
  require 'nexosis_api/client/views'
40
+ require 'nexosis_api/client/vocabulary'
38
41
  require 'nexosis_api/client/models'
39
42
 
40
43
  module NexosisApi
@@ -48,6 +51,7 @@ module NexosisApi
48
51
  include Client::Views
49
52
  include Client::Models
50
53
  include Client::Contest
54
+ include Client::Vocabulary
51
55
 
52
56
  def initialize(options = {})
53
57
  raise ArgumentError, 'api_key was not defined' unless options[:api_key].nil? == false
@@ -7,6 +7,8 @@ module NexosisApi
7
7
  @data = NexosisApi::PagedArray.new(data_hash, v)
8
8
  elsif (k == 'links')
9
9
  @links = v.reject(&:nil?).map { |l| NexosisApi::Link.new(l) }
10
+ elsif (k == 'isTimeSeries')
11
+ @is_timeseries = v
10
12
  end
11
13
  end
12
14
  end
@@ -18,5 +20,10 @@ module NexosisApi
18
20
  # The hash of data values from the dataset
19
21
  # @return [NexosisApi::PagedArray of Hash] where each hash contains the dataset data
20
22
  attr_accessor :data
23
+
24
+ # Whether or not this dataset was loaded with a date-based key with a timestamp role
25
+ # @return [Boolean]
26
+ # @since 2.1.1
27
+ attr_reader :is_timeseries
21
28
  end
22
29
  end
@@ -0,0 +1,44 @@
1
+ module NexosisApi
2
+ # parsed results of a request for vocabulary
3
+ # @since 2.2.0
4
+ class VocabularySummary
5
+ def initialize(vocab_hash)
6
+ var_map = { 'id' => :@vocabulary_id,
7
+ 'dataSourceName' => :@datasource_name,
8
+ 'columnName' => :@column_name,
9
+ 'dataSourceType' => :@datasource_type,
10
+ 'createdOnDate' => :@created_on,
11
+ 'createdBySessionId' => :@created_by_session }
12
+ vocab_hash.each { |k, v| instance_variable_set(var_map[k.to_s], v) unless var_map[k.to_s].nil? }
13
+ @links = vocab_hash['links'].reject(&:nil?).map { |l| NexosisApi::Link.new(l) }
14
+ end
15
+
16
+ # unique identifier for this vocabulary
17
+ # @return [String]
18
+ attr_reader :vocabulary_id
19
+
20
+ # datasource which contained the text column the vocabulary was built from
21
+ # @return [String]
22
+ attr_reader :datasource_name
23
+
24
+ # text-based column name from the datasource
25
+ # @return [String]
26
+ attr_reader :column_name
27
+
28
+ # determines if data source was dataSet, View, or other
29
+ # @return [String]
30
+ attr_reader :datasource_type
31
+
32
+ # The date on which the vocabulary was created
33
+ # @return [DateTime]
34
+ attr_reader :created_on
35
+
36
+ # The unique id of the session for which this vocabulary was built.
37
+ # @reutn [String]
38
+ attr_reader :created_by_session
39
+
40
+ # hypermedia related to this vocabulary
41
+ # @return [Arrays]
42
+ attr_reader :links
43
+ end
44
+ end
@@ -0,0 +1,22 @@
1
+ module NexosisApi
2
+ # parse results of a single word entry in a vocabulary
3
+ # @since 2.2.0
4
+ class VocabularyWord
5
+ def initialize(word_hash)
6
+ word_hash.each { |k, v| instance_variable_set("@#{k}", v) }
7
+ end
8
+
9
+ # The actual word or word pair
10
+ # @return [String]
11
+ attr_reader :text
12
+
13
+ # Either word or stopWord
14
+ # @return [String]
15
+ attr_reader :type
16
+
17
+ # For words the rank or relative importance of the word in predictions. Nil for stop words.
18
+ # @return [Integer]
19
+ attr_reader :rank
20
+
21
+ end
22
+ end
data/nexosisapi.gemspec CHANGED
@@ -16,6 +16,6 @@ Gem::Specification.new do |spec|
16
16
  spec.require_paths = ['lib']
17
17
  spec.required_ruby_version = '>= 2.0.0'
18
18
  spec.summary = "Ruby client for working with the Nexosis API"
19
- spec.version = '2.1.0'
19
+ spec.version = '2.2.0'
20
20
  spec.metadata["yard.run"] = "yri"
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexosis_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nexosis,Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-12 00:00:00.000000000 Z
11
+ date: 2018-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -59,6 +59,7 @@ files:
59
59
  - lib/nexosis_api/client/models.rb
60
60
  - lib/nexosis_api/client/sessions.rb
61
61
  - lib/nexosis_api/client/views.rb
62
+ - lib/nexosis_api/client/vocabulary.rb
62
63
  - lib/nexosis_api/column.rb
63
64
  - lib/nexosis_api/column_options.rb
64
65
  - lib/nexosis_api/column_role.rb
@@ -85,6 +86,8 @@ files:
85
86
  - lib/nexosis_api/time_interval.rb
86
87
  - lib/nexosis_api/view_data.rb
87
88
  - lib/nexosis_api/view_definition.rb
89
+ - lib/nexosis_api/vocabulary_summary.rb
90
+ - lib/nexosis_api/vocabulary_word.rb
88
91
  - nexosisapi.gemspec
89
92
  homepage: https://github.com/nexosis/nexosisclient-rb
90
93
  licenses: