predicsis_ml_sdk 0.1.2 → 0.2.0

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
  SHA1:
3
- metadata.gz: cd94d67a5621a6d3e526bfdaccef5d56f60b9b68
4
- data.tar.gz: aee739207c7f1ce163199d12c72dabd39e289770
3
+ metadata.gz: c542b25c2db14e099b718f4e3395f56d78f9807c
4
+ data.tar.gz: a93043ef772dd0ca9890220cb596fb5dc1f7fbcc
5
5
  SHA512:
6
- metadata.gz: d628d0b7739109264f55e7b9241148b3d396f41d7ba75bdf082b6a09783304baf2e1623edb8a3aefceb659aaeace8416e73da8f2199bbc99abfcf76111e6b857
7
- data.tar.gz: 9d3eee51c38056711da6e9e8684ae8e8d7eb5501b1b672af36d2bb555aba205e8593088ee7eef80ac6b34e36cd562ddb470409516edadb47ff6d3b2659d8dada
6
+ metadata.gz: 3b3ef9330d2d65d47d812d1cf31b336b294576c1880fda060008c4d593f9fb001c2b600fa012b584ac6053ed3211297774d2a8958fd373b96da070ca370c2719
7
+ data.tar.gz: ade4dd944fa10280c2d5753f08a1f1d246ddc7f562585c0135ac75c43fad1101d0c451505873ef917403eefc0ae192c18efb435757c098906616051f0bd55bf5
data/lib/initializer.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Initializer
2
2
  def self.autoload_paths
3
- load "#{self.pwd}/predicsis_ml_sdk/predicsis_error.rb"
4
- load "#{self.pwd}/predicsis_ml_sdk/job_stuff.rb"
5
- Dir[File.join(self.pwd, 'predicsis_ml_sdk', '*.rb')].each { |file| load file }
3
+ require "#{self.pwd}/predicsis_ml_sdk/predicsis_error.rb"
4
+ require "#{self.pwd}/predicsis_ml_sdk/job_stuff.rb"
5
+ Dir[File.join(self.pwd, 'predicsis_ml_sdk', '**', '*.rb')].each { |file| require file }
6
6
  end
7
7
 
8
8
  private
@@ -9,11 +9,15 @@ module PredicsisMlSdk
9
9
  end
10
10
 
11
11
  def get(type = 's3')
12
- data = Requests.get_credentials(@token)
12
+ data = Requests.get_credentials(type, @token)
13
13
  define_attributes(data)
14
14
  self
15
15
  rescue => e
16
16
  raise e
17
17
  end
18
+
19
+ def to_h
20
+ instance_variables.each_with_object({}) { |var, hash| hash[var.to_s.delete("@")] = instance_variable_get(var) unless var.to_s == '@token' }
21
+ end
18
22
  end
19
23
  end
@@ -1,7 +1,35 @@
1
1
  module PredicsisMlSdk
2
2
  class DataFile
3
+ attr_accessor :id
4
+
3
5
  def self.upload(params = {})
6
+ params.delete('expires_at')
4
7
  Requests.upload(params)
5
8
  end
9
+
10
+ def self.get(id, token = nil)
11
+ DataFile.new(id, token).get
12
+ end
13
+
14
+ def self.signed_url(id, token = nil)
15
+ DataFile.new(id, token).signed_url
16
+ end
17
+
18
+ def initialize(id = nil, token = nil)
19
+ @token = token
20
+ @id = id
21
+ end
22
+
23
+ def get
24
+ data = Requests.get_data_file(@token, @id)
25
+ define_attributes(data)
26
+ self
27
+ end
28
+
29
+ def signed_url
30
+ data = Requests.get_signed_url(@token, @id)
31
+ define_attributes(data)
32
+ self
33
+ end
6
34
  end
7
35
  end
@@ -6,7 +6,7 @@ module PredicsisMlSdk
6
6
  class Requests
7
7
  HTTParty::Basement.default_options.update(verify: false)
8
8
 
9
- MODELS = %w(source dataset dictionary preparation_rules_set modalities_set report model)
9
+ MODELS = %w(source dataset dictionary preparation_rules_set modalities_set report model data_file)
10
10
 
11
11
  class << self
12
12
  %w(get post patch delete).each do |method|
@@ -49,22 +49,19 @@ module PredicsisMlSdk
49
49
  delete("#{api_host}/settings/tokens/#{id}", nil, headers(token))
50
50
  end
51
51
 
52
- def get_credentials(token)
52
+ def get_credentials(type, token)
53
53
  PredicsisMlSdk.logger.debug 'GET credentials'
54
- get("#{api_host}/sources/credentials/s3", nil, headers(token))['credentials']
54
+ get("#{api_host}/sources/credentials/#{type}", nil, headers(token))['credentials']
55
55
  end
56
56
 
57
57
  def upload(params = {})
58
- filename = params.delete(:file)
59
- endpoint = params.delete(:url)
60
- aws_access_key_id = params.delete(:aws_access_key_id)
61
- params.merge!(AwsAccessKeyId: aws_access_key_id, :'Content-Type' => 'multipart/form-data',
62
- acl: 'private', success_action_status: '201', file: File.new(filename))
58
+ filename = params.delete('file')
59
+ endpoint = params.delete('signed_url')
63
60
  PredicsisMlSdk.logger.debug "UPLOAD #{filename}"
64
- response = HTTMultiParty.post("#{endpoint}", query: params)
61
+ response = HTTParty.put(endpoint, body_stream: File.open(filename),
62
+ headers: { 'Content-Length' => File.size(filename).to_s })
65
63
  if [200, 201, 204].include? response.code
66
- return response['PostResponse']['Key'] ||
67
- Nokogiri::XML.parse(response).xpath('PostResponse/Key').map { |key| key.content }.first
64
+ params['key'] || params['object']
68
65
  else
69
66
  fail PredicsisError::RequestError.new(response['message'], JSON.parse(response.body))
70
67
  end
@@ -96,6 +93,11 @@ module PredicsisMlSdk
96
93
  params, headers(token))['variable']
97
94
  end
98
95
 
96
+ def get_signed_url(token, id)
97
+ PredicsisMlSdk.logger.debug "GET data_files/#{id}/signed_url"
98
+ get("#{api_host}/data_files/#{id}/signed_url", nil, headers(token))['data_file']
99
+ end
100
+
99
101
  MODELS.each do |model|
100
102
  define_method("post_#{model}") do |token, params = {}|
101
103
  PredicsisMlSdk.logger.debug "POST #{model.pluralize}"
@@ -1,3 +1,3 @@
1
1
  module PredicsisMlSdk
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: predicsis_ml_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Armand
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-21 00:00:00.000000000 Z
11
+ date: 2015-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json