You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

20 lines
584 B

  1. from nd2reader.parser.v3 import V3Parser
  2. from nd2reader.exc import InvalidVersionError
  3. def get_parser(fh, major_version, minor_version):
  4. """
  5. Picks the appropriate parser based on the ND2 version.
  6. :type fh: file
  7. :type major_version: int
  8. :type minor_version: int
  9. :rtype: a parser object
  10. """
  11. parsers = {(3, None): V3Parser}
  12. parser = parsers.get((major_version, minor_version)) or parsers.get((major_version, None))
  13. if not parser:
  14. raise InvalidVersionError("No parser is available for that version.")
  15. return parser(fh)