big_ml 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.gitignore +19 -0
  2. data/.rspec +2 -0
  3. data/.rvmrc +1 -0
  4. data/.rvmrc.example +1 -0
  5. data/.travis.yml +4 -0
  6. data/CHANGELOG.md +8 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE +22 -0
  9. data/README.md +49 -0
  10. data/Rakefile +6 -0
  11. data/TODO.md +6 -0
  12. data/big_ml.gemspec +23 -0
  13. data/lib/big_ml/authenticable.rb +10 -0
  14. data/lib/big_ml/base.rb +51 -0
  15. data/lib/big_ml/client.rb +29 -0
  16. data/lib/big_ml/config.rb +30 -0
  17. data/lib/big_ml/dataset.rb +19 -0
  18. data/lib/big_ml/model.rb +21 -0
  19. data/lib/big_ml/prediction.rb +19 -0
  20. data/lib/big_ml/request.rb +29 -0
  21. data/lib/big_ml/source.rb +18 -0
  22. data/lib/big_ml/version.rb +3 -0
  23. data/lib/big_ml.rb +13 -0
  24. data/spec/fixtures/iris.csv +151 -0
  25. data/spec/integration/dataset_spec.rb +51 -0
  26. data/spec/integration/model_spec.rb +53 -0
  27. data/spec/integration/prediction_spec.rb +55 -0
  28. data/spec/integration/source_spec.rb +55 -0
  29. data/spec/spec_helper.rb +22 -0
  30. data/spec/units/client_spec.rb +50 -0
  31. data/spec/units/source_spec.rb +20 -0
  32. data/spec/vcr_cassettes/BigML_Dataset/no_dataset/_all/must_be_empty.yml +136 -0
  33. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/must_be_able_to_be_find_using_the_reference.yml +293 -0
  34. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/must_be_able_to_remove_the_dataset.yml +318 -0
  35. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/must_be_able_to_update_the_name.yml +360 -0
  36. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/must_have_only_one_item.yml +265 -0
  37. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/must_have_the_same_file_name.yml +265 -0
  38. data/spec/vcr_cassettes/BigML_Dataset/one_dataset/was_created_successfully.yml +149 -0
  39. data/spec/vcr_cassettes/BigML_Model/no_model/_all/must_be_empty.yml +166 -0
  40. data/spec/vcr_cassettes/BigML_Model/one_model/must_be_able_to_be_find_using_the_reference.yml +446 -0
  41. data/spec/vcr_cassettes/BigML_Model/one_model/must_be_able_to_remove_the_model.yml +426 -0
  42. data/spec/vcr_cassettes/BigML_Model/one_model/must_be_able_to_update_the_name.yml +558 -0
  43. data/spec/vcr_cassettes/BigML_Model/one_model/must_have_only_one_item.yml +258 -0
  44. data/spec/vcr_cassettes/BigML_Model/one_model/must_have_the_same_file_name.yml +375 -0
  45. data/spec/vcr_cassettes/BigML_Model/one_model/must_have_the_same_size.yml +375 -0
  46. data/spec/vcr_cassettes/BigML_Model/one_model/was_created_successfully.yml +298 -0
  47. data/spec/vcr_cassettes/BigML_Prediction/no_prediction/_all/must_be_empty.yml +305 -0
  48. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/must_be_able_to_be_find_using_the_reference.yml +502 -0
  49. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/must_be_able_to_remove_the_prediction.yml +547 -0
  50. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/must_be_able_to_update_the_name.yml +546 -0
  51. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/must_have_only_one_item.yml +503 -0
  52. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/must_have_the_same_name.yml +420 -0
  53. data/spec/vcr_cassettes/BigML_Prediction/one_prediction/was_created_successfully.yml +297 -0
  54. data/spec/vcr_cassettes/BigML_Source/no_source/_all/must_be_empty.yml +136 -0
  55. data/spec/vcr_cassettes/BigML_Source/one_source/must_be_able_to_be_find_using_the_reference.yml +191 -0
  56. data/spec/vcr_cassettes/BigML_Source/one_source/must_be_able_to_remove_the_source.yml +195 -0
  57. data/spec/vcr_cassettes/BigML_Source/one_source/must_be_able_to_update_the_name.yml +279 -0
  58. data/spec/vcr_cassettes/BigML_Source/one_source/must_have_only_one_item.yml +192 -0
  59. data/spec/vcr_cassettes/BigML_Source/one_source/must_have_the_same_file_name.yml +192 -0
  60. data/spec/vcr_cassettes/BigML_Source/one_source/was_created_successfully.yml +105 -0
  61. metadata +224 -0
@@ -0,0 +1,426 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://bigml.io/andromeda/source?username=<USERNAME>&api_key=<API_KEY>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ connection:
11
+ - close
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ content-type:
18
+ - application/json; charset=utf-8
19
+ date:
20
+ - Wed, 20 Jun 2012 03:56:56 GMT
21
+ server:
22
+ - nginx/1.0.12
23
+ content-length:
24
+ - '1280'
25
+ connection:
26
+ - Close
27
+ body:
28
+ encoding: US-ASCII
29
+ string: ! '{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null,
30
+ "total_count": 1}, "objects": [{"category": 0, "code": 200, "content_type":
31
+ "application/octet-stream", "created": "2012-06-20T03:58:09.524000", "credits":
32
+ 0.0, "description": "", "fields": {"000000": {"column_number": 0, "name":
33
+ "sepal length", "optype": "numeric"}, "000001": {"column_number": 1, "name":
34
+ "sepal width", "optype": "numeric"}, "000002": {"column_number": 2, "name":
35
+ "petal length", "optype": "numeric"}, "000003": {"column_number": 3, "name":
36
+ "petal width", "optype": "numeric"}, "000004": {"column_number": 4, "name":
37
+ "species", "optype": "categorical"}}, "file_name": "iris.csv", "md5": "d1175c032e1042bec7f974c91e4a65ae",
38
+ "name": "iris.csv", "number_of_datasets": 1, "number_of_models": 1, "number_of_predictions":
39
+ 0, "private": true, "resource": "source/4fe14a51035d074a21000148", "size":
40
+ 4608, "source_parser": {"header": true, "locale": "en_US", "missing_tokens":
41
+ ["", "N/A", "n/a", "NULL", "null", "-", "#DIV/0", "#REF!", "#NAME?", "NIL",
42
+ "nil", "NA", "na", "#VALUE!", "#NULL!", "NaN", "#N/A", "#NUM!", "?"], "quote":
43
+ "\"", "separator": ","}, "status": {"code": 5, "elapsed": 67, "message": "The
44
+ source has been created"}, "tags": [], "type": 0, "updated": "2012-06-20T03:58:40.624000"}]}'
45
+ http_version: '1.1'
46
+ recorded_at: Wed, 20 Jun 2012 03:58:27 GMT
47
+ - request:
48
+ method: delete
49
+ uri: https://bigml.io/andromeda/source/4fe14a51035d074a21000148?username=<USERNAME>&api_key=<API_KEY>
50
+ body:
51
+ encoding: US-ASCII
52
+ string: ''
53
+ headers:
54
+ connection:
55
+ - close
56
+ response:
57
+ status:
58
+ code: 204
59
+ message: NO CONTENT
60
+ headers:
61
+ content-length:
62
+ - '0'
63
+ content-type:
64
+ - text/html; charset=utf-8
65
+ date:
66
+ - Wed, 20 Jun 2012 03:54:38 GMT
67
+ server:
68
+ - nginx/1.0.12
69
+ connection:
70
+ - Close
71
+ body:
72
+ encoding: US-ASCII
73
+ string: ''
74
+ http_version: '1.1'
75
+ recorded_at: Wed, 20 Jun 2012 03:58:28 GMT
76
+ - request:
77
+ method: get
78
+ uri: https://bigml.io/andromeda/dataset?username=<USERNAME>&api_key=<API_KEY>
79
+ body:
80
+ encoding: US-ASCII
81
+ string: ''
82
+ headers:
83
+ connection:
84
+ - close
85
+ response:
86
+ status:
87
+ code: 200
88
+ message: OK
89
+ headers:
90
+ content-type:
91
+ - application/json; charset=utf-8
92
+ date:
93
+ - Wed, 20 Jun 2012 03:56:58 GMT
94
+ server:
95
+ - nginx/1.0.12
96
+ transfer-encoding:
97
+ - chunked
98
+ connection:
99
+ - Close
100
+ body:
101
+ encoding: US-ASCII
102
+ string: ! '{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null,
103
+ "total_count": 1}, "objects": [{"category": 0, "code": 200, "columns": 5,
104
+ "created": "2012-06-20T03:58:10.771000", "credits": 0.0087890625, "description":
105
+ "", "locale": "en_US", "name": "iris'' dataset", "number_of_models": 1, "number_of_predictions":
106
+ 0, "private": true, "resource": "dataset/4fe14a52035d074a1e0000fd", "rows":
107
+ 150, "size": 4608, "source": "source/4fe14a51035d074a21000148", "source_status":
108
+ false, "status": {"bytes": 4608, "code": 5, "elapsed": 228, "field_errors":
109
+ [], "message": "The dataset has been created", "row_format_errors": [], "serialized_rows":
110
+ 150}, "tags": [], "updated": "2012-06-20T03:58:40.631000"}]}'
111
+ http_version: '1.1'
112
+ recorded_at: Wed, 20 Jun 2012 03:58:29 GMT
113
+ - request:
114
+ method: delete
115
+ uri: https://bigml.io/andromeda/dataset/4fe14a52035d074a1e0000fd?username=<USERNAME>&api_key=<API_KEY>
116
+ body:
117
+ encoding: US-ASCII
118
+ string: ''
119
+ headers:
120
+ connection:
121
+ - close
122
+ response:
123
+ status:
124
+ code: 204
125
+ message: NO CONTENT
126
+ headers:
127
+ content-length:
128
+ - '0'
129
+ content-type:
130
+ - text/html; charset=utf-8
131
+ date:
132
+ - Wed, 20 Jun 2012 03:54:40 GMT
133
+ server:
134
+ - nginx/1.0.12
135
+ connection:
136
+ - Close
137
+ body:
138
+ encoding: US-ASCII
139
+ string: ''
140
+ http_version: '1.1'
141
+ recorded_at: Wed, 20 Jun 2012 03:58:31 GMT
142
+ - request:
143
+ method: get
144
+ uri: https://bigml.io/andromeda/model?username=<USERNAME>&api_key=<API_KEY>
145
+ body:
146
+ encoding: US-ASCII
147
+ string: ''
148
+ headers:
149
+ connection:
150
+ - close
151
+ response:
152
+ status:
153
+ code: 200
154
+ message: OK
155
+ headers:
156
+ content-type:
157
+ - application/json; charset=utf-8
158
+ date:
159
+ - Wed, 20 Jun 2012 03:57:01 GMT
160
+ server:
161
+ - nginx/1.0.12
162
+ content-length:
163
+ - '832'
164
+ connection:
165
+ - Close
166
+ body:
167
+ encoding: US-ASCII
168
+ string: ! '{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null,
169
+ "total_count": 1}, "objects": [{"category": 0, "code": 200, "columns": 5,
170
+ "created": "2012-06-20T03:58:40.600000", "credits": 0.03515625, "dataset":
171
+ "dataset/4fe14a52035d074a1e0000fd", "dataset_status": false, "description":
172
+ "", "holdout": 0.0, "input_fields": ["000000", "000001", "000002", "000003"],
173
+ "locale": "en_US", "max_columns": 5, "max_rows": 150, "name": "foo name",
174
+ "number_of_predictions": 0, "objective_fields": ["000004"], "private": true,
175
+ "range": [1, 150], "resource": "model/4fe14a701552687d4500014f", "rows": 150,
176
+ "size": 4608, "source": "source/4fe14a51035d074a21000148", "source_status":
177
+ false, "status": {"code": 5, "elapsed": 147, "message": "The model has been
178
+ created", "progress": 1}, "tags": [], "updated": "2012-06-20T03:58:41.982000"}]}'
179
+ http_version: '1.1'
180
+ recorded_at: Wed, 20 Jun 2012 03:58:32 GMT
181
+ - request:
182
+ method: delete
183
+ uri: https://bigml.io/andromeda/model/4fe14a701552687d4500014f?username=<USERNAME>&api_key=<API_KEY>
184
+ body:
185
+ encoding: US-ASCII
186
+ string: ''
187
+ headers:
188
+ connection:
189
+ - close
190
+ response:
191
+ status:
192
+ code: 204
193
+ message: NO CONTENT
194
+ headers:
195
+ content-length:
196
+ - '0'
197
+ content-type:
198
+ - text/html; charset=utf-8
199
+ date:
200
+ - Wed, 20 Jun 2012 03:54:43 GMT
201
+ server:
202
+ - nginx/1.0.12
203
+ connection:
204
+ - Close
205
+ body:
206
+ encoding: US-ASCII
207
+ string: ''
208
+ http_version: '1.1'
209
+ recorded_at: Wed, 20 Jun 2012 03:58:33 GMT
210
+ - request:
211
+ method: post
212
+ uri: https://bigml.io/andromeda/source
213
+ body:
214
+ encoding: US-ASCII
215
+ string: ''
216
+ headers:
217
+ content-type:
218
+ - multipart/form-data; boundary=-----------RubyMultipartPost
219
+ content-length:
220
+ - '5147'
221
+ connection:
222
+ - close
223
+ response:
224
+ status:
225
+ code: 201
226
+ message: CREATED
227
+ headers:
228
+ content-type:
229
+ - application/json; charset=utf-8
230
+ date:
231
+ - Wed, 20 Jun 2012 03:57:04 GMT
232
+ location:
233
+ - http://bigml.io/andromeda/source/4fe14a7c1552687d43000139
234
+ server:
235
+ - nginx/1.0.12
236
+ content-length:
237
+ - '567'
238
+ connection:
239
+ - Close
240
+ body:
241
+ encoding: US-ASCII
242
+ string: ! '{"category": 0, "code": 201, "content_type": "application/octet-stream",
243
+ "created": "2012-06-20T03:58:52.261553", "credits": 0.0, "description": "",
244
+ "file_name": "iris.csv", "md5": "d1175c032e1042bec7f974c91e4a65ae", "name":
245
+ "iris.csv", "number_of_datasets": 0, "number_of_models": 0, "number_of_predictions":
246
+ 0, "private": true, "resource": "source/4fe14a7c1552687d43000139", "size":
247
+ 4608, "source_parser": {}, "status": {"code": 1, "message": "The request has
248
+ been queued and will be processed soon"}, "tags": [], "type": 0, "updated":
249
+ "2012-06-20T03:58:52.261575"}'
250
+ http_version: '1.1'
251
+ recorded_at: Wed, 20 Jun 2012 03:58:35 GMT
252
+ - request:
253
+ method: post
254
+ uri: https://bigml.io/andromeda/dataset?username=<USERNAME>&api_key=<API_KEY>
255
+ body:
256
+ encoding: UTF-8
257
+ string: ! '{"source":"source/4fe14a7c1552687d43000139"}'
258
+ headers:
259
+ content-type:
260
+ - application/json
261
+ connection:
262
+ - close
263
+ response:
264
+ status:
265
+ code: 201
266
+ message: CREATED
267
+ headers:
268
+ content-type:
269
+ - application/json; charset=utf-8
270
+ date:
271
+ - Wed, 20 Jun 2012 03:54:46 GMT
272
+ location:
273
+ - http://bigml.io/andromeda/dataset/4fe14a61035d074a200000f5
274
+ server:
275
+ - nginx/1.0.12
276
+ content-length:
277
+ - '920'
278
+ connection:
279
+ - Close
280
+ body:
281
+ encoding: US-ASCII
282
+ string: ! '{"category": 0, "code": 201, "columns": 5, "created": "2012-06-20T03:58:25.205111",
283
+ "credits": 0.0087890625, "description": "", "fields": {"000000": {"column_number":
284
+ 0, "name": "sepal length", "optype": "numeric"}, "000001": {"column_number":
285
+ 1, "name": "sepal width", "optype": "numeric"}, "000002": {"column_number":
286
+ 2, "name": "petal length", "optype": "numeric"}, "000003": {"column_number":
287
+ 3, "name": "petal width", "optype": "numeric"}, "000004": {"column_number":
288
+ 4, "name": "species", "optype": "categorical"}}, "locale": "en_US", "name":
289
+ "iris'' dataset", "number_of_models": 0, "number_of_predictions": 0, "private":
290
+ true, "resource": "dataset/4fe14a61035d074a200000f5", "rows": 0, "size": 4608,
291
+ "source": "source/4fe14a7c1552687d43000139", "source_status": true, "status":
292
+ {"code": 1, "message": "The dataset is being processed and will be created
293
+ soon"}, "tags": [], "updated": "2012-06-20T03:58:25.205132"}'
294
+ http_version: '1.1'
295
+ recorded_at: Wed, 20 Jun 2012 03:58:36 GMT
296
+ - request:
297
+ method: post
298
+ uri: https://bigml.io/andromeda/model?username=<USERNAME>&api_key=<API_KEY>
299
+ body:
300
+ encoding: UTF-8
301
+ string: ! '{"dataset":"dataset/4fe14a61035d074a200000f5"}'
302
+ headers:
303
+ content-type:
304
+ - application/json
305
+ connection:
306
+ - close
307
+ response:
308
+ status:
309
+ code: 201
310
+ message: CREATED
311
+ headers:
312
+ content-type:
313
+ - application/json; charset=utf-8
314
+ date:
315
+ - Wed, 20 Jun 2012 03:57:07 GMT
316
+ location:
317
+ - http://bigml.io/andromeda/model/4fe14a62035d074a1b000118
318
+ server:
319
+ - nginx/1.0.12
320
+ content-length:
321
+ - '690'
322
+ connection:
323
+ - Close
324
+ body:
325
+ encoding: US-ASCII
326
+ string: ! '{"category": 0, "code": 201, "columns": 5, "created": "2012-06-20T03:58:26.896845",
327
+ "credits": 0.03515625, "dataset": "dataset/4fe14a61035d074a200000f5", "dataset_status":
328
+ true, "description": "", "holdout": 0.0, "input_fields": [], "locale": "en_US",
329
+ "max_columns": 5, "max_rows": 150, "name": "iris'' dataset model", "number_of_predictions":
330
+ 0, "objective_fields": [], "private": true, "range": [1, 150], "resource":
331
+ "model/4fe14a62035d074a1b000118", "rows": 150, "size": 4608, "source": "source/4fe14a7c1552687d43000139",
332
+ "source_status": true, "status": {"code": 1, "message": "The model is being
333
+ processed and will be created soon"}, "tags": [], "updated": "2012-06-20T03:58:26.896874"}'
334
+ http_version: '1.1'
335
+ recorded_at: Wed, 20 Jun 2012 03:58:38 GMT
336
+ - request:
337
+ method: delete
338
+ uri: https://bigml.io/andromeda/model/4fe14a62035d074a1b000118?username=<USERNAME>&api_key=<API_KEY>
339
+ body:
340
+ encoding: US-ASCII
341
+ string: ''
342
+ headers:
343
+ connection:
344
+ - close
345
+ response:
346
+ status:
347
+ code: 204
348
+ message: NO CONTENT
349
+ headers:
350
+ content-length:
351
+ - '0'
352
+ content-type:
353
+ - text/html; charset=utf-8
354
+ date:
355
+ - Wed, 20 Jun 2012 03:54:49 GMT
356
+ server:
357
+ - nginx/1.0.12
358
+ connection:
359
+ - Close
360
+ body:
361
+ encoding: US-ASCII
362
+ string: ''
363
+ http_version: '1.1'
364
+ recorded_at: Wed, 20 Jun 2012 03:58:39 GMT
365
+ - request:
366
+ method: get
367
+ uri: https://bigml.io/andromeda/model/4fe14a62035d074a1b000118?username=<USERNAME>&api_key=<API_KEY>
368
+ body:
369
+ encoding: US-ASCII
370
+ string: ''
371
+ headers:
372
+ connection:
373
+ - close
374
+ response:
375
+ status:
376
+ code: 404
377
+ message: NOT FOUND
378
+ headers:
379
+ content-type:
380
+ - application/json; charset=utf-8
381
+ date:
382
+ - Wed, 20 Jun 2012 03:57:09 GMT
383
+ server:
384
+ - nginx/1.0.12
385
+ content-length:
386
+ - '168'
387
+ connection:
388
+ - Close
389
+ body:
390
+ encoding: US-ASCII
391
+ string: ! '{"code": 404, "status": {"code": -1201, "extra": ["Couldn''t find
392
+ an instance of ''Model'' which matched ''pk=4fe14a62035d074a1b000118''."],
393
+ "message": "Id does not exist"}}'
394
+ http_version: '1.1'
395
+ recorded_at: Wed, 20 Jun 2012 03:58:40 GMT
396
+ - request:
397
+ method: get
398
+ uri: https://bigml.io/andromeda/model?username=<USERNAME>&api_key=<API_KEY>
399
+ body:
400
+ encoding: US-ASCII
401
+ string: ''
402
+ headers:
403
+ connection:
404
+ - close
405
+ response:
406
+ status:
407
+ code: 200
408
+ message: OK
409
+ headers:
410
+ content-type:
411
+ - application/json; charset=utf-8
412
+ date:
413
+ - Wed, 20 Jun 2012 03:54:51 GMT
414
+ server:
415
+ - nginx/1.0.12
416
+ content-length:
417
+ - '101'
418
+ connection:
419
+ - Close
420
+ body:
421
+ encoding: US-ASCII
422
+ string: ! '{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null,
423
+ "total_count": 0}, "objects": []}'
424
+ http_version: '1.1'
425
+ recorded_at: Wed, 20 Jun 2012 03:58:41 GMT
426
+ recorded_with: VCR 2.2.2