SXXXXXXX_DependencyAnalyzer/dependencyanalyzer/__main__.py
2025-05-06 14:14:38 +02:00

49 lines
2.1 KiB
Python

# dependencyanalyzer/__main__.py
import tkinter as tk
import logging # Import standard logging
import sys # For checking command line args, etc. (optional)
from pathlib import Path
import os
# Use absolute import assuming 'dependencyanalyzer' is runnable with `python -m`
# Or use relative if structure guarantees it. Let's assume absolute is safer if structure might change.
# If running with `python -m dependencyanalyzer` from parent dir, this works.
try:
from dependencyanalyzer.gui import DependencyAnalyzerApp
from dependencyanalyzer import core # To access core.logger if needed, though handled by root
except ImportError:
# Fallback for running __main__.py directly inside the package dir during dev
print("Running __main__.py directly, attempting relative imports...", file=sys.stderr)
from gui import DependencyAnalyzerApp
import core
def setup_logging():
"""Configures root logger for the application."""
log_level_str = os.environ.get("DEP_ANALYZER_LOG_LEVEL", "INFO").upper()
log_level = getattr(logging, log_level_str, logging.INFO)
log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
# Use force=True on Python 3.8+ to ensure handlers are replaced if already configured
kwargs = {'force': True} if sys.version_info >= (3, 8) else {}
# Basic config - consider adding FileHandler later if needed
logging.basicConfig(level=log_level, format=log_format, stream=sys.stdout, **kwargs) # type: ignore
logging.info(f"Root logger configured. Level: {logging.getLevelName(log_level)}")
# Ensure core logger level is at least as verbose as root, if needed
# logging.getLogger(core.__name__).setLevel(log_level)
def main():
"""Main function to launch the Dependency Analyzer application."""
setup_logging() # Configure logging first
root = tk.Tk()
root.minsize(width=800, height=700) # Set a reasonable minimum size
app = DependencyAnalyzerApp(master=root)
app.mainloop()
if __name__ == "__main__":
# This block runs when script is executed directly (python __main__.py)
# or via python -m dependencyanalyzer
main()