Ejemplo n.º 1
0
 def __init__(self, args, out=sys.stdout):
     if not os.path.isfile(args.file):
         raise IOError("Not a file: %s" % args.file)
     self.file_name = args.file
     self.silent = args.xunit_out is not None
     base, ext = os.path.splitext(args.file)
     if ext == ".gz":
         ext_ = ext
         base, ext = os.path.splitext(base)
     if args.quiet:
         out = StringIO()
     self.t_start = time.time()
     if (args.file_type == "Fasta" or
             (args.file_type is None and ext in [".fasta", ".fa", ".fna"])):
         self.errors, self.metrics = fasta.validate_fasta(
             file_name=args.file,
             strict=args.strict,
             validate_index=args.validate_index,
             quick=args.quick)
     elif (args.file_type == "BAM" or
           (args.file_type is None and ext in [".bam"])):
         self.errors, self.metrics = bam.validate_bam(
             file_name=args.file,
             reference=args.reference,
             aligned=args.aligned,
             contents=args.contents,
             quick=args.quick,
             max_errors=args.max_errors,
             max_records=args.max_records,
             validate_index=args.validate_index,
             permissive_headers=args.permissive_headers)
     elif (args.file_type in ["AlignmentSet", "ReferenceSet", "SubreadSet"] or
           ext in [".xml"]):
         self.errors, self.metrics = dataset.validate_dataset(
             file_name=args.file,
             dataset_type=args.file_type,
             reference=args.reference,
             quick=args.quick,
             max_errors=args.max_errors,
             max_records=args.max_records,
             aligned=args.aligned,
             contents=args.contents,
             validate_index=args.validate_index,
             strict=args.strict,
             permissive_headers=args.permissive_headers)
     else:
         raise NotImplementedError("No validator found for '%s'." % ext)
     self.t_end = time.time()
     if not args.quiet:
         utils.show_validation_errors(self.errors, out=out,
                                      use_termcolor=args.use_termcolor)
     if args.xunit_out is not None:
         doc = self.to_xml()
         with open(args.xunit_out, "w") as xml_out:
             xml_out.write(doc.toprettyxml(indent="  "))
Ejemplo n.º 2
0
 def error_string(self):
     err_out = StringIO()
     utils.show_validation_errors(self.errors, out=err_out)
     return err_out.getvalue()