"""This is the parse interface module for Navigator.
Interface:
- IParse (abc.ABC): An abstract parse interface.
- IParseGPSNav (IParse): A concrete GPS navigation parse interface.
- IParseGPSObs (IParse): A concrete GPS observation parse interface.
- IParseSP3GPS (IParse): A concrete GPS SP3 parse interface.
Example Usage:
>>> from navigator.parse import IParseGPSNav, Parser
>>> parser = Parser(iparser=IParseGPSNav())
>>> parser.parse(filename=navigation_file_path)
Note:
These interfaces are not meant to be instantiated directly. Instead, use the `Parser` class from the `navigator.parse` module.
See Also:
- `navigator.parse.iparse.nav`: The interface module for parsing GNSS navigation data.
- `navigator.parse.iparse.obs`: The interface module for parsing GNSS observation data.
References:
- Georinex: [https://pypi.org/project/georinex/](https://pypi.org/project/georinex/)
Todo:
- Migrate the backend from `georinex` to `georust` with `pyo3`.
- Add support for other GNSS systems. (Already done in `georust`)
"""
# A note to future developers:
# Design Principle: The python API should be same irrespective of the backend used.
from .base_iparse import IParse
from .nav.iparse_gps_nav import IParseGPSNav
from .obs.iparse_gps_obs import IParseGPSObs
from .sp3.iparse_sp3_gps import IParseSP3GPS
from .yuma_alm import IParseYumaAlm