if (!PyArg_ParseTuple(args, "i:py_checksum_name_Str", &type))
return NULL;
- return PyBytesOrNone_FromString(cr_checksum_name_str(type));
+ return PyUnicodeOrNone_FromString(cr_checksum_name_str(type));
}
PyObject *
if (!PyArg_ParseTuple(args, "i:py_compression_suffix", &type))
return NULL;
- return PyBytesOrNone_FromString(cr_compression_suffix(type));
+ return PyUnicodeOrNone_FromString(cr_compression_suffix(type));
}
PyObject *
mode = "Unknown mode";
}
- return PyBytes_FromFormat("<createrepo_c.CrFile %s object>", mode);
+ return PyUnicode_FromFormat("<createrepo_c.CrFile %s object>", mode);
}
/* CrFile methods */
static PyObject *
contentstat_repr(G_GNUC_UNUSED _ContentStatObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.ContentStat object>");
+ return PyUnicode_FromFormat("<createrepo_c.ContentStat object>");
}
/* getsetters */
char *str = *((char **) ((size_t) rec + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static int
{
if (check_ContentStatStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
static PyObject *
metadata_repr(G_GNUC_UNUSED _MetadataObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.Metadata object>");
+ return PyUnicode_FromFormat("<createrepo_c.Metadata object>");
}
/* Getters */
PyObject *list = PyList_New(0);
for (GList *elem = keys; elem; elem = g_list_next(elem)) {
- PyObject *py_str = PyBytes_FromString(elem->data);
+ PyObject *py_str = PyUnicode_FromString(elem->data);
assert(py_str);
if (PyList_Append(list, py_str) == -1) {
Py_XDECREF(list);
static PyObject *
metadatalocation_repr(G_GNUC_UNUSED _MetadataLocationObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.MetadataLocation object>");
+ return PyUnicode_FromFormat("<createrepo_c.MetadataLocation object>");
}
/* MetadataLocation methods */
getitem(_MetadataLocationObject *self, PyObject *pykey)
{
char *key, *value;
+ PyObject *bytekey;
if (check_MetadataLocationStatus(self))
return NULL;
- if (!PyBytes_Check(pykey)) {
- PyErr_SetString(PyExc_TypeError, "String expected!");
+ if (!PyUnicode_Check(pykey) && !PyBytes_Check(pykey)) {
+ PyErr_SetString(PyExc_TypeError, "Unicode or bytes expected!");
return NULL;
}
- key = PyBytes_AsString(pykey);
+ if (PyUnicode_Check(pykey)) {
+ bytekey = PyUnicode_AsUTF8String(pykey);
+ key = PyBytes_AsString(bytekey);
+ } else {
+ key = PyBytes_AsString(pykey);
+ }
value = NULL;
if (!strcmp(key, "primary")) {
}
if (value)
- return PyBytes_FromString(value);
+ return PyUnicode_FromString(value);
else
Py_RETURN_NONE;
}
cr_Package *pkg = self->package;
PyObject *repr;
if (pkg) {
- repr = PyBytes_FromFormat("<createrepo_c.Package object id %s, %s>",
+ repr = PyUnicode_FromFormat("<createrepo_c.Package object id %s, %s>",
(pkg->pkgId ? pkg->pkgId : "-"),
(pkg->name ? pkg->name : "-"));
} else {
- repr = PyBytes_FromFormat("<createrepo_c.Package object id -, ->");
+ repr = PyUnicode_FromFormat("<createrepo_c.Package object id -, ->");
}
return repr;
}
return NULL;
if (self->package) {
char *nevra = cr_package_nvra(self->package);
- ret = PyBytes_FromString(nevra);
+ ret = PyUnicode_FromString(nevra);
free(nevra);
} else {
- ret = PyBytes_FromString("-");
+ ret = PyUnicode_FromString("-");
}
return ret;
}
if (check_PackageStatus(self))
return NULL;
char *nvra = cr_package_nvra(self->package);
- pystr = PyBytesOrNone_FromString(nvra);
+ pystr = PyUnicodeOrNone_FromString(nvra);
free(nvra);
return pystr;
}
if (check_PackageStatus(self))
return NULL;
char *nevra = cr_package_nevra(self->package);
- pystr = PyBytesOrNone_FromString(nevra);
+ pystr = PyUnicodeOrNone_FromString(nevra);
free(nevra);
return pystr;
}
char *str = *((char **) ((size_t) pkg + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
/** Return offset of a selected member of cr_Package structure. */
{
if (check_PackageStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
- PyErr_SetString(PyExc_TypeError, "String or None expected!");
+ if (!PyUnicode_Check(value) && !PyBytes_Check(value) && value != Py_None) {
+ PyErr_SetString(PyExc_TypeError, "Unicode, bytes, or None expected!");
return -1;
}
cr_Package *pkg = self->package;
if (!pkg->chunk)
pkg->chunk = g_string_chunk_new(0);
- char *str = g_string_chunk_insert(pkg->chunk, PyBytes_AsString(value));
+ PyObject *bytes;
+ if (PyUnicode_Check(value)) {
+ bytes = PyUnicode_AsUTF8String(value);
+ } else {
+ bytes = value;
+ }
+
+ char *str = g_string_chunk_insert(pkg->chunk, PyBytes_AsString(bytes));
*((char **) ((size_t) pkg + (size_t) member_offset)) = str;
return 0;
}
if ((tuple = PyTuple_New(3)) == NULL)
goto py_xml_from_rpm_end; // Free xml_res and return NULL
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(xml_res.primary));
- PyTuple_SetItem(tuple, 1, PyBytesOrNone_FromString(xml_res.filelists));
- PyTuple_SetItem(tuple, 2, PyBytesOrNone_FromString(xml_res.other));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(xml_res.primary));
+ PyTuple_SetItem(tuple, 1, PyUnicodeOrNone_FromString(xml_res.filelists));
+ PyTuple_SetItem(tuple, 2, PyUnicodeOrNone_FromString(xml_res.other));
py_xml_from_rpm_end:
free(xml_res.primary);
static PyObject *
repomd_repr(G_GNUC_UNUSED _RepomdObject *self)
{
- return PyBytes_FromString("<createrepo_c.Repomd object>");
+ return PyUnicode_FromString("<createrepo_c.Repomd object>");
}
/* Repomd methods */
nice_exception(&tmp_err, NULL);
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
typedef void *(*ConversionToFunc)(PyObject *, GStringChunk *);
static int
-CheckPyBytes(PyObject *dep)
+CheckPyUnicode(PyObject *dep)
{
- if (!PyBytes_Check(dep)) {
+ if (!PyUnicode_Check(dep)) {
PyErr_SetString(PyExc_TypeError, "Element of list has to be a string");
return 1;
}
/** List of convertors for converting a lists in cr_Package. */
static ListConvertor list_convertors[] = {
{ offsetof(cr_Repomd, repo_tags),
- (ConversionFromFunc) PyBytesOrNone_FromString,
- (ConversionToCheckFunc) CheckPyBytes,
+ (ConversionFromFunc) PyUnicodeOrNone_FromString,
+ (ConversionToCheckFunc) CheckPyUnicode,
(ConversionToFunc) PyObject_ToChunkedString },
{ offsetof(cr_Repomd, distro_tags),
(ConversionFromFunc) PyObject_FromDistroTag,
(ConversionToCheckFunc) CheckPyDistroTag,
(ConversionToFunc) PyObject_ToDistroTag },
{ offsetof(cr_Repomd, content_tags),
- (ConversionFromFunc) PyBytesOrNone_FromString,
- (ConversionToCheckFunc) CheckPyBytes,
+ (ConversionFromFunc) PyUnicodeOrNone_FromString,
+ (ConversionToCheckFunc) CheckPyUnicode,
(ConversionToFunc) PyObject_ToChunkedString },
{ offsetof(cr_Repomd, records),
(ConversionFromFunc) PyObject_FromRepomdRecord,
char *str = *((char **) ((size_t) repomd + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static PyObject *
{
if (check_RepomdStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
repomdrecord_repr(G_GNUC_UNUSED _RepomdRecordObject *self)
{
if (self->record->type)
- return PyBytes_FromFormat("<createrepo_c.RepomdRecord %s object>",
+ return PyUnicode_FromFormat("<createrepo_c.RepomdRecord %s object>",
self->record->type);
else
- return PyBytes_FromFormat("<createrepo_c.RepomdRecord object>");
+ return PyUnicode_FromFormat("<createrepo_c.RepomdRecord object>");
}
/* RepomdRecord methods */
char *str = *((char **) ((size_t) rec + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static int
{
if (check_RepomdRecordStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
else if (self->db->type == CR_DB_FILELISTS) type = "FilelistsDb";
else if (self->db->type == CR_DB_OTHER) type = "OtherDb";
else type = "UnknownDb";
- return PyBytes_FromFormat("<createrepo_c.Sqlite %s object>", type);
+ return PyUnicode_FromFormat("<createrepo_c.Sqlite %s object>", type);
}
/* Sqlite methods */
g_set_error(err, ERR_DOMAIN, CRE_XMLPARSER,
"Error while error handling");
} else {
+ PyObject *bytes = PyUnicode_AsUTF8String(pystr);
g_set_error(err, ERR_DOMAIN, CRE_XMLPARSER,
- "%s", PyBytes_AsString(pystr));
+ "%s", PyBytes_AsString(bytes));
}
Py_XDECREF(pystr);
}
PyObject *
-PyBytesOrNone_FromString(const char *str)
+PyUnicodeOrNone_FromString(const char *str)
{
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
char *
PyObject_ToStrOrNull(PyObject *pyobj)
{
// String returned by this function shoud not be freed or modified
- if (PyBytes_Check(pyobj))
- return PyBytes_AsString(pyobj);
+ if (PyUnicode_Check(pyobj)) {
+ PyObject *bytes = PyUnicode_AsUTF8String(pyobj);
+ return PyBytes_AsString(bytes);
+ }
// TODO: ? Add support for pyobj like: ("xxx",) and ["xxx"]
return NULL;
}
if ((tuple = PyTuple_New(6)) == NULL)
return NULL;
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(dep->name));
- PyTuple_SetItem(tuple, 1, PyBytesOrNone_FromString(dep->flags));
- PyTuple_SetItem(tuple, 2, PyBytesOrNone_FromString(dep->epoch));
- PyTuple_SetItem(tuple, 3, PyBytesOrNone_FromString(dep->version));
- PyTuple_SetItem(tuple, 4, PyBytesOrNone_FromString(dep->release));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(dep->name));
+ PyTuple_SetItem(tuple, 1, PyUnicodeOrNone_FromString(dep->flags));
+ PyTuple_SetItem(tuple, 2, PyUnicodeOrNone_FromString(dep->epoch));
+ PyTuple_SetItem(tuple, 3, PyUnicodeOrNone_FromString(dep->version));
+ PyTuple_SetItem(tuple, 4, PyUnicodeOrNone_FromString(dep->release));
PyTuple_SetItem(tuple, 5, PyBool_FromLong((long) dep->pre));
return tuple;
if ((tuple = PyTuple_New(3)) == NULL)
return NULL;
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(file->type));
- PyTuple_SetItem(tuple, 1, PyBytesOrNone_FromString(file->path));
- PyTuple_SetItem(tuple, 2, PyBytesOrNone_FromString(file->name));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(file->type));
+ PyTuple_SetItem(tuple, 1, PyUnicodeOrNone_FromString(file->path));
+ PyTuple_SetItem(tuple, 2, PyUnicodeOrNone_FromString(file->name));
return tuple;
}
if ((tuple = PyTuple_New(3)) == NULL)
return NULL;
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(log->author));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(log->author));
PyTuple_SetItem(tuple, 1, PyLong_FromLong((long) log->date));
- PyTuple_SetItem(tuple, 2, PyBytesOrNone_FromString(log->changelog));
+ PyTuple_SetItem(tuple, 2, PyUnicodeOrNone_FromString(log->changelog));
return tuple;
}
if ((tuple = PyTuple_New(2)) == NULL)
return NULL;
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(tag->cpeid));
- PyTuple_SetItem(tuple, 1, PyBytesOrNone_FromString(tag->val));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(tag->cpeid));
+ PyTuple_SetItem(tuple, 1, PyUnicodeOrNone_FromString(tag->val));
return tuple;
}
for (Py_ssize_t x=0; x < size; x++) {
PyObject *py_str = PyList_GetItem(py_list, x);
assert(py_str != NULL);
- if (!PyBytes_Check(py_str))
+ if (!PyUnicode_Check(py_str))
// Hmm, element is not a string, just skip it
continue;
- list = g_slist_prepend(list, PyBytes_AsString(py_str));
+ PyObject *py_bytes = PyUnicode_AsUTF8String(py_str);
+ list = g_slist_prepend(list, PyBytes_AsString(py_bytes));
}
return list;
// Clears the current Python Exception and return its representation in GError
void PyErr_ToGError(GError **err);
-PyObject *PyBytesOrNone_FromString(const char *str);
+PyObject *PyUnicodeOrNone_FromString(const char *str);
char *PyObject_ToStrOrNull(PyObject *pyobj);
char *PyObject_ToChunkedString(PyObject *pyobj, GStringChunk *chunk);
static PyObject *
updatecollection_repr(G_GNUC_UNUSED _UpdateCollectionObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.UpdateCollection object>");
+ return PyUnicode_FromFormat("<createrepo_c.UpdateCollection object>");
}
/* UpdateCollection methods */
char *str = *((char **) ((size_t) rec + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static PyObject *
{
if (check_UpdateCollectionStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
static PyObject *
updatecollectionpackage_repr(G_GNUC_UNUSED _UpdateCollectionPackageObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.UpdateCollectionPackage object>");
+ return PyUnicode_FromFormat("<createrepo_c.UpdateCollectionPackage object>");
}
/* UpdateCollectionPackage methods */
char *str = *((char **) ((size_t) pkg + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static int
{
if (check_UpdateCollectionPackageStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
static PyObject *
updateinfo_repr(G_GNUC_UNUSED _UpdateInfoObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.UpdateInfo object>");
+ return PyUnicode_FromFormat("<createrepo_c.UpdateInfo object>");
}
/* UpdateInfo methods */
nice_exception(&tmp_err, NULL);
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
static PyObject *
updaterecord_repr(G_GNUC_UNUSED _UpdateRecordObject *self)
{
- return PyBytes_FromFormat("<createrepo_c.UpdateRecord object>");
+ return PyUnicode_FromFormat("<createrepo_c.UpdateRecord object>");
}
/* UpdateRecord methods */
char *str = *((char **) ((size_t) rec + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static PyObject *
{
if (check_UpdateRecordStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
updatereference_repr(G_GNUC_UNUSED _UpdateReferenceObject *self)
{
if (self->reference->type)
- return PyBytes_FromFormat("<createrepo_c.UpdateReference %s object>",
+ return PyUnicode_FromFormat("<createrepo_c.UpdateReference %s object>",
self->reference->type);
else
- return PyBytes_FromFormat("<createrepo_c.UpdateReference object>");
+ return PyUnicode_FromFormat("<createrepo_c.UpdateReference object>");
}
/* UpdateReference methods */
char *str = *((char **) ((size_t) ref + (size_t) member_offset));
if (str == NULL)
Py_RETURN_NONE;
- return PyBytes_FromString(str);
+ return PyUnicode_FromString(str);
}
static int
{
if (check_UpdateReferenceStatus(self))
return -1;
- if (!PyBytes_Check(value) && value != Py_None) {
+ if (!PyUnicode_Check(value) && value != Py_None) {
PyErr_SetString(PyExc_TypeError, "String or None expected!");
return -1;
}
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
return NULL;
}
- PyTuple_SetItem(tuple, 0, PyBytesOrNone_FromString(xml_res.primary));
- PyTuple_SetItem(tuple, 1, PyBytesOrNone_FromString(xml_res.filelists));
- PyTuple_SetItem(tuple, 2, PyBytesOrNone_FromString(xml_res.other));
+ PyTuple_SetItem(tuple, 0, PyUnicodeOrNone_FromString(xml_res.primary));
+ PyTuple_SetItem(tuple, 1, PyUnicodeOrNone_FromString(xml_res.filelists));
+ PyTuple_SetItem(tuple, 2, PyUnicodeOrNone_FromString(xml_res.other));
free(xml_res.primary);
free(xml_res.filelists);
return NULL;
}
- py_str = PyBytesOrNone_FromString(xml);
+ py_str = PyUnicodeOrNone_FromString(xml);
free(xml);
return py_str;
}
type = "Unknown";
}
- return PyBytes_FromFormat("<createrepo_c.XmlFile %s object>", type);
+ return PyUnicode_FromFormat("<createrepo_c.XmlFile %s object>", type);
}
/* XmlFile methods */