Changeset 23708
- Timestamp:
- 02/11/19 04:13:06 (6 years ago)
- Location:
- issm/trunk-jpl/src/wrappers/python/io
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/wrappers/python/io/FetchPythonData.cpp
r23231 r23708 4 4 5 5 #ifdef HAVE_CONFIG_H 6 6 #include <config.h> 7 7 #else 8 8 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" … … 22 22 23 23 /*return internal value: */ 24 if (PyFloat_Check(py_float)) 24 #if _PYTHON_MAJOR_ == 3 25 if (PyFloat_Check(py_float)) 25 26 dscalar=PyFloat_AsDouble(py_float); 26 else if (PyLong_Check(py_float)){ 27 #if _PYTHON_MAJOR_ == 3 27 else if (PyLong_Check(py_float)) 28 28 dscalar=(double)PyLong_AsLong(py_float); 29 #else 29 else if (PyBool_Check(py_float)) 30 dscalar=(double)PyLong_AsLong(py_float); 31 else if (PyTuple_Check(py_float) && (int)PyTuple_Size(py_float)==1) 32 FetchData(&dscalar,PyTuple_GetItem(py_float,(Py_ssize_t)0)); 33 else if (PyList_Check(py_float) && (int)PyList_Size(py_float)==1) 34 FetchData(&dscalar,PyList_GetItem(py_float,(Py_ssize_t)0)); 35 else 36 _error_("unrecognized float type in input!"); 37 38 #else 39 if (PyFloat_Check(py_float)) 40 dscalar=PyFloat_AsDouble(py_float); 41 else if (PyLong_Check(py_float)) 30 42 dscalar=PyLong_AsDouble(py_float); 31 #endif32 }33 43 else if (PyInt_Check(py_float)) 34 44 dscalar=(double)PyInt_AsLong(py_float); … … 41 51 else 42 52 _error_("unrecognized float type in input!"); 43 53 #endif 44 54 /*output: */ 45 55 *pscalar=dscalar; … … 52 62 53 63 /*return internal value: */ 64 #if _PYTHON_MAJOR_ == 3 54 65 if (PyFloat_Check(py_float)) 55 66 fscalar=PyFloat_AsDouble(py_float); 56 else if (PyLong_Check(py_float)){ 57 #if _PYTHON_MAJOR_ == 3 67 else if (PyLong_Check(py_float)) 58 68 fscalar=(float)PyLong_AsLong(py_float); 59 #else 69 else if (PyBool_Check(py_float)) 70 fscalar=(float)PyLong_AsLong(py_float); 71 else if (PyTuple_Check(py_float) && (int)PyTuple_Size(py_float)==1) 72 FetchData(&fscalar,PyTuple_GetItem(py_float,(Py_ssize_t)0)); 73 else if (PyList_Check(py_float) && (int)PyList_Size(py_float)==1) 74 FetchData(&fscalar,PyList_GetItem(py_float,(Py_ssize_t)0)); 75 else 76 _error_("unrecognized float type in input!"); 77 #else 78 if (PyFloat_Check(py_float)) 79 fscalar=PyFloat_AsDouble(py_float); 80 else if (PyLong_Check(py_float)) 60 81 fscalar=(float)PyLong_AsDouble(py_float); 61 #endif62 }63 82 else if (PyInt_Check(py_float)) 64 83 fscalar=(float)PyInt_AsLong(py_float); 65 84 else if (PyBool_Check(py_float)) 66 85 fscalar=(float)PyLong_AsLong(py_float); 67 86 else if (PyTuple_Check(py_float) && (int)PyTuple_Size(py_float)==1) 68 87 FetchData(&fscalar,PyTuple_GetItem(py_float,(Py_ssize_t)0)); 69 88 else if (PyList_Check(py_float) && (int)PyList_Size(py_float)==1) 70 89 FetchData(&fscalar,PyList_GetItem(py_float,(Py_ssize_t)0)); 71 90 else 72 73 91 _error_("unrecognized float type in input!"); 92 #endif 74 93 /*output: */ 75 94 *pscalar=fscalar; … … 82 101 83 102 /*return internal value: */ 84 if (PyLong_Check(py_long)) 103 #if _PYTHON_MAJOR_ == 3 104 if (PyLong_Check(py_long)) 105 iscalar=(int)PyLong_AsLong(py_long); 106 else if (PyFloat_Check(py_long)) 107 iscalar=(int)PyFloat_AsDouble(py_long); 108 else if (PyBool_Check(py_long)) 109 iscalar=(int)PyLong_AsLong(py_long); 110 else if (PyTuple_Check(py_long) && (int)PyTuple_Size(py_long)==1) 111 FetchData(&iscalar,PyTuple_GetItem(py_long,(Py_ssize_t)0)); 112 else if (PyList_Check(py_long) && (int)PyList_Size(py_long)==1) 113 FetchData(&iscalar,PyList_GetItem(py_long,(Py_ssize_t)0)); 114 else 115 _error_("unrecognized long type in input!"); 116 117 #else 118 if (PyLong_Check(py_long)) 85 119 iscalar=(int)PyLong_AsLong(py_long); 86 120 else if (PyInt_Check(py_long)) … … 96 130 else 97 131 _error_("unrecognized long type in input!"); 98 132 #endif 99 133 /*output: */ 100 134 *pscalar=iscalar; … … 107 141 108 142 /*return internal value: */ 143 #if _PYTHON_MAJOR_ == 3 144 if (PyBool_Check(py_boolean)) 145 bscalar=(bool)PyLong_AsLong(py_boolean); 146 else if (PyLong_Check(py_boolean)) 147 bscalar=(bool)PyLong_AsLong(py_boolean); 148 else if (PyLong_Check(py_boolean)) 149 bscalar=(bool)PyLong_AsLong(py_boolean); 150 else if (PyTuple_Check(py_boolean) && (int)PyTuple_Size(py_boolean)==1) 151 FetchData(&bscalar,PyTuple_GetItem(py_boolean,(Py_ssize_t)0)); 152 else if (PyList_Check(py_boolean) && (int)PyList_Size(py_boolean)==1) 153 FetchData(&bscalar,PyList_GetItem(py_boolean,(Py_ssize_t)0)); 154 else 155 _error_("unrecognized boolean type in input!"); 156 157 #else 109 158 if (PyBool_Check(py_boolean)) 110 159 bscalar=(bool)PyLong_AsLong(py_boolean); … … 121 170 else 122 171 _error_("unrecognized boolean type in input!"); 123 172 #endif 124 173 /*output: */ 125 174 *pscalar=bscalar; … … 189 238 // } 190 239 // } 191 240 192 241 } 193 242 … … 429 478 if (ndim==1) { 430 479 dims=PyArray_DIMS((PyArrayObject*)py_vector); 431 M=dims[0]; 480 M=dims[0]; 432 481 } 433 482 else if (ndim==2) { 434 483 dims=PyArray_DIMS((PyArrayObject*)py_vector); 435 484 if (dims[1]==1) 436 M=dims[0]; 485 M=dims[0]; 437 486 else 438 487 _error_("expecting an Mx1 matrix or M vector in input!"); … … 518 567 if (ndim==1) { 519 568 dims=PyArray_DIMS((PyArrayObject*)py_vector); 520 M=dims[0]; 569 M=dims[0]; 521 570 } 522 571 else if (ndim==2) { 523 572 dims=PyArray_DIMS((PyArrayObject*)py_vector); 524 573 if (dims[1]==1) 525 M=dims[0]; 574 M=dims[0]; 526 575 else 527 576 _error_("expecting an Mx1 matrix or M vector in input!"); … … 603 652 if (ndim==1) { 604 653 dims=PyArray_DIMS((PyArrayObject*)py_vector); 605 M=dims[0]; 654 M=dims[0]; 606 655 } 607 656 else if (ndim==2) { 608 657 dims=PyArray_DIMS((PyArrayObject*)py_vector); 609 658 if (dims[1]==1) 610 M=dims[0]; 659 M=dims[0]; 611 660 else 612 661 _error_("expecting an Mx1 matrix or M vector in input!"); … … 690 739 if (ndim==1) { 691 740 dims=PyArray_DIMS((PyArrayObject*)py_vector); 692 M=dims[0]; 741 M=dims[0]; 693 742 } 694 743 else if (ndim==2) { 695 744 dims=PyArray_DIMS((PyArrayObject*)py_vector); 696 745 if (dims[1]==1) 697 M=dims[0]; 746 M=dims[0]; 698 747 else 699 748 _error_("expecting an Mx1 matrix or M vector in input!"); … … 941 990 int* mwadjacency = xNewZeroInit<int>(nzmax); 942 991 pyGetIr(a,nvtxs,nzmax,mwadjacency); 943 992 944 993 int* start = xNew<int>(nvtxs+1); 945 994 for(int i=0;i<nvtxs+1;i++) start[i]=(int)mwstart[i]; … … 1012 1061 1013 1062 /*Python version dependent: */ 1014 #if _PYTHON_MAJOR_ >= 3 1015 /*FUNCTION FetchData(char** pstring,PyObject* py_unicode){{{*/ 1016 void FetchData(char** pstring,PyObject* py_unicode){ 1017 1018 PyObject* py_bytes; 1063 /* #if _PYTHON_MAJOR_ >= 3 */ 1064 /* /\*FUNCTION FetchData(char** pstring,PyObject* py_unicode){{{*\/ */ 1065 /* void FetchData(char** pstring,PyObject* py_unicode){ */ 1066 1067 /* PyObject* py_bytes; */ 1068 /* char* string=NULL; */ 1069 1070 /* /\*convert to bytes format: *\/ */ 1071 /* PyUnicode_FSConverter(py_unicode,&py_bytes); */ 1072 1073 /* /\*convert from bytes to string: *\/ */ 1074 /* string=PyBytes_AsUTF8(py_bytes); */ 1075 1076 /* /\*copy string (note strlen does not include trailing NULL): *\/ */ 1077 /* *pstring=xNew<char>(strlen(string)+1); */ 1078 /* memcpy(*pstring,string,(strlen(string)+1)*sizeof(char)); */ 1079 /* } */ 1080 /* /\*}}}*\/ */ 1081 /* #else */ 1082 /*FUNCTION FetchData(char** pstring,PyObject* py_string){{{*/ 1083 void FetchData(char** pstring,PyObject* py_string){ 1084 1019 1085 char* string=NULL; 1020 1086 1021 /* convert to bytes format: */1022 PyUnicode_FSConverter(py_unicode,&py_bytes);1023 1024 /*convert from bytes to string: */1025 string=Py Bytes_AS_STRING(py_bytes);1026 1087 /*extract internal string: */ 1088 #if _PYTHON_MAJOR_ == 3 1089 string=PyUnicode_AsUTF8(py_string); 1090 #else 1091 string=PyString_AsString(py_string); 1092 #endif 1027 1093 /*copy string (note strlen does not include trailing NULL): */ 1028 1094 *pstring=xNew<char>(strlen(string)+1); … … 1030 1096 } 1031 1097 /*}}}*/ 1032 #else 1033 /*FUNCTION FetchData(char** pstring,PyObject* py_string){{{*/ 1034 void FetchData(char** pstring,PyObject* py_string){ 1035 1036 char* string=NULL; 1037 1038 /*extract internal string: */ 1039 string=PyString_AsString(py_string); 1040 1041 /*copy string (note strlen does not include trailing NULL): */ 1042 *pstring=xNew<char>(strlen(string)+1); 1043 memcpy(*pstring,string,(strlen(string)+1)*sizeof(char)); 1044 } 1045 /*}}}*/ 1046 #endif 1098 //#endif -
issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp
r22674 r23708 233 233 #if _PYTHON_MAJOR_ >= 3 234 234 PyDict_SetItemString(dict,"numsegs" ,PyLong_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i])); 235 PyDict_SetItemString(dict,"fill" ,PyUnicode_FromString("Ice")); 236 PyDict_SetItemString(dict,"friction" ,PyLong_FromSsize_t((Py_ssize_t)0)); 235 237 #else 236 238 PyDict_SetItemString(dict,"numsegs" ,PyInt_FromSsize_t((Py_ssize_t)riftstruct->riftsnumsegments[i])); 239 PyDict_SetItemString(dict,"fill" ,PyString_FromString("Ice")); 240 PyDict_SetItemString(dict,"friction" ,PyInt_FromSsize_t((Py_ssize_t)0)); 237 241 #endif 238 242 … … 241 245 PyDict_SetItemString(dict,"tips" ,PyArrayFromCopiedData(1 ,2,&riftstruct->riftstips[2*i])); 242 246 PyDict_SetItemString(dict,"penaltypairs" ,PyArrayFromCopiedData(riftstruct->riftsnumpenaltypairs[i],7,riftstruct->riftspenaltypairs[i])); 243 #if _PYTHON_MAJOR_ >= 3244 PyDict_SetItemString(dict,"fill" ,PyString_FromString("Ice"));245 PyDict_SetItemString(dict,"friction" ,PyLong_FromSsize_t((Py_ssize_t)0));246 #else247 PyDict_SetItemString(dict,"fill" ,PyString_FromString("Ice"));248 PyDict_SetItemString(dict,"friction" ,PyInt_FromSsize_t((Py_ssize_t)0));249 #endif250 247 PyDict_SetItemString(dict,"fraction" ,PyFloat_FromDouble(0.)); 251 248 PyDict_SetItemString(dict,"fractionincrement",PyFloat_FromDouble(0.1));
Note:
See TracChangeset
for help on using the changeset viewer.