Пример #1
0
PyObject *Vcf_readFile( PyObject *self, PyObject *args ){
	FILE *file;
	char *filename;
	VcStatus status;
	if(!PyArg_ParseTuple( args, "s", &filename ) ){
		return NULL;
	}

	else{
		cardNum = 0;
		file = fopen(filename,"r");
		if(file == NULL){
			char *error = strerror(errno);
			return Py_BuildValue("s", error);
		}
		status = readVcFile(file,&vcfile);
		if(status.code != OK){
			freeVcFile(&vcfile);
			return Py_BuildValue("iii",status.code,status.linefrom,status.lineto);
		}

		fclose(file);
		return Py_BuildValue("s","OK");


	}
		
}
Пример #2
0
static PyObject *Vcf_readFile( PyObject *self, PyObject *args ){
  char *filename;
  VcStatus result;
  FILE * fptr;
//   VcFile nfile;
  
  if(!PyArg_ParseTuple( args, "s", &filename )){
    return NULL;
  }
  
  fptr = fopen(filename, "r");
  if(fptr == NULL){
    char * errmsg = strerror(errno);
    char msg[25+strlen(errmsg)];
    sprintf(msg, "Cannot open file due to %s", errmsg);
    return PyBytes_FromString(msg);
  }
  
  result = readVcFile(fptr, &gfile);
  return generateError(result);
  
}//end of readVcFile wrapper function
Пример #3
0
int main(int argc, char**argv){
    if (argc == 1){
        fprintf(stderr,"You must enter atleast 1 command.\n");
        return EXIT_FAILURE;
    }
    /*Read in file from STDIN*/
    int write = 0;
    VcStatus writeStatus, readStatus;
    VcFile input;
    readStatus = readVcFile(stdin,&input);
    if (readStatus.code != OK){
        fprintf(stderr,"Read Vcfile failed with error code %d lines %d to %d.\n",readStatus.code,readStatus.linefrom,readStatus.lineto);
        return EXIT_FAILURE;
    }
    /*Run the sepcified command*/
    if (argc > 1){
        if (strcmpML("-info",argv[1]) == 0){
            if (argc > 2) return EXIT_FAILURE;
            vcfInfo(stdout,&input);
        }
        else if (strcmpML("-sort",argv[1]) == 0){
            if (argc > 2) return EXIT_FAILURE;
            vcfSort(&input);
            writeStatus = writeVcFile(stdout,&input);
            write = 1;
        }
        else if (strcmpML("-canon",argv[1]) == 0){
            if (argc > 2) return EXIT_FAILURE;
            vcfCanon(&input);
            writeStatus = writeVcFile(stdout,&input);
            write = 1;
        }
        else if (strcmpML("-select",argv[1]) == 0){
            if (argc < 3){
                fprintf(stderr,"ERROR: You must enter which cards to select.\n");
            }
            else{
                char * which = strdup(argv[2]);
                assert(which);
                
                int check = scanWhich(which);
                if (check == -1){
                    fprintf(stderr,"ERROR: Invalid format for selection.");
                }
                else{
                    vcfSelect(&input,which);
                    writeStatus = writeVcFile(stdout,&input);
                    write = 1;
                }
                free(which);
            }
        }
        else{
            fprintf(stderr,"ERROR: Invalid options.\n");
            freeVcFile(&input);
            return EXIT_FAILURE;
        }
    }
    /*Print the error*/
    if ((write == 1) && writeStatus.code == IOERR){
        fprintf(stderr,"IOERR on linefrom: %d. to lineto: %d.\n",writeStatus.linefrom,writeStatus.lineto);
    }
    /*Free and return*/
    freeVcFile(&input);
    return EXIT_SUCCESS;
}