about summary refs log tree commit diff
path: root/gn3/api
diff options
context:
space:
mode:
Diffstat (limited to 'gn3/api')
-rw-r--r--gn3/api/search.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/gn3/api/search.py b/gn3/api/search.py
index aa844ee..ada845d 100644
--- a/gn3/api/search.py
+++ b/gn3/api/search.py
@@ -147,12 +147,14 @@ def parse_position(spec: str) -> tuple[Maybe[int], Maybe[int]]:
         point = apply_si_suffix(spec)
         return Just(max(0, point - width)), Just(point + width)
 
+def to_megabases(val):
+    """Convert `val` to megabases."""
+    return str(Decimal(val)/10**6)
 
 def parse_position_field(location_slot: int, query: bytes) -> xapian.Query:
     """Parse position and return a xapian query."""
     start, end = parse_position(query.decode("utf-8"))
     # TODO: Convert the xapian index to use bases instead of megabases.
-    to_megabases = lambda x: str(Decimal(x)/10**6)
     return (xapian.NumberRangeProcessor(location_slot)
             (start.maybe("", to_megabases), end.maybe("", to_megabases))) # type: ignore
 
@@ -176,7 +178,6 @@ def parse_location_field(species_query: xapian.Query,
 
     def make_query(interval: ChromosomalInterval) -> xapian.Query:
         # TODO: Convert the xapian index to use bases instead of megabases.
-        to_megabases = lambda x: str(Decimal(x)/10**6)
         return combine_queries(xapian.Query.OP_AND,
                                species_query,
                                xapian.Query(chromosome_prefix + interval.chromosome),