ECC-283: Add functions to Python interface

This commit is contained in:
Shahram Najm 2016-06-29 16:40:28 +01:00
parent aa9a5f868c
commit 366bd1ff3d
10 changed files with 161 additions and 2 deletions

View File

@ -3,5 +3,5 @@
. ./include.sh
REDIRECT=/dev/null
$PYTHON $examples_src/samples.py 2> $REDIRECT > $REDIRECT
rm -f out.samples.grib || true
$PYTHON $examples_src/samples.py
rm -f out.samples.grib

View File

@ -92,5 +92,7 @@ from gribapi import grib_gts_header as codes_gts_header
from gribapi import grib_get_api_version as codes_get_api_version
from gribapi import grib_get_message as codes_get_message
from gribapi import grib_new_from_message as codes_new_from_message
from gribapi import grib_set_definitions_path as codes_set_definitions_path
from gribapi import grib_set_samples_path as codes_set_samples_path
from gribapi import GribInternalError as CodesInternalError

View File

@ -2114,3 +2114,15 @@ int grib_c_get_message(int *gid, const void **msg, size_t *size)
grib_handle *h = get_handle(*gid);
return grib_get_message(h,msg,size);
}
void grib_c_set_definitions_path(const char* path)
{
grib_context *c = grib_context_get_default();
grib_context_set_definitions_path(c, path);
}
void grib_c_set_samples_path(const char* path)
{
grib_context *c = grib_context_get_default();
grib_context_set_samples_path(c, path);
}

View File

@ -108,5 +108,7 @@ void grib_c_gts_header_on(void);
void grib_c_gts_header_off(void);
int grib_c_get_message(int *gid, const void **msg, size_t *size);
int grib_c_get_string_length(int* gid, char* key, size_t* val);
void grib_c_set_definitions_path(const char* path);
void grib_c_set_samples_path(const char* path);
#endif

View File

@ -1868,3 +1868,24 @@ def grib_new_from_message(message):
error, gribid = _internal.grib_c_new_from_message(0, message, len(message))
GRIB_CHECK(error)
return gribid
@require(defs_path=str)
def grib_set_definitions_path(defs_path):
"""
@brief Set the definitions path
@param defs_path definitions path
"""
_internal.grib_c_set_definitions_path(defs_path)
@require(samples_path=str)
def grib_set_samples_path(samples_path):
"""
@brief Set the samples path
@param samples_path samples path
"""
_internal.grib_c_set_samples_path(samples_path)

View File

@ -212,3 +212,5 @@ void no_fail_on_wrong_length(int flag);
long grib_c_get_api_version();
void grib_c_gts_header_on();
void grib_c_gts_header_off();
void grib_c_set_definitions_path(const char* path);
void grib_c_set_samples_path(const char* path);

View File

@ -7807,6 +7807,54 @@ fail:
}
SWIGINTERN PyObject *_wrap_grib_c_set_definitions_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
int res1 ;
char *buf1 = 0 ;
int alloc1 = 0 ;
PyObject * obj0 = 0 ;
if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_definitions_path",&obj0)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_definitions_path" "', argument " "1"" of type '" "char const *""'");
}
arg1 = (char *)(buf1);
grib_c_set_definitions_path((char const *)arg1);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return resultobj;
fail:
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return NULL;
}
SWIGINTERN PyObject *_wrap_grib_c_set_samples_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
int res1 ;
char *buf1 = 0 ;
int alloc1 = 0 ;
PyObject * obj0 = 0 ;
if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_samples_path",&obj0)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_samples_path" "', argument " "1"" of type '" "char const *""'");
}
arg1 = (char *)(buf1);
grib_c_set_samples_path((char const *)arg1);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return resultobj;
fail:
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return NULL;
}
static PyMethodDef SwigMethods[] = {
{ (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL},
{ (char *)"cdata", _wrap_cdata, METH_VARARGS, NULL},
@ -7932,6 +7980,8 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"grib_c_get_api_version", _wrap_grib_c_get_api_version, METH_VARARGS, NULL},
{ (char *)"grib_c_gts_header_on", _wrap_grib_c_gts_header_on, METH_VARARGS, NULL},
{ (char *)"grib_c_gts_header_off", _wrap_grib_c_gts_header_off, METH_VARARGS, NULL},
{ (char *)"grib_c_set_definitions_path", _wrap_grib_c_set_definitions_path, METH_VARARGS, NULL},
{ (char *)"grib_c_set_samples_path", _wrap_grib_c_set_samples_path, METH_VARARGS, NULL},
{ NULL, NULL, 0, NULL }
};
@ -8662,6 +8712,7 @@ SWIG_init(void) {
SWIG_Python_SetConstant(d, "GRIB_TOO_MANY_ATTRIBUTES",SWIG_From_int((int)(-62)));
SWIG_Python_SetConstant(d, "GRIB_ATTRIBUTE_NOT_FOUND",SWIG_From_int((int)(-63)));
SWIG_Python_SetConstant(d, "GRIB_UNSUPPORTED_EDITION",SWIG_From_int((int)(-64)));
SWIG_Python_SetConstant(d, "GRIB_OUT_OF_RANGE",SWIG_From_int((int)(-65)));
#if PY_VERSION_HEX >= 0x03000000
return m;
#else

View File

@ -139,6 +139,7 @@ GRIB_ATTRIBUTE_CLASH = _gribapi_swig.GRIB_ATTRIBUTE_CLASH
GRIB_TOO_MANY_ATTRIBUTES = _gribapi_swig.GRIB_TOO_MANY_ATTRIBUTES
GRIB_ATTRIBUTE_NOT_FOUND = _gribapi_swig.GRIB_ATTRIBUTE_NOT_FOUND
GRIB_UNSUPPORTED_EDITION = _gribapi_swig.GRIB_UNSUPPORTED_EDITION
GRIB_OUT_OF_RANGE = _gribapi_swig.GRIB_OUT_OF_RANGE
class intp(_object):
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, intp, name, value)
@ -608,4 +609,12 @@ def grib_c_gts_header_off():
return _gribapi_swig.grib_c_gts_header_off()
grib_c_gts_header_off = _gribapi_swig.grib_c_gts_header_off
def grib_c_set_definitions_path(*args):
return _gribapi_swig.grib_c_set_definitions_path(*args)
grib_c_set_definitions_path = _gribapi_swig.grib_c_set_definitions_path
def grib_c_set_samples_path(*args):
return _gribapi_swig.grib_c_set_samples_path(*args)
grib_c_set_samples_path = _gribapi_swig.grib_c_set_samples_path

View File

@ -8631,6 +8631,54 @@ fail:
}
SWIGINTERN PyObject *_wrap_grib_c_set_definitions_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
int res1 ;
char *buf1 = 0 ;
int alloc1 = 0 ;
PyObject * obj0 = 0 ;
if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_definitions_path",&obj0)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_definitions_path" "', argument " "1"" of type '" "char const *""'");
}
arg1 = (char *)(buf1);
grib_c_set_definitions_path((char const *)arg1);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return resultobj;
fail:
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return NULL;
}
SWIGINTERN PyObject *_wrap_grib_c_set_samples_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
PyObject *resultobj = 0;
char *arg1 = (char *) 0 ;
int res1 ;
char *buf1 = 0 ;
int alloc1 = 0 ;
PyObject * obj0 = 0 ;
if (!PyArg_ParseTuple(args,(char *)"O:grib_c_set_samples_path",&obj0)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
if (!SWIG_IsOK(res1)) {
SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "grib_c_set_samples_path" "', argument " "1"" of type '" "char const *""'");
}
arg1 = (char *)(buf1);
grib_c_set_samples_path((char const *)arg1);
resultobj = SWIG_Py_Void();
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return resultobj;
fail:
if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
return NULL;
}
static PyMethodDef SwigMethods[] = {
{ (char *)"SWIG_PyInstanceMethod_New", (PyCFunction)SWIG_PyInstanceMethod_New, METH_O, NULL},
{ (char *)"cdata", _wrap_cdata, METH_VARARGS, NULL},
@ -8762,6 +8810,8 @@ static PyMethodDef SwigMethods[] = {
{ (char *)"grib_c_get_api_version", _wrap_grib_c_get_api_version, METH_VARARGS, NULL},
{ (char *)"grib_c_gts_header_on", _wrap_grib_c_gts_header_on, METH_VARARGS, NULL},
{ (char *)"grib_c_gts_header_off", _wrap_grib_c_gts_header_off, METH_VARARGS, NULL},
{ (char *)"grib_c_set_definitions_path", _wrap_grib_c_set_definitions_path, METH_VARARGS, NULL},
{ (char *)"grib_c_set_samples_path", _wrap_grib_c_set_samples_path, METH_VARARGS, NULL},
{ NULL, NULL, 0, NULL }
};
@ -9492,6 +9542,7 @@ SWIG_init(void) {
SWIG_Python_SetConstant(d, "GRIB_TOO_MANY_ATTRIBUTES",SWIG_From_int((int)(-62)));
SWIG_Python_SetConstant(d, "GRIB_ATTRIBUTE_NOT_FOUND",SWIG_From_int((int)(-63)));
SWIG_Python_SetConstant(d, "GRIB_UNSUPPORTED_EDITION",SWIG_From_int((int)(-64)));
SWIG_Python_SetConstant(d, "GRIB_OUT_OF_RANGE",SWIG_From_int((int)(-65)));
import_array();

View File

@ -139,6 +139,7 @@ GRIB_ATTRIBUTE_CLASH = _gribapi_swig.GRIB_ATTRIBUTE_CLASH
GRIB_TOO_MANY_ATTRIBUTES = _gribapi_swig.GRIB_TOO_MANY_ATTRIBUTES
GRIB_ATTRIBUTE_NOT_FOUND = _gribapi_swig.GRIB_ATTRIBUTE_NOT_FOUND
GRIB_UNSUPPORTED_EDITION = _gribapi_swig.GRIB_UNSUPPORTED_EDITION
GRIB_OUT_OF_RANGE = _gribapi_swig.GRIB_OUT_OF_RANGE
class intp(_object):
__swig_setmethods__ = {}
__setattr__ = lambda self, name, value: _swig_setattr(self, intp, name, value)
@ -632,4 +633,12 @@ def grib_c_gts_header_off():
return _gribapi_swig.grib_c_gts_header_off()
grib_c_gts_header_off = _gribapi_swig.grib_c_gts_header_off
def grib_c_set_definitions_path(*args):
return _gribapi_swig.grib_c_set_definitions_path(*args)
grib_c_set_definitions_path = _gribapi_swig.grib_c_set_definitions_path
def grib_c_set_samples_path(*args):
return _gribapi_swig.grib_c_set_samples_path(*args)
grib_c_set_samples_path = _gribapi_swig.grib_c_set_samples_path