Ejemplo n.º 1
0
def runProcedure():
    rez = mldb.perform("PUT", "/v1/procedures/rocket_science", [], conf)
    mldb.log(json.loads(rez["response"]))
    assert rez["statusCode"] == 201

    rez = mldb.perform("GET", "/v1/query", [["q", "select * from toy_tsne"]])
    return json.loads(rez["response"])
Ejemplo n.º 2
0
 def test_deadloack(self):
     # MLDB-621
     try:
         mldb.perform(
             "PUT", "/v1/procedures/q", [], {
                 "type": "serial",
                 "params": {
                     "steps": [{
                         "id": "q",
                         "type": "null"
                     }]
                 }
             })
     except Exception:
         pass
def create_dataset_and_query(type, date, quantum = None):
    if quantum:
        ds1 = mldb.create_dataset({
            'type': type,
            'id': 'beh',
            'params' : {
                'timeQuantumSeconds' : quantum
            }
        })
    else:
        ds1 = mldb.create_dataset({
            'type': type,
            'id': 'beh'
        })

    sometime = datetime.strptime(date, '%Y-%m-%dT%H:%M:%S.%fZ')
    ds1.record_row('row', [['column', 1, sometime]])
    ds1.commit()

    response = mldb.perform('GET', '/v1/query', [['q', 'select * from beh']])['response']
    mldb.perform('DELETE', '/v1/datasets/beh', [])
    return json.loads(response)[0]['columns'][0][2]
# This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved.

import json
from mldb import mldb

result = mldb.perform(
    "PUT", "/v1/plugins/mirror", [], {
        "type": "python",
        "params": {
            "source": {
                "routes":
                """
from mldb import mldb
mldb.log(str(request.rest_params))
mldb.log(str(request.payload))

request.set_return({
    "args": request.rest_params,
    "payload": request.payload
})
"""
            }
        }
    })
assert result["statusCode"] < 400, result["response"]

successes = 0

rtn = mldb.perform("POST", "/v1/plugins/mirror/routes/pwet")
if rtn["response"] == '{"args":[],"payload":"null\\n"}':
    successes += 1
Ejemplo n.º 5
0
def perform(*args, **kwargs):
    res = mldb.perform(*args, **kwargs)
    assert res['statusCode'] in [200, 201], str(res)
    return res
Ejemplo n.º 6
0
def query(sql):
    result = mldb.perform("GET", "/v1/query",
                          [["q", sql], ["format", "table"]], {})
    assert result["statusCode"] < 400, result["response"]
    return result["response"]
Ejemplo n.º 7
0
import json
from mldb import mldb

csv_conf = {
    "type": "import.text",
    "params": {
        'dataFileUrl':
        "https://raw.githubusercontent.com/datacratic/mldb-pytanic-plugin/master/titanic_train.csv",
        "outputDataset": {
            "id": "titanic_raw",
        },
        "runOnCreation": True,
    }
}
mldb.perform("PUT", "/v1/procedures/csv_proc", [], csv_conf)

result = mldb.perform(
    "PUT", "/v1/procedures/titanic_train_scorer", [], {
        "type": "classifier.experiment",
        "params": {
            "experimentName": "titanic",
            "keepArtifacts": True,
            "inputData": """
            select 
                {Sex, Age, Fare, Embarked, Parch, SibSp, Pclass} as features,
                label
            from titanic_raw
        """,
            "modelFileUrlPattern": "file://tmp/MLDB-1304.cls",
            "algorithm": "bbdt",
Ejemplo n.º 8
0
# This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved.

import json
from mldb import mldb

result = mldb.perform(
    "PUT", "/v1/datasets/rcp", [], {
        'type': 'beh',
        'params': {
            'dataFileUrl': 'https://s3.amazonaws.com/public-mldb-ai/rcp.beh'
        }
    })
assert result["statusCode"] < 400, result["response"]

mldb.log(result)

out = mldb.perform("GET", "/v1/query",
                   [["q", "select * from rcp order by rowName() limit 20"],
                    ["format", "sparse"]], {})

mldb.log(out)

result = mldb.perform(
    "PUT", "/v1/procedures/svd1", [], {
        'type': 'svd.train',
        'params': {
            'trainingData': {
                'from': {
                    'id': 'rcp'
                },
                'limit': 1000
Ejemplo n.º 9
0
                "id": "iris_dataset"
            },
            "select":
            '"petal width", "petal length", "sepal length", "sepal width"'
        },
        "columnOutputDataset": {
            "type": "sparse.mutable",
            "id": "svd_iris_col"
        },
        "rowOutputDataset": {
            "id": "iris_svd_row",
            'type': "embedding"
        },
        "numSingularValues": 4,
        "numDenseBasisVectors": 2
    }
}

r = mldb.perform("PUT", svd_procedure, [], svd_config)
print(r)
print((r["statusCode"]))

r = mldb.perform("PUT", svd_procedure + "/runs/1", [], {})
if not 300 > r["statusCode"] >= 200:
    print(r)
    request.set_return("FAILURE")
    print((r["statusCode"]))

else:
    request.set_return("success")
Ejemplo n.º 10
0
# This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved.

import json

from mldb import mldb

# Dataset with one column and one row
ds1 = mldb.create_dataset({'type': 'sparse.mutable', 'id': 'ds1'})

for i in range(1):
    ds1.record_row('row_' + str(i), [['x', i, 1438895158]])
ds1.commit()

# Simple query of "x, rowName() as rowname" passed through our function
res = mldb.perform('GET', '/v1/query',
                   [['q', 'SELECT x, 1 as y, rowName() as rowname FROM ds1']])

response = json.loads(res['response'])
expected = response
mldb.log(response)
assert res['statusCode'] == 200

# Same query but in a transform procedure
res = mldb.perform(
    'PUT', '/v1/procedures/poil', [], {
        'type': 'transform',
        'params': {
            'inputData': {
                'select': 'x, 1 as y, rowName() as rowname',
                'from': {
                    'id': 'ds1'
Ejemplo n.º 11
0
dataset_config["id"] = "dataset3"
dataset = mldb.create_dataset(dataset_config)
dataset.record_row("row1", [["col1", "a", now], ["otherRow", "row1", now]])
dataset.record_row("row2", [["col2", "b", now], ["otherRow", "row2", now]])
dataset.commit()

#MLDB-1454 rownames in WHERE regular

mldb.log("MLDB-1454 rownames in WHERE regular")

expected = [["_rowName", "col1"], ["row1", "a"]]

res = mldb.perform("GET", "/v1/query", [[
    "q", """
    SELECT *
    FROM dataset1
    WHERE dataset1.col1 = 'a'
    """
], ['format', 'table']])

assert res["statusCode"] == 200
assert json.loads(res['response']) == expected
##
expected = [["_rowName", "col1"], ["row1", "a"]]

res = mldb.perform("GET", "/v1/query", [[
    "q", """
    SELECT *
    FROM dataset1 as blah
    WHERE blah.col1 = 'a'
    """
Ejemplo n.º 12
0
#
# beh-binary-mutable-save-test.py
# Mich, 2015-12-14
# This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved.
#

import tempfile
import os
import json
from mldb import mldb

res = mldb.perform('PUT', '/v1/datasets/myDataset', [], {
    'type' : 'beh.binary.mutable'
})
assert res['statusCode'] == 201, str(res)

res = mldb.perform('POST', '/v1/datasets/myDataset/rows', [], {
    'rowName' : 'row1',
    'columns' : [
        ['colA', 1, 0]
    ]
})
assert res['statusCode'] == 200, str(res)

res = mldb.perform('POST', '/v1/datasets/myDataset/rows', [], {
    'rowName' : 'row2',
    'columns' : [
        ['colB', 1, 0],
    ]
})
assert res['statusCode'] == 200, str(res)
Ejemplo n.º 13
0
###

import json
from mldb import mldb

conf = {
    "source":
    """
from mldb import mldb
mldb.log("patate")
mldb.log({"patate":2.44})
mldb.log(["patate", "pwel"])
mldb.log(25)
mldb.log("a", "b", 2)
mldb.log()
"""
}
rtn = mldb.perform("POST", "/v1/types/plugins/python/routes/run", [], conf)

jsRtn = json.loads(rtn["response"])
mldb.log(jsRtn)

assert jsRtn["logs"][0]["c"] == "patate"
assert jsRtn["logs"][1]["c"] == "{\n    \"patate\": 2.44\n}"
assert jsRtn["logs"][2]["c"] == "[\n    \"patate\",\n    \"pwel\"\n]"
assert jsRtn["logs"][3]["c"] == "25"
assert jsRtn["logs"][4]["c"] == "a b 2"
#assert jsRtn["logs"][5]["c"] == ""

request.set_return("success")
Ejemplo n.º 14
0
ds2.record_row('row_0', [['a', 0, 0]])
ds2.record_row('row_1', [['a', 3, 0]])
ds2.record_row('row_2', [['a', 6, 0]])
ds2.record_row('row_3', [['a', 9, 0]])
ds2.record_row('row_4', [['a', 12, 0]])

ds1.commit()
ds2.commit()

# This function returns the row corresponding to the `id` passed from the first
# dataset
res = mldb.perform(
    'PUT', '/v1/functions/patate', [], {
        'type': 'sql.query',
        'params': {
            'query': 'select * from ds1 where rowName() = $id'
        }
    })

check_res(res, 201)

# Make sure the function works properly
res = mldb.perform('GET', '/v1/functions/patate/application',
                   [['input', '{"id":"row_2"}']], {})
response = check_res(res, 200)
assert response["output"]['x'] == 2
assert response["output"]['y'] == 4

# Check the function's info output
test_dataset = mldb.create_dataset({
    "type": "sparse.mutable",
    "id": "test_dataset"
})

for i in range(50):
    feat1 = random.randint(1, 20)
    feat2 = random.randint(1, 100)
    test_dataset.record_row("u%d" % i,
                            [["feat1", feat1, now], ["feat2", feat2, now]])

test_dataset.commit()

mldb.log(
    json.loads(
        mldb.perform("GET", "/v1/query",
                     [["q", "SELECT * from dataset limit 10"]])["response"]))

config = {
    "type": "classifier.train",
    "params": {
        "trainingData": """
        SELECT {
                feat1, feat2
            } as features,
            label
        FROM dataset""",
        "algorithm": "glz",
        "configuration": {
            "glz": {
                "type": "glz",
                "verbosity": 3,
Ejemplo n.º 16
0
def applyFunction(row):
    rez = mldb.perform("GET", "/v1/functions/tsne_embed/application", [['input', {'embedding':row}]])
    mldb.log(rez)
    return rez
Ejemplo n.º 17
0
# This file is part of MLDB. Copyright 2016 mldb.ai inc. All rights reserved.

#####
#   Testing if the error responses are all formatted in the same way
#   Guy Dumais, January 27, 2016
#   Copyright mldb.ai inc 2016
####

import json, random, datetime
from mldb import mldb

rez = mldb.perform("GET", "/v1/query", [['q', 'sele']], {})
mldb.log(rez)
response = json.loads(rez['response'])
mldb.log(response)
assert 'error' in response, 'expected an error message in the response'
assert 'httpCode' in response, 'expected an http code in the response'

rez = mldb.perform("GET", "/v1/query", [['q', 'select h()']], {})
mldb.log(rez)
response = json.loads(rez['response'])
mldb.log(response)
assert 'error' in response, 'expected an error message in the response'
assert 'httpCode' in response, 'expected an http code in the response'

rez = mldb.perform("GET", "/v1/querry", [], {})
mldb.log(rez)
response = json.loads(rez['response'])
mldb.log(response)
assert 'error' in response, 'expected an error message in the response'
assert 'httpCode' in response, 'expected an http code in the response'