Exemplo n.º 1
0
static PyObject *ObjectCallbackAllStatesAsPyObject(ObjectCallback * I)
{
  int a;
  PyObject *result = NULL;
  PyObject *list = PyList_New(I->NState);

  for(a = 0; a < I->NState; a++) {
    PyList_SetItem(list, a, ObjectCallbackStateAsPyObject(I->State + a));
  }

  // pickle the list to a string
  result = PConvPickleDumps(list);

  Py_XDECREF(list);

  if(PyErr_Occurred()) {
    PyErr_Print();

    PRINTFB(I->Obj.G, FB_ObjectCallback, FB_Warnings)
      " Warning: callable needs to be picklable for session storage\n"
      ENDFB(I->Obj.G);
  }

  return result;
}
Exemplo n.º 2
0
static int ObjectCallbackAllStatesFromPyObject(ObjectCallback * I, PyObject * obj)
{
  int result = false;
  PyObject *list = NULL;

  if(PyList_Check(obj)) {
    list = obj;
    Py_INCREF(list);
  } else {
    // unpickle list from string
    ok_assert(1, list = PConvPickleLoads(obj));
    ok_assert(1, PyList_Check(list));
  }

  I->NState = PyList_Size(list);
  VLACheck(I->State, ObjectCallbackState, I->NState);

  for(int a = 0; a < I->NState; a++) {
    PyObject *val = PyList_GetItem(list, a);
    ObjectCallbackStateFromPyObject(I->Obj.G, I->State + a, val);
  }

  result = true;
ok_except1:
  if(PyErr_Occurred()) {
    PyErr_Print();

    PRINTFB(I->Obj.G, FB_ObjectCallback, FB_Warnings)
      " Warning: could not load callback object\n"
      ENDFB(I->Obj.G);
  }

  Py_XDECREF(list);
  return result;
}
Exemplo n.º 3
0
Arquivo: Raw.c Projeto: Almad/pymol
int RawReadSkip(CRaw * I)
{
  PyMOLGlobals *G = I->G;
  int result = false;
  switch (I->mode) {
  case cRaw_file_stream:
    if(I->f) {
      if(!feof(I->f)) {
        if(fread((char *) I->header, cRaw_header_size, 1, I->f) != 1) {
          PRINTFB(G, FB_Raw, FB_Errors)
            "Error-Raw: Error reading header.\n" ENDFB(G);
        } else {
          if(I->swap) {
            swap_bytes(I->header);
            swap_bytes(I->header + 1);
            swap_bytes(I->header + 2);
            swap_bytes(I->header + 3);
          }
          fseek(I->f, I->header[0], SEEK_CUR);
          result = true;
        }
      }
    }
    break;
  }
  return (result);
}
Exemplo n.º 4
0
Arquivo: Raw.c Projeto: Almad/pymol
CRaw *RawOpenAppend(PyMOLGlobals * G, char *fname)
{
  int target = 0x04030201;
  int ok = true;
  OOAlloc(G, CRaw);
  I->bufVLA = NULL;
  I->G = G;
  I->f = fopen(fname, "wba");
  if(!I->f) {
    ok = false;
  } else {
    if(!ftell(I->f))            /* write magic if this is a new file */
      fwrite(&target, 4, 1, I->f);
  }
  if(!ok) {
    if(I->f)
      fclose(I->f);
    OOFreeP(I);
    PRINTFB(G, FB_Raw, FB_Errors)
      "Error-RawOpenAppend: Unable to open '%s'.\n", fname ENDFB(G);
  } else {
    I->mode = cRaw_file_stream;
  }
  return (I);
}
Exemplo n.º 5
0
ObjectMap *PlugIOManagerLoadVol(PyMOLGlobals * G, ObjectMap * obj,
                                char *fname, int state, int quiet, char *plugin_type)
{
  PRINTFB(G, FB_ObjectMolecule, FB_Errors)
    " ObjectMap-Error: sorry, VMD Molfile Plugins not compiled into this build.\n"
    ENDFB(G);
  return NULL;
}
Exemplo n.º 6
0
Arquivo: Raw.c Projeto: Almad/pymol
CRaw *RawOpenRead(PyMOLGlobals * G, char *fname)
{
  int target = 0x04030201;
  int reverse = 0x01020304;
  int actual;
  int ok = true;

  OOAlloc(G, CRaw);
  I->bufVLA = NULL;
  I->G = G;
  I->f = fopen(fname, "rb");
  if(!I->f) {
    ok = false;
  } else {
    if(feof(I->f))
      ok = false;
    else if(fread(&actual, 4, 1, I->f) != 1)
      ok = false;
    else if(actual == target)
      I->swap = false;
    else if(actual == reverse)
      I->swap = true;
    else {
      PRINTFB(G, FB_Raw, FB_Errors)
        "Error-RawOpenRead: Unrecognized byte ordering. This may not a PyMOL file.\n"
        ENDFB(G);
      ok = false;
    }
  }
  if(!ok) {
    if(I->f)
      fclose(I->f);
    OOFreeP(I);
    PRINTFB(G, FB_Raw, FB_Errors)
      "Error-RawOpenRead: Unable to open '%s'.\n", fname ENDFB(G);

  } else {
    I->mode = cRaw_file_stream;
  }
  return (I);
}
Exemplo n.º 7
0
int PlugIOManagerLoadTraj(PyMOLGlobals * G, ObjectMolecule * obj,
                          char *fname, int frame,
                          int interval, int average, int start,
                          int stop, int max, char *sele, int image,
                          float *shift, int quiet, char *plugin_type)
{

  PRINTFB(G, FB_ObjectMolecule, FB_Errors)
    " ObjectMolecule-Error: sorry, VMD Molfile Plugins not compiled into this build.\n"
    ENDFB(G);
  return 0;
}
Exemplo n.º 8
0
Arquivo: Raw.c Projeto: Almad/pymol
char *RawRead(CRaw * I, int *type, unsigned int *size, int *serial)
{
  PyMOLGlobals *G = I->G;
  char *result = NULL;
  switch (I->mode) {
  case cRaw_file_stream:
    if(I->f) {
      if(!feof(I->f)) {
        if(fread((char *) I->header, cRaw_header_size, 1, I->f) != 1) {
          PRINTFB(G, FB_Raw, FB_Errors)
            "Error-Raw: Error reading header.\n" ENDFB(G);
        } else {
          if(I->swap) {
            swap_bytes(I->header);
            swap_bytes(I->header + 1);
            swap_bytes(I->header + 2);
            swap_bytes(I->header + 3);
          }
          VLACheck(I->bufVLA, char, I->header[0]);
          if(fread(I->bufVLA, I->header[0], 1, I->f) == 1) {
            result = I->bufVLA;
            *size = I->header[0];
            *type = I->header[1];       /* record type */
            *serial = I->header[3];
          } else {
            PRINTFB(G, FB_Raw, FB_Errors)
              "Error-RawRead: Data read error.\n" ENDFB(G);

          }
        }
      } else {
        *type = cRaw_EOF;
      }
    }
    break;
  }