Commit 096329f
The current C implementations **crash** if the input includes a surrogate
Unicode code point, which is not possible to encode in UTF-8.
Important notes:
1. It is possible to pass a non-UTF-8 string as a separator to the
`.isoformat()` methods.
2. The pure-Python `datetime.fromisoformat()` implementation accepts
strings with a surrogate as the separator.
In `datetime.fromisoformat()`, in the special case of non-UTF-8 separators,
this implementation will take a performance hit by making a copy of the
input string and replacing the separator with 'T'.
Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
Co-authored-by: Paul Ganssle <paul@ganssle.io>
1 parent c33bb5d commit 096329f
File tree
3 files changed
+84
-10
lines changed- Lib/test
- Misc/NEWS.d/next/Library
- Modules
3 files changed
+84
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1667 | 1667 | | |
1668 | 1668 | | |
1669 | 1669 | | |
| 1670 | + | |
1670 | 1671 | | |
1671 | 1672 | | |
1672 | 1673 | | |
| |||
1675 | 1676 | | |
1676 | 1677 | | |
1677 | 1678 | | |
| 1679 | + | |
1678 | 1680 | | |
1679 | 1681 | | |
1680 | 1682 | | |
| |||
2587 | 2589 | | |
2588 | 2590 | | |
2589 | 2591 | | |
2590 | | - | |
| 2592 | + | |
| 2593 | + | |
2591 | 2594 | | |
2592 | 2595 | | |
2593 | 2596 | | |
| |||
2639 | 2642 | | |
2640 | 2643 | | |
2641 | 2644 | | |
| 2645 | + | |
2642 | 2646 | | |
2643 | 2647 | | |
2644 | 2648 | | |
| |||
2652 | 2656 | | |
2653 | 2657 | | |
2654 | 2658 | | |
| 2659 | + | |
| 2660 | + | |
2655 | 2661 | | |
2656 | 2662 | | |
2657 | 2663 | | |
| |||
3521 | 3527 | | |
3522 | 3528 | | |
3523 | 3529 | | |
| 3530 | + | |
3524 | 3531 | | |
3525 | 3532 | | |
3526 | 3533 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2883 | 2883 | | |
2884 | 2884 | | |
2885 | 2885 | | |
| 2886 | + | |
| 2887 | + | |
| 2888 | + | |
2886 | 2889 | | |
2887 | 2890 | | |
2888 | 2891 | | |
| |||
2894 | 2897 | | |
2895 | 2898 | | |
2896 | 2899 | | |
2897 | | - | |
2898 | | - | |
2899 | | - | |
| 2900 | + | |
2900 | 2901 | | |
2901 | 2902 | | |
2902 | 2903 | | |
| 2904 | + | |
| 2905 | + | |
| 2906 | + | |
| 2907 | + | |
| 2908 | + | |
2903 | 2909 | | |
2904 | 2910 | | |
2905 | 2911 | | |
| |||
4258 | 4264 | | |
4259 | 4265 | | |
4260 | 4266 | | |
| 4267 | + | |
| 4268 | + | |
| 4269 | + | |
| 4270 | + | |
4261 | 4271 | | |
4262 | 4272 | | |
4263 | 4273 | | |
4264 | 4274 | | |
4265 | 4275 | | |
4266 | 4276 | | |
4267 | 4277 | | |
4268 | | - | |
4269 | | - | |
| 4278 | + | |
4270 | 4279 | | |
4271 | 4280 | | |
4272 | 4281 | | |
| |||
4286 | 4295 | | |
4287 | 4296 | | |
4288 | 4297 | | |
| 4298 | + | |
| 4299 | + | |
| 4300 | + | |
| 4301 | + | |
4289 | 4302 | | |
4290 | 4303 | | |
4291 | 4304 | | |
| |||
4839 | 4852 | | |
4840 | 4853 | | |
4841 | 4854 | | |
| 4855 | + | |
| 4856 | + | |
| 4857 | + | |
| 4858 | + | |
| 4859 | + | |
| 4860 | + | |
| 4861 | + | |
| 4862 | + | |
| 4863 | + | |
| 4864 | + | |
| 4865 | + | |
| 4866 | + | |
| 4867 | + | |
| 4868 | + | |
| 4869 | + | |
| 4870 | + | |
| 4871 | + | |
| 4872 | + | |
| 4873 | + | |
| 4874 | + | |
| 4875 | + | |
| 4876 | + | |
| 4877 | + | |
| 4878 | + | |
| 4879 | + | |
| 4880 | + | |
| 4881 | + | |
4842 | 4882 | | |
4843 | 4883 | | |
4844 | 4884 | | |
| |||
4848 | 4888 | | |
4849 | 4889 | | |
4850 | 4890 | | |
| 4891 | + | |
| 4892 | + | |
| 4893 | + | |
| 4894 | + | |
| 4895 | + | |
| 4896 | + | |
4851 | 4897 | | |
4852 | 4898 | | |
4853 | | - | |
| 4899 | + | |
| 4900 | + | |
| 4901 | + | |
| 4902 | + | |
| 4903 | + | |
| 4904 | + | |
4854 | 4905 | | |
4855 | 4906 | | |
4856 | 4907 | | |
| |||
4883 | 4934 | | |
4884 | 4935 | | |
4885 | 4936 | | |
4886 | | - | |
4887 | | - | |
| 4937 | + | |
4888 | 4938 | | |
4889 | 4939 | | |
4890 | 4940 | | |
4891 | 4941 | | |
4892 | | - | |
| 4942 | + | |
4893 | 4943 | | |
4894 | 4944 | | |
4895 | 4945 | | |
4896 | 4946 | | |
4897 | 4947 | | |
4898 | 4948 | | |
| 4949 | + | |
| 4950 | + | |
| 4951 | + | |
4899 | 4952 | | |
| 4953 | + | |
| 4954 | + | |
| 4955 | + | |
| 4956 | + | |
| 4957 | + | |
| 4958 | + | |
| 4959 | + | |
| 4960 | + | |
| 4961 | + | |
| 4962 | + | |
4900 | 4963 | | |
4901 | 4964 | | |
4902 | 4965 | | |
| |||
0 commit comments