TiledViz
Toggle main menu visibility
Loading...
Searching...
No Matches
SessionDatabase.py
1
#!/bin/env python3
2
3
import
sys,os
4
import
argparse
5
import
json
6
import
datetime
7
#import glob
8
import
traceback
9
10
errors=sys.stderr
11
12
from
TVDb
import
tvdb
13
14
POSTGRES_HOST=
"postgres"
15
POSTGRES_PORT=
"6431"
16
POSTGRES_USER=
"tiledviz"
17
POSTGRES_DB=
"TiledViz"
18
19
# sys.path.append(os.path.abspath('./TVWeb'))
20
# from app import models
21
from
TVDb
import
models
22
23
projectNAME=
'VMD'
24
sessionNAME=
'testSESSION'
25
jsonoutputFile=
'OutputTestfile.json'
26
27
def
parse_args(argv):
28
parser = argparse.ArgumentParser(
29
'From a (users,project,session) get tile_sets, tiles and connections tables and build a session json structure from TiledViz database.'
)
30
parser.add_argument(
'--host'
, default=POSTGRES_HOST,
31
help=
'Database host (default: '
+POSTGRES_HOST+
')'
)
32
parser.add_argument(
'--port'
, default=POSTGRES_PORT,
33
help=
'Port (default: '
+POSTGRES_PORT+
')'
)
34
parser.add_argument(
'-l'
,
'--login'
, default=POSTGRES_USER,
35
help=
'Database login (default: '
+POSTGRES_USER+
')'
)
36
parser.add_argument(
'-n'
,
'--databasename'
, default=POSTGRES_DB,
37
help=
'Database name (default: '
+POSTGRES_DB+
')'
)
38
parser.add_argument(
'-t'
,
'--usertest'
, default=
'ddurandi'
,
39
help=
'User name for test (default: ddurandi)'
)
40
parser.add_argument(
'-p'
,
'--projectNAME'
, default=projectNAME,
41
help=
'Project for test (default: '
+projectNAME+
')'
)
42
parser.add_argument(
'-s'
,
'--sessionNAME'
, default=sessionNAME,
43
help=
'Session for test (default: '
+sessionNAME+
')'
)
44
parser.add_argument(
'-j'
,
'--enablejsonwrite'
, action=
'store_true'
,
45
help=
'Active json data save.'
)
46
parser.add_argument(
'-f'
,
'--jsonfile'
, default=jsonoutputFile,
47
help=
'Json output file (default: '
+jsonoutputFile+
' )'
)
48
49
args = parser.parse_args(argv[1:])
50
return
args
51
52
if
__name__ ==
'__main__'
:
53
args = parse_args(sys.argv)
54
if
(args.enablejsonwrite):
55
print(
"Json output file enable :"
,args.jsonfile)
56
57
metadata, conn, engine, pool, session = tvdb.SQLconnector(args)
58
for
_t
in
metadata.tables:
59
print(
"Table: "
, _t)
60
61
print(
"Session id for sessionname = "
+args.sessionNAME+
" : "
,
62
session.query(models.Sessions.id).filter_by(name=args.sessionNAME).scalar())
63
#session.query(models.Users).join(models.Users.username)
64
65
ThisSession=session.query(models.Sessions).filter(models.Sessions.name == args.sessionNAME).first()
66
# ThisTileSet_ThisSession=ThisSession.tile_sets[0]
67
# print("First TileSet for this session "+sessionNAME+" : ", ThisTileSet_ThisSession.name)
68
69
# ThoseSession=session.query(models.Sessions).filter(models.Sessions.name == "Mandelbrot").first()
70
# ListAllTileSet_ThoseSession=session.query(models.Sessions).filter(models.Sessions.name == "Mandelbrot").first().tile_sets
71
# print("All TileSets for this session 'Mandelbrot' : ",
72
# [ thistileset.name for thistileset in ListAllTileSet_ThoseSession ])
73
74
ListAllTileSet_ThisSession=ThisSession.tile_sets
75
print(
"All TileSets for this session "
+args.sessionNAME+
" : "
,
76
[ thistileset.name
for
thistileset
in
ListAllTileSet_ThisSession ])
77
78
JsonSession=tvdb.encode_session(args.sessionNAME,models.Sessions)
79
80
if
( args.enablejsonwrite ):
81
try
:
82
g=open(args.jsonfile,
'w+'
)
83
except
Exception:
84
print(
'unable to open '
+args.jsonfile+
' file for writing.'
)
85
errors.write(traceback.format_exc() +
'\n'
)
86
errors.write(
"\n\n"
)
87
exit(2)
88
json.dump(JsonSession,g)
89
g.close()
90
else
:
91
print(
"In memory Json Session : "
,json.dumps(JsonSession))
92
TVDatabase
SessionDatabase.py
Documentation for
TiledViz
$tiledvizversion