Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:python
python-cattrs
fix-test-no-nans.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File fix-test-no-nans.patch of Package python-cattrs
From 96ed9a1c972814c379f9ea8faa3413aacd4ce6cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tin=20Tvrtkovi=C4=87?= <tinchester@gmail.com> Date: Thu, 29 Aug 2024 18:40:35 +0200 Subject: [PATCH] Stop generating nan values in tests to work with latest attrs (#576) --- pdm.lock | 172 ++++++++++++++++++++---------------- pyproject.toml | 8 +- tests/test_baseconverter.py | 18 ++-- tests/test_converter.py | 38 ++++---- tests/test_gen_dict.py | 10 ++- tests/typed.py | 51 ++++++++--- tests/untyped.py | 2 +- 7 files changed, 176 insertions(+), 123 deletions(-) Index: cattrs-24.1.2/pdm.lock =================================================================== --- cattrs-24.1.2.orig/pdm.lock +++ cattrs-24.1.2/pdm.lock @@ -4,10 +4,10 @@ [metadata] groups = ["default", "bench", "bson", "cbor2", "docs", "lint", "msgpack", "msgspec", "orjson", "pyyaml", "test", "tomlkit", "ujson"] strategy = ["cross_platform"] -lock_version = "4.4.1" -content_hash = "sha256:80497e8d5b756fc000f8a8b58b2ae6e6501168628e264daf7de6049fa45b096e" +lock_version = "4.5.0" +content_hash = "sha256:c32bd648a77ba4ea8214234796f8785a16e071604a46fd16737d4fc15ad7dba0" -[[package]] +[[metadata.targets]] name = "alabaster" version = "0.7.13" requires_python = ">=3.6" @@ -249,62 +249,82 @@ files = [ [[package]] name = "coverage" -version = "7.4.0" +version = "7.6.1" requires_python = ">=3.8" summary = "Code coverage measurement for Python" files = [ - {file = "coverage-7.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36b0ea8ab20d6a7564e89cb6135920bc9188fb5f1f7152e94e8300b7b189441a"}, - {file = "coverage-7.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0676cd0ba581e514b7f726495ea75aba3eb20899d824636c6f59b0ed2f88c471"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ca5c71a5a1765a0f8f88022c52b6b8be740e512980362f7fdbb03725a0d6b9"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c97726520f784239f6c62506bc70e48d01ae71e9da128259d61ca5e9788516"}, - {file = "coverage-7.4.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:815ac2d0f3398a14286dc2cea223a6f338109f9ecf39a71160cd1628786bc6f5"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:80b5ee39b7f0131ebec7968baa9b2309eddb35b8403d1869e08f024efd883566"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5b2ccb7548a0b65974860a78c9ffe1173cfb5877460e5a229238d985565574ae"}, - {file = "coverage-7.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:995ea5c48c4ebfd898eacb098164b3cc826ba273b3049e4a889658548e321b43"}, - {file = "coverage-7.4.0-cp310-cp310-win32.whl", hash = "sha256:79287fd95585ed36e83182794a57a46aeae0b64ca53929d1176db56aacc83451"}, - {file = "coverage-7.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:5b14b4f8760006bfdb6e08667af7bc2d8d9bfdb648351915315ea17645347137"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:04387a4a6ecb330c1878907ce0dc04078ea72a869263e53c72a1ba5bbdf380ca"}, - {file = "coverage-7.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ea81d8f9691bb53f4fb4db603203029643caffc82bf998ab5b59ca05560f4c06"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74775198b702868ec2d058cb92720a3c5a9177296f75bd97317c787daf711505"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76f03940f9973bfaee8cfba70ac991825611b9aac047e5c80d499a44079ec0bc"}, - {file = "coverage-7.4.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:485e9f897cf4856a65a57c7f6ea3dc0d4e6c076c87311d4bc003f82cfe199d25"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6ae8c9d301207e6856865867d762a4b6fd379c714fcc0607a84b92ee63feff70"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bf477c355274a72435ceb140dc42de0dc1e1e0bf6e97195be30487d8eaaf1a09"}, - {file = "coverage-7.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:83c2dda2666fe32332f8e87481eed056c8b4d163fe18ecc690b02802d36a4d26"}, - {file = "coverage-7.4.0-cp311-cp311-win32.whl", hash = "sha256:697d1317e5290a313ef0d369650cfee1a114abb6021fa239ca12b4849ebbd614"}, - {file = "coverage-7.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:26776ff6c711d9d835557ee453082025d871e30b3fd6c27fcef14733f67f0590"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:13eaf476ec3e883fe3e5fe3707caeb88268a06284484a3daf8250259ef1ba143"}, - {file = "coverage-7.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846f52f46e212affb5bcf131c952fb4075b55aae6b61adc9856222df89cbe3e2"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26f66da8695719ccf90e794ed567a1549bb2644a706b41e9f6eae6816b398c4a"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:164fdcc3246c69a6526a59b744b62e303039a81e42cfbbdc171c91a8cc2f9446"}, - {file = "coverage-7.4.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:316543f71025a6565677d84bc4df2114e9b6a615aa39fb165d697dba06a54af9"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bb1de682da0b824411e00a0d4da5a784ec6496b6850fdf8c865c1d68c0e318dd"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0e8d06778e8fbffccfe96331a3946237f87b1e1d359d7fbe8b06b96c95a5407a"}, - {file = "coverage-7.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a56de34db7b7ff77056a37aedded01b2b98b508227d2d0979d373a9b5d353daa"}, - {file = "coverage-7.4.0-cp312-cp312-win32.whl", hash = "sha256:51456e6fa099a8d9d91497202d9563a320513fcf59f33991b0661a4a6f2ad450"}, - {file = "coverage-7.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd3c1e4cb2ff0083758f09be0f77402e1bdf704adb7f89108007300a6da587d0"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e9d1bf53c4c8de58d22e0e956a79a5b37f754ed1ffdbf1a260d9dcfa2d8a325e"}, - {file = "coverage-7.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:109f5985182b6b81fe33323ab4707011875198c41964f014579cf82cebf2bb85"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cc9d4bc55de8003663ec94c2f215d12d42ceea128da8f0f4036235a119c88ac"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc6d65b21c219ec2072c1293c505cf36e4e913a3f936d80028993dd73c7906b1"}, - {file = "coverage-7.4.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a10a4920def78bbfff4eff8a05c51be03e42f1c3735be42d851f199144897ba"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b8e99f06160602bc64da35158bb76c73522a4010f0649be44a4e167ff8555952"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7d360587e64d006402b7116623cebf9d48893329ef035278969fa3bbf75b697e"}, - {file = "coverage-7.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:29f3abe810930311c0b5d1a7140f6395369c3db1be68345638c33eec07535105"}, - {file = "coverage-7.4.0-cp38-cp38-win32.whl", hash = "sha256:5040148f4ec43644702e7b16ca864c5314ccb8ee0751ef617d49aa0e2d6bf4f2"}, - {file = "coverage-7.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:9864463c1c2f9cb3b5db2cf1ff475eed2f0b4285c2aaf4d357b69959941aa555"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:936d38794044b26c99d3dd004d8af0035ac535b92090f7f2bb5aa9c8e2f5cd42"}, - {file = "coverage-7.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:799c8f873794a08cdf216aa5d0531c6a3747793b70c53f70e98259720a6fe2d7"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7defbb9737274023e2d7af02cac77043c86ce88a907c58f42b580a97d5bcca9"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1526d265743fb49363974b7aa8d5899ff64ee07df47dd8d3e37dcc0818f09ed"}, - {file = "coverage-7.4.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf635a52fc1ea401baf88843ae8708591aa4adff875e5c23220de43b1ccf575c"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:756ded44f47f330666843b5781be126ab57bb57c22adbb07d83f6b519783b870"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0eb3c2f32dabe3a4aaf6441dde94f35687224dfd7eb2a7f47f3fd9428e421058"}, - {file = "coverage-7.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bfd5db349d15c08311702611f3dccbef4b4e2ec148fcc636cf8739519b4a5c0f"}, - {file = "coverage-7.4.0-cp39-cp39-win32.whl", hash = "sha256:53d7d9158ee03956e0eadac38dfa1ec8068431ef8058fe6447043db1fb40d932"}, - {file = "coverage-7.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfd2a8b6b0d8e66e944d47cdec2f47c48fef2ba2f2dff5a9a75757f64172857e"}, - {file = "coverage-7.4.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:c530833afc4707fe48524a44844493f36d8727f04dcce91fb978c414a8556cc6"}, - {file = "coverage-7.4.0.tar.gz", hash = "sha256:707c0f58cb1712b8809ece32b68996ee1e609f71bd14615bd8f87a1293cb610e"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, + {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, + {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, + {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, + {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, + {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, + {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, + {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, + {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, + {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, + {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, + {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, + {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, + {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, + {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, + {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, + {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, ] [[package]] @@ -339,12 +359,12 @@ files = [ [[package]] name = "execnet" -version = "2.0.2" -requires_python = ">=3.7" +version = "2.1.1" +requires_python = ">=3.8" summary = "execnet: rapid multi-Python deployment" files = [ - {file = "execnet-2.0.2-py3-none-any.whl", hash = "sha256:88256416ae766bc9e8895c76a87928c0012183da3cc4fc18016e6f050e025f41"}, - {file = "execnet-2.0.2.tar.gz", hash = "sha256:cc59bc4423742fd71ad227122eb0dd44db51efb3dc4095b45ac9a08c770096af"}, + {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, + {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] [[package]] @@ -365,17 +385,17 @@ files = [ [[package]] name = "hypothesis" -version = "6.90.0" +version = "6.111.2" requires_python = ">=3.8" summary = "A library for property-based testing" dependencies = [ - "attrs>=19.2.0", + "attrs>=22.2.0", "exceptiongroup>=1.0.0; python_version < \"3.11\"", "sortedcontainers<3.0.0,>=2.1.0", ] files = [ - {file = "hypothesis-6.90.0-py3-none-any.whl", hash = "sha256:4d7d3d3d5e4e4a9954b448fc8220cd73573e3e32adb00059f6907de6b55dcd5e"}, - {file = "hypothesis-6.90.0.tar.gz", hash = "sha256:0ab33900b9362318bd03d911a77a0dda8629c1877420074d87ae466919f6e4c0"}, + {file = "hypothesis-6.111.2-py3-none-any.whl", hash = "sha256:055e8228958e22178d6077e455fd86a72044d02dac130dbf9c8b31e161b9809c"}, + {file = "hypothesis-6.111.2.tar.gz", hash = "sha256:0496ad28c7240ee9ba89fcc7fb1dc74e89f3e40fbcbbb5f73c0091558dec8e6e"}, ] [[package]] @@ -897,12 +917,12 @@ files = [ [[package]] name = "pluggy" -version = "1.3.0" +version = "1.5.0" requires_python = ">=3.8" summary = "plugin and hook calling mechanisms for python" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [[package]] @@ -1030,7 +1050,7 @@ files = [ [[package]] name = "pytest" -version = "8.0.0" +version = "8.3.2" requires_python = ">=3.8" summary = "pytest: simple powerful testing with Python" dependencies = [ @@ -1038,12 +1058,12 @@ dependencies = [ "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", "iniconfig", "packaging", - "pluggy<2.0,>=1.3.0", - "tomli>=1.0.0; python_version < \"3.11\"", + "pluggy<2,>=1.5", + "tomli>=1; python_version < \"3.11\"", ] files = [ - {file = "pytest-8.0.0-py3-none-any.whl", hash = "sha256:50fb9cbe836c3f20f0dfa99c565201fb75dc54c8d76373cd1bde06b06657bdb6"}, - {file = "pytest-8.0.0.tar.gz", hash = "sha256:249b1b0864530ba251b7438274c4d251c58d868edaaec8762893ad4a0d71c36c"}, + {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, + {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, ] [[package]] @@ -1062,16 +1082,16 @@ files = [ [[package]] name = "pytest-xdist" -version = "3.4.0" -requires_python = ">=3.7" +version = "3.6.1" +requires_python = ">=3.8" summary = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" dependencies = [ - "execnet>=1.1", - "pytest>=6.2.0", + "execnet>=2.1", + "pytest>=7.0.0", ] files = [ - {file = "pytest-xdist-3.4.0.tar.gz", hash = "sha256:3a94a931dd9e268e0b871a877d09fe2efb6175c2c23d60d56a6001359002b832"}, - {file = "pytest_xdist-3.4.0-py3-none-any.whl", hash = "sha256:e513118bf787677a427e025606f55e95937565e06dfaac8d87f55301e57ae607"}, + {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, + {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, ] [[package]] Index: cattrs-24.1.2/pyproject.toml =================================================================== --- cattrs-24.1.2.orig/pyproject.toml +++ cattrs-24.1.2/pyproject.toml @@ -7,13 +7,13 @@ lint = [ "ruff>=0.0.277", ] test = [ - "hypothesis>=6.79.4", - "pytest>=7.4.0", + "hypothesis>=6.111.2", + "pytest>=8.3.2", "pytest-benchmark>=4.0.0", "immutables>=0.20", "typing-extensions>=4.7.1", - "coverage>=7.4.0", - "pytest-xdist>=3.4.0", + "coverage>=7.6.1", + "pytest-xdist>=3.6.1", ] docs = [ "sphinx>=5.3.0", Index: cattrs-24.1.2/tests/test_baseconverter.py =================================================================== --- cattrs-24.1.2.orig/tests/test_baseconverter.py +++ cattrs-24.1.2/tests/test_baseconverter.py @@ -15,7 +15,7 @@ from .typed import nested_typed_classes, unstructure_strats = one_of(just(s) for s in UnstructureStrategy) -@given(simple_typed_classes(newtypes=False), unstructure_strats) +@given(simple_typed_classes(newtypes=False, allow_nan=False), unstructure_strats) def test_simple_roundtrip(cls_and_vals, strat): """ Simple classes with metadata can be unstructured and restructured. @@ -27,7 +27,10 @@ def test_simple_roundtrip(cls_and_vals, assert inst == converter.structure(converter.unstructure(inst), cl) -@given(simple_typed_attrs(defaults=True, newtypes=False), unstructure_strats) +@given( + simple_typed_attrs(defaults=True, newtypes=False, allow_nan=False), + unstructure_strats, +) def test_simple_roundtrip_defaults(attr_and_strat, strat): """ Simple classes with metadata can be unstructured and restructured. @@ -43,7 +46,7 @@ def test_simple_roundtrip_defaults(attr_ assert inst == converter.structure(converter.unstructure(inst), cl) -@given(nested_typed_classes(newtypes=False)) +@given(nested_typed_classes(newtypes=False, allow_nan=False)) def test_nested_roundtrip(cls_and_vals): """ Nested classes with metadata can be unstructured and restructured. @@ -55,7 +58,7 @@ def test_nested_roundtrip(cls_and_vals): assert inst == converter.structure(converter.unstructure(inst), cl) -@given(nested_typed_classes(kw_only=False, newtypes=False)) +@given(nested_typed_classes(kw_only=False, newtypes=False, allow_nan=False)) def test_nested_roundtrip_tuple(cls_and_vals): """ Nested classes with metadata can be unstructured and restructured. @@ -70,8 +73,8 @@ def test_nested_roundtrip_tuple(cls_and_ @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) @given( - simple_typed_classes(defaults=False, newtypes=False), - simple_typed_classes(defaults=False, newtypes=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), unstructure_strats, ) def test_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): @@ -113,8 +116,8 @@ def test_union_field_roundtrip(cl_and_va @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) @given( - simple_typed_classes(defaults=False, newtypes=False), - simple_typed_classes(defaults=False, newtypes=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), unstructure_strats, ) def test_310_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): @@ -153,7 +156,7 @@ def test_310_union_field_roundtrip(cl_an assert inst == converter.structure(converter.unstructure(inst), C) -@given(simple_typed_classes(defaults=False, newtypes=False)) +@given(simple_typed_classes(defaults=False, newtypes=False, allow_nan=False)) def test_optional_field_roundtrip(cl_and_vals): """ Classes with optional fields can be unstructured and structured. @@ -175,7 +178,7 @@ def test_optional_field_roundtrip(cl_and @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") -@given(simple_typed_classes(defaults=False, newtypes=False)) +@given(simple_typed_classes(defaults=False, newtypes=False, allow_nan=False)) def test_310_optional_field_roundtrip(cl_and_vals): """ Classes with optional fields can be unstructured and structured. Index: cattrs-24.1.2/tests/test_converter.py =================================================================== --- cattrs-24.1.2.orig/tests/test_converter.py +++ cattrs-24.1.2/tests/test_converter.py @@ -40,7 +40,10 @@ from .typed import ( unstructure_strats = one_of(just(s) for s in UnstructureStrategy) -@given(simple_typed_classes() | simple_typed_dataclasses(), booleans()) +@given( + simple_typed_classes(allow_nan=False) | simple_typed_dataclasses(allow_nan=False), + booleans(), +) def test_simple_roundtrip(cls_and_vals, detailed_validation): """ Simple classes with metadata can be unstructured and restructured. @@ -54,8 +57,8 @@ def test_simple_roundtrip(cls_and_vals, @given( - simple_typed_classes(kw_only=False, newtypes=False) - | simple_typed_dataclasses(newtypes=False), + simple_typed_classes(kw_only=False, newtypes=False, allow_nan=False) + | simple_typed_dataclasses(newtypes=False, allow_nan=False), booleans(), ) def test_simple_roundtrip_tuple(cls_and_vals, dv: bool): @@ -72,7 +75,7 @@ def test_simple_roundtrip_tuple(cls_and_ assert inst == converter.structure(unstructured, cl) -@given(simple_typed_attrs(defaults=True)) +@given(simple_typed_attrs(defaults=True, allow_nan=False)) def test_simple_roundtrip_defaults(attr_and_vals): """ Simple classes with metadata can be unstructured and restructured. @@ -87,7 +90,9 @@ def test_simple_roundtrip_defaults(attr_ assert inst == converter.structure(converter.unstructure(inst), cl) -@given(simple_typed_attrs(defaults=True, kw_only=False, newtypes=False)) +@given( + simple_typed_attrs(defaults=True, kw_only=False, newtypes=False, allow_nan=False) +) def test_simple_roundtrip_defaults_tuple(attr_and_vals): """ Simple classes with metadata can be unstructured and restructured. @@ -103,7 +108,8 @@ def test_simple_roundtrip_defaults_tuple @given( - simple_typed_classes(newtypes=False) | simple_typed_dataclasses(newtypes=False), + simple_typed_classes(newtypes=False, allow_nan=False) + | simple_typed_dataclasses(newtypes=False, allow_nan=False), unstructure_strats, ) def test_simple_roundtrip_with_extra_keys_forbidden(cls_and_vals, strat): @@ -200,7 +206,7 @@ def test_forbid_extra_keys_nested_overri assert cve.value.exceptions[0].extra_fields == {"b"} -@given(nested_typed_classes(defaults=True, min_attrs=1), booleans()) +@given(nested_typed_classes(defaults=True, min_attrs=1, allow_nan=False), booleans()) def test_nested_roundtrip(cls_and_vals, omit_if_default): """ Nested classes with metadata can be unstructured and restructured. @@ -214,7 +220,9 @@ def test_nested_roundtrip(cls_and_vals, @given( - nested_typed_classes(defaults=True, min_attrs=1, kw_only=False, newtypes=False), + nested_typed_classes( + defaults=True, min_attrs=1, kw_only=False, newtypes=False, allow_nan=False + ), booleans(), ) def test_nested_roundtrip_tuple(cls_and_vals, omit_if_default: bool): @@ -233,8 +241,8 @@ def test_nested_roundtrip_tuple(cls_and_ @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) @given( - simple_typed_classes(defaults=False, newtypes=False), - simple_typed_classes(defaults=False, newtypes=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), unstructure_strats, ) def test_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): @@ -278,8 +286,8 @@ def test_union_field_roundtrip(cl_and_va @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") @settings(suppress_health_check=[HealthCheck.filter_too_much, HealthCheck.too_slow]) @given( - simple_typed_classes(defaults=False, newtypes=False), - simple_typed_classes(defaults=False, newtypes=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), + simple_typed_classes(defaults=False, newtypes=False, allow_nan=False), unstructure_strats, ) def test_310_union_field_roundtrip(cl_and_vals_a, cl_and_vals_b, strat): @@ -320,7 +328,7 @@ def test_310_union_field_roundtrip(cl_an assert inst == converter.structure(unstructured, C) -@given(simple_typed_classes(defaults=False)) +@given(simple_typed_classes(defaults=False, allow_nan=False)) def test_optional_field_roundtrip(cl_and_vals): """ Classes with optional fields can be unstructured and structured. @@ -342,7 +350,7 @@ def test_optional_field_roundtrip(cl_and @pytest.mark.skipif(not is_py310_plus, reason="3.10+ union syntax") -@given(simple_typed_classes(defaults=False)) +@given(simple_typed_classes(defaults=False, allow_nan=False)) def test_310_optional_field_roundtrip(cl_and_vals): """ Classes with optional fields can be unstructured and structured. @@ -363,7 +371,7 @@ def test_310_optional_field_roundtrip(cl assert inst == converter.structure(unstructured, C) -@given(simple_typed_classes(defaults=True)) +@given(simple_typed_classes(defaults=True, allow_nan=False)) def test_omit_default_roundtrip(cl_and_vals): """ Omit default on the converter works. Index: cattrs-24.1.2/tests/test_gen_dict.py =================================================================== --- cattrs-24.1.2.orig/tests/test_gen_dict.py +++ cattrs-24.1.2/tests/test_gen_dict.py @@ -160,9 +160,9 @@ def test_individual_overrides(converter_ @given( - cl_and_vals=nested_typed_classes() - | simple_typed_classes() - | simple_typed_dataclasses(), + cl_and_vals=nested_typed_classes(allow_nan=False) + | simple_typed_classes(allow_nan=False) + | simple_typed_dataclasses(allow_nan=False), dv=..., ) def test_unmodified_generated_structuring(cl_and_vals, dv: bool): @@ -185,7 +185,9 @@ def test_unmodified_generated_structurin @given( - simple_typed_classes(min_attrs=1) | simple_typed_dataclasses(min_attrs=1), data() + simple_typed_classes(min_attrs=1, allow_nan=False) + | simple_typed_dataclasses(min_attrs=1, allow_nan=False), + data(), ) def test_renaming(cl_and_vals, data): converter = Converter() Index: cattrs-24.1.2/tests/typed.py =================================================================== --- cattrs-24.1.2.orig/tests/typed.py +++ cattrs-24.1.2/tests/typed.py @@ -67,7 +67,7 @@ def simple_typed_classes( newtypes=True, text_codec: str = "utf8", allow_infinity=None, - allow_nan=None, + allow_nan=True, ) -> SearchStrategy[Tuple[Type, PosArgs, KwArgs]]: """Yield tuples of (class, values).""" return lists_of_typed_attrs( @@ -82,7 +82,9 @@ def simple_typed_classes( ).flatmap(partial(_create_hyp_class, frozen=frozen)) -def simple_typed_dataclasses(defaults=None, min_attrs=0, frozen=False, newtypes=True): +def simple_typed_dataclasses( + defaults=None, min_attrs=0, frozen=False, newtypes=True, allow_nan=True +): """Yield tuples of (class, values).""" return lists_of_typed_attrs( defaults, @@ -90,15 +92,20 @@ def simple_typed_dataclasses(defaults=No for_frozen=frozen, allow_mutable_defaults=False, newtypes=newtypes, + allow_nan=allow_nan, ).flatmap(partial(_create_dataclass, frozen=frozen)) def simple_typed_classes_and_strats( - defaults=None, min_attrs=0, kw_only=None, newtypes=True + defaults=None, min_attrs=0, kw_only=None, newtypes=True, allow_nan=True ) -> SearchStrategy[Tuple[Type, SearchStrategy[PosArgs], SearchStrategy[KwArgs]]]: """Yield tuples of (class, (strategies)).""" return lists_of_typed_attrs( - defaults, min_size=min_attrs, kw_only=kw_only, newtypes=newtypes + defaults, + min_size=min_attrs, + kw_only=kw_only, + newtypes=newtypes, + allow_nan=allow_nan, ).flatmap(_create_hyp_class_and_strat) @@ -111,7 +118,7 @@ def lists_of_typed_attrs( newtypes=True, text_codec="utf8", allow_infinity=None, - allow_nan=None, + allow_nan=True, ) -> SearchStrategy[List[Tuple[_CountingAttr, SearchStrategy[PosArg]]]]: # Python functions support up to 255 arguments. return lists( @@ -142,7 +149,7 @@ def simple_typed_attrs( newtypes=True, text_codec="utf8", allow_infinity=None, - allow_nan=None, + allow_nan=True, ) -> SearchStrategy[Tuple[_CountingAttr, SearchStrategy[PosArgs]]]: if not is_39_or_later: res = ( @@ -400,7 +407,7 @@ def str_typed_attrs(draw, defaults=None, @composite def float_typed_attrs( - draw, defaults=None, kw_only=None, allow_infinity=None, allow_nan=None + draw, defaults=None, kw_only=None, allow_infinity=None, allow_nan=True ): """ Generate a tuple of an attribute and a strategy that yields floats for that @@ -832,7 +839,7 @@ def dict_of_class( def _create_hyp_nested_strategy( - simple_class_strategy: SearchStrategy, kw_only=None, newtypes=True + simple_class_strategy: SearchStrategy, kw_only=None, newtypes=True, allow_nan=True ) -> SearchStrategy[Tuple[Type, SearchStrategy[PosArgs], SearchStrategy[KwArgs]]]: """ Create a recursive attrs class. @@ -847,7 +854,8 @@ def _create_hyp_nested_strategy( attrs_and_classes: SearchStrategy[ Tuple[List[Tuple[_CountingAttr, PosArgs]], Tuple[Type, SearchStrategy[PosArgs]]] ] = tuples( - lists_of_typed_attrs(kw_only=kw_only, newtypes=newtypes), simple_class_strategy + lists_of_typed_attrs(kw_only=kw_only, newtypes=newtypes, allow_nan=allow_nan), + simple_class_strategy, ) return nested_classes(attrs_and_classes) @@ -891,22 +899,37 @@ def nested_classes( def nested_typed_classes_and_strat( - defaults=None, min_attrs=0, kw_only=None, newtypes=True + defaults=None, min_attrs=0, kw_only=None, newtypes=True, allow_nan=True ) -> SearchStrategy[Tuple[Type, SearchStrategy[PosArgs]]]: return recursive( simple_typed_classes_and_strats( - defaults=defaults, min_attrs=min_attrs, kw_only=kw_only, newtypes=newtypes + defaults=defaults, + min_attrs=min_attrs, + kw_only=kw_only, + newtypes=newtypes, + allow_nan=allow_nan, + ), + partial( + _create_hyp_nested_strategy, + kw_only=kw_only, + newtypes=newtypes, + allow_nan=allow_nan, ), - partial(_create_hyp_nested_strategy, kw_only=kw_only, newtypes=newtypes), max_leaves=20, ) @composite -def nested_typed_classes(draw, defaults=None, min_attrs=0, kw_only=None, newtypes=True): +def nested_typed_classes( + draw, defaults=None, min_attrs=0, kw_only=None, newtypes=True, allow_nan=True +): cl, strat, kwarg_strat = draw( nested_typed_classes_and_strat( - defaults=defaults, min_attrs=min_attrs, kw_only=kw_only, newtypes=newtypes + defaults=defaults, + min_attrs=min_attrs, + kw_only=kw_only, + newtypes=newtypes, + allow_nan=allow_nan, ) ) return cl, draw(strat), draw(kwarg_strat) Index: cattrs-24.1.2/tests/untyped.py =================================================================== --- cattrs-24.1.2.orig/tests/untyped.py +++ cattrs-24.1.2/tests/untyped.py @@ -356,7 +356,7 @@ def float_attrs(draw, defaults=None, kw_ """ default = NOTHING if defaults is True or (defaults is None and draw(st.booleans())): - default = draw(st.floats()) + default = draw(st.floats(allow_nan=False)) return ( attr.ib( default=default, kw_only=draw(st.booleans()) if kw_only is None else kw_only
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor