57 lines
2.1 KiB
Python
57 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()
|