def test_delete_database(mocked_requests, mocked_requests2):
    woql_client = WOQLClient("http://localhost:6363")
    woql_client.connect(user="******", key="root", team="admin")

    woql_client.create_database(
        "myFirstTerminusDB",
        "admin",
        label="my first db",
        description="my first db comment",
        include_schema=False,
    )

    with pytest.raises(UserWarning):
        woql_client.delete_database()
def test_create_database_with_schema(mocked_requests, mocked_requests2):
    woql_client = WOQLClient("http://localhost:6363")
    woql_client.connect()
    woql_client.create_database(
        "myFirstTerminusDB",
        "admin",
        label="my first db",
        description="my first db comment",
        include_schema=True,
    )
    requests.post.assert_called_once_with(
        "http://localhost:6363/api/db/admin/myFirstTerminusDB",
        auth=("admin", "root"),
        json={"label": "my first db", "comment": "my first db comment", "schema": True},
        headers={"user-agent": f"terminusdb-client-python/{__version__}"},
    )
def test_create_database_and_change_team(mocked_requests, mocked_requests2):
    woql_client = WOQLClient("http://localhost:6363")
    woql_client.connect(user="******", team="admin", key="root")
    woql_client.create_database(
        "myFirstTerminusDB",
        "my_new_team",
        label="my first db",
        description="my first db comment",
        include_schema=False,
    )

    requests.post.assert_called_once_with(
        "http://localhost:6363/api/db/my_new_team/myFirstTerminusDB",
        auth=("admin", "root"),
        json={"label": "my first db", "comment": "my first db comment"},
        headers={"user-agent": f"terminusdb-client-python/{__version__}"},
    )
propteries["QueryAddOnObj"] = propteries.apply(
    construction_schema_addon_property, axis=1, type_list=list(types["id"]))

server_url = "https://127.0.0.1:6363"
user = "******"
account = "admin"
key = "root"
dbid = "schema_tutorial"
label = "Schema Tutorial"
description = "Create a graph with Schema.org data"

client = WOQLClient(server_url)
client.connect(user=user, account=account, key=key, db=dbid)

try:
    client.create_database(dbid, user, label=label, description=description)
except Exception as E:
    error_obj = E.errorObj
    if "api:DatabaseAlreadyExists" == error_obj.get("api:error",
                                                    {}).get("@type", None):
        print(f'Warning: Database "{dbid}" already exists!\n')
    else:
        raise (E)

print("create schema for types")
create_schema_objects(client, list(types["QueryObjects"]))
print("create schema relations for simple types")
#construct_simple_type_relations(type_list=list(types["id"]))
create_schema_objects(client, construct_simple_type_relations())
print("create schema add on for types")
create_schema_add_ons(client, list(types["QueryAddOnObj"]))
        hus_obj = WOQLQuery().insert("hus"+str(hus["Id"]), "House").label(hus["Name"])
        if hus["Region"] is not None:
            hus_obj.property("region", "doc:Region_"+hus["Region"])
        for seat in hus["Seats"]:
            hus_obj.property("seats", "doc:Seats_"+seat)
        if hus["Founder"] is not None:
            hus_obj.property("founder", "doc:Person_"+str(hus["Founder"]))
        if hus["Words"] is not None:
            data_obj = {"@value" : hus["Words"], "@type" : "xsd:string"}
            hus_obj.property("words", data_obj)
        if hus["Heir"] is not None:
            hus_obj.property("heir", "doc:Person_"+str(hus["Heir"]))
        if hus["Overlord"] is not None:
            hus_obj.property("overlord", "doc:Person_"+str(hus["Overlord"]))
        results.append(hus_obj)


    return WOQLQuery().woql_and(*results).execute(client, "Adding data for Game of Thrones.")

db_id = "game_of_thrones"
client = WOQLClient(server_url = "http://localhost:6363")
client.connect(key="root", account="admin", user="******")
existing = client.get_metadata(db_id, client.uid())
if not existing:
    client.create_database(db_id, "admin", label="Game of Thrones Graph", description="Create a graph with Game of Thrones data")
else:
    client.db(db_id)
create_schema(client)
load_data(client, houses, characters)
                                                     type,
                                                     label="v:Label_" +
                                                     str(i)))
    return insert


def generateMultiInsertQuery(codes, type):
    matches = []
    inserts = []
    index = 0
    for code in codes:
        matches.append(generateMatchClause(code, type, index))
        inserts.append(generateInsertClause(code, type, index))
        index = index + 1
    return WOQLQuery().when(WOQLQuery().woql_and(*matches),
                            WOQLQuery().woql_and(*inserts))


db_id = "pyplane"
client = WOQLClient(server_url="http://localhost:6363")
client.connect(key="root", account="admin", user="******")
existing = client.get_metadata(db_id, client.uid())
if not existing:
    client.create_database(db_id,
                           "admin",
                           label="Flights Graph",
                           description="Create a graph with Open Flights data")
else:
    client.db(db_id)
create_schema(client)
Exemple #7
0
types = pd.read_csv("all-layers-types.csv")
types["QueryObjects"] = types.apply(construction_schema_objects, axis=1)
types["QueryAddOnObj"] = types.apply(construction_schema_addon, axis=1, type_list=list(types["id"]))

propteries = pd.read_csv("all-layers-properties.csv")
propteries["QueryObjects"] = propteries.apply(construction_schema_objects, axis=1)
propteries["QueryObjects_DR"] = propteries.apply(construct_prop_dr, axis=1)
propteries["QueryAddOnObj"] = propteries.apply(construction_schema_addon_property, axis=1, type_list=list(types["id"]))


db_id = "schema_tutorial"
client = WOQLClient(server_url = "http://localhost:6363")
client.connect(key="root", account="admin", user="******")
existing = client.get_metadata(db_id, client.uid())
if not existing:
    client.create_database(db_id, "admin", label="Schema.org Graph", description="Create a graph with Schema.org")
else:
    client.db(db_id)

print("crete schema for types")
create_schema_objects(client, list(types["QueryObjects"]))
print("crete schema relations for simple types")
#construct_simple_type_relations(type_list=list(types["id"]))
create_schema_objects(client, construct_simple_type_relations())
print("crete schema add on for types")
create_schema_add_ons(client, list(types["QueryAddOnObj"]))
#print("crete schema for properties")
#create_schema_objects(client, list(propteries["QueryObjects"]))
print("create schema for DR objects")
create_schema_add_ons(client, list(propteries["QueryObjects_DR"]))
print("crete schema add on for properties")
        data_type = data['type']
        WOQLObj = WOQLQuery().insert('doc:'+id, data_type)
        if data_type == 'http://schema.org/DateTime':
            date_value = {"@value" : data['value'], "@type" : "xsd:dateTime"}
            execution_queue.append(WOQLObj.property(data_type+'Value', date_value))
            return
        for prop in data['properties']:
            extract_data(data['properties'][prop], id+prop+'/')
            WOQLObj = WOQLObj.property('http://schema.org/'+prop, 'doc:'+id+prop+'/')
        execution_queue.append(WOQLObj)
    else:
        if '://' in data:
            data_type = 'http://schema.org/URL'
        else:
            data_type = 'http://schema.org/Text'
        WOQLObj = WOQLQuery().insert('doc:'+id, data_type)
        data_obj = {"@value" : data, "@type" : "xsd:string"}
        execution_queue.append(WOQLObj.property(data_type+'Value',data_obj))

extract_data(data['microdata'][0])

db_id = "schema_tutorial"
client = WOQLClient(server_url = "http://localhost:6363")
client.connect(key="root", account="admin", user="******")
existing = client.get_metadata(db_id, client.uid())
if not existing:
    client.create_database(db_id, "admin", { "label": "Schema.org Graph", "comment": "Create a graph with Schema.org data"})
else:
    client.db(db_id)
WOQLQuery().woql_and(*execution_queue).execute(client)