Compare commits

...

233 Commits

Author SHA1 Message Date
Ole André Vadla Ravnås 9f6ab2d384 subprojects: Prepare for release 2025-08-20 12:07:22 +02:00
Ole André Vadla Ravnås a005f1bf4c subprojects: Bump outdated 2025-08-20 12:06:15 +02:00
Ole André Vadla Ravnås 59a24aa48f subprojects: Prepare for release 2025-08-12 10:15:48 +02:00
Ole André Vadla Ravnås 782d626419 subprojects: Bump outdated 2025-08-12 09:48:45 +02:00
Ole André Vadla Ravnås 3aa122f4fd subprojects: Prepare for release 2025-08-02 09:42:51 +02:00
Ole André Vadla Ravnås ef315fc0ad subprojects: Bump outdated 2025-08-02 08:53:40 +02:00
Ole André Vadla Ravnås daf93eea54 subprojects: Bump outdated 2025-08-01 20:21:16 +02:00
Ole André Vadla Ravnås 5d02a36906 submodules: Bump releng 2025-08-01 20:21:16 +02:00
Ole André Vadla Ravnås ba8daa423d subprojects: Bump outdated 2025-08-01 18:18:22 +02:00
Ole André Vadla Ravnås afb27bfa7c subprojects: Bump outdated 2025-08-01 15:48:53 +02:00
Ole André Vadla Ravnås 93a201acf2 submodules: Bump releng 2025-08-01 15:48:53 +02:00
Ole André Vadla Ravnås ca1cdad96a subprojects: Prepare for release 2025-07-24 11:16:46 +02:00
Ole André Vadla Ravnås fbc83cc9bf subprojects: Bump outdated 2025-07-24 11:15:23 +02:00
Ole André Vadla Ravnås b838e1df9a subprojects: Prepare for release 2025-07-21 15:06:22 +02:00
Ole André Vadla Ravnås e2409be987 subprojects: Bump outdated 2025-07-21 15:04:50 +02:00
Ole André Vadla Ravnås b061ea43d2 subprojects: Prepare for release 2025-07-18 10:32:24 +02:00
Ole André Vadla Ravnås a50a62999a subprojects: Bump outdated 2025-07-18 10:28:42 +02:00
Ole André Vadla Ravnås 3a47d33ee8 submodules: Bump releng 2025-07-18 10:28:42 +02:00
Ole André Vadla Ravnås ea93d827bb subprojects: Prepare for release 2025-07-03 16:10:18 +02:00
Ole André Vadla Ravnås 8d4c05f664 subprojects: Bump outdated 2025-07-03 16:09:28 +02:00
Ole André Vadla Ravnås 2f78c96622 subprojects: Prepare for release 2025-07-03 12:57:05 +02:00
Ole André Vadla Ravnås 4b5aa28119 subprojects: Bump outdated 2025-07-03 12:55:57 +02:00
Ole André Vadla Ravnås 4f87afa0f1 subprojects: Prepare for release 2025-07-02 12:59:12 +02:00
Ole André Vadla Ravnås 82272945ac subprojects: Bump outdated 2025-07-02 12:56:24 +02:00
Ole André Vadla Ravnås bf496a81d9 subprojects: Prepare for release 2025-07-02 00:09:19 +02:00
Ole André Vadla Ravnås c2dcae3ff4 subprojects: Bump outdated 2025-07-02 00:08:44 +02:00
Ole André Vadla Ravnås 0cb42c47dc subprojects: Prepare for release 2025-07-01 23:40:07 +02:00
Ole André Vadla Ravnås 0e3a9fb551 subprojects: Bump outdated 2025-07-01 23:39:09 +02:00
Ole André Vadla Ravnås 4e16e5c667 package-manager: Fix the PackageRole declaration 2025-07-01 21:25:59 +02:00
Ole André Vadla Ravnås 09d6c7b044 package-manager: Update to the new API 2025-07-01 21:22:01 +02:00
Ole André Vadla Ravnås e11efce5c2 subprojects: Prepare for release 2025-06-27 15:59:55 +02:00
Ole André Vadla Ravnås e174be9998 subprojects: Bump outdated 2025-06-27 15:58:47 +02:00
Ole André Vadla Ravnås eae3d1dc65 subprojects: Bump outdated 2025-06-27 15:50:40 +02:00
Ole André Vadla Ravnås 2d26b94c7d subprojects: Prepare for release 2025-06-23 18:44:30 +02:00
Ole André Vadla Ravnås f396958dfe subprojects: Bump outdated 2025-06-23 18:41:22 +02:00
Ole André Vadla Ravnås 93fb33206f subprojects: Prepare for release 2025-06-20 15:45:37 +02:00
Ole André Vadla Ravnås aed3c1b7bf subprojects: Bump outdated 2025-06-20 15:44:21 +02:00
Ole André Vadla Ravnås 690da0652d package-manager: Remove unused install phase 2025-06-20 11:48:08 +02:00
Ole André Vadla Ravnås bec6221c02 subprojects: Prepare for release 2025-06-20 01:13:59 +02:00
Ole André Vadla Ravnås 53479e1814 subprojects: Bump outdated 2025-06-20 01:12:37 +02:00
Ole André Vadla Ravnås 68bc65ecd4 subprojects: Prepare for release 2025-06-19 23:25:49 +02:00
Ole André Vadla Ravnås 6492081c92 subprojects: Bump outdated 2025-06-19 23:23:57 +02:00
Ole André Vadla Ravnås 262b984e23 subprojects: Prepare for release 2025-06-19 21:03:48 +02:00
Ole André Vadla Ravnås 730ec03652 subprojects: Bump outdated 2025-06-19 21:01:50 +02:00
Ole André Vadla Ravnås 25f96f92d3 subprojects: Bump outdated 2025-06-19 20:19:02 +02:00
Ole André Vadla Ravnås dec23f9ef5 extension: Expose PackageManager.registry 2025-06-19 12:17:09 +02:00
Ole André Vadla Ravnås 906d27bcb7 extension: Add missing toplevel counter logic
We previously only bumped it when instantiating DeviceManager and
PortalService objects. We also need to do it for Compiler,
PackageManager, and FileMonitor. Otherwise signal emissions won't
work in some applications.
2025-06-19 11:51:38 +02:00
Ole André Vadla Ravnås b0018c9812 extension: Add __repr__ to PackageManager types 2025-06-19 11:51:38 +02:00
Ole André Vadla Ravnås 5e011e6d64 subprojects: Prepare for release 2025-06-18 23:35:02 +02:00
Ole André Vadla Ravnås b68dda4eb5 subprojects: Bump outdated 2025-06-18 23:33:55 +02:00
Ole André Vadla Ravnås 6fbe238c1a extension: Simplify the Compiler constructor
The DeviceManager is no longer needed.
2025-06-18 22:49:42 +02:00
Ole André Vadla Ravnås 4d750dfe58 extension: Fix the Compiler docstring 2025-06-18 22:49:42 +02:00
Ole André Vadla Ravnås fe1c61ce5d Add PackageManager bindings 2025-06-18 22:49:42 +02:00
Ole André Vadla Ravnås ea91df0d77 subprojects: Prepare for release 2025-06-13 16:28:23 +02:00
Ole André Vadla Ravnås b78ae7555f subprojects: Bump outdated 2025-06-13 16:27:32 +02:00
Ole André Vadla Ravnås b456683f2d subprojects: Prepare for release 2025-06-10 22:09:55 +02:00
Ole André Vadla Ravnås ddfe2b1a3b subprojects: Bump outdated 2025-06-10 22:06:06 +02:00
Ole André Vadla Ravnås 329795dbfc subprojects: Prepare for release 2025-06-07 13:32:31 +02:00
Ole André Vadla Ravnås e9c62fd581 subprojects: Bump outdated 2025-06-07 13:30:37 +02:00
Ole André Vadla Ravnås 40e945107d subprojects: Bump outdated 2025-06-07 11:23:25 +02:00
Ole André Vadla Ravnås 6c27bf0da7 subprojects: Prepare for release 2025-06-06 22:11:42 +02:00
Ole André Vadla Ravnås d37451f3bc subprojects: Bump outdated 2025-06-06 22:10:42 +02:00
Ole André Vadla Ravnås 6d4e4e27ee subprojects: Prepare for release 2025-06-06 14:11:20 +02:00
Ole André Vadla Ravnås 33a9c51387 subprojects: Bump outdated 2025-06-06 13:27:32 +02:00
Ole André Vadla Ravnås 4344eb9220 subprojects: Bump outdated 2025-06-06 12:38:36 +02:00
Ole André Vadla Ravnås 3a94e642d7 subprojects: Prepare for release 2025-06-05 22:05:26 +02:00
Ole André Vadla Ravnås 7a5948a95a subprojects: Bump outdated 2025-06-05 21:11:38 +02:00
Ole André Vadla Ravnås bbe926c606 subprojects: Bump outdated 2025-06-05 19:40:13 +02:00
Ole André Vadla Ravnås b653958fa4 subprojects: Bump outdated 2025-06-05 19:22:52 +02:00
Ole André Vadla Ravnås bca5146b74 subprojects: Bump outdated 2025-06-05 17:02:30 +02:00
Ole André Vadla Ravnås 2bd254702c submodules: Bump releng 2025-06-05 17:02:30 +02:00
Ole André Vadla Ravnås 82ee16d299 subprojects: Bump outdated 2025-06-02 00:10:05 +02:00
Ole André Vadla Ravnås 51501ceacb Add support for the new Compiler options
I.e. `output_format`, `bundle_format`, and `type_check`.
2025-06-01 23:48:37 +02:00
Ole André Vadla Ravnås ef45347385 subprojects: Bump outdated 2025-06-01 11:05:11 +02:00
Ole André Vadla Ravnås 0024f6719a submodules: Bump releng 2025-06-01 11:05:11 +02:00
Ole André Vadla Ravnås 87de091250 subprojects: Prepare for release 2025-05-29 17:32:12 +02:00
Ole André Vadla Ravnås cf4870e13d subprojects: Bump outdated 2025-05-29 17:30:22 +02:00
Ole André Vadla Ravnås 2ac00cb1e2 subprojects: Prepare for release 2025-05-28 23:17:06 +02:00
Ole André Vadla Ravnås dd94c73d4f subprojects: Bump outdated 2025-05-28 23:16:30 +02:00
Ole André Vadla Ravnås 40eb2dae38 subprojects: Prepare for release 2025-05-24 21:03:25 +02:00
Ole André Vadla Ravnås 73004f9598 subprojects: Bump outdated 2025-05-24 21:02:11 +02:00
Ole André Vadla Ravnås a0e9e64346 subprojects: Prepare for release 2025-05-22 21:39:37 +02:00
Ole André Vadla Ravnås 2706e19615 subprojects: Bump outdated 2025-05-22 21:22:51 +02:00
Ole André Vadla Ravnås 6edaf679ac subprojects: Bump outdated 2025-05-22 18:22:49 +02:00
Ole André Vadla Ravnås c2c45ce231 subprojects: Prepare for release 2025-05-20 23:12:16 +02:00
Ole André Vadla Ravnås 0180450178 subprojects: Bump outdated 2025-05-20 23:10:29 +02:00
Ole André Vadla Ravnås e07370158d subprojects: Prepare for release 2025-05-20 22:40:56 +02:00
Ole André Vadla Ravnås f73fdff4ee subprojects: Bump outdated 2025-05-20 22:40:02 +02:00
Ole André Vadla Ravnås b565fa19dc subprojects: Bump outdated 2025-05-20 22:06:51 +02:00
Ole André Vadla Ravnås 58d5ea9e2f submodules: Bump releng 2025-05-20 22:06:51 +02:00
Ole André Vadla Ravnås 91826487e1 subprojects: Prepare for release 2025-05-17 23:48:16 +02:00
Ole André Vadla Ravnås b1abfd53fa subprojects: Bump outdated 2025-05-17 23:47:03 +02:00
Ole André Vadla Ravnås 1afde6cb34 subprojects: Prepare for release 2025-05-17 19:45:41 +02:00
Ole André Vadla Ravnås 6bee5f45f3 subprojects: Bump outdated 2025-05-17 19:10:59 +02:00
Ole André Vadla Ravnås efc1009ece subprojects: Bump outdated 2025-05-17 11:46:46 +02:00
Ole André Vadla Ravnås 3def865cf8 subprojects: Prepare for release 2025-05-14 15:26:52 +02:00
Ole André Vadla Ravnås 3c41862ac5 subprojects: Bump outdated 2025-05-14 15:25:41 +02:00
Ole André Vadla Ravnås 4bd11602d7 subprojects: Bump outdated 2025-05-14 09:40:31 +02:00
Ole André Vadla Ravnås d07c8a16cd submodules: Bump releng 2025-05-14 09:40:31 +02:00
Ole André Vadla Ravnås 4e6d28cba7 subprojects: Prepare for release 2025-05-09 17:43:33 +02:00
Ole André Vadla Ravnås e0562ed0bc subprojects: Bump outdated 2025-05-09 17:42:35 +02:00
Ole André Vadla Ravnås 9dc17772cd subprojects: Prepare for release 2025-05-09 11:56:01 +02:00
Ole André Vadla Ravnås 0f9f4a5da8 subprojects: Bump outdated 2025-05-09 11:55:02 +02:00
Ole André Vadla Ravnås 4a9fb75adf subprojects: Prepare for release 2025-05-08 22:43:18 +02:00
Ole André Vadla Ravnås c37ef15695 subprojects: Bump outdated 2025-05-08 22:41:37 +02:00
Ole André Vadla Ravnås f6ad8a504d subprojects: Prepare for release 2025-05-08 21:31:01 +02:00
Ole André Vadla Ravnås 808e4ab6b5 subprojects: Bump outdated 2025-05-08 20:05:50 +02:00
Ole André Vadla Ravnås 50ee91f63f subprojects: Bump outdated 2025-05-08 17:06:37 +02:00
Ole André Vadla Ravnås 56dc49b5fb subprojects: Prepare for release 2025-04-25 22:36:01 +02:00
Ole André Vadla Ravnås 4cbb5881bd subprojects: Bump outdated 2025-04-25 22:34:39 +02:00
Ole André Vadla Ravnås 6ff0e34ca3 subprojects: Bump outdated 2025-04-17 18:37:11 +02:00
Ole André Vadla Ravnås 4df903dca5 subprojects: Bump outdated 2025-04-17 18:15:50 +02:00
Ole André Vadla Ravnås 6ed81cbfb6 subprojects: Prepare for release 2025-04-17 13:53:50 +02:00
Ole André Vadla Ravnås 98cc4c44bc subprojects: Bump outdated 2025-04-17 13:52:19 +02:00
Ole André Vadla Ravnås 6190b3c57b subprojects: Prepare for release 2025-04-16 20:26:51 +02:00
Ole André Vadla Ravnås 212973bbc1 subprojects: Bump outdated 2025-04-16 20:25:40 +02:00
Ole André Vadla Ravnås 79f7ae1deb subprojects: Bump outdated 2025-04-16 20:16:58 +02:00
Ole André Vadla Ravnås 522366a55e subprojects: Prepare for release 2025-04-14 17:59:52 +02:00
Ole André Vadla Ravnås 8017d10e3e subprojects: Bump outdated 2025-04-14 17:58:34 +02:00
Ole André Vadla Ravnås e78a5fd3b3 subprojects: Prepare for release 2025-04-09 21:50:24 +02:00
Ole André Vadla Ravnås 5cbef2fb1f subprojects: Bump outdated 2025-04-09 21:48:51 +02:00
Ole André Vadla Ravnås 8694918de7 subprojects: Prepare for release 2025-04-07 19:32:49 +02:00
Ole André Vadla Ravnås ab16fe04c5 subprojects: Bump outdated 2025-04-07 19:32:05 +02:00
Ole André Vadla Ravnås a1d1740541 subprojects: Prepare for release 2025-04-07 10:09:01 +02:00
Ole André Vadla Ravnås 09d2a1aa54 subprojects: Bump outdated 2025-04-07 10:08:15 +02:00
Ole André Vadla Ravnås 215669c151 subprojects: Prepare for release 2025-04-05 14:47:05 +02:00
Ole André Vadla Ravnås f7b08f8375 subprojects: Bump outdated 2025-04-05 11:14:26 +02:00
Ole André Vadla Ravnås 133687aafc subprojects: Prepare for release 2025-04-05 11:10:39 +02:00
Ole André Vadla Ravnås 06130770e1 subprojects: Bump outdated 2025-04-05 09:38:46 +02:00
Ole André Vadla Ravnås 2d72d0be57 subprojects: Prepare for release 2025-04-05 08:52:21 +02:00
Ole André Vadla Ravnås d463d7f2f2 subprojects: Bump outdated 2025-04-05 08:51:11 +02:00
Ole André Vadla Ravnås 11613adee6 subprojects: Prepare for release 2025-03-31 21:22:58 +02:00
Ole André Vadla Ravnås 8dc6509929 subprojects: Bump outdated 2025-03-31 20:17:46 +02:00
Ole André Vadla Ravnås 3f8b122ce7 extension: Fix IOStream.read_all() EOS handling 2025-03-30 22:27:27 +02:00
Ole André Vadla Ravnås 29abf88e31 subprojects: Prepare for release 2025-03-21 14:20:56 +01:00
Ole André Vadla Ravnås 5370147e85 subprojects: Bump outdated 2025-03-21 14:19:38 +01:00
Ole André Vadla Ravnås 507917744d subprojects: Prepare for release 2025-03-21 13:57:19 +01:00
Ole André Vadla Ravnås 8f2858fd8d subprojects: Bump outdated 2025-03-20 20:39:04 +01:00
Ole André Vadla Ravnås c2cf7fa951 subprojects: Bump outdated 2025-03-20 17:00:38 +01:00
Ole André Vadla Ravnås 9ff0651481 submodules: Bump releng 2025-03-20 17:00:38 +01:00
Ole André Vadla Ravnås 2674d6ef7d subprojects: Bump outdated 2025-03-19 10:51:49 +01:00
Ole André Vadla Ravnås 5d65919693 submodules: Bump releng 2025-03-19 10:51:49 +01:00
Ole André Vadla Ravnås d453cdd5ba subprojects: Bump outdated 2025-03-18 19:51:22 +01:00
Ole André Vadla Ravnås e8fd88f3d4 submodules: Bump releng 2025-03-18 19:51:22 +01:00
Ole André Vadla Ravnås 414cf0e029 subprojects: Prepare for release 2025-03-13 19:09:44 +01:00
Ole André Vadla Ravnås 76825537e8 subprojects: Bump outdated 2025-03-13 19:08:40 +01:00
Ole André Vadla Ravnås 2ab18cf80f subprojects: Bump outdated 2025-03-13 15:07:51 +01:00
Ole André Vadla Ravnås aaa703436b subprojects: Bump outdated 2025-03-13 14:44:41 +01:00
Ole André Vadla Ravnås 387962ab9d subprojects: Bump outdated 2025-03-13 14:09:34 +01:00
Ole André Vadla Ravnås 97f4c236a6 submodules: Bump releng 2025-03-13 14:09:34 +01:00
Ole André Vadla Ravnås 88cb2c97b8 subprojects: Bump outdated 2025-02-18 11:15:28 +01:00
Ole André Vadla Ravnås ec5035fd96 submodules: Bump releng 2025-02-18 11:15:28 +01:00
Ole André Vadla Ravnås bd883147ed subprojects: Prepare for release 2025-01-27 20:54:34 +01:00
Ole André Vadla Ravnås f7c32b2772 subprojects: Bump outdated 2025-01-27 20:52:06 +01:00
Ole André Vadla Ravnås 68009a8df9 subprojects: Prepare for release 2025-01-23 20:47:04 +01:00
Ole André Vadla Ravnås 85d56a0e45 subprojects: Bump outdated 2025-01-23 20:31:44 +01:00
Ole André Vadla Ravnås 228610a79c subprojects: Prepare for release 2025-01-17 16:49:13 +01:00
Ole André Vadla Ravnås d4b1b6aa8b subprojects: Bump outdated 2025-01-17 16:47:08 +01:00
Ole André Vadla Ravnås 29661c6b3b subprojects: Prepare for release 2025-01-14 19:35:35 +01:00
Ole André Vadla Ravnås d5b2a6fd18 subprojects: Bump outdated 2025-01-14 19:33:30 +01:00
Ole André Vadla Ravnås b862e9ae82 submodules: Bump releng 2025-01-14 19:33:30 +01:00
Ole André Vadla Ravnås 6e6f84969d subprojects: Prepare for release 2025-01-13 22:20:45 +01:00
Ole André Vadla Ravnås d6933eccf3 subprojects: Bump outdated 2025-01-13 22:18:15 +01:00
Ole André Vadla Ravnås 3bee61ffdb subprojects: Prepare for release 2025-01-10 02:04:13 +01:00
Ole André Vadla Ravnås 647e45f8bf subprojects: Bump outdated 2025-01-10 02:02:15 +01:00
Ole André Vadla Ravnås 5b6cfeba8b subprojects: Bump outdated 2025-01-09 23:35:35 +01:00
Ole André Vadla Ravnås c2b8043d8d submodules: Bump releng 2025-01-09 23:35:35 +01:00
Ole André Vadla Ravnås 69a4fa2ad2 subprojects: Prepare for release 2025-01-09 13:18:44 +01:00
Ole André Vadla Ravnås 546f65f25b subprojects: Bump outdated 2025-01-09 13:17:12 +01:00
Ole André Vadla Ravnås 168fcd5fe6 subprojects: Bump outdated 2025-01-08 19:06:57 +01:00
Ole André Vadla Ravnås 2ae7df42d0 subprojects: Bump outdated 2025-01-06 16:38:33 +01:00
Ole André Vadla Ravnås e8eff270ce subprojects: Bump outdated 2025-01-06 16:03:40 +01:00
Ole André Vadla Ravnås 62b6839d12 subprojects: Bump outdated 2025-01-06 01:11:52 +01:00
Ole André Vadla Ravnås d83456efe7 submodules: Bump releng 2025-01-06 01:11:52 +01:00
Ole André Vadla Ravnås fa62593fed Create FUNDING.yml 2024-12-12 13:37:36 +01:00
Ole André Vadla Ravnås 305d2c1360 subprojects: Bump outdated 2024-12-09 00:58:16 +01:00
Ole André Vadla Ravnås 67b563a72c subprojects: Prepare for release 2024-12-09 00:52:32 +01:00
Ole André Vadla Ravnås d988aa2920 subprojects: Prepare for release 2024-12-09 00:32:23 +01:00
Ole André Vadla Ravnås d346babcf9 subprojects: Bump outdated 2024-12-09 00:29:06 +01:00
Ole André Vadla Ravnås 96a3777eb0 subprojects: Bump outdated 2024-12-08 16:32:08 +01:00
Ole André Vadla Ravnås 6c4ad9bf98 submodules: Bump releng 2024-12-08 16:32:08 +01:00
Ole André Vadla Ravnås 0490814f79 subprojects: Prepare for release 2024-11-14 00:30:44 +01:00
Ole André Vadla Ravnås 3c21f23327 subprojects: Bump outdated 2024-11-14 00:29:11 +01:00
Ole André Vadla Ravnås fe24ef56d1 submodules: Bump releng 2024-11-14 00:29:11 +01:00
Ole André Vadla Ravnås 2d8dca8d53 subprojects: Bump outdated 2024-11-06 10:48:49 +01:00
Ole André Vadla Ravnås 77f7d0f3c3 subprojects: Bump outdated 2024-11-06 10:21:26 +01:00
Ole André Vadla Ravnås c8f3b40aad submodules: Bump releng 2024-11-06 10:21:26 +01:00
Ole André Vadla Ravnås 7416839ae5 subprojects: Prepare for release 2024-10-14 15:32:22 +02:00
Ole André Vadla Ravnås 5c782dcc1c subprojects: Bump outdated 2024-10-14 15:30:27 +02:00
Ole André Vadla Ravnås de4f0e906d subprojects: Prepare for release 2024-10-11 11:18:34 +02:00
Ole André Vadla Ravnås 623cb160f8 subprojects: Bump outdated 2024-10-11 11:16:20 +02:00
Ole André Vadla Ravnås 3c265a483d subprojects: Prepare for release 2024-10-10 22:07:56 +02:00
Ole André Vadla Ravnås f43a1ed12c subprojects: Bump outdated 2024-10-10 22:07:03 +02:00
Ole André Vadla Ravnås 9201c4c007 subprojects: Prepare for release 2024-10-10 20:18:29 +02:00
Ole André Vadla Ravnås 135dac88ec subprojects: Bump outdated 2024-10-10 20:16:14 +02:00
Ole André Vadla Ravnås 28e8b1f32e submodules: Bump releng 2024-10-10 20:16:14 +02:00
Ole André Vadla Ravnås 0b7bde2fd4 Revert "Use ParamSpec for better type hints"
This reverts commit 9a3ec81843.
2024-10-10 20:13:54 +02:00
Ole André Vadla Ravnås 6a18d4c4cc Fix a stylistic inconsistency 2024-10-10 20:09:50 +02:00
Nick 9a3ec81843 Use ParamSpec for better type hints 2024-10-10 20:07:23 +02:00
Ole André Vadla Ravnås ec55dcb3bc subprojects: Bump outdated 2024-10-05 17:25:10 +02:00
Ole André Vadla Ravnås e5404ae4eb submodules: Bump releng 2024-10-05 17:25:10 +02:00
Ole André Vadla Ravnås 64396bce72 subprojects: Bump outdated 2024-10-05 16:14:58 +02:00
Ole André Vadla Ravnås ccdd63dccc submodules: Bump releng 2024-10-05 16:14:57 +02:00
Ole André Vadla Ravnås e8f69618da subprojects: Bump outdated 2024-10-05 16:13:02 +02:00
Ole André Vadla Ravnås d809147cd0 submodules: Bump releng 2024-10-05 16:13:02 +02:00
Ole André Vadla Ravnås 24cc1fbcc9 subprojects: Prepare for release 2024-09-19 00:00:55 +02:00
Ole André Vadla Ravnås 7a2762ecc7 subprojects: Bump outdated 2024-09-18 23:57:43 +02:00
Ole André Vadla Ravnås d92b8e684c subprojects: Prepare for release 2024-09-18 14:33:21 +02:00
Ole André Vadla Ravnås 7c17bd5330 subprojects: Bump outdated 2024-09-18 14:31:52 +02:00
Ole André Vadla Ravnås 5991067e4e submodules: Bump releng 2024-09-18 14:31:52 +02:00
Ole André Vadla Ravnås 0780e5f813 subprojects: Prepare for release 2024-09-06 22:59:57 +02:00
Ole André Vadla Ravnås ce326094be subprojects: Bump outdated 2024-09-06 22:59:03 +02:00
Ole André Vadla Ravnås 092f6c38a1 subprojects: Prepare for release 2024-09-06 21:57:11 +02:00
Ole André Vadla Ravnås 9e83d29bd9 subprojects: Bump outdated 2024-09-06 21:55:00 +02:00
Ole André Vadla Ravnås 90533db5d4 subprojects: Bump outdated 2024-08-30 23:00:33 +02:00
Ole André Vadla Ravnås 30e009997e subprojects: Bump outdated 2024-08-26 12:27:35 +02:00
Ole André Vadla Ravnås 32e3c1922b subprojects: Bump outdated 2024-08-26 01:52:05 +02:00
Ole André Vadla Ravnås 69c5696aee submodules: Bump releng 2024-08-26 01:52:05 +02:00
Ole André Vadla Ravnås 0394ff3585 subprojects: Bump outdated 2024-08-25 23:56:15 +02:00
Ole André Vadla Ravnås c15b92fd55 subprojects: Bump outdated 2024-08-25 13:42:02 +02:00
Ole André Vadla Ravnås c53b453059 subprojects: Prepare for release 2024-08-22 15:40:52 +02:00
Ole André Vadla Ravnås d467d91e4f subprojects: Bump outdated 2024-08-22 15:39:15 +02:00
Ole André Vadla Ravnås ed3fdb8ce0 subprojects: Prepare for release 2024-08-20 21:50:48 +02:00
Ole André Vadla Ravnås 4d4632dbbe subprojects: Bump outdated 2024-08-20 21:48:36 +02:00
Ole André Vadla Ravnås aab9c4e76f subprojects: Prepare for release 2024-08-02 14:05:20 +02:00
Ole André Vadla Ravnås 2be19bcdad subprojects: Bump outdated 2024-08-02 14:03:56 +02:00
Ole André Vadla Ravnås 915c0678bd subprojects: Bump outdated 2024-07-29 11:00:52 +02:00
Ole André Vadla Ravnås 573a5a7d24 submodules: Bump releng 2024-07-29 11:00:52 +02:00
Ole André Vadla Ravnås 148ca1461d subprojects: Prepare for release 2024-07-23 10:15:02 +02:00
Ole André Vadla Ravnås 8eb4987563 subprojects: Bump outdated 2024-07-23 10:12:11 +02:00
Ole André Vadla Ravnås 84c7375044 subprojects: Prepare for release 2024-07-22 11:49:12 +02:00
Ole André Vadla Ravnås 267d5d555d subprojects: Bump outdated 2024-07-22 11:38:02 +02:00
Ole André Vadla Ravnås e219e5edbc submodules: Bump releng 2024-07-22 11:38:02 +02:00
7 changed files with 826 additions and 21 deletions
+1
View File
@@ -0,0 +1 @@
github: frida
+1
View File
@@ -23,6 +23,7 @@ Relay = _frida.Relay
PortalService = core.PortalService
EndpointParameters = core.EndpointParameters
Compiler = core.Compiler
PackageManager = core.PackageManager
FileMonitor = _frida.FileMonitor
Cancellable = core.Cancellable
+90
View File
@@ -774,4 +774,94 @@ class Compiler(Object):
"""
...
class PackageManager(Object):
@property
def registry(self) -> str:
"""
The registry being used.
"""
...
@registry.setter
def registry(self, value: str) -> None:
"""
Change the registry to use.
"""
...
def search(
self,
query: str,
offset: Optional[int] = None,
limit: Optional[int] = None,
) -> PackageSearchResult:
"""
Search for packages to install.
"""
...
def install(
self,
project_root: Optional[str] = None,
role: Optional[str] = None,
specs: Optional[Sequence[str]] = None,
omits: Optional[Sequence[str]] = None,
) -> PackageInstallResult:
"""
Install one or more packages.
"""
...
class Package(Object):
@property
def name(self) -> str:
"""
Package name.
"""
...
@property
def version(self) -> str:
"""
Package version.
"""
...
@property
def description(self) -> Optional[str]:
"""
Package description.
"""
...
@property
def url(self) -> Optional[str]:
"""
Package URL.
"""
...
class PackageSearchResult(Object):
@property
def packages(self) -> List[Package]:
"""
Batch of matching packages.
"""
...
@property
def total(self) -> int:
"""
Total matching packages.
"""
...
class PackageInstallResult(Object):
@property
def packages(self) -> List[Package]:
"""
The toplevel packages that are installed.
"""
...
__version__: str
+622 -16
View File
@@ -145,6 +145,10 @@ typedef struct _PyPortalMembership PyPortalMembership;
typedef struct _PyPortalService PyPortalService;
typedef struct _PyEndpointParameters PyEndpointParameters;
typedef struct _PyCompiler PyCompiler;
typedef struct _PyPackageManager PyPackageManager;
typedef struct _PyPackage PyPackage;
typedef struct _PyPackageSearchResult PyPackageSearchResult;
typedef struct _PyPackageInstallResult PyPackageInstallResult;
typedef struct _PyFileMonitor PyFileMonitor;
typedef struct _PyIOStream PyIOStream;
typedef struct _PyCancellable PyCancellable;
@@ -298,6 +302,33 @@ struct _PyCompiler
PyGObject parent;
};
struct _PyPackageManager
{
PyGObject parent;
};
struct _PyPackage
{
PyGObject parent;
PyObject * name;
PyObject * version;
PyObject * description;
PyObject * url;
};
struct _PyPackageSearchResult
{
PyGObject parent;
PyObject * packages;
guint total;
};
struct _PyPackageInstallResult
{
PyGObject parent;
PyObject * packages;
};
struct _PyFileMonitor
{
PyGObject parent;
@@ -498,12 +529,42 @@ static gchar * frida_python_authentication_service_authenticate_finish (FridaAut
static void frida_python_authentication_service_do_authenticate (GTask * task, FridaPythonAuthenticationService * self);
static int PyCompiler_init (PyCompiler * self, PyObject * args, PyObject * kw);
static void PyCompiler_dealloc (PyCompiler * self);
static PyObject * PyCompiler_build (PyCompiler * self, PyObject * args, PyObject * kw);
static PyObject * PyCompiler_watch (PyCompiler * self, PyObject * args, PyObject * kw);
static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gchar * project_root_value, const gchar * source_maps_value,
const gchar * compression_value);
static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gchar * project_root_value, const gchar * output_format_value,
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 void PyPackageManager_dealloc (PyPackageManager * self);
static PyObject * PyPackageManager_repr (PyPackageManager * self);
static PyObject * PyPackageManager_get_registry (PyPackageManager * self, void * closure);
static int PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure);
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, const char * role_value,
PyObject * specs_value, PyObject * omits_value);
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 void PyFileMonitor_dealloc (PyFileMonitor * self);
static PyObject * PyFileMonitor_enable (PyFileMonitor * self);
static PyObject * PyFileMonitor_disable (PyFileMonitor * self);
@@ -725,6 +786,41 @@ static PyMethodDef PyCompiler_methods[] =
{ NULL }
};
static PyGetSetDef PyPackageManager_getset[] =
{
{ "registry", (getter) PyPackageManager_get_registry, (setter) PyPackageManager_set_registry, "The registry to use.", NULL },
{ NULL }
};
static PyMethodDef PyPackageManager_methods[] =
{
{ "search", (PyCFunction) PyPackageManager_search, METH_VARARGS | METH_KEYWORDS, "Search for packages to install." },
{ "install", (PyCFunction) PyPackageManager_install, METH_VARARGS | METH_KEYWORDS, "Install one or more packages." },
{ NULL }
};
static PyMemberDef PyPackage_members[] =
{
{ "name", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackage, name), READONLY, "Package name." },
{ "version", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackage, version), READONLY, "Package version." },
{ "description", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackage, description), READONLY, "Package description." },
{ "url", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackage, url), READONLY, "Package URL." },
{ NULL }
};
static PyMemberDef PyPackageSearchResult_members[] =
{
{ "packages", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackageSearchResult, packages), READONLY, "Batch of matching packages." },
{ "total", T_UINT, G_STRUCT_OFFSET (PyPackageSearchResult, total), READONLY, "Total matching packages." },
{ NULL }
};
static PyMemberDef PyPackageInstallResult_members[] =
{
{ "packages", T_OBJECT_EX, G_STRUCT_OFFSET (PyPackageInstallResult, packages), READONLY, "The toplevel packages that are installed." },
{ NULL }
};
static PyMethodDef PyFileMonitor_methods[] =
{
{ "enable", (PyCFunction) PyFileMonitor_enable, METH_NOARGS, "Enable the file monitor." },
@@ -871,14 +967,49 @@ PYFRIDA_DEFINE_TYPE ("_frida.EndpointParameters", EndpointParameters, GObject, N
);
PYFRIDA_DEFINE_TYPE ("_frida.Compiler", Compiler, GObject, NULL, frida_unref,
{ Py_tp_doc, "Frida File Monitor" },
{ Py_tp_doc, "Frida Compiler" },
{ Py_tp_init, PyCompiler_init },
{ Py_tp_dealloc, PyCompiler_dealloc },
{ Py_tp_methods, PyCompiler_methods },
);
PYFRIDA_DEFINE_TYPE ("_frida.PackageManager", PackageManager, GObject, NULL, frida_unref,
{ Py_tp_doc, "Frida Package Manager" },
{ Py_tp_init, PyPackageManager_init },
{ Py_tp_dealloc, PyPackageManager_dealloc },
{ Py_tp_repr, PyPackageManager_repr },
{ Py_tp_getset, PyPackageManager_getset },
{ Py_tp_methods, PyPackageManager_methods },
);
PYFRIDA_DEFINE_TYPE ("_frida.Package", Package, GObject, PyPackage_init_from_handle, g_object_unref,
{ 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 },
);
PYFRIDA_DEFINE_TYPE ("_frida.PackageSearchResult", PackageSearchResult, GObject, PyPackageSearchResult_init_from_handle, g_object_unref,
{ 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 },
);
PYFRIDA_DEFINE_TYPE ("_frida.PackageInstallResult", PackageInstallResult, GObject, PyPackageInstallResult_init_from_handle, g_object_unref,
{ 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 },
);
PYFRIDA_DEFINE_TYPE ("_frida.FileMonitor", FileMonitor, GObject, NULL, frida_unref,
{ Py_tp_doc, "Frida File Monitor" },
{ Py_tp_init, PyFileMonitor_init },
{ Py_tp_dealloc, PyFileMonitor_dealloc },
{ Py_tp_methods, PyFileMonitor_methods },
);
@@ -4751,37 +4882,48 @@ frida_python_authentication_service_do_authenticate (GTask * task, FridaPythonAu
static int
PyCompiler_init (PyCompiler * self, PyObject * args, PyObject * kw)
{
PyDeviceManager * manager;
if (PyGObject_tp_init ((PyObject *) self, args, kw) < 0)
return -1;
if (!PyArg_ParseTuple (args, "O!", PYFRIDA_TYPE_OBJECT (DeviceManager), &manager))
return -1;
g_atomic_int_inc (&toplevel_objects_alive);
PyGObject_take_handle (&self->parent, frida_compiler_new (PY_GOBJECT_HANDLE (manager)), PYFRIDA_TYPE (Compiler));
PyGObject_take_handle (&self->parent, frida_compiler_new (NULL), PYFRIDA_TYPE (Compiler));
return 0;
}
static void
PyCompiler_dealloc (PyCompiler * self)
{
g_atomic_int_dec_and_test (&toplevel_objects_alive);
PyGObject_tp_dealloc ((PyObject *) self);
}
static PyObject *
PyCompiler_build (PyCompiler * self, PyObject * args, PyObject * kw)
{
PyObject * result;
static char * keywords[] = { "entrypoint", "project_root", "source_maps", "compression", NULL };
static char * keywords[] =
{ "entrypoint", "project_root", "output_format", "bundle_format", "type_check", "source_maps", "compression", NULL };
const char * entrypoint;
const char * project_root = NULL;
const char * output_format = NULL;
const char * bundle_format = NULL;
const char * type_check = NULL;
const char * source_maps = NULL;
const char * compression = NULL;
FridaBuildOptions * options;
GError * error = NULL;
gchar * bundle;
if (!PyArg_ParseTupleAndKeywords (args, kw, "s|sss", keywords, &entrypoint, &project_root, &source_maps, &compression))
if (!PyArg_ParseTupleAndKeywords (args, kw, "s|ssssss", keywords, &entrypoint, &project_root, &output_format, &bundle_format, &type_check,
&source_maps, &compression))
return NULL;
options = frida_build_options_new ();
if (!PyCompiler_set_options (FRIDA_COMPILER_OPTIONS (options), project_root, source_maps, compression))
if (!PyCompiler_set_options (FRIDA_COMPILER_OPTIONS (options), project_root, output_format, bundle_format, type_check, source_maps,
compression))
goto invalid_option_value;
Py_BEGIN_ALLOW_THREADS
@@ -4808,19 +4950,25 @@ invalid_option_value:
static PyObject *
PyCompiler_watch (PyCompiler * self, PyObject * args, PyObject * kw)
{
static char * keywords[] = { "entrypoint", "project_root", "source_maps", "compression", NULL };
static char * keywords[] =
{ "entrypoint", "project_root", "output_format", "bundle_format", "type_check", "source_maps", "compression", NULL };
const char * entrypoint;
const char * project_root = NULL;
const char * output_format = NULL;
const char * bundle_format = NULL;
const char * type_check = NULL;
const char * source_maps = NULL;
const char * compression = NULL;
FridaWatchOptions * options;
GError * error = NULL;
if (!PyArg_ParseTupleAndKeywords (args, kw, "s|sss", keywords, &entrypoint, &project_root, &source_maps, &compression))
if (!PyArg_ParseTupleAndKeywords (args, kw, "s|ssssss", keywords, &entrypoint, &project_root, &output_format, &bundle_format, &type_check,
&source_maps, &compression))
return NULL;
options = frida_watch_options_new ();
if (!PyCompiler_set_options (FRIDA_COMPILER_OPTIONS (options), project_root, source_maps, compression))
if (!PyCompiler_set_options (FRIDA_COMPILER_OPTIONS (options), project_root, output_format, bundle_format, type_check, source_maps,
compression))
goto invalid_option_value;
Py_BEGIN_ALLOW_THREADS
@@ -4842,12 +4990,42 @@ invalid_option_value:
}
static gboolean
PyCompiler_set_options (FridaCompilerOptions * options, const gchar * project_root_value, const gchar * source_maps_value,
const gchar * compression_value)
PyCompiler_set_options (FridaCompilerOptions * options, const gchar * project_root_value, const gchar * output_format_value,
const gchar * bundle_format_value, const gchar * type_check_value, const gchar * source_maps_value, const gchar * compression_value)
{
if (project_root_value != NULL)
frida_compiler_options_set_project_root (options, project_root_value);
if (output_format_value != NULL)
{
FridaOutputFormat output_format;
if (!PyGObject_unmarshal_enum (output_format_value, FRIDA_TYPE_OUTPUT_FORMAT, &output_format))
return FALSE;
frida_compiler_options_set_output_format (options, output_format);
}
if (bundle_format_value != NULL)
{
FridaBundleFormat bundle_format;
if (!PyGObject_unmarshal_enum (bundle_format_value, FRIDA_TYPE_BUNDLE_FORMAT, &bundle_format))
return FALSE;
frida_compiler_options_set_bundle_format (options, bundle_format);
}
if (type_check_value != NULL)
{
FridaTypeCheckMode type_check;
if (!PyGObject_unmarshal_enum (type_check_value, FRIDA_TYPE_TYPE_CHECK_MODE, &type_check))
return FALSE;
frida_compiler_options_set_type_check (options, type_check);
}
if (source_maps_value != NULL)
{
FridaSourceMaps source_maps;
@@ -4872,6 +5050,414 @@ PyCompiler_set_options (FridaCompilerOptions * options, const gchar * project_ro
}
static int
PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw)
{
if (PyGObject_tp_init ((PyObject *) self, args, kw) < 0)
return -1;
g_atomic_int_inc (&toplevel_objects_alive);
PyGObject_take_handle (&self->parent, frida_package_manager_new (), PYFRIDA_TYPE (PackageManager));
return 0;
}
static void
PyPackageManager_dealloc (PyPackageManager * self)
{
g_atomic_int_dec_and_test (&toplevel_objects_alive);
PyGObject_tp_dealloc ((PyObject *) self);
}
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_get_registry (PyPackageManager * self, void * closure)
{
return PyUnicode_FromString (frida_package_manager_get_registry (PY_GOBJECT_HANDLE (self)));
}
static int
PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure)
{
gchar * registry;
if (!PyGObject_unmarshal_string (val, &registry))
return -1;
frida_package_manager_set_registry (PY_GOBJECT_HANDLE (self), registry);
g_free (registry);
return 0;
}
static PyObject *
PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw)
{
FridaPackageSearchResult * result;
static char * keywords[] = { "query", "offset", "limit", NULL };
const char * query;
guint offset = G_MAXUINT;
guint limit = G_MAXUINT;
FridaPackageSearchOptions * options;
GError * error = NULL;
if (!PyArg_ParseTupleAndKeywords (args, kw, "s|II", keywords, &query, &offset, &limit))
return NULL;
options = frida_package_search_options_new ();
if (offset != G_MAXUINT)
frida_package_search_options_set_offset (options, offset);
if (limit != G_MAXUINT)
frida_package_search_options_set_limit (options, limit);
Py_BEGIN_ALLOW_THREADS
result = frida_package_manager_search_sync (PY_GOBJECT_HANDLE (self), query, options, g_cancellable_get_current (), &error);
Py_END_ALLOW_THREADS
g_object_unref (options);
if (error != NULL)
return PyFrida_raise (error);
return PyPackageSearchResult_new_take_handle (result);
}
static PyObject *
PyPackageManager_install (PyPackageManager * self, PyObject * args, PyObject * kw)
{
FridaPackageInstallResult * result;
static char * keywords[] = { "project_root", "role", "specs", "omits", NULL };
const char * project_root = NULL;
const char * role_value = NULL;
PyObject * specs = NULL;
PyObject * omits = NULL;
FridaPackageInstallOptions * options;
GError * error = NULL;
if (!PyArg_ParseTupleAndKeywords (args, kw, "|ssOO", keywords, &project_root, &role_value, &specs, &omits))
return NULL;
options = PyPackageManager_parse_install_options (project_root, role_value, specs, omits);
Py_BEGIN_ALLOW_THREADS
result = frida_package_manager_install_sync (PY_GOBJECT_HANDLE (self), options, g_cancellable_get_current (), &error);
Py_END_ALLOW_THREADS
g_object_unref (options);
if (error != NULL)
return PyFrida_raise (error);
return PyPackageInstallResult_new_take_handle (result);
}
static FridaPackageInstallOptions *
PyPackageManager_parse_install_options (const gchar * project_root, const char * role_value, PyObject * specs_value, PyObject * omits_value)
{
FridaPackageInstallOptions * options;
options = frida_package_install_options_new ();
if (project_root != NULL)
frida_package_install_options_set_project_root (options, project_root);
if (role_value != NULL)
{
FridaPackageRole role;
if (!PyGObject_unmarshal_enum (role_value, FRIDA_TYPE_PACKAGE_ROLE, &role))
goto propagate_error;
frida_package_install_options_set_role (options, role);
}
if (specs_value != NULL)
{
gint n, i;
n = PySequence_Size (specs_value);
if (n == -1)
goto propagate_error;
for (i = 0; i != n; i++)
{
PyObject * element;
gchar * spec = NULL;
element = PySequence_GetItem (specs_value, i);
if (element == NULL)
goto propagate_error;
PyGObject_unmarshal_string (element, &spec);
Py_DecRef (element);
if (spec == NULL)
goto propagate_error;
frida_package_install_options_add_spec (options, spec);
}
}
if (omits_value != NULL)
{
gint n, i;
n = PySequence_Size (omits_value);
if (n == -1)
goto propagate_error;
for (i = 0; i != n; i++)
{
PyObject * element;
gchar * str = NULL;
FridaPackageRole role;
element = PySequence_GetItem (omits_value, i);
if (element == NULL)
goto propagate_error;
PyGObject_unmarshal_string (element, &str);
Py_DecRef (element);
if (str == NULL)
goto propagate_error;
if (!PyGObject_unmarshal_enum (str, FRIDA_TYPE_PACKAGE_ROLE, &role))
goto propagate_error;
frida_package_install_options_add_omit (options, role);
}
}
return options;
propagate_error:
{
g_object_unref (options);
return NULL;
}
}
static PyObject *
PyPackage_new_take_handle (FridaPackage * handle)
{
return PyGObject_new_take_handle (handle, PYFRIDA_TYPE (Package));
}
static int
PyPackage_init (PyPackage * self, PyObject * args, PyObject * kw)
{
if (PyGObject_tp_init ((PyObject *) self, args, kw) < 0)
return -1;
self->name = NULL;
self->version = NULL;
self->description = NULL;
self->url = NULL;
return 0;
}
static void
PyPackage_init_from_handle (PyPackage * self, FridaPackage * handle)
{
self->name = PyUnicode_FromString (frida_package_get_name (handle));
self->version = PyUnicode_FromString (frida_package_get_version (handle));
self->description = PyGObject_marshal_string (frida_package_get_description (handle));
self->url = PyGObject_marshal_string (frida_package_get_url (handle));
}
static void
PyPackage_dealloc (PyPackage * self)
{
Py_DecRef (self->url);
Py_DecRef (self->description);
Py_DecRef (self->version);
Py_DecRef (self->name);
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)
{
PyObject * result;
gint n, i;
n = frida_package_list_size (list);
result = PyList_New (n);
for (i = 0; i != n; i++)
PyList_SetItem (result, i, PyPackage_new_take_handle (frida_package_list_get (list, i)));
return result;
}
static PyObject *
PyPackageSearchResult_new_take_handle (FridaPackageSearchResult * handle)
{
return PyGObject_new_take_handle (handle, PYFRIDA_TYPE (PackageSearchResult));
}
static int
PyPackageSearchResult_init (PyPackageSearchResult * self, PyObject * args, PyObject * kw)
{
if (PyGObject_tp_init ((PyObject *) self, args, kw) < 0)
return -1;
self->packages = NULL;
self->total = 0;
return 0;
}
static void
PyPackageSearchResult_init_from_handle (PyPackageSearchResult * self, FridaPackageSearchResult * handle)
{
self->packages = PyPackageList_marshal (frida_package_search_result_get_packages (handle));
self->total = frida_package_search_result_get_total (handle);
}
static void
PyPackageSearchResult_dealloc (PyPackageSearchResult * self)
{
Py_DecRef (self->packages);
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)
{
return PyGObject_new_take_handle (handle, PYFRIDA_TYPE (PackageInstallResult));
}
static int
PyPackageInstallResult_init (PyPackageInstallResult * self, PyObject * args, PyObject * kw)
{
if (PyGObject_tp_init ((PyObject *) self, args, kw) < 0)
return -1;
self->packages = NULL;
return 0;
}
static void
PyPackageInstallResult_init_from_handle (PyPackageInstallResult * self, FridaPackageInstallResult * handle)
{
self->packages = PyPackageList_marshal (frida_package_install_result_get_packages (handle));
}
static void
PyPackageInstallResult_dealloc (PyPackageInstallResult * self)
{
Py_DecRef (self->packages);
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)
{
@@ -4883,11 +5469,21 @@ PyFileMonitor_init (PyFileMonitor * self, PyObject * args, PyObject * kw)
if (!PyArg_ParseTuple (args, "s", &path))
return -1;
g_atomic_int_inc (&toplevel_objects_alive);
PyGObject_take_handle (&self->parent, frida_file_monitor_new (path), PYFRIDA_TYPE (FileMonitor));
return 0;
}
static void
PyFileMonitor_dealloc (PyFileMonitor * self)
{
g_atomic_int_dec_and_test (&toplevel_objects_alive);
PyGObject_tp_dealloc ((PyObject *) self);
}
static PyObject *
PyFileMonitor_enable (PyFileMonitor * self)
{
@@ -5037,6 +5633,12 @@ PyIOStream_read_all (PyIOStream * self, PyObject * args)
if (error == NULL)
{
if ((unsigned long) bytes_read != count)
{
Py_DecRef (buffer);
buffer = PyBytes_FromString ("");
}
result = buffer;
}
else
@@ -5438,6 +6040,10 @@ PyInit__frida (void)
PYFRIDA_REGISTER_TYPE (PortalService, FRIDA_TYPE_PORTAL_SERVICE);
PYFRIDA_REGISTER_TYPE (EndpointParameters, FRIDA_TYPE_ENDPOINT_PARAMETERS);
PYFRIDA_REGISTER_TYPE (Compiler, FRIDA_TYPE_COMPILER);
PYFRIDA_REGISTER_TYPE (PackageManager, FRIDA_TYPE_PACKAGE_MANAGER);
PYFRIDA_REGISTER_TYPE (Package, FRIDA_TYPE_PACKAGE);
PYFRIDA_REGISTER_TYPE (PackageSearchResult, FRIDA_TYPE_PACKAGE_SEARCH_RESULT);
PYFRIDA_REGISTER_TYPE (PackageInstallResult, FRIDA_TYPE_PACKAGE_INSTALL_RESULT);
PYFRIDA_REGISTER_TYPE (FileMonitor, FRIDA_TYPE_FILE_MONITOR);
PYFRIDA_REGISTER_TYPE (IOStream, G_TYPE_IO_STREAM);
PYFRIDA_REGISTER_TYPE (Cancellable, G_TYPE_CANCELLABLE);
+110 -3
View File
@@ -1557,7 +1557,7 @@ CompilerDiagnosticsCallback = Callable[[List[CompilerDiagnostic]], None]
class Compiler:
def __init__(self) -> None:
self._impl = _frida.Compiler(get_device_manager()._impl)
self._impl = _frida.Compiler()
def __repr__(self) -> str:
return repr(self._impl)
@@ -1567,10 +1567,20 @@ class Compiler:
self,
entrypoint: str,
project_root: Optional[str] = None,
output_format: Optional[str] = None,
bundle_format: Optional[str] = None,
type_check: Optional[str] = None,
source_maps: Optional[str] = None,
compression: Optional[str] = None,
) -> str:
kwargs = {"project_root": project_root, "source_maps": source_maps, "compression": compression}
kwargs = {
"project_root": project_root,
"output_format": output_format,
"bundle_format": bundle_format,
"type_check": type_check,
"source_maps": source_maps,
"compression": compression,
}
_filter_missing_kwargs(kwargs)
return self._impl.build(entrypoint, **kwargs)
@@ -1579,10 +1589,20 @@ class Compiler:
self,
entrypoint: str,
project_root: Optional[str] = None,
output_format: Optional[str] = None,
bundle_format: Optional[str] = None,
type_check: Optional[str] = None,
source_maps: Optional[str] = None,
compression: Optional[str] = None,
) -> None:
kwargs = {"project_root": project_root, "source_maps": source_maps, "compression": compression}
kwargs = {
"project_root": project_root,
"output_format": output_format,
"bundle_format": bundle_format,
"type_check": type_check,
"source_maps": source_maps,
"compression": compression,
}
_filter_missing_kwargs(kwargs)
return self._impl.watch(entrypoint, **kwargs)
@@ -1623,6 +1643,93 @@ class Compiler:
self._impl.off(signal, callback)
PackageManagerInstallProgressCallback = Callable[
[
Literal[
"initializing",
"preparing-dependencies",
"resolving-package",
"fetching-resource",
"package-already-installed",
"downloading-package",
"package-installed",
"resolving-and-installing-all",
"complete",
],
float,
Optional[str],
],
None,
]
PackageRole = Literal["runtime", "development", "optional", "peer"]
class PackageManager:
def __init__(self) -> None:
self._impl = _frida.PackageManager()
def __repr__(self) -> str:
return repr(self._impl)
@property
def registry(self):
return self._impl.registry
@registry.setter
def registry(self, value):
self._impl.registry = value
@cancellable
def search(
self,
query: str,
offset: Optional[int] = None,
limit: Optional[int] = None,
) -> _frida.PackageSearchResult:
kwargs = {
"offset": offset,
"limit": limit,
}
_filter_missing_kwargs(kwargs)
return self._impl.search(query, **kwargs)
@cancellable
def install(
self,
project_root: Optional[str] = None,
role: Optional[PackageRole] = None,
specs: Optional[Sequence[str]] = None,
omits: Optional[Sequence[PackageRole]] = None,
) -> _frida.PackageInstallResult:
kwargs: Dict[str, Any] = {
"project_root": project_root,
"role": role,
"specs": specs,
"omits": omits,
}
_filter_missing_kwargs(kwargs)
return self._impl.install(**kwargs)
@overload
def on(self, signal: Literal["install-progress"], callback: PackageManagerInstallProgressCallback) -> None: ...
@overload
def on(self, signal: str, callback: Callable[..., Any]) -> None: ...
def on(self, signal: str, callback: Callable[..., Any]) -> None:
self._impl.on(signal, callback)
@overload
def off(self, signal: Literal["install-progress"], callback: PackageManagerInstallProgressCallback) -> None: ...
@overload
def off(self, signal: str, callback: Callable[..., Any]) -> None: ...
def off(self, signal: str, callback: Callable[..., Any]) -> None:
self._impl.off(signal, callback)
class CancellablePollFD:
def __init__(self, cancellable: _Cancellable) -> None:
self.handle = cancellable.get_fd()
+1 -1
Submodule releng updated: 54cc29651c...2b34e1c008
+1 -1
View File
@@ -1,6 +1,6 @@
[wrap-git]
url = https://github.com/frida/frida-core.git
revision = 16.4.5
revision = 17.2.17
depth = 1
[provide]