-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
29 lines (25 loc) · 778 Bytes
/
utils.py
File metadata and controls
29 lines (25 loc) · 778 Bytes
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
def buildurl(rq, handler, tango_host=None, device=None, **kwargs):
""" Build URL for specific endpoint """
if tango_host:
kwargs.update({"host": tango_host[0], "port": tango_host[1]})
if device:
devs = device.split("/")
kwargs.update({"domain": devs[0], "family": devs[1], "member": devs[2]})
return "%s://%s%s" % (rq.scheme, rq.host, rq.app.url_for(handler, **kwargs))
class Version(tuple):
""" Strigifiable and URLable version """
def _as_str_tuple(self):
return tuple(str(x) for x in self)
def __str__(self):
base_version = ".".join(self._as_str_tuple()[:-1])
if len(self) <= 3:
return base_version
else:
return "-".join(
(
base_version,
self._as_str_tuple()[-1]
)
)
def url(self):
return "/".join(self._as_str_tuple())