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