• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ PyUnicode_AsASCIIString函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: PyUnicode_AsASCIIString

char *PythonScriptInterface::copyPythonString(PyObject *string) {
	if(string) {
		PyObject *bstr = PyUnicode_AsASCIIString(string);
		if(bstr && PyBytes_Check(bstr)) {
			return strdup(PyBytes_AsString(bstr));
		}
	}
	return NULL;
}
开发者ID:chc,项目名称:gameserver_v8,代码行数:9,代码来源:PythonInterface.cpp


示例17: UnicodeResultProcessor_init

static int
UnicodeResultProcessor_init(UnicodeResultProcessor *self, PyObject *args,
                            PyObject *kwds)
{
    PyObject *encoding, *errors = NULL;
    static char *kwlist[] = {"encoding", "errors", NULL};

#if PY_MAJOR_VERSION >= 3
    if (!PyArg_ParseTupleAndKeywords(args, kwds, "U|U:__init__", kwlist,
                                     &encoding, &errors))
        return -1;
#else
    if (!PyArg_ParseTupleAndKeywords(args, kwds, "S|S:__init__", kwlist,
                                     &encoding, &errors))
        return -1;
#endif

#if PY_MAJOR_VERSION >= 3
    encoding = PyUnicode_AsASCIIString(encoding);
#else
    Py_INCREF(encoding);
#endif
    self->encoding = encoding;

    if (errors) {
#if PY_MAJOR_VERSION >= 3
        errors = PyUnicode_AsASCIIString(errors);
#else
        Py_INCREF(errors);
#endif
    } else {
#if PY_MAJOR_VERSION >= 3
        errors = PyBytes_FromString("strict");
#else
        errors = PyString_FromString("strict");
#endif
        if (errors == NULL)
            return -1;
    }
    self->errors = errors;

    return 0;
}
开发者ID:cpcloud,项目名称:sqlalchemy,代码行数:43,代码来源:processors.c


示例18: PyArray_ClipmodeConverter

/*NUMPY_API
 * Convert an object to NPY_RAISE / NPY_CLIP / NPY_WRAP
 */
NPY_NO_EXPORT int
PyArray_ClipmodeConverter(PyObject *object, NPY_CLIPMODE *val)
{
    if (object == NULL || object == Py_None) {
        *val = NPY_RAISE;
    }
    else if (PyBytes_Check(object)) {
        char *str;
        str = PyBytes_AS_STRING(object);
        if (str[0] == 'C' || str[0] == 'c') {
            *val = NPY_CLIP;
        }
        else if (str[0] == 'W' || str[0] == 'w') {
            *val = NPY_WRAP;
        }
        else if (str[0] == 'R' || str[0] == 'r') {
            *val = NPY_RAISE;
        }
        else {
            PyErr_SetString(PyExc_TypeError,
                            "clipmode not understood");
            return NPY_FAIL;
        }
    }
    else if (PyUnicode_Check(object)) {
        PyObject *tmp;
        int ret;
        tmp = PyUnicode_AsASCIIString(object);
        if (tmp == NULL) {
            return NPY_FAIL;
        }
        ret = PyArray_ClipmodeConverter(tmp, val);
        Py_DECREF(tmp);
        return ret;
    }
    else {
        int number = PyArray_PyIntAsInt(object);
        if (error_converting(number)) {
            goto fail;
        }
        if (number <= (int) NPY_RAISE
                && number >= (int) NPY_CLIP) {
            *val = (NPY_CLIPMODE) number;
        }
        else {
            goto fail;
        }
    }
    return NPY_SUCCEED;

 fail:
    PyErr_SetString(PyExc_TypeError,
                    "clipmode not understood");
    return NPY_FAIL;
}
开发者ID:alphaitis,项目名称:numpy,代码行数:58,代码来源:conversion_utils.c


示例19: PyObject_AsASCIIString

/*
 * utility function for working with objects expected to be ASCII characters.
 */
PyObj
PyObject_AsASCIIString(PyObj stringable_ob)
{
	PyObj uni, rob;
	uni = PyObject_Str(stringable_ob);
	if (uni == NULL)
		return(NULL);
	rob = PyUnicode_AsASCIIString(uni);
	Py_DECREF(uni);
	return(rob);
}
开发者ID:fdr,项目名称:pg-python,代码行数:14,代码来源:python.c


示例20: set_string

int
set_string(
    const char* propname,
    PyObject* value,
    char* dest,
    Py_ssize_t maxlen) {

  char*      buffer;
  Py_ssize_t len;
  PyObject*  ascii_obj = NULL;
  int        result = -1;

  if (check_delete(propname, value)) {
    return -1;
  }

  if (PyUnicode_Check(value)) {
    ascii_obj = PyUnicode_AsASCIIString(value);
    if (ascii_obj == NULL) {
      goto end;
    }
    if (PyBytes_AsStringAndSize(ascii_obj, &buffer, &len) == -1) {
      goto end;
    }
  } else if (PyBytes_Check(value)) {
    if (PyBytes_AsStringAndSize(value, &buffer, &len) == -1) {
      goto end;
    }
  } else {
    PyErr_SetString(PyExc_TypeError, "value must be bytes or unicode");
    goto end;
  }

  if (len > maxlen) {
    PyErr_Format(
        PyExc_ValueError,
        "'%s' must be less than %u characters",
        propname,
        (unsigned int)maxlen);
    goto end;
  }

  strncpy(dest, buffer, (size_t)maxlen);

  result = 0;

 end:
  Py_XDECREF(ascii_obj);

  return result;
}
开发者ID:rajul,项目名称:astropy,代码行数:51,代码来源:pyutil.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ PyUnicode_AsEncodedString函数代码示例发布时间:2022-05-30
下一篇:
C++ PyUnicode_AS_UNICODE函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap