2020import threading
2121import zlib
2222from collections .abc import Collection , Mapping , Sequence
23- from typing import (
24- Any ,
25- Callable ,
26- cast ,
27- )
23+ from typing import Any , Callable , cast
2824
29- from coverage .debug import NoDebugging , auto_repr
25+ from coverage .debug import NoDebugging , auto_repr , file_summary
3026from coverage .exceptions import CoverageException , DataError
3127from coverage .misc import file_be_gone , isolate_module
3228from coverage .numbits import numbits_to_nums , numbits_union , nums_to_numbits
@@ -120,7 +116,7 @@ def _wrapped(self: CoverageData, *args: Any, **kwargs: Any) -> Any:
120116 self ._debug .write (f"Locking { self ._lock !r} for { method .__name__ } " )
121117 with self ._lock :
122118 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__ } " )
124120 return method (self , * args , ** kwargs )
125121 return _wrapped
126122
@@ -259,6 +255,11 @@ def __init__(
259255
260256 __repr__ = auto_repr
261257
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+
262263 def _choose_filename (self ) -> None :
263264 """Set self._filename based on inited attributes."""
264265 if self ._no_disk :
@@ -287,8 +288,7 @@ def close(self, force: bool = False) -> None:
287288
288289 def _open_db (self ) -> None :
289290 """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 )
292292 self ._dbs [threading .get_ident ()] = SqliteDb (self ._filename , self ._debug )
293293 self ._read_db ()
294294
@@ -327,8 +327,7 @@ def _read_db(self) -> None:
327327
328328 def _init_db (self , db : SqliteDb ) -> None :
329329 """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 )
332331 db .executescript (SCHEMA )
333332 db .execute_void ("insert into coverage_schema (version) values (?)" , (SCHEMA_VERSION ,))
334333
@@ -377,8 +376,7 @@ def dumps(self) -> bytes:
377376 .. versionadded:: 5.0
378377
379378 """
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 )
382380 with self ._connect () as con :
383381 script = con .dump ()
384382 return b"z" + zlib .compress (script .encode ("utf-8" ))
@@ -398,8 +396,7 @@ def loads(self, data: bytes) -> None:
398396 .. versionadded:: 5.0
399397
400398 """
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 )
403400 if data [:1 ] != b"z" :
404401 raise DataError (
405402 f"Unrecognized serialization: { data [:40 ]!r} (head of { len (data )} bytes)" ,
@@ -834,16 +831,14 @@ def erase(self, parallel: bool = False) -> None:
834831 self ._reset ()
835832 if self ._no_disk :
836833 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 )
839835 file_be_gone (self ._filename )
840836 if parallel :
841837 data_dir , local = os .path .split (self ._filename )
842838 local_abs_path = os .path .join (os .path .abspath (data_dir ), local )
843839 pattern = glob .escape (local_abs_path ) + ".*"
844840 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 )
847842 file_be_gone (filename )
848843
849844 def read (self ) -> None :
@@ -854,7 +849,7 @@ def read(self) -> None:
854849
855850 def write (self ) -> None :
856851 """Ensure the data is written to the data file."""
857- pass
852+ self . _debug_dataio ( "Writing (no-op) data file" , self . _filename )
858853
859854 def _start_using (self ) -> None :
860855 """Call this before using the database at all."""
0 commit comments