Source code for spacetrack.operators

import datetime
from collections.abc import Sequence


[docs] def greater_than(value): """``'>value'``.""" return ">" + _stringify_predicate_value(value)
[docs] def less_than(value): """``'<value'``.""" return "<" + _stringify_predicate_value(value)
[docs] def not_equal(value): """``'<>value'``.""" return "<>" + _stringify_predicate_value(value)
[docs] def inclusive_range(left, right): """``'left--right'``.""" return _stringify_predicate_value(left) + "--" + _stringify_predicate_value(right)
[docs] def like(value): """``'~~value'``.""" return "~~" + _stringify_predicate_value(value)
[docs] def startswith(value): """``'^value'``.""" return "^" + _stringify_predicate_value(value)
[docs] def _stringify_predicate_value(value): """Convert Python objects to Space-Track compatible strings - Booleans (``True`` -> ``'true'``) - Sequences (``[25544, 34602]`` -> ``'25544,34602'``) - dates/datetimes (``date(2015, 12, 23)`` -> ``'2015-12-23'``) - ``None`` -> ``'null-val'`` """ if isinstance(value, bool): return str(value).lower() elif isinstance(value, Sequence) and not isinstance(value, str): return ",".join(_stringify_predicate_value(x) for x in value) elif isinstance(value, datetime.datetime): return value.isoformat(sep=" ") elif isinstance(value, datetime.date): return value.isoformat() elif value is None: return "null-val" else: return str(value)