You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.3 KiB
88 lines
2.3 KiB
4 months ago
|
from tortoise import Tortoise, run_async
|
||
|
import asyncio
|
||
|
import json
|
||
|
import os
|
||
|
|
||
|
|
||
|
cwd = os.getcwd()
|
||
|
PATHPaths = os.path.join(cwd, "algorithm", "Paths.json")
|
||
|
PATHWeights = os.path.join(cwd, "algorithm", "Weights.json")
|
||
|
|
||
|
Paths = None
|
||
|
Weights = None
|
||
|
|
||
|
with open(PATHPaths, "r") as fp:
|
||
|
Paths = json.load(fp)
|
||
|
|
||
|
with open(PATHWeights, "r") as fp:
|
||
|
Weights = json.load(fp)
|
||
|
|
||
|
# print("Paths: ", Paths)
|
||
|
# print("Weights: ", Weights)
|
||
|
|
||
|
async def init():
|
||
|
# Here we create a SQLite DB using file "db.sqlite3"
|
||
|
# also specify the app name of "models"
|
||
|
# which contain models from "app.models"
|
||
|
await Tortoise.init(
|
||
|
config={
|
||
|
"connections": {
|
||
|
"default": "mysql://root:123456@127.0.0.1:3306/agv?charset=utf8mb4"
|
||
|
},
|
||
|
"apps": {
|
||
|
"models": {
|
||
|
"models": ["aerich.models", "models"],
|
||
|
"default_connection": "default"
|
||
|
}
|
||
|
},
|
||
|
'use_tz': False,
|
||
|
# 'timezone': setting.TIMEZONE
|
||
|
}
|
||
|
)
|
||
|
# Generate the schema
|
||
|
# await Tortoise.generate_schemas()
|
||
|
|
||
|
# run_async is a helper function to run simple async Tortoise scripts.
|
||
|
run_async(init())
|
||
|
|
||
|
from models.path import Path
|
||
|
|
||
|
async def insertData():
|
||
|
cntRow = len(Weights)
|
||
|
#exclude itself
|
||
|
cntColumn = len(Weights[0]) - 1
|
||
|
keyRow = sorted(Paths.keys(), key=lambda x: int(x))
|
||
|
|
||
|
print("cntRow: {}, cntColumn: {}".format(cntRow, cntColumn))
|
||
|
|
||
|
for idxRow in range(0, cntRow):
|
||
|
keySource = keyRow[idxRow]
|
||
|
print("Path Source: ", keySource)
|
||
|
paths = Paths[keySource]
|
||
|
pathsKey = sorted(paths.keys(), key=lambda x: int(x))
|
||
|
for idxColumn in range(0, cntColumn):
|
||
|
print("{} -> {}".format(keySource, str(pathsKey[idxColumn])))
|
||
|
print("Weight: ", Weights[idxRow][idxColumn])
|
||
|
print("Path: ", Paths[str(keySource)][str(pathsKey[idxColumn])])
|
||
|
|
||
|
await Path.create(
|
||
|
start = keySource,
|
||
|
stop = str(pathsKey[idxColumn]),
|
||
|
weight = Weights[idxRow][idxColumn],
|
||
|
paths = Paths[str(keySource)][str(pathsKey[idxColumn])]
|
||
|
)
|
||
|
|
||
|
|
||
|
async def getCnt():
|
||
|
return await Path.all().count()
|
||
|
|
||
|
async def main():
|
||
|
print("cnt: ", await getCnt())
|
||
|
await insertData()
|
||
|
|
||
|
|
||
|
asyncio.run( main() )
|
||
|
|
||
|
exit()
|
||
|
|