return 0;
}
-static PyObject* _File_digest(FileObject* self, enum pakfire_digest_types type) {
+static PyObject* File_digest(FileObject* self, PyObject* args) {
+ const char* name = NULL;
+
+ if (!PyArg_ParseTuple(args, "s", &name))
+ return NULL;
+
+ // Fetch the type
+ const enum pakfire_digest_types type = pakfire_digest_get_by_name(name);
+
+ // Raise ValueError if we could not find the type
+ if (!type) {
+ PyErr_Format(PyExc_ValueError, "Unknown digest type: %s", name);
+ return NULL;
+ }
+
size_t length = 0;
// Fetch the digest
return PyBytes_FromStringAndSize((const char*)digest, length);
}
-static PyObject* File_digest(FileObject* self, PyObject* args) {
- int type = 0;
-
- if (!PyArg_ParseTuple(args, "i", &type))
- return NULL;
-
- return _File_digest(self, type);
-}
-
static PyObject* _File_hexdigest(FileObject* self, enum pakfire_digest_types type) {
char* hexdigest = pakfire_file_get_hexdigest(self->file, type);
if (!hexdigest)