Barney Gale
beb80d11ec
GH-113528: Deoptimise pathlib._abc.PurePathBase ( #113559 )
...
Apply pathlib's normalization and performance tuning in `pathlib.PurePath`, but not `pathlib._abc.PurePathBase`.
With this change, the pathlib ABCs do not normalize away alternate path separators, empty segments, or dot segments. A single string given to the initialiser will round-trip by default, i.e. `str(PurePathBase(my_string)) == my_string`. Implementors can set their own path domain-specific normalization scheme by overriding `__str__()`
Eliminating path normalization makes maintaining and caching the path's parts and string representation both optional and not very useful, so this commit moves the `_drv`, `_root`, `_tail_cached` and `_str` slots from `PurePathBase` to `PurePath`. Only `_raw_paths` and `_resolving` slots remain in `PurePathBase`. This frees the ABCs from the burden of some of pathlib's hardest-to-understand code.
2024-01-09 23:52:15 +00:00
..
2023-11-04 10:57:53 +01:00
2023-05-25 17:20:48 +02:00
2023-09-16 18:47:18 +02:00
2023-11-09 14:52:32 +01:00
2023-12-30 17:17:02 +09:00
2023-09-21 21:14:41 +02:00
2023-12-04 15:43:27 +00:00
2023-12-30 17:17:02 +09:00
2024-01-08 11:57:48 -08:00
2023-12-23 09:56:30 +00:00
2023-11-04 13:59:24 +00:00
2023-12-04 22:40:06 +00:00
2024-01-09 18:28:43 +01:00
2023-10-12 09:05:23 -04:00
2024-01-08 22:33:53 +00:00
2023-09-19 14:01:59 +02:00
2023-10-17 20:19:14 +02:00
2023-12-21 13:24:10 -08:00
2023-12-23 09:56:30 +00:00
2023-12-23 09:56:30 +00:00
2023-12-23 14:10:41 +00:00
2023-12-22 14:25:25 +00:00
2023-12-23 09:56:30 +00:00
2023-08-24 05:35:39 +02:00
2023-08-24 05:35:39 +02:00
2023-08-24 05:35:39 +02:00
2024-01-09 23:52:15 +00:00
2023-09-24 15:07:23 +01:00
2023-09-24 15:07:23 +01:00
2023-12-06 16:42:15 +02:00
2023-09-06 17:34:31 +02:00
2023-12-22 11:35:54 +01:00
2023-11-27 20:57:33 +02:00
2024-01-09 19:50:01 +00:00
2023-12-01 22:18:16 +00:00
2024-01-07 01:14:18 +00:00
2023-12-23 09:56:30 +00:00
2023-05-26 13:29:45 +00:00
2023-09-18 14:04:17 +01:00
2023-11-08 14:19:34 +00:00
2023-09-26 21:59:11 +00:00
2023-11-03 09:45:53 +02:00
2023-09-29 15:20:59 +02:00
2023-10-06 02:37:28 +02:00
2023-04-22 13:39:37 -06:00
2023-12-24 12:04:12 +02:00
2023-10-16 15:57:01 +01:00
2023-11-04 13:59:24 +00:00
2023-09-11 07:02:35 +00:00
2023-09-03 21:37:15 +00:00
2023-12-20 21:52:12 +09:00
2023-11-10 18:17:45 +01:00
2023-09-06 23:55:42 +03:00
2023-12-15 15:24:30 +02:00
2023-09-08 09:48:28 +00:00
2023-09-29 12:21:18 +00:00
2023-09-24 15:07:23 +01:00
2023-12-24 11:43:44 +02:00
2023-12-26 12:54:05 +02:00
2023-12-24 12:31:23 +02:00
2023-09-11 07:02:35 +00:00
2023-04-12 23:17:36 -05:00
2023-04-24 22:22:14 +00:00
2023-09-28 19:12:11 +02:00
2023-09-16 18:47:18 +02:00
2023-05-24 21:15:43 +00:00
2023-10-01 16:20:01 +02:00
2023-08-22 15:52:32 +02:00
2023-10-16 13:30:35 +00:00
2023-12-12 18:06:06 +00:00
2023-12-12 18:06:06 +00:00
2023-07-07 13:42:40 -07:00
2023-06-05 00:14:00 -07:00
2023-07-05 02:02:49 +09:00
2023-11-16 13:52:33 +00:00
2023-09-08 16:27:58 +00:00
2023-11-04 13:59:24 +00:00
2024-01-08 13:01:31 +02:00
2023-04-24 21:58:51 +01:00
2023-10-20 01:09:57 +03:00
2023-05-03 00:00:42 -07:00
2023-09-02 07:45:34 +03:00
2023-12-14 14:24:24 +02:00
2023-11-30 17:22:04 +02:00
2023-08-25 12:37:27 +03:00
2023-12-22 12:09:16 +01:00
2023-07-22 15:20:40 +02:00
2023-08-28 16:04:27 +03:00
2023-08-07 18:51:43 +03:00
2023-12-28 00:20:57 +01:00
2023-05-10 17:44:52 +01:00
2023-10-26 15:17:28 +09:00
2023-12-12 09:04:48 +09:00
2023-12-05 08:24:56 +01:00
2023-10-18 11:36:43 -07:00
2023-12-13 12:00:21 +00:00
2023-11-06 19:59:22 +09:00
2023-10-07 16:01:39 +03:00
2024-01-05 12:16:46 +00:00
2023-12-04 13:30:32 +02:00
2023-07-11 11:07:20 -04:00
2023-05-20 12:07:40 -04:00
2024-01-03 16:57:48 +00:00
2023-10-23 13:55:39 +00:00
2023-08-09 18:19:39 +00:00
2024-01-06 14:20:08 +00:00
2023-11-28 10:18:33 +02:00
2023-11-09 14:52:32 +01:00
2023-09-02 07:45:34 +03:00
2023-10-10 11:38:40 +02:00
2023-11-10 13:32:36 +00:00
2023-12-04 13:30:32 +02:00
2023-12-23 09:56:30 +00:00
2023-10-25 16:22:34 +01:00
2023-09-24 15:07:23 +01:00
2023-12-23 09:56:30 +00:00
2023-05-03 03:09:45 -06:00
2023-07-23 13:51:12 +00:00
2023-07-23 14:26:23 +00:00
2023-07-23 14:26:23 +00:00
2023-10-08 10:01:39 +03:00
2023-10-27 00:24:56 -05:00
2023-12-21 16:08:35 -06:00
2023-07-21 17:24:26 -07:00
2023-09-08 09:48:28 +00:00
2023-09-24 15:07:23 +01:00
2024-01-06 14:20:08 +00:00
2023-12-15 15:24:30 +02:00
2023-07-31 10:33:37 +02:00
2023-09-20 16:58:23 +00:00
2023-09-05 17:56:30 +03:00
2023-12-12 09:04:48 +09:00
2023-04-17 23:43:34 -05:00
2023-12-05 08:27:36 -08:00
2023-04-19 11:18:16 -05:00
2023-05-04 14:38:20 +00:00
2023-04-27 12:52:15 +01:00
2023-09-08 09:48:28 +00:00
2023-12-01 22:18:16 +00:00
2023-10-06 02:37:28 +02:00
2023-09-01 14:59:09 +02:00
2024-01-09 21:39:36 +01:00
2023-11-07 13:40:58 +02:00
2023-05-01 20:47:14 +01:00
2023-12-16 10:58:31 +00:00
2023-11-07 08:49:30 +00:00
2023-11-26 17:13:57 +00:00
2023-09-26 22:58:46 +03:00
2023-11-07 18:54:36 +00:00
2023-12-23 09:56:30 +00:00
2024-01-05 12:17:16 -08:00
2023-12-21 12:46:28 +00:00
2023-08-21 23:41:13 +00:00
2023-11-10 23:23:27 +00:00
2023-10-16 15:57:01 +01:00
2023-08-15 16:33:00 +01:00
2023-09-05 17:35:28 +03:00
2023-11-27 10:05:55 -08:00
2023-11-01 21:11:18 +00:00
2023-10-14 09:07:02 +03:00
2023-11-13 17:15:56 +00:00
2023-09-07 17:00:13 +03:00
2023-08-24 10:23:01 +02:00
2023-05-11 21:23:52 +00:00
2023-12-18 22:17:16 +02:00
2023-09-15 14:26:45 -07:00
2023-08-22 15:52:32 +02:00
2023-09-16 18:47:18 +02:00
2023-04-30 17:16:38 -07:00
2024-01-09 21:39:36 +01:00
2023-11-05 16:50:31 +00:00
2023-12-16 09:13:50 -06:00
2023-05-15 20:36:23 -07:00
2023-10-16 15:57:01 +01:00
2023-11-07 06:05:56 +00:00
2023-09-02 07:45:34 +03:00
2023-10-02 12:22:55 +00:00
2023-11-08 13:11:59 -07:00
2023-06-06 16:55:21 +02:00
2024-01-09 07:47:42 +00:00
2023-08-25 12:37:27 +03:00
2023-12-26 11:15:14 +02:00
2023-05-19 21:03:49 +01:00
2023-11-13 10:57:57 +01:00
2023-12-14 10:04:23 +00:00
2023-08-23 15:23:41 +03:00
2023-11-09 20:13:35 +09:00
2024-01-05 09:45:22 +00:00
2023-10-05 19:52:26 +02:00
2023-09-02 07:45:34 +03:00
2023-09-04 12:41:13 +03:00
2023-12-07 21:45:40 +00:00
2023-09-22 13:51:58 -07:00
2023-08-23 17:42:08 +02:00
2023-08-21 11:49:08 +02:00
2023-12-14 13:27:43 +02:00
2023-12-10 07:21:20 -08:00
2023-12-07 11:19:33 +00:00
2024-01-06 14:20:08 +00:00
2023-09-04 15:24:03 +03:00
2023-10-27 03:57:29 +00:00
2023-05-21 11:12:24 +01:00
2023-05-03 16:11:54 -07:00
2024-01-06 10:26:59 +01:00
2023-09-05 17:56:30 +03:00
2023-09-16 18:47:18 +02:00
2023-12-24 10:57:11 +00:00
2023-12-07 21:45:40 +00:00
2023-11-27 12:01:26 +02:00
2023-10-27 00:24:56 -05:00
2023-11-21 22:32:09 +09:00
2023-10-11 21:30:15 +00:00
2023-09-12 09:37:42 +03:00
2023-05-24 09:04:53 +00:00
2023-12-27 14:04:31 +00:00
2023-11-03 10:28:14 +02:00
2023-11-27 21:13:27 +00:00
2023-11-23 12:31:03 -06:00
2023-04-24 14:29:57 -04:00
2023-12-11 15:45:08 -05:00
2023-12-01 14:05:55 +00:00
2023-12-04 15:43:27 +00:00
2023-12-01 22:18:16 +00:00
2023-09-27 19:26:42 -07:00
2023-11-17 15:52:11 -08:00
2023-12-23 09:56:30 +00:00
2023-09-02 07:45:34 +03:00
2023-09-28 17:25:10 +00:00
2023-10-13 10:06:25 +02:00
2023-12-27 16:23:42 +00:00
2023-12-23 17:07:52 -08:00
2024-01-06 22:30:12 -08:00
2023-07-22 16:46:59 +02:00
2023-09-05 17:56:30 +03:00
2023-12-01 15:16:49 +00:00
2023-10-05 15:02:48 +00:00
2023-10-12 09:34:35 +02:00
2023-11-28 16:15:39 -08:00
2023-11-07 22:36:13 +00:00
2023-12-13 22:23:13 +02:00
2023-12-08 12:05:56 -06:00
2023-11-30 17:22:04 +02:00
2023-10-27 12:19:34 +09:00
2023-12-26 19:26:17 +00:00
2023-11-26 14:29:52 +00:00
2023-10-04 19:47:41 +03:00
2023-10-16 15:57:01 +01:00
2024-01-09 15:58:26 +00:00
2023-12-22 17:12:08 +02:00
2023-12-22 14:25:25 +00:00
2023-12-21 20:12:07 +02:00
2024-01-06 10:27:49 +00:00
2023-11-02 16:38:08 +00:00
2023-11-16 13:52:33 +00:00
2023-12-12 08:24:31 -07:00
2024-01-02 16:29:08 -05:00
2023-05-24 09:59:18 +00:00
2023-12-19 11:04:43 -08:00
2023-08-07 14:11:39 +03:00
2023-12-07 17:21:36 +00:00
2023-10-10 13:35:15 +02:00
2023-11-04 13:59:24 +00:00
2023-12-12 16:54:39 +00:00
2023-07-01 22:27:18 +00:00
2023-09-07 20:13:32 +02:00
2023-12-11 11:44:22 +00:00
2023-09-07 21:28:18 +03:00
2023-12-06 23:29:54 +01:00
2023-08-31 18:33:34 +02:00
2023-11-27 20:57:33 +02:00
2023-10-14 08:50:41 +03:00
2023-09-01 01:18:15 -07:00
2023-11-08 14:19:34 +00:00
2023-06-05 06:07:17 -07:00
2023-09-05 13:46:17 +00:00
2023-10-31 21:02:42 +00:00
2023-09-14 10:20:32 -06:00
2023-12-23 09:56:30 +00:00
2024-01-05 01:01:48 +00:00
2023-09-12 09:37:42 +03:00
2023-11-04 15:56:58 +01:00
2023-09-20 16:58:23 +00:00
2023-10-05 14:26:44 +01:00
2023-09-16 18:47:18 +02:00
2023-04-25 18:02:27 -07:00
2023-09-05 17:56:30 +03:00
2023-06-06 21:17:45 +00:00
2023-09-05 17:56:30 +03:00
2023-05-17 01:49:20 -07:00
2023-11-22 14:55:25 -08:00
2023-11-17 16:08:23 -08:00
2023-05-23 17:11:29 +03:00
2023-10-06 02:37:28 +02:00
2023-09-18 14:04:17 +01:00
2023-07-10 16:29:03 -04:00
2023-12-13 23:41:43 +00:00
2023-05-31 12:09:41 +00:00
2023-09-02 07:45:34 +03:00
2023-10-13 10:06:25 +02:00
2023-12-21 14:43:38 +01:00
2024-01-09 21:39:36 +01:00
2023-04-17 12:30:48 -06:00
2023-12-15 13:42:37 +00:00
2023-09-04 13:04:32 +03:00
2023-12-22 14:25:25 +00:00
2023-09-05 17:56:30 +03:00
2023-07-07 22:02:13 +00:00
2023-12-05 21:39:28 +02:00
2023-04-12 23:17:36 -05:00