Source code for draugr.entry_points.tensorboard_entry_point
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from shutil import rmtree
__author__ = "Christian Heider Nielsen"
__doc__ = ""
__all__ = []
[docs]def main(keep_alive: bool = True, use_asyncio: bool = True) -> str:
"""
:param use_asyncio:
:param keep_alive:
:type keep_alive:
:return:
:rtype:"""
from draugr.torch_utilities import launch_tensorboard
# from draugr import IgnoreInterruptSignal
# from contextlib import suppress
from time import sleep
from apppath import AppPath
import argparse
parser = argparse.ArgumentParser(description="Option for launching tensorboard")
parser.add_argument("NAME", type=str, help="App name to open AppPath for")
parser.add_argument(
"--author", type=str, help="App author to open AppPath for", default=None
)
parser.add_argument(
"--version", type=str, help="App version to open AppPath for", default=None
)
parser.add_argument(
"--clean",
action="store_true",
default=False,
help="Adding --clean argument will wipe tensorboard logs",
)
parser.add_argument(
"--port", default=6006, help="Which port should tensorboard be served on"
)
args = parser.parse_args()
project_app_path = AppPath(args.NAME, args.author, args.version)
log_dir = project_app_path.user_log
if args.clean:
print(f"Wiping {log_dir}")
if log_dir.exists():
rmtree(str(log_dir))
else:
log_dir.mkdir()
address = launch_tensorboard(log_dir, args.port)
if keep_alive:
print(f"tensorboard address: {address} for log_dir {log_dir}")
if use_asyncio:
import asyncio
async def work():
"""description"""
while True:
await asyncio.sleep(1)
# print("Task Executed")
loop = asyncio.get_event_loop()
try:
asyncio.ensure_future(work())
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
print("Closing Loop")
loop.close()
else:
# with IgnoreInterruptSignal(): # Do not block
while True:
sleep(10)
return address
if __name__ == "__main__":
import webbrowser
"""
Type Name
Class Name
Notes
'mozilla'
Mozilla('mozilla')
'firefox'
Mozilla('mozilla')
'netscape'
Mozilla('netscape')
'galeon'
Galeon('galeon')
'epiphany'
Galeon('epiphany')
'skipstone'
BackgroundBrowser('skipstone')
'kfmclient'
Konqueror()
(1)
'konqueror'
Konqueror()
(1)
'kfm'
Konqueror()
(1)
'mosaic'
BackgroundBrowser('mosaic')
'opera'
Opera()
'grail'
Grail()
'links'
GenericBrowser('links')
'elinks'
Elinks('elinks')
'lynx'
GenericBrowser('lynx')
'w3m'
GenericBrowser('w3m')
'windows-default'
WindowsDefault
(2)
'macosx'
MacOSX('default')
(3)
'safari'
MacOSX('safari')
(3)
'google-chrome'
Chrome('google-chrome')
'chrome'
Chrome('chrome')
'chromium'
Chromium('chromium')
'chromium-browser'
Chromium('chromium-browser')
"""
# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(main())
## Open URL in new window, raising the window if possible.
# webbrowser.open_new(url)