big_ml 0.1.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.
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