20
20
import threading
21
21
import zlib
22
22
from collections .abc import Collection , Mapping , Sequence
23
- from typing import (
24
- Any ,
25
- Callable ,
26
- cast ,
27
- )
23
+ from typing import Any , Callable , cast
28
24
29
- from coverage .debug import NoDebugging , auto_repr
25
+ from coverage .debug import NoDebugging , auto_repr , file_summary
30
26
from coverage .exceptions import CoverageException , DataError
31
27
from coverage .misc import file_be_gone , isolate_module
32
28
from coverage .numbits import numbits_to_nums , numbits_union , nums_to_numbits
@@ -120,7 +116,7 @@ def _wrapped(self: CoverageData, *args: Any, **kwargs: Any) -> Any:
120
116
self ._debug .write (f"Locking { self ._lock !r} for { method .__name__ } " )
121
117
with self ._lock :
122
118
if self ._debug .should ("lock" ):
123
- self ._debug .write (f"Locked { self ._lock !r} for { method .__name__ } " )
119
+ self ._debug .write (f"Locked { self ._lock !r} for { method .__name__ } " )
124
120
return method (self , * args , ** kwargs )
125
121
return _wrapped
126
122
@@ -259,6 +255,11 @@ def __init__(
259
255
260
256
__repr__ = auto_repr
261
257
258
+ def _debug_dataio (self , msg : str , filename : str ) -> None :
259
+ """A helper for debug messages which are all similar."""
260
+ if self ._debug .should ("dataio" ):
261
+ self ._debug .write (f"{ msg } { filename !r} ({ file_summary (filename )} )" )
262
+
262
263
def _choose_filename (self ) -> None :
263
264
"""Set self._filename based on inited attributes."""
264
265
if self ._no_disk :
@@ -287,8 +288,7 @@ def close(self, force: bool = False) -> None:
287
288
288
289
def _open_db (self ) -> None :
289
290
"""Open an existing db file, and read its metadata."""
290
- if self ._debug .should ("dataio" ):
291
- self ._debug .write (f"Opening data file { self ._filename !r} " )
291
+ self ._debug_dataio ("Opening data file" , self ._filename )
292
292
self ._dbs [threading .get_ident ()] = SqliteDb (self ._filename , self ._debug )
293
293
self ._read_db ()
294
294
@@ -327,8 +327,7 @@ def _read_db(self) -> None:
327
327
328
328
def _init_db (self , db : SqliteDb ) -> None :
329
329
"""Write the initial contents of the database."""
330
- if self ._debug .should ("dataio" ):
331
- self ._debug .write (f"Initing data file { self ._filename !r} " )
330
+ self ._debug_dataio ("Initing data file" , self ._filename )
332
331
db .executescript (SCHEMA )
333
332
db .execute_void ("insert into coverage_schema (version) values (?)" , (SCHEMA_VERSION ,))
334
333
@@ -377,8 +376,7 @@ def dumps(self) -> bytes:
377
376
.. versionadded:: 5.0
378
377
379
378
"""
380
- if self ._debug .should ("dataio" ):
381
- self ._debug .write (f"Dumping data from data file { self ._filename !r} " )
379
+ self ._debug_dataio ("Dumping data from data file" , self ._filename )
382
380
with self ._connect () as con :
383
381
script = con .dump ()
384
382
return b"z" + zlib .compress (script .encode ("utf-8" ))
@@ -398,8 +396,7 @@ def loads(self, data: bytes) -> None:
398
396
.. versionadded:: 5.0
399
397
400
398
"""
401
- if self ._debug .should ("dataio" ):
402
- self ._debug .write (f"Loading data into data file { self ._filename !r} " )
399
+ self ._debug_dataio ("Loading data into data file" , self ._filename )
403
400
if data [:1 ] != b"z" :
404
401
raise DataError (
405
402
f"Unrecognized serialization: { data [:40 ]!r} (head of { len (data )} bytes)" ,
@@ -834,16 +831,14 @@ def erase(self, parallel: bool = False) -> None:
834
831
self ._reset ()
835
832
if self ._no_disk :
836
833
return
837
- if self ._debug .should ("dataio" ):
838
- self ._debug .write (f"Erasing data file { self ._filename !r} " )
834
+ self ._debug_dataio ("Erasing data file" , self ._filename )
839
835
file_be_gone (self ._filename )
840
836
if parallel :
841
837
data_dir , local = os .path .split (self ._filename )
842
838
local_abs_path = os .path .join (os .path .abspath (data_dir ), local )
843
839
pattern = glob .escape (local_abs_path ) + ".*"
844
840
for filename in glob .glob (pattern ):
845
- if self ._debug .should ("dataio" ):
846
- self ._debug .write (f"Erasing parallel data file { filename !r} " )
841
+ self ._debug_dataio ("Erasing parallel data file" , filename )
847
842
file_be_gone (filename )
848
843
849
844
def read (self ) -> None :
@@ -854,7 +849,7 @@ def read(self) -> None:
854
849
855
850
def write (self ) -> None :
856
851
"""Ensure the data is written to the data file."""
857
- pass
852
+ self . _debug_dataio ( "Writing (no-op) data file" , self . _filename )
858
853
859
854
def _start_using (self ) -> None :
860
855
"""Call this before using the database at all."""
0 commit comments