2525
2626import os
2727import uuid
28-
2928from typing import Optional , Tuple
3029
31- from gramps .cli .clidbman import CLIDbManager , NAME_FILE
30+ from gramps .cli .clidbman import NAME_FILE , CLIDbManager
3231from gramps .cli .user import User
3332from gramps .gen .config import config
3433from gramps .gen .db .dbconst import DBBACKEND , DBLOCKFN , DBMODE_R , DBMODE_W
35- from gramps .gen .db .utils import make_database , get_dbid_from_path
34+ from gramps .gen .db .utils import get_dbid_from_path , make_database
3635from gramps .gen .dbstate import DbState
3736
3837from .dbloader import WebDbSessionManager
@@ -51,6 +50,7 @@ def __init__(
5150 password : Optional [str ] = None ,
5251 create_if_missing : bool = True ,
5352 create_backend : str = "sqlite" ,
53+ ignore_lock : bool = False ,
5454 ) -> None :
5555 """Initialize given a family tree name or subdirectory name (path)."""
5656 if dirname :
@@ -67,6 +67,7 @@ def __init__(
6767 self .password = password
6868 self .create_if_missing = create_if_missing
6969 self .create_backend = create_backend
70+ self .ignore_lock = ignore_lock
7071 self .path = self ._get_path ()
7172 self ._check_backend ()
7273
@@ -154,7 +155,11 @@ def break_lock(self) -> None:
154155 if os .path .exists (os .path .join (self .path , DBLOCKFN )):
155156 os .unlink (os .path .join (self .path , DBLOCKFN ))
156157
157- def get_db (self , readonly : bool = True , force_unlock : bool = False ) -> DbState :
158+ def get_db (
159+ self ,
160+ readonly : bool = True ,
161+ force_unlock : bool = False ,
162+ ) -> DbState :
158163 """Open the database and return a dbstate instance.
159164
160165 If `readonly` is `True` (default), write operations will fail (note,
@@ -170,7 +175,11 @@ def get_db(self, readonly: bool = True, force_unlock: bool = False) -> DbState:
170175 self .break_lock ()
171176 mode = DBMODE_R if readonly else DBMODE_W
172177 smgr .open_activate (
173- self .path , mode = mode , username = self .username , password = self .password
178+ self .path ,
179+ mode = mode ,
180+ username = self .username ,
181+ password = self .password ,
182+ ignore_lock = self .ignore_lock ,
174183 )
175184 return dbstate
176185
0 commit comments