mirror of
https://github.com/frida/frida-python
synced 2026-06-08 14:16:17 +00:00
extension: Add __repr__ to PackageManager types
This commit is contained in:
@@ -535,6 +535,7 @@ static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gc
|
||||
const gchar * bundle_format_value, const gchar * type_check_value, const gchar * source_maps_value, const gchar * compression_value);
|
||||
|
||||
static int PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw);
|
||||
static PyObject * PyPackageManager_repr (PyPackageManager * self);
|
||||
static PyObject * PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw);
|
||||
static PyObject * PyPackageManager_install (PyPackageManager * self, PyObject * args, PyObject * kw);
|
||||
static FridaPackageInstallOptions * PyPackageManager_parse_install_options (const gchar * project_root, PyObject * specs_value);
|
||||
@@ -543,16 +544,19 @@ static PyObject * PyPackage_new_take_handle (FridaPackage * handle);
|
||||
static int PyPackage_init (PyPackage * self, PyObject * args, PyObject * kw);
|
||||
static void PyPackage_init_from_handle (PyPackage * self, FridaPackage * handle);
|
||||
static void PyPackage_dealloc (PyPackage * self);
|
||||
static PyObject * PyPackage_repr (PyPackage * self);
|
||||
|
||||
static PyObject * PyPackageSearchResult_new_take_handle (FridaPackageSearchResult * handle);
|
||||
static int PyPackageSearchResult_init (PyPackageSearchResult * self, PyObject * args, PyObject * kw);
|
||||
static void PyPackageSearchResult_init_from_handle (PyPackageSearchResult * self, FridaPackageSearchResult * handle);
|
||||
static void PyPackageSearchResult_dealloc (PyPackageSearchResult * self);
|
||||
static PyObject * PyPackageSearchResult_repr (PyPackageSearchResult * self);
|
||||
|
||||
static PyObject * PyPackageInstallResult_new_take_handle (FridaPackageInstallResult * handle);
|
||||
static int PyPackageInstallResult_init (PyPackageInstallResult * self, PyObject * args, PyObject * kw);
|
||||
static void PyPackageInstallResult_init_from_handle (PyPackageInstallResult * self, FridaPackageInstallResult * handle);
|
||||
static void PyPackageInstallResult_dealloc (PyPackageInstallResult * self);
|
||||
static PyObject * PyPackageInstallResult_repr (PyPackageInstallResult * self);
|
||||
|
||||
static int PyFileMonitor_init (PyFileMonitor * self, PyObject * args, PyObject * kw);
|
||||
static PyObject * PyFileMonitor_enable (PyFileMonitor * self);
|
||||
@@ -959,6 +963,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.Compiler", Compiler, GObject, NULL, frida_unref,
|
||||
PYFRIDA_DEFINE_TYPE ("_frida.PackageManager", PackageManager, GObject, NULL, frida_unref,
|
||||
{ Py_tp_doc, "Frida Package Manager" },
|
||||
{ Py_tp_init, PyPackageManager_init },
|
||||
{ Py_tp_repr, PyPackageManager_repr },
|
||||
{ Py_tp_methods, PyPackageManager_methods },
|
||||
);
|
||||
|
||||
@@ -966,6 +971,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.Package", Package, GObject, PyPackage_init_from_han
|
||||
{ Py_tp_doc, "Frida Package" },
|
||||
{ Py_tp_init, PyPackage_init },
|
||||
{ Py_tp_dealloc, PyPackage_dealloc },
|
||||
{ Py_tp_repr, PyPackage_repr },
|
||||
{ Py_tp_members, PyPackage_members },
|
||||
);
|
||||
|
||||
@@ -973,6 +979,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.PackageSearchResult", PackageSearchResult, GObject,
|
||||
{ Py_tp_doc, "Frida Package Search Result" },
|
||||
{ Py_tp_init, PyPackageSearchResult_init },
|
||||
{ Py_tp_dealloc, PyPackageSearchResult_dealloc },
|
||||
{ Py_tp_repr, PyPackageSearchResult_repr },
|
||||
{ Py_tp_members, PyPackageSearchResult_members },
|
||||
);
|
||||
|
||||
@@ -980,6 +987,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.PackageInstallResult", PackageInstallResult, GObjec
|
||||
{ Py_tp_doc, "Frida Package Install Result" },
|
||||
{ Py_tp_init, PyPackageInstallResult_init },
|
||||
{ Py_tp_dealloc, PyPackageInstallResult_dealloc },
|
||||
{ Py_tp_repr, PyPackageInstallResult_repr },
|
||||
{ Py_tp_members, PyPackageInstallResult_members },
|
||||
);
|
||||
|
||||
@@ -5027,6 +5035,19 @@ PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyPackageManager_repr (PyPackageManager * self)
|
||||
{
|
||||
PyObject * result;
|
||||
gchar * repr;
|
||||
|
||||
repr = g_strdup_printf ("PackageManager(registry=\"%s\")", frida_package_manager_get_registry (PY_GOBJECT_HANDLE (self)));
|
||||
result = PyUnicode_FromString (repr);
|
||||
g_free (repr);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw)
|
||||
{
|
||||
@@ -5174,6 +5195,43 @@ PyPackage_dealloc (PyPackage * self)
|
||||
PyGObject_tp_dealloc ((PyObject *) self);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyPackage_repr (PyPackage * self)
|
||||
{
|
||||
PyObject * result;
|
||||
FridaPackage * handle;
|
||||
GString * repr;
|
||||
const gchar * description, * url;
|
||||
|
||||
handle = PY_GOBJECT_HANDLE (self);
|
||||
|
||||
repr = g_string_sized_new (256);
|
||||
|
||||
g_string_append_printf (repr, "Package(name=\"%s\", version=\"%s\"",
|
||||
frida_package_get_name (handle),
|
||||
frida_package_get_version (handle));
|
||||
|
||||
description = frida_package_get_description (handle);
|
||||
if (description != NULL)
|
||||
{
|
||||
gchar * escaped = g_strescape (description, NULL);
|
||||
g_string_append_printf (repr, ", description=\"%s\"", escaped);
|
||||
g_free (escaped);
|
||||
}
|
||||
|
||||
url = frida_package_get_url (handle);
|
||||
if (url != NULL)
|
||||
g_string_append_printf (repr, ", url=\"%s\"", url);
|
||||
|
||||
g_string_append (repr, ")");
|
||||
|
||||
result = PyUnicode_FromString (repr->str);
|
||||
|
||||
g_string_free (repr, TRUE);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *
|
||||
PyPackageList_marshal (FridaPackageList * list)
|
||||
@@ -5223,6 +5281,30 @@ PyPackageSearchResult_dealloc (PyPackageSearchResult * self)
|
||||
PyGObject_tp_dealloc ((PyObject *) self);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyPackageSearchResult_repr (PyPackageSearchResult * self)
|
||||
{
|
||||
PyObject * result;
|
||||
GString * repr;
|
||||
gint num_packages;
|
||||
|
||||
repr = g_string_new ("PackageSearchResult(packages=");
|
||||
|
||||
num_packages = frida_package_list_size (frida_package_search_result_get_packages (PY_GOBJECT_HANDLE (self)));
|
||||
if (num_packages != 0)
|
||||
g_string_append_printf (repr, "[<%u package%s>]", num_packages, (num_packages == 1) ? "" : "s");
|
||||
else
|
||||
g_string_append (repr, "[]");
|
||||
|
||||
g_string_append_printf (repr, ", total=%u)", self->total);
|
||||
|
||||
result = PyUnicode_FromString (repr->str);
|
||||
|
||||
g_string_free (repr, TRUE);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *
|
||||
PyPackageInstallResult_new_take_handle (FridaPackageInstallResult * handle)
|
||||
@@ -5255,6 +5337,30 @@ PyPackageInstallResult_dealloc (PyPackageInstallResult * self)
|
||||
PyGObject_tp_dealloc ((PyObject *) self);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyPackageInstallResult_repr (PyPackageInstallResult * self)
|
||||
{
|
||||
PyObject * result;
|
||||
GString * repr;
|
||||
gint num_packages;
|
||||
|
||||
repr = g_string_new ("PackageInstallResult(packages=");
|
||||
|
||||
num_packages = frida_package_list_size (frida_package_install_result_get_packages (PY_GOBJECT_HANDLE (self)));
|
||||
if (num_packages != 0)
|
||||
g_string_append_printf (repr, "[<%u package%s>]", num_packages, (num_packages == 1) ? "" : "s");
|
||||
else
|
||||
g_string_append (repr, "[]");
|
||||
|
||||
g_string_append (repr, ")");
|
||||
|
||||
result = PyUnicode_FromString (repr->str);
|
||||
|
||||
g_string_free (repr, TRUE);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
PyFileMonitor_init (PyFileMonitor * self, PyObject * args, PyObject * kw)
|
||||
|
||||
Reference in New Issue
Block a user