当前位置: 首页>>代码示例>>C++>>正文


C++ PyUnicode_AsASCIIString函数代码示例

本文整理汇总了C++中PyUnicode_AsASCIIString函数的典型用法代码示例。如果您正苦于以下问题:C++ PyUnicode_AsASCIIString函数的具体用法?C++ PyUnicode_AsASCIIString怎么用?C++ PyUnicode_AsASCIIString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了PyUnicode_AsASCIIString函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Rlite_init

static int Rlite_init(hirlite_RliteObject *self, PyObject *args, PyObject *kwds) {
    static char *kwlist[] = { "path", "encoding", NULL };
    PyObject *encodingObj = NULL;
    char *path = ":memory:";

    if (!PyArg_ParseTupleAndKeywords(args, kwds, "|sO", kwlist, &path, &encodingObj))
            return -1;

    if (encodingObj) {
        PyObject *encbytes;
        char *encstr;
        Py_ssize_t enclen;

        if (PyUnicode_Check(encodingObj))
            encbytes = PyUnicode_AsASCIIString(encodingObj);
        else
            encbytes = PyObject_Bytes(encodingObj);

        if (encbytes == NULL)
            return -1;

        enclen = PyBytes_Size(encbytes);
        encstr = PyBytes_AsString(encbytes);
        self->encoding = (char*)malloc(enclen+1);
        memcpy(self->encoding, encstr, enclen);
        self->encoding[enclen] = '\0';
        Py_DECREF(encbytes);
    }

    self->context = rliteConnect(path, 0);

    return 0;
}
开发者ID:miedzinski,项目名称:rlite-py,代码行数:33,代码来源:rlite.c

示例2: PyArray_CastingConverter

/*NUMPY_API
 * Convert any Python object, *obj*, to an NPY_CASTING enum.
 */
NPY_NO_EXPORT int
PyArray_CastingConverter(PyObject *obj, NPY_CASTING *casting)
{
    char *str = NULL;
    Py_ssize_t length = 0;

    if (PyUnicode_Check(obj)) {
        PyObject *str_obj;
        int ret;
        str_obj = PyUnicode_AsASCIIString(obj);
        if (str_obj == NULL) {
            return 0;
        }
        ret = PyArray_CastingConverter(str_obj, casting);
        Py_DECREF(str_obj);
        return ret;
    }

    if (PyBytes_AsStringAndSize(obj, &str, &length) == -1) {
        return 0;
    }

    if (length >= 2) switch (str[2]) {
        case 0:
            if (strcmp(str, "no") == 0) {
                *casting = NPY_NO_CASTING;
                return 1;
            }
            break;
        case 'u':
            if (strcmp(str, "equiv") == 0) {
                *casting = NPY_EQUIV_CASTING;
                return 1;
            }
            break;
        case 'f':
            if (strcmp(str, "safe") == 0) {
                *casting = NPY_SAFE_CASTING;
                return 1;
            }
            break;
        case 'm':
            if (strcmp(str, "same_kind") == 0) {
                *casting = NPY_SAME_KIND_CASTING;
                return 1;
            }
            break;
        case 's':
            if (strcmp(str, "unsafe") == 0) {
                *casting = NPY_UNSAFE_CASTING;
                return 1;
            }
            break;
    }

    PyErr_SetString(PyExc_ValueError,
            "casting must be one of 'no', 'equiv', 'safe', "
            "'same_kind', or 'unsafe'");
    return 0;
}
开发者ID:alphaitis,项目名称:numpy,代码行数:63,代码来源:conversion_utils.c

示例3: PyImport_AddModule

bool ChPythonEngine::GetString(const char* variable, std::string& return_val)
{
	PyObject * module = PyImport_AddModule("__main__"); // borrowed reference
	assert(module);                                     // __main__ should always exist

	PyObject * dictionary = PyModule_GetDict(module);   // borrowed reference
	assert(dictionary);                                 // __main__ should have a dictionary

	PyObject * result = PyDict_GetItemString(dictionary, variable);   // borrowed reference
	if (!result) 
		return false;

	if (PyBytes_Check(result))
	{
		char* ret_string = PyBytes_AsString(result);
		return_val = ret_string;
		return true;
	}
	if (PyUnicode_Check(result))
	{
		PyObject* mascii = PyUnicode_AsASCIIString(result);

		char* ret_string = PyBytes_AsString(mascii);
		return_val = ret_string;
		
		Py_DECREF(mascii);
		return true;
	}

	return false;
}
开发者ID:DavidHammen,项目名称:chrono,代码行数:31,代码来源:ChPython.cpp

示例4: PyArray_SearchsideConverter

/*NUMPY_API
 * Convert object to searchsorted side
 */
NPY_NO_EXPORT int
PyArray_SearchsideConverter(PyObject *obj, void *addr)
{
    NPY_SEARCHSIDE *side = (NPY_SEARCHSIDE *)addr;
    char *str;
    PyObject *tmp = NULL;

    if (PyUnicode_Check(obj)) {
        obj = tmp = PyUnicode_AsASCIIString(obj);
    }

    str = PyBytes_AsString(obj);
    if (!str || strlen(str) < 1) {
        PyErr_SetString(PyExc_ValueError,
                        "expected nonempty string for keyword 'side'");
        Py_XDECREF(tmp);
        return PY_FAIL;
    }

    if (str[0] == 'l' || str[0] == 'L') {
        *side = NPY_SEARCHLEFT;
    }
    else if (str[0] == 'r' || str[0] == 'R') {
        *side = NPY_SEARCHRIGHT;
    }
    else {
        PyErr_Format(PyExc_ValueError,
                     "'%s' is an invalid value for keyword 'side'", str);
        Py_XDECREF(tmp);
        return PY_FAIL;
    }
    Py_XDECREF(tmp);
    return PY_SUCCEED;
}
开发者ID:jpeel,项目名称:numpy,代码行数:37,代码来源:conversion_utils.c

示例5: PyUnicode_CopyPreferredEncoding

int
PyUnicode_CopyPreferredEncoding(char *buffer, Py_ssize_t buffer_size)
{
	PyObject *u = NULL;
	PyObject *b = NULL;
	Py_ssize_t len;

#if (PY_MAJOR_VERSION >= 3)
	u = PyUnicode_GetPreferredEncoding();
	if (u == NULL)
		goto error;
	b = PyUnicode_AsASCIIString(u);
#else
	b = PyUnicode_GetPreferredEncoding();
#endif
	if (b == NULL)
		goto error;

	len = PyBytes_GET_SIZE(b);
	if (len >= buffer_size)
		len = buffer_size - 1;

	strncpy(buffer, PyBytes_AS_STRING(b), len);
	buffer[len] = '\0';

	Py_XDECREF(u);
	Py_DECREF(b);
	return 1;
  error:
	Py_XDECREF(u);
	Py_XDECREF(b);
	return 0;
}
开发者ID:stefanholek,项目名称:rl,代码行数:33,代码来源:unicode.c

示例6: convert_offset_position

int convert_offset_position(PyObject *obj, void *offsetp)
{
    e_offset_position *offset = (e_offset_position *)offsetp;
    PyObject *offsetstrobj;
    char *offsetstr;

    *offset = OFFSET_POSITION_FIGURE;

    if (obj == NULL || obj == Py_None) {
        return 1;
    }

    offsetstrobj = PyUnicode_AsASCIIString(obj);
    if (offsetstrobj == NULL) {
        return 0;
    }

    offsetstr = PyBytes_AsString(offsetstrobj);
    if (offsetstr == NULL) {
        Py_DECREF(offsetstrobj);
        return 0;
    }

    if (strncmp(offsetstr, "data", 5) == 0) {
        *offset = OFFSET_POSITION_DATA;
    }

    Py_DECREF(offsetstrobj);

    return 1;
}
开发者ID:earlhansen,项目名称:matplotlib,代码行数:31,代码来源:py_converters.cpp

示例7: PyArray_SelectkindConverter

/*NUMPY_API
 * Convert object to select kind
 */
NPY_NO_EXPORT int
PyArray_SelectkindConverter(PyObject *obj, NPY_SELECTKIND *selectkind)
{
    char *str;
    PyObject *tmp = NULL;

    if (PyUnicode_Check(obj)) {
        obj = tmp = PyUnicode_AsASCIIString(obj);
    }

    *selectkind = NPY_INTROSELECT;
    str = PyBytes_AsString(obj);
    if (!str) {
        Py_XDECREF(tmp);
        return NPY_FAIL;
    }
    if (strlen(str) < 1) {
        PyErr_SetString(PyExc_ValueError,
                        "Select kind string must be at least length 1");
        Py_XDECREF(tmp);
        return NPY_FAIL;
    }
    if (strcmp(str, "introselect") == 0) {
        *selectkind = NPY_INTROSELECT;
    }
    else {
        PyErr_Format(PyExc_ValueError,
                     "%s is an unrecognized kind of select",
                     str);
        Py_XDECREF(tmp);
        return NPY_FAIL;
    }
    Py_XDECREF(tmp);
    return NPY_SUCCEED;
}
开发者ID:adalke,项目名称:numpy,代码行数:38,代码来源:conversion_utils.c

示例8: py_new_msg

void py_new_msg (struct tgl_message *M) {
    if (!python_loaded) {
        return;
    }
    PyObject *msg;
    PyObject *arglist, *result;

    if(_py_new_msg == NULL) {
        logprintf("Callback not set for on_new_msg");
        return;
    }

    msg = get_message (M);

    arglist = Py_BuildValue("(O)", msg);
    result = PyEval_CallObject(_py_new_msg, arglist);
    Py_DECREF(arglist);

    if(result == NULL)
        PyErr_Print();
    else if(PyUnicode_Check(result))
        logprintf ("python: %s\n", PyBytes_AsString(PyUnicode_AsASCIIString(result)));

    Py_XDECREF(result);
}
开发者ID:GeekMeUpScotty,项目名称:tg,代码行数:25,代码来源:python-tg.c

示例9: convert

 static PyObject* convert( PyObject *py_result, std::string &result )
 {
     PyObject *ascii_string = PyUnicode_AsASCIIString( py_result );
     result = PyBytes_AsString( ascii_string );
     Py_XDECREF( ascii_string );
     return py_result;
 }
开发者ID:BRAT-DEV,项目名称:main,代码行数:7,代码来源:PythonEngine.hpp

示例10: cms_profile_getattro

static PyObject*  
cms_profile_getattro(CmsProfileObject* self, PyObject* name)
{
    PyObject* name_bytes;
    char* name_string;

    if (!PyUnicode_Check(name))
        return NULL;
   
    if (!(name_bytes = PyUnicode_AsASCIIString(name)))
        return NULL;

    if (!(name_string = PyBytes_AsString(name_bytes)))
        return NULL;

    if (!strcmp(name_string, "product_name"))
        return PyUnicode_FromFormat("%s", cmsTakeProductName(self->profile));
    if (!strcmp(name_string, "product_desc"))
        return PyUnicode_FromFormat("%s", cmsTakeProductDesc(self->profile));
    if (!strcmp(name_string, "product_info"))
        return PyUnicode_FromFormat("%s", cmsTakeProductInfo(self->profile));
    if (!strcmp(name_string, "rendering_intent"))
        return PyLong_FromLong(cmsTakeRenderingIntent(self->profile));
    if (!strcmp(name_string, "pcs"))
        return PyUnicode_FromFormat("%s", findICmode(cmsGetPCS(self->profile)));
    if (!strcmp(name_string, "color_space"))
        return PyUnicode_FromFormat("%s",
                findICmode(cmsGetColorSpace(self->profile)));
    /* FIXME: add more properties (creation_datetime etc) */

    return PyObject_GenericGetAttr((PyObject*)self, name);
}
开发者ID:olduvaihand,项目名称:pil3k,代码行数:32,代码来源:_imagingcms.c

示例11: py_chat_update

void py_chat_update (struct tgl_chat *C, unsigned flags) {
    if (!python_loaded) {
        return;
    }

    PyObject *peer, *types;
    PyObject *arglist, *result;

    if(_py_chat_update == NULL) {
        logprintf("Callback not set for on_chat_update");
        return;
    }

    peer = get_peer (C->id, (void *)C);
    types = get_update_types (flags);

    arglist = Py_BuildValue("(OO)", peer, types);
    result = PyEval_CallObject(_py_chat_update, arglist);
    Py_DECREF(arglist);

    if(result == NULL)
        PyErr_Print();
    else if(PyUnicode_Check(result))
        logprintf ("python: %s\n", PyBytes_AsString(PyUnicode_AsASCIIString(result)));

    Py_XDECREF(result);
}
开发者ID:GeekMeUpScotty,项目名称:tg,代码行数:27,代码来源:python-tg.c

示例12: PyUnicode_AsASCIIString

static char *GetString( PyObject *value ) {
/*
*  Name:
*     GetString

*  Purpose:
*     Get a pointer to a null terminated string from a PyObject.
*     It should be freed by the caller.

* Stolen from pyast

*/
   char *result = NULL;
   if( value  && value != Py_None ) {
#ifdef USE_PY3K
      PyObject *bytes = PyUnicode_AsASCIIString(value);
#else
      PyObject *bytes = value;
#endif
      if( bytes ) {
         size_t nbytes = PyBytes_Size( bytes );
         const char * bytestr =  PyBytes_AS_STRING(bytes);
         result = malloc( (nbytes+1) * sizeof(*result));
         strcpy( result, bytestr );
#ifdef USE_PY3K
         Py_DECREF(bytes);
#endif
      }
   }
   return result;
}
开发者ID:timj,项目名称:starlink-pyndf,代码行数:31,代码来源:ndf.c

示例13: __init__

static int __init__(PyObject *self, PyObject *args, PyObject *kwds)
{
	LIGOTimeGPS *gps = &((pylal_LIGOTimeGPS *) self)->gps;
	PyObject *seconds;
	long long nanoseconds = 0;

	if(!PyArg_ParseTuple(args, "O|L", &seconds, &nanoseconds))
		return -1;

	if(PyUnicode_Check(seconds)) {
		/* convert to ascii string */
		PyObject *str = PyUnicode_AsASCIIString(seconds);
		if(!str)
			return -1;
		seconds = str;
	}
	if(PyString_Check(seconds)) {
		char *end, *str = PyString_AsString(seconds);
		int result = XLALStrToGPS(gps, str, &end);
		if((result < 0) || (end == str)) {
			PyErr_SetObject(PyExc_ValueError, seconds);
			return -1;
		}
	} else if(!pyobject_to_ligotimegps(seconds, gps)) {
		PyErr_SetObject(PyExc_ValueError, seconds);
		return -1;
	}

	XLALINT8NSToGPS(gps, XLALGPSToINT8NS(gps) + nanoseconds);

	return 0;
}
开发者ID:Solaro,项目名称:lalsuite,代码行数:32,代码来源:ligotimegps.c

示例14: string_from_pyobj

static int string_from_pyobj(string *str,int *len,const string inistr,PyObject *obj,const char *errmess) {
  PyArrayObject *arr = NULL;
  PyObject *tmp = NULL;
#ifdef DEBUGCFUNCS
fprintf(stderr,"string_from_pyobj(str='%s',len=%d,inistr='%s',obj=%p)\n",(char*)str,*len,(char *)inistr,obj);
#endif
  if (obj == Py_None) {
    if (*len == -1)
      *len = strlen(inistr); /* Will this cause problems? */
    STRINGMALLOC(*str,*len);
    STRINGCOPYN(*str,inistr,*len+1);
    return 1;
  }
  if (PyArray_Check(obj)) {
    if ((arr = (PyArrayObject *)obj) == NULL)
      goto capi_fail;
    if (!ISCONTIGUOUS(arr)) {
      PyErr_SetString(PyExc_ValueError,"array object is non-contiguous.");
      goto capi_fail;
    }
    if (*len == -1)
      *len = (arr->descr->elsize)*PyArray_SIZE(arr);
    STRINGMALLOC(*str,*len);
    STRINGCOPYN(*str,arr->data,*len+1);
    return 1;
  }
  if (PyString_Check(obj)) {
    tmp = obj;
    Py_INCREF(tmp);
  }
#if PY_VERSION_HEX >= 0x03000000
  else if (PyUnicode_Check(obj)) {
    tmp = PyUnicode_AsASCIIString(obj);
  }
  else {
    PyObject *tmp2;
    tmp2 = PyObject_Str(obj);
    if (tmp2) {
      tmp = PyUnicode_AsASCIIString(tmp2);
      Py_DECREF(tmp2);
    }
    else {
      tmp = NULL;
    }
  }
#else
  else {
开发者ID:wskinner,项目名称:LeapHMM,代码行数:47,代码来源:_lbfgsbmodule.c

示例15: MemoryBinaryStream_Open

  static void MemoryBinaryStream_Open(MemoryBinaryStream *pBinStrm, bp::str s)
  {
    char *pBuf;
    Py_ssize_t Size;

    //PyString_AsStringAndSize(s.ptr(), &pBuf, &Size);
    PyUnicode_AsASCIIString(s.ptr());
    pBinStrm->Open(pBuf, static_cast<u32>(Size));
  }
开发者ID:anat,项目名称:medusa,代码行数:9,代码来源:py_binary_stream.cpp


注:本文中的PyUnicode_AsASCIIString函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。