summaryrefslogtreecommitdiff
path: root/coverage/numbits.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2022-12-27 09:56:02 -0500
committerNed Batchelder <ned@nedbatchelder.com>2022-12-27 10:00:19 -0500
commit00f681d6a63c66740a2a93ee138f351b531430b0 (patch)
treebddae0eb97ddb6679b212c85c7d592013bb648c9 /coverage/numbits.py
parentcf3fe635dd63217c0999c372aadae5a14741b1c5 (diff)
downloadpython-coveragepy-git-00f681d6a63c66740a2a93ee138f351b531430b0.tar.gz
test: add mypy just for one file at first
Diffstat (limited to 'coverage/numbits.py')
-rw-r--r--coverage/numbits.py23
1 files changed, 9 insertions, 14 deletions
diff --git a/coverage/numbits.py b/coverage/numbits.py
index da8e724b..99d53878 100644
--- a/coverage/numbits.py
+++ b/coverage/numbits.py
@@ -16,12 +16,12 @@ the future. Use these functions to work with those binary blobs of data.
import json
from itertools import zip_longest
+from typing import Iterable, List
-from coverage.misc import contract
+import sqlite3
-@contract(nums='Iterable', returns='blob')
-def nums_to_numbits(nums):
+def nums_to_numbits(nums: Iterable[int]) -> bytes:
"""Convert `nums` into a numbits.
Arguments:
@@ -41,8 +41,7 @@ def nums_to_numbits(nums):
return bytes(b)
-@contract(numbits='blob', returns='list[int]')
-def numbits_to_nums(numbits):
+def numbits_to_nums(numbits: bytes) -> List[int]:
"""Convert a numbits into a list of numbers.
Arguments:
@@ -63,8 +62,7 @@ def numbits_to_nums(numbits):
return nums
-@contract(numbits1='blob', numbits2='blob', returns='blob')
-def numbits_union(numbits1, numbits2):
+def numbits_union(numbits1: bytes, numbits2: bytes) -> bytes:
"""Compute the union of two numbits.
Returns:
@@ -74,8 +72,7 @@ def numbits_union(numbits1, numbits2):
return bytes(b1 | b2 for b1, b2 in byte_pairs)
-@contract(numbits1='blob', numbits2='blob', returns='blob')
-def numbits_intersection(numbits1, numbits2):
+def numbits_intersection(numbits1: bytes, numbits2: bytes) -> bytes:
"""Compute the intersection of two numbits.
Returns:
@@ -86,8 +83,7 @@ def numbits_intersection(numbits1, numbits2):
return intersection_bytes.rstrip(b'\0')
-@contract(numbits1='blob', numbits2='blob', returns='bool')
-def numbits_any_intersection(numbits1, numbits2):
+def numbits_any_intersection(numbits1: bytes, numbits2: bytes) -> bool:
"""Is there any number that appears in both numbits?
Determine whether two number sets have a non-empty intersection. This is
@@ -100,8 +96,7 @@ def numbits_any_intersection(numbits1, numbits2):
return any(b1 & b2 for b1, b2 in byte_pairs)
-@contract(num='int', numbits='blob', returns='bool')
-def num_in_numbits(num, numbits):
+def num_in_numbits(num: int, numbits: bytes) -> bool:
"""Does the integer `num` appear in `numbits`?
Returns:
@@ -113,7 +108,7 @@ def num_in_numbits(num, numbits):
return bool(numbits[nbyte] & (1 << nbit))
-def register_sqlite_functions(connection):
+def register_sqlite_functions(connection: sqlite3.Connection) -> None:
"""
Define numbits functions in a SQLite connection.