@@ -444,9 +444,6 @@ class TagFile(object):
444
444
(prefix, suffix, exact), getting the directory of a tag and so forth.
445
445
"""
446
446
447
- file_o = None
448
- mapped = None
449
-
450
447
def __init__ (self , path , column ):
451
448
"""
452
449
Initialise object.
@@ -461,16 +458,18 @@ def __init__(self, path, column):
461
458
"""
462
459
self .path = path
463
460
self .column = column
461
+ self .file = None
462
+ self .mmap = None
464
463
465
464
def __getitem__ (self , index ):
466
465
"""
467
466
Provide sequence-type interface to tag file.
468
467
"""
469
- self .mapped .seek (index )
470
- result = self .mapped .readline ()
468
+ self .mmap .seek (index )
469
+ result = self .mmap .readline ()
471
470
472
471
if index != 0 : # handle first line
473
- result = self .mapped .readline () # get a complete line
472
+ result = self .mmap .readline () # get a complete line
474
473
475
474
result = result .strip ()
476
475
if not result :
@@ -482,7 +481,7 @@ def __len__(self):
482
481
"""
483
482
Get size of tag file in bytes.
484
483
"""
485
- return len (self .mapped )
484
+ return len (self .mmap )
486
485
487
486
def __enter__ (self ):
488
487
"""
@@ -508,15 +507,17 @@ def open(self):
508
507
"""
509
508
Open file.
510
509
"""
511
- self .file_o = open (self .path , "r" , encoding = "utf-8" )
512
- self .mapped = mmap .mmap (self .file_o .fileno (), 0 , access = mmap .ACCESS_READ )
510
+ self .file = open (self .path , "r" , encoding = "utf-8" )
511
+ self .mmap = mmap .mmap (self .file .fileno (), 0 , access = mmap .ACCESS_READ )
513
512
514
513
def close (self ):
515
514
"""
516
515
Close file.
517
516
"""
518
- self .mapped .close ()
519
- self .file_o .close ()
517
+ self .mmap .close ()
518
+ self .mmap = None
519
+ self .file .close ()
520
+ self .file = None
520
521
521
522
def search (self , exact_match = True , * tags ):
522
523
"""
@@ -529,8 +530,8 @@ def search(self, exact_match=True, *tags):
529
530
:returns: matching tags
530
531
"""
531
532
if not tags :
532
- while self .mapped .tell () < self .mapped .size ():
533
- result = Tag (self .mapped .readline ().strip (), self .column )
533
+ while self .mmap .tell () < self .mmap .size ():
534
+ result = Tag (self .mmap .readline ().strip (), self .column )
534
535
if result .line :
535
536
yield result
536
537
return
@@ -541,12 +542,12 @@ def search(self, exact_match=True, *tags):
541
542
result = self [left_index ]
542
543
while result .line and result [result .column ] == key :
543
544
yield result
544
- result = Tag (self .mapped .readline ().strip (), self .column )
545
+ result = Tag (self .mmap .readline ().strip (), self .column )
545
546
else :
546
547
result = self [left_index ]
547
548
while result .line and result [result .column ].startswith (key ):
548
549
yield result
549
- result = Tag (self .mapped .readline ().strip (), self .column )
550
+ result = Tag (self .mmap .readline ().strip (), self .column )
550
551
551
552
def search_by_suffix (self , suffix ):
552
553
"""
@@ -560,7 +561,7 @@ def search_by_suffix(self, suffix):
560
561
561
562
:returns: matching tags
562
563
"""
563
- for line in self .file_o :
564
+ for line in self .file :
564
565
tag = Tag (line , self .column )
565
566
if tag .key .endswith (suffix ):
566
567
yield tag
0 commit comments