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() |