-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathurlparser.py
50 lines (39 loc) · 1.46 KB
/
urlparser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
####################################################################
#
# This file is part of libraries-2021 dataexplorer, https://nds.iaea.org/dataexplorer/.
# Copyright (C) 2022 International Atomic Energy Agency (IAEA)
#
# Contact: [email protected]
#
####################################################################
from urllib.parse import urlparse, parse_qs
# For single selection - app2
def apply_default_value_lib(params):
def wrapper(func):
def apply_value(*args, **kwargs):
if "id" in kwargs and kwargs["id"] in params:
kwargs["value"] = params[kwargs["id"]]
if "reaction" in kwargs["id"] or "lib" in kwargs["id"]:
pass
else:
kwargs["value"] = ",".join(map(str, kwargs["value"]))
return func(*args, **kwargs)
return apply_value
return wrapper
# For single selection - app1,3,4
def apply_default_value(params):
def wrapper(func):
def apply_value(*args, **kwargs):
if "id" in kwargs and kwargs["id"] in params:
kwargs["value"] = params[kwargs["id"]]
kwargs["value"] = ",".join(map(str, kwargs["value"]))
return func(*args, **kwargs)
return apply_value
return wrapper
# Decoding url
def parse_state(url):
# print (url)
parse_result = urlparse(url)
params = parse_qs(parse_result.query)
state = dict(params)
return state