"""
q2netcdf - Manipulate Rockland Scientific's Q-files.

Provides tools to read, parse, and convert Q-files generated by
Rockland Scientific's ISDP data logger to NetCDF format.

Main classes:
- QFile: Read Q-files with context manager
- QHeader: Parse Q-file headers
- QData, QRecord: Handle data records
- QVersion: Q-file version enumeration
- QHexCodes: Identifier to name mapping

Example:
    >>> from q2netcdf import QFile
    >>> with QFile("data.q") as qf:
    ...     header = qf.header()
    ...     for record in qf.data():
    ...         process(record)
"""

from importlib.metadata import version, PackageNotFoundError

try:
    __version__ = version("q2netcdf")
except PackageNotFoundError:
    # Fallback for development installations
    __version__ = "0.0.0+unknown"

__author__ = "Pat Welch"
__email__ = "pat@mousebrains.com"

from .QFile import QFile
from .QHeader import QHeader
from .QData import QData, QRecord
from .QVersion import QVersion
from .QHexCodes import QHexCodes
from .QConfig import QConfig

__all__ = [
    "QFile",
    "QHeader",
    "QData",
    "QRecord",
    "QVersion",
    "QHexCodes",
    "QConfig",
]
