predicsis_ml_sdk 0.1.2 → 0.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: 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