@@ -535,6 +535,7 @@ static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gc
535535 const gchar * bundle_format_value , const gchar * type_check_value , const gchar * source_maps_value , const gchar * compression_value );
536536
537537static int PyPackageManager_init (PyPackageManager * self , PyObject * args , PyObject * kw );
538+ static PyObject * PyPackageManager_repr (PyPackageManager * self );
538539static PyObject * PyPackageManager_search (PyPackageManager * self , PyObject * args , PyObject * kw );
539540static PyObject * PyPackageManager_install (PyPackageManager * self , PyObject * args , PyObject * kw );
540541static FridaPackageInstallOptions * PyPackageManager_parse_install_options (const gchar * project_root , PyObject * specs_value );
@@ -543,16 +544,19 @@ static PyObject * PyPackage_new_take_handle (FridaPackage * handle);
543544static int PyPackage_init (PyPackage * self , PyObject * args , PyObject * kw );
544545static void PyPackage_init_from_handle (PyPackage * self , FridaPackage * handle );
545546static void PyPackage_dealloc (PyPackage * self );
547+ static PyObject * PyPackage_repr (PyPackage * self );
546548
547549static PyObject * PyPackageSearchResult_new_take_handle (FridaPackageSearchResult * handle );
548550static int PyPackageSearchResult_init (PyPackageSearchResult * self , PyObject * args , PyObject * kw );
549551static void PyPackageSearchResult_init_from_handle (PyPackageSearchResult * self , FridaPackageSearchResult * handle );
550552static void PyPackageSearchResult_dealloc (PyPackageSearchResult * self );
553+ static PyObject * PyPackageSearchResult_repr (PyPackageSearchResult * self );
551554
552555static PyObject * PyPackageInstallResult_new_take_handle (FridaPackageInstallResult * handle );
553556static int PyPackageInstallResult_init (PyPackageInstallResult * self , PyObject * args , PyObject * kw );
554557static void PyPackageInstallResult_init_from_handle (PyPackageInstallResult * self , FridaPackageInstallResult * handle );
555558static void PyPackageInstallResult_dealloc (PyPackageInstallResult * self );
559+ static PyObject * PyPackageInstallResult_repr (PyPackageInstallResult * self );
556560
557561static int PyFileMonitor_init (PyFileMonitor * self , PyObject * args , PyObject * kw );
558562static PyObject * PyFileMonitor_enable (PyFileMonitor * self );
@@ -959,27 +963,31 @@ PYFRIDA_DEFINE_TYPE ("_frida.Compiler", Compiler, GObject, NULL, frida_unref,
959963PYFRIDA_DEFINE_TYPE ("_frida.PackageManager" , PackageManager , GObject , NULL , frida_unref ,
960964 { Py_tp_doc , "Frida Package Manager" },
961965 { Py_tp_init , PyPackageManager_init },
966+ { Py_tp_repr , PyPackageManager_repr },
962967 { Py_tp_methods , PyPackageManager_methods },
963968);
964969
965970PYFRIDA_DEFINE_TYPE ("_frida.Package" , Package , GObject , PyPackage_init_from_handle , g_object_unref ,
966971 { Py_tp_doc , "Frida Package" },
967972 { Py_tp_init , PyPackage_init },
968973 { Py_tp_dealloc , PyPackage_dealloc },
974+ { Py_tp_repr , PyPackage_repr },
969975 { Py_tp_members , PyPackage_members },
970976);
971977
972978PYFRIDA_DEFINE_TYPE ("_frida.PackageSearchResult" , PackageSearchResult , GObject , PyPackageSearchResult_init_from_handle , g_object_unref ,
973979 { Py_tp_doc , "Frida Package Search Result" },
974980 { Py_tp_init , PyPackageSearchResult_init },
975981 { Py_tp_dealloc , PyPackageSearchResult_dealloc },
982+ { Py_tp_repr , PyPackageSearchResult_repr },
976983 { Py_tp_members , PyPackageSearchResult_members },
977984);
978985
979986PYFRIDA_DEFINE_TYPE ("_frida.PackageInstallResult" , PackageInstallResult , GObject , PyPackageInstallResult_init_from_handle , g_object_unref ,
980987 { Py_tp_doc , "Frida Package Install Result" },
981988 { Py_tp_init , PyPackageInstallResult_init },
982989 { Py_tp_dealloc , PyPackageInstallResult_dealloc },
990+ { Py_tp_repr , PyPackageInstallResult_repr },
983991 { Py_tp_members , PyPackageInstallResult_members },
984992);
985993
@@ -5027,6 +5035,19 @@ PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw)
50275035 return 0 ;
50285036}
50295037
5038+ static PyObject *
5039+ PyPackageManager_repr (PyPackageManager * self )
5040+ {
5041+ PyObject * result ;
5042+ gchar * repr ;
5043+
5044+ repr = g_strdup_printf ("PackageManager(registry=\"%s\")" , frida_package_manager_get_registry (PY_GOBJECT_HANDLE (self )));
5045+ result = PyUnicode_FromString (repr );
5046+ g_free (repr );
5047+
5048+ return result ;
5049+ }
5050+
50305051static PyObject *
50315052PyPackageManager_search (PyPackageManager * self , PyObject * args , PyObject * kw )
50325053{
@@ -5174,6 +5195,43 @@ PyPackage_dealloc (PyPackage * self)
51745195 PyGObject_tp_dealloc ((PyObject * ) self );
51755196}
51765197
5198+ static PyObject *
5199+ PyPackage_repr (PyPackage * self )
5200+ {
5201+ PyObject * result ;
5202+ FridaPackage * handle ;
5203+ GString * repr ;
5204+ const gchar * description , * url ;
5205+
5206+ handle = PY_GOBJECT_HANDLE (self );
5207+
5208+ repr = g_string_sized_new (256 );
5209+
5210+ g_string_append_printf (repr , "Package(name=\"%s\", version=\"%s\"" ,
5211+ frida_package_get_name (handle ),
5212+ frida_package_get_version (handle ));
5213+
5214+ description = frida_package_get_description (handle );
5215+ if (description != NULL )
5216+ {
5217+ gchar * escaped = g_strescape (description , NULL );
5218+ g_string_append_printf (repr , ", description=\"%s\"" , escaped );
5219+ g_free (escaped );
5220+ }
5221+
5222+ url = frida_package_get_url (handle );
5223+ if (url != NULL )
5224+ g_string_append_printf (repr , ", url=\"%s\"" , url );
5225+
5226+ g_string_append (repr , ")" );
5227+
5228+ result = PyUnicode_FromString (repr -> str );
5229+
5230+ g_string_free (repr , TRUE);
5231+
5232+ return result ;
5233+ }
5234+
51775235
51785236static PyObject *
51795237PyPackageList_marshal (FridaPackageList * list )
@@ -5223,6 +5281,30 @@ PyPackageSearchResult_dealloc (PyPackageSearchResult * self)
52235281 PyGObject_tp_dealloc ((PyObject * ) self );
52245282}
52255283
5284+ static PyObject *
5285+ PyPackageSearchResult_repr (PyPackageSearchResult * self )
5286+ {
5287+ PyObject * result ;
5288+ GString * repr ;
5289+ gint num_packages ;
5290+
5291+ repr = g_string_new ("PackageSearchResult(packages=" );
5292+
5293+ num_packages = frida_package_list_size (frida_package_search_result_get_packages (PY_GOBJECT_HANDLE (self )));
5294+ if (num_packages != 0 )
5295+ g_string_append_printf (repr , "[<%u package%s>]" , num_packages , (num_packages == 1 ) ? "" : "s" );
5296+ else
5297+ g_string_append (repr , "[]" );
5298+
5299+ g_string_append_printf (repr , ", total=%u)" , self -> total );
5300+
5301+ result = PyUnicode_FromString (repr -> str );
5302+
5303+ g_string_free (repr , TRUE);
5304+
5305+ return result ;
5306+ }
5307+
52265308
52275309static PyObject *
52285310PyPackageInstallResult_new_take_handle (FridaPackageInstallResult * handle )
@@ -5255,6 +5337,30 @@ PyPackageInstallResult_dealloc (PyPackageInstallResult * self)
52555337 PyGObject_tp_dealloc ((PyObject * ) self );
52565338}
52575339
5340+ static PyObject *
5341+ PyPackageInstallResult_repr (PyPackageInstallResult * self )
5342+ {
5343+ PyObject * result ;
5344+ GString * repr ;
5345+ gint num_packages ;
5346+
5347+ repr = g_string_new ("PackageInstallResult(packages=" );
5348+
5349+ num_packages = frida_package_list_size (frida_package_install_result_get_packages (PY_GOBJECT_HANDLE (self )));
5350+ if (num_packages != 0 )
5351+ g_string_append_printf (repr , "[<%u package%s>]" , num_packages , (num_packages == 1 ) ? "" : "s" );
5352+ else
5353+ g_string_append (repr , "[]" );
5354+
5355+ g_string_append (repr , ")" );
5356+
5357+ result = PyUnicode_FromString (repr -> str );
5358+
5359+ g_string_free (repr , TRUE);
5360+
5361+ return result ;
5362+ }
5363+
52585364
52595365static int
52605366PyFileMonitor_init (PyFileMonitor * self , PyObject * args , PyObject * kw )
0 commit comments