|
import logging |
|
import sys |
|
|
|
import torch |
|
from packaging import version |
|
|
|
__version__ = "1.5" |
|
|
|
LOG_PATH = "log.txt" |
|
|
|
|
|
def read_logs(): |
|
sys.stdout.flush() |
|
with open(LOG_PATH, "r") as f: |
|
return f.read() |
|
|
|
|
|
def flush_logs(): |
|
sys.stdout.flush() |
|
logs = open(LOG_PATH, "w") |
|
logs.close() |
|
|
|
|
|
formatter = logging.Formatter( |
|
fmt="[%(asctime)s %(name)s %(levelname)s] %(message)s", |
|
datefmt="%Y/%m/%d %H:%M:%S", |
|
) |
|
|
|
logs_file = open(LOG_PATH, "w") |
|
logs_file.close() |
|
|
|
file_handler = logging.FileHandler(filename=LOG_PATH) |
|
file_handler.setFormatter(formatter) |
|
file_handler.setLevel(logging.INFO) |
|
stdout_handler = logging.StreamHandler() |
|
stdout_handler.setFormatter(formatter) |
|
stdout_handler.setLevel(logging.INFO) |
|
logger = logging.getLogger("hloc") |
|
logger.setLevel(logging.INFO) |
|
logger.addHandler(file_handler) |
|
logger.addHandler(stdout_handler) |
|
logger.propagate = False |
|
|
|
try: |
|
import pycolmap |
|
except ImportError: |
|
logger.warning("pycolmap is not installed, some features may not work.") |
|
else: |
|
min_version = version.parse("0.6.0") |
|
found_version = pycolmap.__version__ |
|
if found_version != "dev": |
|
version = version.parse(found_version) |
|
if version < min_version: |
|
s = f"pycolmap>={min_version}" |
|
logger.warning( |
|
"hloc requires %s but found pycolmap==%s, " |
|
'please upgrade with `pip install --upgrade "%s"`', |
|
s, |
|
found_version, |
|
s, |
|
) |
|
|
|
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
|
|