Commit 77356c6dcd635b665d64f926fc64c69ee06f8f85
Committed by
GitHub
1 parent
df13f481
Exists in
master
Move initializations to main() (#409)
To enable starting InVesalius by importing app.py and calling main().
Showing
1 changed file
with
35 additions
and
27 deletions
Show diff stats
app.py
@@ -490,9 +490,41 @@ def print_events(topic=Publisher.AUTO_TOPIC, **msg_data): | @@ -490,9 +490,41 @@ def print_events(topic=Publisher.AUTO_TOPIC, **msg_data): | ||
490 | utils.debug("%s\n\tParameters: %s" % (topic, msg_data)) | 490 | utils.debug("%s\n\tParameters: %s" % (topic, msg_data)) |
491 | 491 | ||
492 | 492 | ||
493 | +def init(): | ||
494 | + """ | ||
495 | + Initialize InVesalius. | ||
496 | + | ||
497 | + Mostly file-system related initializations. | ||
498 | + """ | ||
499 | + #Is needed because of pyinstaller | ||
500 | + multiprocessing.freeze_support() | ||
501 | + | ||
502 | + #Needed in win 32 exe | ||
503 | + if hasattr(sys,"frozen") and sys.platform.startswith('win'): | ||
504 | + | ||
505 | + #Click in the .inv3 file support | ||
506 | + root = winreg.HKEY_CLASSES_ROOT | ||
507 | + key = "InVesalius 3.1\InstallationDir" | ||
508 | + hKey = winreg.OpenKey (root, key, 0, winreg.KEY_READ) | ||
509 | + value, type_ = winreg.QueryValueEx (hKey, "") | ||
510 | + path = os.path.join(value,'dist') | ||
511 | + | ||
512 | + os.chdir(path) | ||
513 | + | ||
514 | + if not inv_paths.USER_INV_DIR.exists(): | ||
515 | + inv_paths.create_conf_folders() | ||
516 | + if inv_paths.OLD_USER_INV_DIR.exists(): | ||
517 | + inv_paths.copy_old_files() | ||
518 | + | ||
519 | + if hasattr(sys,"frozen") and sys.frozen == "windows_exe": | ||
520 | + # Set system standard error output to file | ||
521 | + path = inv_paths.USER_LOG_DIR.join("stderr.log") | ||
522 | + sys.stderr = open(path, "w") | ||
523 | + | ||
524 | + | ||
493 | def main(connection=None): | 525 | def main(connection=None): |
494 | """ | 526 | """ |
495 | - Initialize InVesalius GUI | 527 | + Start InVesalius. |
496 | 528 | ||
497 | Parameters: | 529 | Parameters: |
498 | connection: An object to communicate with the outside world. | 530 | connection: An object to communicate with the outside world. |
@@ -505,6 +537,8 @@ def main(connection=None): | @@ -505,6 +537,8 @@ def main(connection=None): | ||
505 | functionality, InVesalius needs to be started by calling the main | 537 | functionality, InVesalius needs to be started by calling the main |
506 | function directly with a proper connection object. | 538 | function directly with a proper connection object. |
507 | """ | 539 | """ |
540 | + init() | ||
541 | + | ||
508 | options, args = parse_command_line() | 542 | options, args = parse_command_line() |
509 | 543 | ||
510 | session = ses.Session() | 544 | session = ses.Session() |
@@ -536,30 +570,4 @@ def main(connection=None): | @@ -536,30 +570,4 @@ def main(connection=None): | ||
536 | 570 | ||
537 | 571 | ||
538 | if __name__ == '__main__': | 572 | if __name__ == '__main__': |
539 | - #Is needed because of pyinstaller | ||
540 | - multiprocessing.freeze_support() | ||
541 | - | ||
542 | - #Needed in win 32 exe | ||
543 | - if hasattr(sys,"frozen") and sys.platform.startswith('win'): | ||
544 | - | ||
545 | - #Click in the .inv3 file support | ||
546 | - root = winreg.HKEY_CLASSES_ROOT | ||
547 | - key = "InVesalius 3.1\InstallationDir" | ||
548 | - hKey = winreg.OpenKey (root, key, 0, winreg.KEY_READ) | ||
549 | - value, type_ = winreg.QueryValueEx (hKey, "") | ||
550 | - path = os.path.join(value,'dist') | ||
551 | - | ||
552 | - os.chdir(path) | ||
553 | - | ||
554 | - if not inv_paths.USER_INV_DIR.exists(): | ||
555 | - inv_paths.create_conf_folders() | ||
556 | - if inv_paths.OLD_USER_INV_DIR.exists(): | ||
557 | - inv_paths.copy_old_files() | ||
558 | - | ||
559 | - if hasattr(sys,"frozen") and sys.frozen == "windows_exe": | ||
560 | - # Set system standard error output to file | ||
561 | - path = inv_paths.USER_LOG_DIR.join("stderr.log") | ||
562 | - sys.stderr = open(path, "w") | ||
563 | - | ||
564 | - # Init application | ||
565 | main() | 573 | main() |