python311-redis-5.0.1-150400.12.6.2<>,NgWp9|MxIgHd1Bߔ <)ܠiߖ&%hPPbU;4Rng'"/hy\^ %Qdb3?(^ئB[ZRIRQd<(-ۃ<9n 6p֩^ɗbJ5i6[M2I4 hNQ|d8AF'PbIm,yJz?O[bE KM&.xjRs6nj>A>?> d & N  (    h D EHMxR(RTVV$V@V(W8W$9W$:Zg$FGH IPX@YD\X]^(-b-!c-d.Qe.Vf.Yl.[u.pv20w2x6|y:<z=======>Cpython311-redis5.0.1150400.12.6.2Python client for Redis key-value storeThe Python interface to the Redis key-value store.gWh01-ch5a%-SUSE Linux Enterprise 15SUSE LLC MIThttps://www.suse.com/Unspecifiedhttps://github.com/redis/redis-pylinuxnoarch2"3\> VV$$}}``--QQ''55?? NZNZ 3 3!!&  ,,3838 *?*?//))8+,m+%""  9|9| OOd.7v jR@CC!/!/XXuu[))nnS C{Ji@E323255KKff''}}JJe'e'( kV ` BUU  %%t< p@@@@||77yyATAT?d?d## r r * -,|eL  = = \-,,7_ 52AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤gWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWkgWeSgWeSceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508a57b250a5bf03d7afe55b74063313f2adb7b00d546c0ab149a89398333fe3cc85a7b73a90454f0a5f359f44cc3a37d8fef30d10940e6a390e5b9b4c34d07b20025f1fc4b0664d42b610a1917547c2836bac702d890d9030a26c2928bac33a34be3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a6472d658cd44b8018567e9d27eef7ebb389662bc5d9ef1103d6ff6418e27f5f38c01e7ecce575ee99a0eb65337e405b3a5122bc2d72a00c1c69518adfb0dbee3ed8523847d72a5615f71060ae83a73b6b490fbbaed015b0bf3b60b0a52f2b8ffc9348384a82b6f4b4562abb4e4695afd13c93d885b1c87c9b8b6522604b2311fc9348384a82b6f4b4562abb4e4695afd13c93d885b1c87c9b8b6522604b2311ba823b19ffcc0c7d4a1f01d622fa507e48334eecb82ebaf1f6c896e379e1d625ba823b19ffcc0c7d4a1f01d622fa507e48334eecb82ebaf1f6c896e379e1d62545481d3473c36cdc13e0bdad682c3cc6e55b5ffeec809b62b995d26f94f4480245481d3473c36cdc13e0bdad682c3cc6e55b5ffeec809b62b995d26f94f44802bd4a17ab780bc2686be633bf81d16034d066069b23241d9997b338f922be65b3bd4a17ab780bc2686be633bf81d16034d066069b23241d9997b338f922be65b3b9e239236dd9c8de39dc2da8f5a47cf913da89d1743395bc158a909600070b39b9e239236dd9c8de39dc2da8f5a47cf913da89d1743395bc158a909600070b39f42f2523b19d375518355db7360ffd1aa222d3111462f86832e366110821ade1f42f2523b19d375518355db7360ffd1aa222d3111462f86832e366110821ade136730ac9527e494ed78e7e363b9bb5669fc337ba2384f2a683e42c12e5f9a35436730ac9527e494ed78e7e363b9bb5669fc337ba2384f2a683e42c12e5f9a3549aa3d96205c8c636a1ea6bd92624c729b69774b16d4757f0558dad083423a0a69aa3d96205c8c636a1ea6bd92624c729b69774b16d4757f0558dad083423a0a63176482af977221b8b3b70b949a6b649ce2814f91dd56567689e6c35c26376023176482af977221b8b3b70b949a6b649ce2814f91dd56567689e6c35c2637602161235acd37a586f6f1ce926174540618c208ae7e70ddfb880cf345f23b6b6bc161235acd37a586f6f1ce926174540618c208ae7e70ddfb880cf345f23b6b6bcb4244ee56679e6a56c3dce4b4b1fa2d03fe0096fd3ce40f3a4683dc69a5a2d3cb4244ee56679e6a56c3dce4b4b1fa2d03fe0096fd3ce40f3a4683dc69a5a2d3c3fe94aac4d3b05da8d00914b27206b57eff9251dac19bb653d9b25c2621d681f3fe94aac4d3b05da8d00914b27206b57eff9251dac19bb653d9b25c2621d681ff7a6d155741306c1c955dc461a7d9d0f870f917af2187b8a4fd07ba3aa312957f7a6d155741306c1c955dc461a7d9d0f870f917af2187b8a4fd07ba3aa3129579065636f7795d3d8c9c9660f02da2c078cff3ba8d958c0137c09bf74ee7164189065636f7795d3d8c9c9660f02da2c078cff3ba8d958c0137c09bf74ee7164188a76536a1c9c6dac02765d23aa62186c30e9abc650725060e7034da5355afe018a76536a1c9c6dac02765d23aa62186c30e9abc650725060e7034da5355afe01aa47e05765fd8b2bd002f6cb7527a5c20cf474293d486028b02bee642f7ea83726e2b72216f785faa750c91aafca7e29e4f2906c0c6f4ebe4e285c18f38ad62f26e2b72216f785faa750c91aafca7e29e4f2906c0c6f4ebe4e285c18f38ad62ff711ffa8a020ef93fae36cfb5bb570562c7699ebe6fedef766f863764a548047f711ffa8a020ef93fae36cfb5bb570562c7699ebe6fedef766f863764a548047167f3e488f00300f69a94bf35b55702cb3a036b0a87f9461d7300644b1eec6f8167f3e488f00300f69a94bf35b55702cb3a036b0a87f9461d7300644b1eec6f856f5cb5b11f591eaa3b610d217f1add8325b7d6e5dec787250f51a0ebf1b109256f5cb5b11f591eaa3b610d217f1add8325b7d6e5dec787250f51a0ebf1b10920732ba0b849725bd84acf5ada4cb0b7e9376facc60101e5c951f808e69f40f010732ba0b849725bd84acf5ada4cb0b7e9376facc60101e5c951f808e69f40f01e9423498fd8dfed8ddf2f76fadfa18707272c54e3e2a87cdcf57aab44357e211e9423498fd8dfed8ddf2f76fadfa18707272c54e3e2a87cdcf57aab44357e21114eebb96b0576403ddc00289182dd9ec33f023725a753b8ce367796ea385bebb14eebb96b0576403ddc00289182dd9ec33f023725a753b8ce367796ea385bebb6a91cc7fe021e6d223e93c2b2391a97d31d94e2710c840e6b835c1d251dce22d6a91cc7fe021e6d223e93c2b2391a97d31d94e2710c840e6b835c1d251dce22d58ef90082f3b21df237f365cf33b3956febc3593995aea241a90e97266324ec958ef90082f3b21df237f365cf33b3956febc3593995aea241a90e97266324ec9f794a83cdc2de3125007e38d223c6c478ea7e041e7c679a4bfd7f445e652211da66478865e2ef7752f0a678381e3c715cea9583af8b25aca12f0ac74c9ad8ff35f48ef4e9f84e13654959c55e4b249f3c4ee56b175be5cb9b6e0b4c63c466927c5c4638e7b3ab903dbda9a7400e94e2bd2e13092f8a1fc84305a9503b0b0cec15fcca4d049441231e5854823b3d7dd1d23a28e5c58b6e9d3ad32522f3906aef47f6da41fefd93f688db4e9fac4e7bae4c4b2fdf269bbc3849f5bbf86079ea232ad70c0d11fb08c28f6bf219a69611fe7435737b50507379f4672b7346cd6cf6108a0fc416ff0152365219cf195b35db9a1a98afd08f3005cb06b802288c37c98ba80c3f176158b42a3ea672e7d8c0b0d44d05e6051c7b6b46e1285f6cb59afb29dfae64cc21511c90cfa38832aed38009de96f6c1d90865ffc80db68c79e90fa9dfae64cc21511c90cfa38832aed38009de96f6c1d90865ffc80db68c79e90fa343d2c86451d931380f507f3c9297b5b1cbbaf4c775b2d5c865d2fd513067a0d343d2c86451d931380f507f3c9297b5b1cbbaf4c775b2d5c865d2fd513067a0d430f8748bbf8b4bc734a209d0c98d27364a65e46b005012844464efcd007a7a7430f8748bbf8b4bc734a209d0c98d27364a65e46b005012844464efcd007a7a728fd94024fff0710c98094fa548ff738003e3e997dc9c820c702aaa9b0c3de02c3c8b409b4a1a08e6362a92036e74a385baab5625c5ac1dcb617dc238eaffb240171133f88df73acfc8733c1ae4ea24557cc10c4899050e14d71f3a6a65bd5b70171133f88df73acfc8733c1ae4ea24557cc10c4899050e14d71f3a6a65bd5b7660e83b84d44a02d6bb410d6ca7650d1d2054431e15aaad3b1a7f0ab55923503660e83b84d44a02d6bb410d6ca7650d1d2054431e15aaad3b1a7f0ab55923503e002bbe3f5b354b06e5d4b070338169e69ca00e23d3ad8b1d13c356d3c34fb5ee002bbe3f5b354b06e5d4b070338169e69ca00e23d3ad8b1d13c356d3c34fb5edfd4b51c4ab9280d5ef0415583f203e1b5e9b4ec9ff84cecbb37c92a79bfea2bdfd4b51c4ab9280d5ef0415583f203e1b5e9b4ec9ff84cecbb37c92a79bfea2b058bab0d3d7796cc343776bcb0ba90165d34b45168969113eff12e8cbc3635b76b465ada272bd37cad8c5fd656884332f1197a38b151d54c869b0a59e33160766700a56ac676c7449063dd200d9beb685231da58463e70e6fb15143cfb1be36e94b6ac5c43b61350ac9215f9659a1a486a66c193f543bf364771c050d1b7c03e4a73cf3a5a3981cc8816d902e0363b1c5be60e051a20bb09dc37878a8a20741fb1354909b8b52ad21b1c97377e41d165bfcb19abff52d080abe8a9c65b641ac1631739610ba684b8ed0c3c024b89a0c48eb2cb6676d40ccb945c556f10a88627c7eb008d5eeee0c99d3a3159499f119d49c2690b4f84205b18d060202bc25b72224a9810f836580df98c18cf0a912070a7155b71f1f259bcf63fc8436767a0ec1dc1f660cd39ef1a563108466012d6bf997dcab6fb873712b8f5d76ea265fc36713507f8c1af68b612d16ba8cadcaab4dd709e2c3603529b9145dca6f392637243644a88a64a1d1ff3ed5127e9cc10d047bd82ee7528d1125effd4d57dd4445443644a88a64a1d1ff3ed5127e9cc10d047bd82ee7528d1125effd4d57dd44454ab8d1d0543c422c74d43539c672e815d7bffb4964d8ac7d1b7e7611e71ff25e1ab8d1d0543c422c74d43539c672e815d7bffb4964d8ac7d1b7e7611e71ff25e1fcedc7db2f03dc945bc3bdf3c3d207240c76117a39b1e4a6b333b7b0be2f3574fcedc7db2f03dc945bc3bdf3c3d207240c76117a39b1e4a6b333b7b0be2f3574fc412862a90b4aae7c8df53b470fb5afa32740b6bf93ec29f2768b58f92e1e88fc412862a90b4aae7c8df53b470fb5afa32740b6bf93ec29f2768b58f92e1e8884942c14d4247ab14da361152981351378d2add9a034cb54e000ba44eb971a2284942c14d4247ab14da361152981351378d2add9a034cb54e000ba44eb971a22c4f553b7c9c2bbb7e5051f0b453c31195d418d1685e1d4f2b32f6c84272af1c6c4f553b7c9c2bbb7e5051f0b453c31195d418d1685e1d4f2b32f6c84272af1c61129905c7e29f43a77eed342c10183885fc11c311a2a75d217b65f01212a90568fbe7c6e1a16b9f8e50dafc35af523ea2b69cddf65ab625baeebd7be812f97ce8fbe7c6e1a16b9f8e50dafc35af523ea2b69cddf65ab625baeebd7be812f97ce839ad2726ebc504ff6f5159c2d08cceb140e9f5a15c513f9c592f6f35173586c839ad2726ebc504ff6f5159c2d08cceb140e9f5a15c513f9c592f6f35173586cd06381bba851fe08cefad902c7bd7c33f3291482a2f5d39fea0b83df7013df27d06381bba851fe08cefad902c7bd7c33f3291482a2f5d39fea0b83df7013df279155946ad752d332dcbbcf9f548a8b2d0054e6ef1f25620e095503ddfa98569db6913886fd73029c683a0c95f7ff0110365c97859fead4b5752bed97157bb931e410f075e52759558e6a51797c70f5d873d0783abfadcdaf86e088dec0a1ad81d9633d9d9ddfd17aa7cbca39cae70e45ed1f2d122d24ee12594ebc5b95abd66c366925c8ebb321adb4c845ab867290c6042569729891cc019061e9bd0ca8e49f9695a38e8e85df4e2ec32bfe431123346ecf7b7f4007cdd34eabe12a98ae19039695a38e8e85df4e2ec32bfe431123346ecf7b7f4007cdd34eabe12a98ae190345d81ab9125ddfa021dd787a0e633cad991c01cd4bf054211e50f6adc72466e445d81ab9125ddfa021dd787a0e633cad991c01cd4bf054211e50f6adc72466e47fb6bb13955fc4aa09ea590846fbb6557a17c5935150e9e9e70a630685374b5d7fb6bb13955fc4aa09ea590846fbb6557a17c5935150e9e9e70a630685374b5d7afacd8cdd95102219fc21877d908c9698a64cacdc03e23d476d1e421e0ced537afacd8cdd95102219fc21877d908c9698a64cacdc03e23d476d1e421e0ced535ea372c1fce55792c36d355a1065148bb93934d70a42b91b424421039b4da8d25ea372c1fce55792c36d355a1065148bb93934d70a42b91b424421039b4da8d29f4aec82215079d8a5920d2d51988342660a9a097fb973ec7b8752c7037a73f29f4aec82215079d8a5920d2d51988342660a9a097fb973ec7b8752c7037a73f2e56003b5773265c1fc598d570cedf33851193d833a068d1b92c0353bd0fa9c97e56003b5773265c1fc598d570cedf33851193d833a068d1b92c0353bd0fa9c972b61d72ab3730b75ed3587c53e60a25232935748bd2a4e07e85b8760b0c1d6142b61d72ab3730b75ed3587c53e60a25232935748bd2a4e07e85b8760b0c1d614acb195e7c6492847facb1ce4d680f7230892d3794fe9ba5ba34db8f69148d0e6fd3963541e1ad693d2f696fcfc2bf0f2b7256c138e23fffe7d8f5fc9b53876349110c1b182e0c0868ce2faa2a0efc1a7fba05af8dfa821fb0c8bf81a973d1c233f1afcff384f593fc47594a01ab6e25b0f3014beaae4917b3be67a5f39b9e62c3dab1fb25e5d17a5aa4fd28234500a2b01ae6f22bfd8e442a00404e15b675e449ba1b3e0361f30843c5517832c7967430fca236ad575ea56624fc0534ff1fc63193127044d2b022524e09aae6b171529d2f593348c0d65b9932fa2153bd137ce5a07e1747dcd0815b656a83ef4f70fd8420ac33064cdbe427aa7dd9cf9b6b534965a43433da404d9c9c9f41fba1d3eda863e92731bea0012d000ed3e66932ac368255203b6c2b3b3120b00323c07dfc89adea806051d852f79848af4a014312668255203b6c2b3b3120b00323c07dfc89adea806051d852f79848af4a0143126e2536d9c55aa024ff83fcd7b7f4bbd9a1d1eb3597b92b8735bc3ed44c468fea7e2536d9c55aa024ff83fcd7b7f4bbd9a1d1eb3597b92b8735bc3ed44c468fea77589d8223886efa7ebcdf3aea15805d88585468b141accea0a881cc78307fd827589d8223886efa7ebcdf3aea15805d88585468b141accea0a881cc78307fd82fb5f68488cd479127cc4ec9e879c3d22a25dfda264a60ae13e1629b82ab91ad8fb5f68488cd479127cc4ec9e879c3d22a25dfda264a60ae13e1629b82ab91ad81ed02eb3d48ced8812d689afbd6de13fe62f58bbe9aa6f9cef3234621cba94031ed02eb3d48ced8812d689afbd6de13fe62f58bbe9aa6f9cef3234621cba94036ff5504e1d741722e5f01b5111f25f0da80e242c9deb04d042cf20eb7a62e462f4fdcd045c96b91c567abe62fff36d271ee82593674ce8ac7eb1c68706917e806bf228315ff081e2725227c3e0fe874dc33db3a161ae27309b341c65199cf86cd3368eebfabf155324d4192191bed672bf001764dfafaf558642b2d480558690ed37d5ccb8f7d7d9a1b00e961326ec39d20f938a42fb58527098371f986fdd3e85aa69405545d23ecff3ba7b2d0b142b900ad24b9e9bd700fb1bd545d416a68b1fcae30bd7f8d329dadac597a71bea03a4b794074bd4c81cb99464f22bb730201fcae30bd7f8d329dadac597a71bea03a4b794074bd4c81cb99464f22bb73020e2d6084104922d54ea498a7f55de69bb748a19ec2c9d6fce84166c02ab2018c7e2d6084104922d54ea498a7f55de69bb748a19ec2c9d6fce84166c02ab2018c751d2660ab525b986416b0bdb8020c7c2e32bff4228982c462a9364647e009b6451d2660ab525b986416b0bdb8020c7c2e32bff4228982c462a9364647e009b643ef3244301e72ab3ba9c7f0442ca938877ae1ee4c7c47d4185a3e4a2aeb3155c3ef3244301e72ab3ba9c7f0442ca938877ae1ee4c7c47d4185a3e4a2aeb3155c53d4086598f56888b18f67e74d219d1d05b57dce150e1110872e14479634715d53d4086598f56888b18f67e74d219d1d05b57dce150e1110872e14479634715d05b2c6d2b3dd0f2fbfb2eb1ad98b7263e75074daafbb91037c87279a4f93a17f05b2c6d2b3dd0f2fbfb2eb1ad98b7263e75074daafbb91037c87279a4f93a17fd9b1d12679f75fa259711b91b9bd8d15aff07014933feb07aa94e352527eaa39d9b1d12679f75fa259711b91b9bd8d15aff07014933feb07aa94e352527eaa398786b66a97a52b2d620f99003272b0186c612d10b215b3af7e572e4ba385a1f48786b66a97a52b2d620f99003272b0186c612d10b215b3af7e572e4ba385a1f42836fb3ba98df8965febee2f040bcd163dd6a82bb07697e165eeab0d6d32197d2836fb3ba98df8965febee2f040bcd163dd6a82bb07697e165eeab0d6d32197d3e053c5bf500517288b8248e020dd0058ab726c48c1020d8f888c4698abaf2563e053c5bf500517288b8248e020dd0058ab726c48c1020d8f888c4698abaf256f1921023913bf9f79cfc5042d2f1a8b3a19b6a3ee029591ec075f40147f8a861f1921023913bf9f79cfc5042d2f1a8b3a19b6a3ee029591ec075f40147f8a861e5aaad27f3fc47ba2c3ac9ffe437fb3d7bffe1af4787c673453cb171d7663861e5aaad27f3fc47ba2c3ac9ffe437fb3d7bffe1af4787c673453cb171d766386154082e4b087fddd36d270354e9595ed8235d3c4d74fcd5243df7c3ec65855f8ff324353f7d508b2dbdc5e86598dd93a0287bddef8c1e63a0ff2d3f5177d00d2f76948c67b8578db025ad42f8879197e81b4fe1689b41908ee9895fa3caa4005d83647e3d182afa3377dff18b5f36afbec7b872920704c7e33df3caeed9c4f4675b1b4e1e0b66f52f36fc2d27cde4fb7c746b58f9067e5267497411222695266554bd823338f13741c421a4e7f3c7af9c75f57c2126cad6e2938bc09a2898482f6e505c8059eead3f6b920e2023a8f5e047a4594fc9f5efda0e5af25420960e33744e7bee43aa90212b3603be217238c4554723c91013e2621f965123f08a8c7149c71eca5c7c063caa4be4c939d84d5bade7ead79c2fda23b785394aa868e546e07ecb9ce55649cb62ed63b65d8c638624eedd0348b76a591ced5ea6d5d90c1957fadeeacb830a835cd044e7fcfd6de7515e2b8a426a63f0c59471098f23b1c185170843dc7d9c491d702b09ce8e957aceaf93ededb1f42a7c94d3fefde82d8d824cfac2c844cf3410af204e9eb02aa90cedb52f801df5e6b8dfc7d49dfc11b3d5887810adfc90d3dbcc4f177b5493593a2bcccff5ed8e2fe190ef222e09bc6dd5887810adfc90d3dbcc4f177b5493593a2bcccff5ed8e2fe190ef222e09bc6d64517164ddf91471f338fd61c8264682cdfdf68f17b5fd378338b643098671d664517164ddf91471f338fd61c8264682cdfdf68f17b5fd378338b643098671d6485f9438471856cf7e2400258aa12fc1046431096028ecffc1d513b44b4d048d485f9438471856cf7e2400258aa12fc1046431096028ecffc1d513b44b4d048df8768bc36482d2a8bbb13ece7660af905d30e1b1d7aca7d6d595a98373193439f8768bc36482d2a8bbb13ece7660af905d30e1b1d7aca7d6d595a983731934396c5764fbad3d0a72fe753a8c539c9012263e5028d5a4b9271c60c4350dadfb55e5d78122706d2cf6f766b568481e048569113e44885b941dffdf2b3039eeb679a3babb15ed708297532cac8663c422d9557a5ca101a6b87398f76b173dce22fab6bfadf681dd7a8b2b2b74ef67249a2ef3f76651aa4d941a5ed953aa2aa9ffc27f11e5e627074b7324d808477921b172931c63969e1e6ab9e7cf60d97c88ff1867791716d918d8b76079f9d032e775c6be2f1b9518bc0f4b08ca8d317d72c2eee95bc5791785a7abdeae71885a52153a6f0e99b360a0561d775c20b236539e5903359e604a5547592851d74c82fcf4599c663d7fe3ca4b1a82845ff0549258a00b007faa8ec00c3192b7f26a8d02922f59ca0c2c1d6fe01226c025bf424eea605b08866f2eb26584740f79609e741898f2b2f9402062a1978ba0388c305918be4aca7db368610dfc91b34ac2442693811b4b47b34060ee50330e107e5a2eac6a084aec0fe7379981675c3b6d098d4ebe9c9475f29cc83e45f49bfd15dde21ee5c23ca28448f21a226b8a072cd3ece1cbb2be333572eee2e2763b3335d3c732e8f3ba7b2269e287222189aa9a955621f50abd25e695c22fd8e0607335a1c05c98478b10cafd361b8e457199039d3715be7b8bc11b392e16649325c1ea9cd9b4daa57b250a5bf03d7afe55b74063313f2adb7b00d546c0ab149a89398333fe3cc8rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-redis-5.0.1-150400.12.6.2.src.rpmpython311-redis@      python(abi)python311-async-timeoutrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.114.0.23.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3fe@ee?e6`@e2ke2kdh@dX@d>@c@c8+b&b&bbzS`t`H_'@^s^]}@]p]w@]QT\\@\k\j@\f[@[@[Q@[9@Y{YS@X*adrian.glaubitz@suse.comdmueller@suse.comalarrosa@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commrueckert@suse.demrueckert@suse.deAndreas.Stieger@gmx.dekastl@b1-systems.desteven.kowalik@suse.comdaniel.garcia@suse.comdmueller@suse.comcode@bnavigator.demcepl@suse.comcode@bnavigator.decode@bnavigator.demcepl@suse.commcepl@suse.commcalabkova@suse.compgajdos@suse.combuschmann23@opensuse.orgarun@gmx.detchvatal@suse.commcalabkova@suse.comjayvdb@gmail.comjayvdb@gmail.commrueckert@suse.desebix+novell.com@sebix.attchvatal@suse.comsebix+novell.com@sebix.atsebix+novell.com@sebix.attchvatal@suse.comtchvatal@suse.comarun@gmx.debenoit.monin@gmx.frdmueller@suse.com- Switch build system from setuptools to pyproject.toml + Add python-pip and python-wheel to BuildRequires + Replace %python_build with %pyproject_wheel + Replace %python_install with %pyproject_install- add https://github.com/redis/redis-py/pull/3005 as Close-various-objects-created-during-asyncio-tests.patch to fix tests for python 3.12- Add patch to increase timeouts in s390x where tests take longer to run: * increase-test-timeout.patch- Disable broken tests for ppc64le, bsc#1216606- Add pytest.ini source needed to run tests - Remove/disable broken tests because of suse environment- drop tox.ini. seems it does no longer exist in 5.0.1 - add support to easily disable the testsuite at build time- update to 5.0.1 - 🚀 New Features - Provide aclose() / close() for classes requiring lifetime management (#2898) - Add support for ModuleCommands in cluster (#2951) - Add support for multiple values in RPUSHX (#2949) - Add Redis.from_pool() class method, for explicitly owning and closing a ConnectionPool (#2913) - 🐛 Bug Fixes - Fixing monitor parsing for messages containing specific substrings (#2950) - Cluster determine slot command name need to be upper (#2919) - Support timeout = 0 in search query (#2934) - Fix async sentinel: add push_request keyword argument to read_response (#2922) - Fix protocol checking for search commands (#2923) - Fix: SentinelManagedConnection.read_response() got an unexpected keyword argument 'push_request' (#2894) - Fix: automatically close connection pool for async Sentinel (#2900) - Save a reference to created async tasks, to avoid tasks potentially disappearing (#2816) - Avoid reference cycling by the garbage collector during response reading (#2932) - 🧰 Maintenance - Type hint improvements (#2952) - Replace clear_connect_callbacks with _deregister_connect_callback (#2955) - Async fixes, remove del and other things (#2870) - Add pagination, sorting and grouping examples to search json example (#2890) - Remove process-id checks from asyncio. Asyncio and fork() does not mix. (#2911) - Fix resource usage and cleanup Mocks in the unit tests (#2936) - Remove mentions of tox (#2929) - Add 7.2 to supported Redis versions (#2896) - Fix resource warnings in unit tests (#2899) - Fix typo in redis-stream-example.ipynb (#2918) - Deprecate RedisGraph (#2927) - Fix redis 7.2.0 tests (#2902) - Fix test_scorer (search) (#2920) - changes from 5.0.0 - What's new? - Triggers and Functions support Triggers and Functions allow you to execute server-side functions triggered when key values are modified or created in Redis, a stream entry arrival, or explicitly calling them. Simply put, you can replace Lua scripts with easy-to-develop JavaScript or TypeScript code. Move your business logic closer to the data to ensure a lower latency, and forget about updating dependent key values manually in your code. Try it for yourself with Quick start - Full Redis 7.2 and RESP3 support - Python 3.7 End-of-Life - Python 3.7 has reached its end-of-life (EOL) as of June 2023. This means that starting from this date, Python 3.7 will no longer receive any updates, including security patches, bug fixes, or improvements. If you continue to use Python 3.7 post-EOL, you may expose your projects and systems to potential security vulnerabilities. We ended its support in this version and strongly recommend migrating to Python 3.10. - 🐛 Bug Fixes - Fix timeout retrying on pipeline execution (#2812) - Fix socket garbage collection (#2859) - 🧰 Maintenance - Updating client license to clear, MIT (#2884) - Add py.typed in accordance with PEP-561 (#2738) - Dependabot label change (#2880) - Fix type hints in SearchCommands (#2817) - Add sync modules (except search) tests to cluster CI (#2850) - Fix a duplicate word in CONTRIBUTING.md (#2848) - Fixing doc builds (#2869) - Change cluster docker to edge and enable debug command (#2853) - changes from 4.6.0 - 🧪 Experimental Features - Support JSON.MERGE command (#2761) - Support JSON.MSET command (#2766) - 🚀 New Features - Extract abstract async connection class (#2734) - Add support for WAITAOF (#2760) - Introduce OutOfMemoryError exception for Redis write command rejections due to OOM errors (#2778) - Add WITHSCORE argument to ZRANK (#2758) - 🐛 Bug Fixes - Fix dead weakref in sentinel connection causing ReferenceError (#2767) (#2771) - Fix Key Error in parse_xinfo_stream (#2788) - Remove unnecessary __del__ handlers (#2755) - Added support for missing argument to SentinelManagedConnection.read_response() (#2756) - 🧰 Maintenance - Fix type hint for retry_on_error in async cluster (#2804) - Clean up documents and fix some redirects (#2801) - Add unit tests for the connect method of all Redis connection classes (#2631) - Docstring formatting fix (#2796)- update to 4.5.5: * Add support for CLIENT NO-TOUCH * Add support for CLUSTER MYSHARDID * Add "address_remap" feature to RedisCluster * Add WITHSCORES argument to ZREVRANK command * Improve error output for master discovery * Fix XADD: allow non negative maxlen * Fix create single connection client from url * Optionally disable disconnects in read_response * Fix SLOWLOG GET return value * Fix potential race condition during disconnection * Return response in case of KeyError * Fix incorrect usage of once flag in async Sentinel * Fix memory leak caused by hiredis in asyncio case * Really do not use asyncio's timeout lib before 3.11.2- add sle15_python_module_pythons- Update to 4.5.4: * Security + Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases. (CVE-2023-28858, bsc#1209811) + Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases. (CVE-2023-28859, bsc#1209812) * New Features + Introduce AbstractConnection so that UnixDomainSocketConnection can call super().init (#2588) + Added queue_class to REDIS_ALLOWED_KEYS (#2577) + Made search document subscriptable (#2615) + Sped up the protocol parsing (#2596) + Use hiredis::pack_command to serialized the commands. (#2570) + Add support for unlink in cluster pipeline (#2562) * Bug Fixes + Fixing cancelled async futures (#2666) + Fix: do not use asyncio's timeout lib before 3.11.2 (#2659) + Fix UDS in v4.5.2: UnixDomainSocketConnection missing constructor argument (#2630) + CWE-404 AsyncIO Race Condition Fix (#2624, #2579) + Fix behaviour of async PythonParser to match RedisParser as for issue #2349 (#2582) + Replace async_timeout by asyncio.timeout (#2602) + Update json().arrindex() default values (#2611) + Fix #2581 UnixDomainSocketConnection object has no attribute _command_packer (#2583) + Fix issue with pack_commands returning an empty byte sequence (#2416) + Async HiredisParser should finish parsing after a Connection.disconnect() (#2557) + Check for none, prior to raising exception (#2569) + Tuple function cannot be passed more than one argument (#2573) + Synchronise concurrent command calls to single-client to single-client mode (#2568) + Async: added 'blocking' argument to call lock method (#2454) + Added a replacement for the default cluster node in the event of failure. (#2463) + Fixed geosearch: Wrong number of arguments for geosearch command (#2464) - Clean up BuildRequires and Requires.- Disable broken test test_xautoclaim gh#redis/redis-py#2554 - udpate to 4.3.5: * Add support for TIMESERIES 1.8 (#2296) * Graph - add counters for removed labels and properties (#2292) * Add support for TDIGEST.QUANTILE extensions (#2317) * Add TDIGEST.TRIMMED_MEAN (#2300) * Add support for async GRAPH module (#2273) * Support TDIGEST.MERGESTORE and make compression optional on TDIGEST.CREATE (#2319) * Adding reserve as an alias for create, so that we have BF.RESERVE and CF.RESERVE accuratenly supported (#2331) * Fix async connection.is_connected to return a boolean value (#2278) * Fix: workaround asyncio bug on connection reset by peer (#2259) * Fix crash: key expire while search (#2270) * Async cluster: fix concurrent pipeline (#2280) * Fix async SEARCH pipeline (#2316) * Fix KeyError in async cluster - initialize before execute multi key commands (#2439) * Supply chain risk reduction: remove dependency on library named deprecated (#2386) * Search test - Ignore order of the items in the response (#2322) * Fix GRAPH.LIST & TDIGEST.QUANTILE tests (#2335) * Fix TimeSeries range aggregation (twa) tests (#2358) * Mark TOPK.COUNT as deprecated (#2363)- update to 4.3.4: * Fix backward compatibility from 4.3.2 in Lock.acquire() * Fix XAUTOCLAIM to return the full response, instead of only keys 2+ * Added dynamic_startup_nodes configuration to RedisCluster. * Fix retries in async mode * Async cluster: fix simultaneous initialize * Uppercased commands in CommandsParser.get_keys * Late eval of the skip condition in async tests * Reuse the old nodes' connections when a cluster topology refresh is being done * Docs: add pipeline examples * Correct retention_msecs value * Cluster: use pipeline to execute split commands * Docs: Add a note about client_setname and client_name difference- Delete unused redismod.conf, remove duplicate Source entry for tox.ini- Add redismod.conf and tox.ini as Sources to SPEC file.- Update to version 4.3.3 * Fix Lock crash, and versioning 4.3.3 (#2210) * Async cluster: improve docs (#2208) - Release 4.3.2 * SHUTDOWN - add support for the new NOW, FORCE and ABORT modifiers (#2150) * Adding pipeline support for async cluster (#2199) * Support CF.MEXISTS + Clean bf/commands.py (#2184) * Extending query_params for FT.PROFILE (#2198) * Implementing ClusterPipeline Lock (#2190) * Set default response_callbacks to redis.asyncio.cluster.ClusterNode (#2201) * Add default None for maxlen at xtrim command (#2188) * Async cluster: add/update typing (#2195) * Changed list type to single element type (#2203) * Made sync lock consistent and added types to it (#2137) * Async cluster: optimisations (#2205) * Fix typos in README (#2206) * Fix modules links to https://redis.io/commands/ (#2185)- Update to version 4.3.1 * Allow negative `retries` for `Retry` class to retry forever * Add `items` parameter to `hset` signature * Create codeql-analysis.yml (#1988). Thanks @chayim * Add limited support for Lua scripting with RedisCluster * Implement `.lock()` method on RedisCluster * Fix cursor returned by SCAN for RedisCluster & change default target to PRIMARIES * Fix scan_iter for RedisCluster * Remove verbose logging when initializing ClusterPubSub, ClusterPipeline or RedisCluster * Fix broken connection writer lock-up for asyncio (#2065) * Fix auth bug when provided with no username (#2086) - Release 4.1.3 * Fix flushdb and flushall (#1926) * Add redis5 and redis4 dockers (#1871) * Change json.clear test multi to be up to date with redisjson (#1922) * Fixing volume for unstable_cluster docker (#1914) * Update changes file with changes since 4.0.0-beta2 (#1915) - Release 4.1.2 * Invalid OCSP certificates should raise ConnectionError on failed validation (#1907) * Added retry mechanism on socket timeouts when connecting to the server (#1895) * LMOVE, BLMOVE return incorrect responses (#1906) * Fixing AttributeError in UnixDomainSocketConnection (#1903) * Fixing TypeError in GraphCommands.explain (#1901) * For tests, increasing wait time for the cluster (#1908) * Increased pubsub's wait_for_messages timeout to prevent flaky tests (#1893) * README code snippets formatted to highlight properly (#1888) * Fix link in the main page (#1897) * Documentation fixes: JSON Example, SSL Connection Examples, RTD version (#1887) * Direct link to readthedocs (#1885) - Release 4.1.1 * Add retries to connections in Sentinel Pools (#1879) * OCSP Stapling Support (#1873) * Define incr/decr as aliases of incrby/decrby (#1874) * FT.CREATE - support MAXTEXTFIELDS, TEMPORARY, NOHL, NOFREQS, SKIPINITIALSCAN (#1847) * Timeseries docs fix (#1877) * get_connection: catch OSError too (#1832) * Set keys var otherwise variable not created (#1853) * Clusters should optionally require full slot coverage (#1845) * Triple quote docstrings in client.py PEP 257 (#1876) * syncing requirements (#1870) * Typo and typing in GraphCommands documentation (#1855) * Allowing poetry and redis-py to install together (#1854) * setup.py: Add project_urls for PyPI (#1867) * Support test with redis unstable docker (#1850) * Connection examples (#1835) * Documentation cleanup (#1841) - Release 4.1.0 * OCSP stapling support (#1820) * Support for SELECT (#1825) * Support for specifying error types with retry (#1817) * Support for RESET command since Redis 6.2.0 (#1824) * Support CLIENT TRACKING (#1612) * Support WRITE in CLIENT PAUSE (#1549) * JSON set_file and set_path support (#1818) * Allow ssl_ca_path with rediss:// urls (#1814) * Support for password-encrypted SSL private keys (#1782) * Support SYNC and PSYNC (#1741) * Retry on error exception and timeout fixes (#1821) * Fixing read race condition during pubsub (#1737) * Fixing exception in listen (#1823) * Fixed MovedError, and stopped iterating through startup nodes when slots are fully covered (#1819) * Socket not closing after server disconnect (#1797) * Single sourcing the package version (#1791) * Ensure redis_connect_func is set on uds connection (#1794) * SRTALGO - Skip for redis versions greater than 7.0.0 (#1831) * Documentation updates (#1822) * Add CI action to install package from repository commit hash (#1781) (#1790) * Fix link in lmove docstring (#1793) * Disabling JSON.DEBUG tests (#1787) * Migrated targeted nodes to kwargs in Cluster Mode (#1762) * Added support for MONITOR in clusters (#1756) * Adding ROLE Command (#1610) * Integrate RedisBloom support (#1683) * Adding RedisGraph support (#1556) * Allow overriding connection class via keyword arguments (#1752) * Aggregation LOAD * support for RediSearch (#1735) * Adding cluster, bloom, and graph docs (#1779) * Add packaging to setup_requires, and use >= to play nice to setup.py (fixes #1625) (#1780) * Fixing the license link in the readme (#1778) * Removing distutils from tests (#1773) * Fix cluster ACL tests (#1774) * Improved RedisCluster's reinitialize_steps and documentation (#1765) * Added black and isort (#1734) * Link Documents for all module commands (#1711) * Pyupgrade + flynt + f-strings (#1759) * Remove unused aggregation subclasses in RediSearch (#1754) * Adding RedisCluster client to support Redis Cluster Mode (#1660) * Support RediSearch FT.PROFILE command (#1727) * Adding support for non-decodable commands (#1731) * COMMAND GETKEYS support (#1738) * RedisJSON 2.0.4 behaviour support (#1747) * Removing deprecating distutils (PEP 632) (#1730) * Updating PR template (#1745) * Removing duplication of Script class (#1751) * Splitting documentation for read the docs (#1743) * Improve code coverage for aggregation tests (#1713) * Fixing COMMAND GETKEYS tests (#1750) * GitHub release improvements (#1684) - Release 4.0.2 * Restoring Sentinel commands to redis client (#1723) * Better removal of hiredis warning (#1726) * Adding links to redis documents in function calls (#1719) - Release 4.0.1 * Removing command on initial connections (#1722) * Removing hiredis warning when not installed (#1721) - Release 4.0.0 * FT.EXPLAINCLI intentionally raising NotImplementedError * Restoring ZRANGE desc for Redis < 6.2.0 (#1697) * Response parsing occasionally fails to parse floats (#1692) * Re-enabling read-the-docs (#1707) * Call HSET after FT.CREATE to avoid keyspace scan (#1706) * Unit tests fixes for compatibility (#1703) * Improve documentation about Locks (#1701) * Fixes to allow --redis-url to pass through all tests (#1700) * Fix unit tests running against Redis 4.0.0 (#1699) * Search alias test fix (#1695) * Adding RediSearch/RedisJSON tests (#1691) * Updating codecov rules (#1689) * Tests to validate custom JSON decoders (#1681) * Added breaking icon to release drafter (#1702) * Removing dependency on six (#1676) * Re-enable pipeline support for JSON and TimeSeries (#1674) * Export Sentinel, and SSL like other classes (#1671) * Restore zrange functionality for older versions of Redis (#1670) * Fixed garbage collection deadlock (#1578) * Tests to validate built python packages (#1678) * Sleep for flaky search test (#1680) * Test function renames, to match standards (#1679) * Docstring improvements for Redis class (#1675) * Fix georadius tests (#1672) * Improvements to JSON coverage (#1666) * Add python_requires setuptools check for python > 3.6 (#1656) * SMISMEMBER support (#1667) * Exposing the module version in loaded_modules (#1648) * RedisTimeSeries support (#1652) * Support for json multipath ($) (#1663) * Added boolean parsing to PEXPIRE and PEXPIREAT (#1665) * Add python_requires setuptools check for python > 3.6 (#1656) * Adding vulture for static analysis (#1655) * Starting to clean the docs (#1657) * Update README.md (#1654) * Adding description format for package (#1651) * Publish to pypi as releases are generated with the release drafter (#1647) * Restore actions to prs (#1653) * Fixing the package to include commands (#1649) * Re-enabling codecov as part of CI process (#1646) * Adding support for redisearch (#1640) Thanks @chayim * redisjson support (#1636) Thanks @chayim * Sentinel: Add SentinelManagedSSLConnection (#1419) Thanks @AbdealiJK * Enable floating parameters in SET (ex and px) (#1635) Thanks @AvitalFineRedis * Add warning when hiredis not installed. Recommend installation. (#1621) Thanks @adiamzn * Raising NotImplementedError for SCRIPT DEBUG and DEBUG SEGFAULT (#1624) Thanks @chayim * CLIENT REDIR command support (#1623) Thanks @chayim * REPLICAOF command implementation (#1622) Thanks @chayim * Add support to NX XX and CH to GEOADD (#1605) Thanks @AvitalFineRedis * Add support to ZRANGE and ZRANGESTORE parameters (#1603) Thanks @AvitalFineRedis * Pre 6.2 redis should default to None for script flush (#1641) Thanks @chayim * Add FULL option to XINFO SUMMARY (#1638) Thanks @agusdmb * Geosearch test should use any=True (#1594) Thanks @Andrew-Chen-Wang * Removing packaging dependency (#1626) Thanks @chayim * Fix client_kill_filter docs for skimpy (#1596) Thanks @Andrew-Chen-Wang * Normalize minid and maxlen docs (#1593) Thanks @Andrew-Chen-Wang * Update docs for multiple usernames for ACL DELUSER (#1595) Thanks @Andrew-Chen-Wang * Fix grammar of get param in set command (#1588) Thanks @Andrew-Chen-Wang * Fix docs for client_kill_filter (#1584) Thanks @Andrew-Chen-Wang * Convert README & CONTRIBUTING from rst to md (#1633) Thanks @davidylee * Test BYLEX param in zrangestore (#1634) Thanks @AvitalFineRedis * Tox integrations with invoke and docker (#1632) Thanks @chayim * Adding the release drafter to help simplify release notes (#1618). Thanks @chayim * BACKWARDS INCOMPATIBLE: Removed support for end of life Python 2.7. #1318 * BACKWARDS INCOMPATIBLE: All values within Redis URLs are unquoted via urllib.parse.unquote. Prior versions of redis-py supported this by specifying the ``decode_components`` flag to the ``from_url`` functions. This is now done by default and cannot be disabled. #589 * POTENTIALLY INCOMPATIBLE: Redis commands were moved into a mixin (see commands.py). Anyone importing ``redis.client`` to access commands directly should import ``redis.commands``. [#1534], #1550 * Removed technical debt on REDIS_6_VERSION placeholder. Thanks @chayim #1582. * Various docus fixes. Thanks @Andrew-Chen-Wang #1585, #1586. * Support for LOLWUT command, available since Redis 5.0.0. Thanks @brainix #1568. * Added support for CLIENT REPLY, available in Redis 3.2.0. Thanks @chayim #1581. * Support for Auto-reconnect PubSub on get_message. Thanks @luhn #1574. * Fix RST syntax error in README/ Thanks @JanCBrammer #1451. * IDLETIME and FREQ support for RESTORE. Thanks @chayim #1580. * Supporting args with MODULE LOAD. Thanks @chayim #1579. * Updating RedisLabs with Redis. Thanks @gkorland #1575. * Added support for ASYNC to SCRIPT FLUSH available in Redis 6.2.0. Thanks @chayim. #1567 * Added CLIENT LIST fix to support multiple client ids available in Redis 2.8.12. Thanks @chayim #1563. * Added DISCARD support for pipelines available in Redis 2.0.0. Thanks @chayim #1565. * Added ACL DELUSER support for deleting lists of users available in Redis 6.2.0. Thanks @chayim. #1562 * Added CLIENT TRACKINFO support available in Redis 6.2.0. Thanks @chayim. #1560 * Added GEOSEARCH and GEOSEARCHSTORE support available in Redis 6.2.0. Thanks @AvitalFine Redis. #1526 * Added LPUSHX support for lists available in Redis 4.0.0. Thanks @chayim. #1559 * Added support for QUIT available in Redis 1.0.0. Thanks @chayim. #1558 * Added support for COMMAND COUNT available in Redis 2.8.13. Thanks @chayim. #1554. * Added CREATECONSUMER support for XGROUP available in Redis 6.2.0. Thanks @AvitalFineRedis. #1553 * Including slowly complexity in INFO if available. Thanks @ian28223 #1489. * Added support for STRALGO available in Redis 6.0.0. Thanks @AvitalFineRedis. #1528 * Addes support for ZMSCORE available in Redis 6.2.0. Thanks @2014BDuck and @jiekun.zhu. #1437 * Support MINID and LIMIT on XADD available in Redis 6.2.0. Thanks @AvitalFineRedis. #1548 * Added sentinel commands FLUSHCONFIG, CKQUORUM, FAILOVER, and RESET available in Redis 2.8.12. Thanks @otherpirate. #834 * Migrated Version instead of StrictVersion for Python 3.10. Thanks @tirkarthi. #1552 * Added retry mechanism with backoff. Thanks @nbraun-amazon. [#1494] * Migrated commands to a mixin. Thanks @chayim. #1534 * Added support for ZUNION, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1522 * Added support for CLIENT LIST with ID, available in Redis 6.2.0. Thanks @chayim. #1505 * Added support for MINID and LIMIT with xtrim, available in Reds 6.2.0. Thanks @chayim. #1508 * Implemented LMOVE and BLMOVE commands, available in Redis 6.2.0. Thanks @chayim. #1504 * Added GET argument to SET command, available in Redis 6.2.0. Thanks @2014BDuck. #1412 * Documentation fixes. Thanks @enjoy-binbin @jonher937. #1496 [#1532] * Added support for XAUTOCLAIM, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1529 * Added IDLE support for XPENDING, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1523 * Add a count parameter to lpop/rpop, available in Redis 6.2.0. Thanks @wavenator. #1487 * Added a (pypy) trove classifier for Python 3.9. Thanks @D3X. [#1535] * Added ZINTER support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1520 * Added ZINTER support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1520 * Added ZDIFF and ZDIFFSTORE support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1518 * Added ZRANGESTORE support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1521 * Added LT and GT support for ZADD, available in Redis 6.2.0. Thanks @chayim. #1509 * Added ZRANDMEMBER support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1519 * Added GETDEL support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1514 * Added CLIENT KILL laddr filter, available in Redis 6.2.0. Thanks @chayim. #1506 * Added CLIENT UNPAUSE, available in Redis 6.2.0. Thanks @chayim. #1512 * Added NOMKSTREAM support for XADD, available in Redis 6.2.0. Thanks @chayim. #1507 * Added HRANDFIELD support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1513 * Added CLIENT INFO support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1517 * Added GETEX support, available in Redis 6.2.0. Thanks @AvitalFineRedis. #1515 * Added support for COPY command, available in Redis 6.2.0. Thanks @malinaa96. #1492 * Provide a development and testing environment via docker. Thanks @abrookins. #1365 * Added support for the LPOS command available in Redis 6.0.6. Thanks @aparcar #1353/#1354 * Added support for the ACL LOG command available in Redis 6. Thanks @2014BDuck. #1307 * Added support for ABSTTL option of the RESTORE command available in Redis 5.0. Thanks @charettes. #1423 - Drop account-defaults-redis.patch merged upstream- Add account-defaults-redis.patch which fixes failing tests by taking into consideration redis defaults, not overwriting them (gh#andymccurdy/redis-py#1499).- Skipp two tests because of gh#andymccurdy/redis-py#1459.- update to 3.5.3 * Restore try/except clauses to __del__ methods. These will be removed in 4.0 when more explicit resource management if enforced. #1339 * Update the master_address when Sentinels promote a new master. #847 * Update SentinelConnectionPool to not forcefully disconnect other in-use connections which can negatively affect threaded applications. #1345 3.5.2 * Tune the locking in ConnectionPool.get_connection so that the lock is not held while waiting for the socket to establish and validate the TCP connection. 3.5.1 * Fix for HSET argument validation to allow any non-None key. Thanks @AleksMat, #1337, #1341 3.5.0 * Removed exception trapping from __del__ methods. redis-py objects that hold various resources implement __del__ cleanup methods to release those resources when the object goes out of scope. This provides a fallback for when these objects aren't explicitly closed by user code. Prior to this change any errors encountered in closing these resources would be hidden from the user. Thanks @jdufresne. #1281 * Expanded support for connection strings specifying a username connecting to pre-v6 servers. #1274 * Optimized Lock's blocking_timeout and sleep. If the lock cannot be acquired and the sleep value would cause the loop to sleep beyond blocking_timeout, fail immediately. Thanks @clslgrnc. #1263 * Added support for passing Python memoryviews to Redis command args that expect strings or bytes. The memoryview instance is sent directly to the socket such that there are zero copies made of the underlying data during command packing. Thanks @Cody-G. #1265, #1285 * HSET command now can accept multiple pairs. HMSET has been marked as deprecated now. Thanks to @laixintao #1271 * Don't manually DISCARD when encountering an ExecAbortError. Thanks @nickgaya, #1300/#1301 * Reset the watched state of pipelines after calling exec. This saves a roundtrip to the server by not having to call UNWATCH within Pipeline.reset(). Thanks @nickgaya, #1299/#1302 * Added the KEEPTTL option for the SET command. Thanks @laixintao #1304/#1280 * Added the MEMORY STATS command. #1268 * Lock.extend() now has a new option, `replace_ttl`. When False (the default), Lock.extend() adds the `additional_time` to the lock's existing TTL. When replace_ttl=True, the lock's existing TTL is replaced with the value of `additional_time`. * Add testing and support for PyPy.- version update to 3.4.1 * 3.4.1 * Move the username argument in the Redis and Connection classes to the end of the argument list. This helps those poor souls that specify all their connection options as non-keyword arguments. #1276 * Prior to ACL support, redis-py ignored the username component of Connection URLs. With ACL support, usernames are no longer ignored and are used to authenticate against an ACL rule. Some cloud vendors with managed Redis instances (like Heroku) provide connection URLs with a username component pre-ACL that is not intended to be used. Sending that username to Redis servers < 6.0.0 results in an error. Attempt to detect this condition and retry the AUTH command with only the password such that authentication continues to work for these users. #1274 * Removed the __eq__ hooks to Redis and ConnectionPool that were added in 3.4.0. This ended up being a bad idea as two separate connection pools be considered equal yet manage a completely separate set of connections. * 3.4.0 * Allow empty pipelines to be executed if there are WATCHed keys. This is a convenient way to test if any of the watched keys changed without actually running any other commands. Thanks @brianmaissy. [#1233], #1234 * Removed support for end of life Python 3.4. * Added support for all ACL commands in Redis 6. Thanks @IAmATeaPot418 for helping. * Pipeline instances now always evaluate to True. Prior to this change, pipeline instances relied on __len__ for boolean evaluation which meant that pipelines with no commands on the stack would be considered False. #994 * Client instances and Connection pools now support a 'client_name' argument. If supplied, all connections created will call CLIENT SETNAME as soon as the connection is opened. Thanks to @Habbie for supplying the basis of this change. #802 * Added the 'ssl_check_hostname' argument to specify whether SSL connections should require the server hostname to match the hostname specified in the SSL cert. By default 'ssl_check_hostname' is False for backwards compatibility. #1196 * Slightly optimized command packing. Thanks @Deneby67. #1255 * Added support for the TYPE argument to SCAN. Thanks @netocp. #1220 * Better thread and fork safety in ConnectionPool and BlockingConnectionPool. Added better locking to synchronize critical sections rather than relying on CPython-specific implementation details relating to atomic operations. Adjusted how the pools identify and deal with a fork. Added a ChildDeadlockedError exception that is raised by child processes in the very unlikely chance that a deadlock is encountered. Thanks @gmbnomis, @mdellweg, @yht804421715. #1270, [#1138], #1178, #906, #1262 * Added __eq__ hooks to the Redis and ConnectionPool classes. Thanks @brainix. #1240 - deleted patches - 0001-fix-tests-with-redis-pre-5.0.0.patch (upstreamed)- Fix tests with redis pre 5.0.0: * 0001-fix-tests-with-redis-pre-5.0.0.patch- specfile: * be more specifc in %files section - update to version 3.3.11: * Further fix for the SSLError -> TimeoutError mapping to work on obscure releases of Python 2.7. - changes from version 3.3.10: * Fixed a potential error handling bug for the SSLError -> TimeoutError mapping introduced in 3.3.9. hanks @zbristow. #1224 - changes from version 3.3.9: * Mapped Python 2.7 SSLError to TimeoutError where appropriate. Timeouts should now consistently raise TimeoutErrors on Python 2.7 for both unsecured and secured connections. Thanks @zbristow. #1222- Update to 3.3.8: * Fixed MONITOR parsing to properly parse IPv6 client addresses * Fixed a regression introduced in 3.3.0- Update to v3.3.6 * Resolve a race condition with the PubSubWorkerThread. #1150 * Response callbacks are now case insensitive. * Added support for hiredis-py 1.0.0 encoding error support. * Add READONLY and READWRITE commands. * Added extensive health checks that keep the connections lively. * Many more changes, see upstream changelog.- Add missing build dependency setuptools- Update to v3.2.1 * Fix SentinelConnectionPool to work in multiprocess/forked environments- downgrade requires for redis to recommends- Update to 3.2.0 bsc#1131555: * Added support for `select.poll` to test whether data can be read on a socket. This should allow for significantly more connections to be used with pubsub. Fixes #486/#1115 * Attempt to guarentee that the ConnectionPool hands out healthy connections. Healthy connections are those that have an established socket connection to the Redis server, are ready to accept a command and have no data available to read. Fixes #1127/#886 * Use the socket.IPPROTO_TCP constant instead of socket.SOL_TCP. IPPROTO_TCP is available on more interpreters (Jython for instance). Thanks @Junnplus. #1130 * Fixed a regression introduced in 3.0 that mishandles exceptions not derived from the base Exception class. KeyboardInterrupt and gevent.timeout notable. Thanks Christian Fersch. #1128/#1129 * Significant improvements to handing connections with forked processes. Parent and child processes no longer trample on each others' connections. Thanks to Jay Rolette for the patch and highlighting this issue. [#504]/#732/#784/#863 * PythonParser no longer closes the associated connection's socket. The connection itself will close the socket. #1108/#1085- Update to 3.1.0: * Connection URLs must have one of the following schemes: redis://, rediss://, unix://. Thanks @jdupl123. #961/#969 * Fixed an issue with retry_on_timeout logic that caused some TimeoutErrors to be retried. Thanks Aaron Yang. #1022/#1023 * Added support for SNI for SSL. Thanks @oridistor and Roey Prat. #1087 * Fixed ConnectionPool repr for pools with no connections. Thanks Cody Scott. #1043/#995 * Fixed GEOHASH to return a None value when specifying a place that doesn't exist on the server. Thanks @guybe7. #1126 * Fixed XREADGROUP to return an empty dictionary for messages that have been deleted but still exist in the unacknowledged queue. Thanks @xeizmendi. #1116 * Added an owned method to Lock objects. owned returns a boolean indicating whether the current lock instance still owns the lock. Thanks Dave Johansen. #1112 * Allow lock.acquire() to accept an optional token argument. If provided, the token argument is used as the unique value used to claim the lock. Thankd Dave Johansen. #1112 * Added a reacquire method to Lock objects. reaquire attempts to renew the lock such that the timeout is extended to the same value that the lock was initially acquired with. Thanks Ihor Kalnytskyi. #1014 * Stream names found within XREAD and XREADGROUP responses now properly respect the decode_responses flag. * XPENDING_RANGE now requires the user the specify the min, max and count arguments. Newer versions of Redis prevent ount from being infinite so it's left to the user to specify these values explicitly. * ZADD now returns None when xx=True and incr=True and an element is specified that doesn't exist in the sorted set. This matches what the server returns in this case. #1084 * Added client_kill_filter that accepts various filters to identify and kill clients. Thanks Theofanis Despoudis. #1098 * Fixed a race condition that occurred when unsubscribing and resubscribing to the same channel or pattern in rapid succession. Thanks Marcin Raczyński. #764 * Added a LockNotOwnedError that is raised when trying to extend or release a lock that is no longer owned. This is a subclass of LockError so previous code should continue to work as expected. Thanks Joshua Harlow. #1095 * Fixed a bug in GEORADIUS that forced decoding of places without respecting the decode_responses option. Thanks Bo Bayles. #1082 - Drop no longer needed redis-skip-rounding.patch- add recommendation for python-hiredis as requested by @mimi_vx in Request#649524- update to version 3.0.1: * Fixed regression with UnixDomainSocketConnection caused by 3.0.0. Thanks Jyrki Muukkonen * Fixed an issue with the new asynchronous flag on flushdb and flushall. Thanks rogeryen * Updated Lock.locked() method to indicate whether *any* process has acquired the lock, not just the current one. This is in line with the behavior of threading.Lock. Thanks Alan Justino da Silva - update to version 3.0.0: BACKWARDS INCOMPATIBLE CHANGES * When using a Lock as a context manager and the lock fails to be acquired a LockError is now raised. This prevents the code block inside the context manager from being executed if the lock could not be acquired. * Renamed LuaLock to Lock. * Removed the pipeline based Lock implementation in favor of the LuaLock implementation. * Only bytes, strings and numbers (ints, longs and floats) are acceptable for keys and values. Previously redis-py attempted to cast other types to str() and store the result. This caused must confusion and frustration when passing boolean values (cast to 'True' and 'False') or None values (cast to 'None'). It is now the user's responsibility to cast all key names and values to bytes, strings or numbers before passing the value to redis-py. * The StrictRedis class has been renamed to Redis. StrictRedis will continue to exist as an alias of Redis for the forseeable future. * The legacy Redis client class has been removed. It caused much confusion to users. * ZINCRBY arguments 'value' and 'amount' have swapped order to match the the Redis server. The new argument order is: keyname, amount, value. * MGET no longer raises an error if zero keys are passed in. Instead an empty list is returned. * MSET and MSETNX now require all keys/values to be specified in a single dictionary argument named mapping. This was changed to allow for future options to these commands in the future. * ZADD now requires all element names/scores be specified in a single dictionary argument named mapping. This was required to allow the NX, XX, CH and INCR options to be specified. * Removed support for EOL Python 2.6 and 3.3. Thanks jdufresne OTHER CHANGES * Added missing DECRBY command. Thanks derek-dchu * CLUSTER INFO and CLUSTER NODES respones are now properly decoded to strings. * Added a 'locked()' method to Lock objects. This method returns True if the lock has been acquired and owned by the current process, otherwise False. * EXISTS now supports multiple keys. It's return value is now the number of keys in the list that exist. * Ensure all commands can accept key names as bytes. This fixes issues with BLPOP, BRPOP and SORT. * All errors resulting from bad user input are raised as DataError exceptions. DataError is a subclass of RedisError so this should be transparent to anyone previously catching these. * Added support for NX, XX, CH and INCR options to ZADD * Added support for the MIGRATE command * Added support for the MEMORY USAGE and MEMORY PURGE commands. Thanks Itamar Haber * Added support for the 'asynchronous' argument to FLUSHDB and FLUSHALL commands. Thanks Itamar Haber * Added support for the BITFIELD command. Thanks Charles Leifer and Itamar Haber * Improved performance on pipeline requests with large chunks of data. Thanks tzickel * Fixed test suite to not fail if another client is connected to the server the tests are running against. * Added support for SWAPDB. Thanks Itamar Haber * Added support for all STREAM commands. Thanks Roey Prat and Itamar Haber * SHUTDOWN now accepts the 'save' and 'nosave' arguments. Thanks dwilliams-kenzan * Added support for ZPOPMAX, ZPOPMIN, BZPOPMAX, BZPOPMIN. Thanks Itamar Haber * Added support for the 'type' argument in CLIENT LIST. Thanks Roey Prat * Added support for CLIENT PAUSE. Thanks Roey Prat * Added support for CLIENT ID and CLIENT UNBLOCK. Thanks Itamar Haber * GEODIST now returns a None value when referencing a place that does not exist. Thanks qingping209 * Added a ping() method to pubsub objects. Thanks krishan-carbon * Fixed a bug with keys in the INFO dict that contained ':' symbols. Thanks mzalimeni * ssl_cert_reqs now has a default value of 'required' by default. This should make connecting to a remote Redis server over SSL more secure. Thanks u2mejc * Fixed the select system call retry compatibility with Python 2.x. Thanks lddubeau * max_connections is now a valid querystring argument for creating connection pools from URLs. Thanks mmaslowskicc * Added the UNLINK command. Thanks yozel * Added socket_type option to Connection for configurability. Thanks garlicnation * Lock.do_acquire now atomically sets acquires the lock and sets the expire value via set(nx=True, px=timeout). Thanks 23doors * Added 'count' argument to SPOP. Thanks AlirezaSadeghi * Fixed an issue parsing client_list respones that contained an '='. Thanks swilly22- Add patch redis-skip-rounding.patch to fix rounding issues with geolocation, it is not stable enought o produce pinpoint equal results among 32bit platforms- Run tests by launching redis server - Require redis on runtime- update to version 2.10.6: * Various performance improvements. Thanks cjsimpson * Fixed a bug with SRANDMEMBER where * Added HSTRLEN command. Thanks Alexander Putilin * Added the TOUCH command. Thanks Anis Jonischkeit * Remove unnecessary calls to the server when registering Lua scripts. Thanks Ben Greenberg * SET's EX and PX arguments now allow values of zero. Thanks huangqiyin * Added PUBSUB {CHANNELS, NUMPAT, NUMSUB} commands. Thanks Angus Pearson * PubSub connections that that encounter `InterruptedError`s now retry automatically. Thanks Carlton Gibson and Seth M. Larson * LPUSH and RPUSH commands run on PyPy now correctly returns the number of items of the list. Thanks Jeong YunWon * Added support to automatically retry socket EINTR errors. Thanks Thomas Steinacher * PubSubWorker threads started with `run_in_thread` are now daemonized so the thread shuts down when the running process goes away. Thanks Keith Ainsworth * Added support for GEO commands. Thanks Pau Freixes, Alex DeBrie and Abraham Toriz * Made client construction from URLs smarter. Thanks Tim Savage * Added support for CLUSTER * commands. Thanks Andy Huang * The RESTORE command now accepts an optional `replace` boolean. Thanks Yoshinari Takaoka * Attempt to connect to a new Sentinel if a TimeoutError occurs. Thanks Bo Lopker * Fixed a bug in the client's `__getitem__` where a KeyError would be raised if the value returned by the server is an empty string. Thanks Javier Candeira. * Socket timeouts when connecting to a server are now properly raised as TimeoutErrors.- convert the package to singlespec- update to 2.10.5: * Allow URL encoded parameters in Redis URLs. Characters like a "/" can now be URL encoded and redis-py will correctly decode them. Thanks * Added support for the WAIT command. Thanks https://github.com/eshizhan * Better shutdown support for the PubSub Worker Thread. It now properly cleans up the connection, unsubscribes from any channels and patterns previously subscribed to and consumes any waiting messages on the socket. * Added the ability to sleep for a brief period in the event of a WatchError occuring. Thanks Joshua Harlow. * Fixed a bug with pipeline error reporting when dealing with characters in error messages that could not be encoded to the connection's character set. Thanks Hendrik Muhs. * Fixed a bug in Sentinel connections that would inadvertantly connect to the master when the connection pool resets. Thanks https://github.com/df3n5 * Better timeout support in Pubsub get_message. Thanks Andy Isaacson. * Fixed a bug with the HiredisParser that would cause the parser to get stuck in an endless loop if a specific number of bytes were delivered from the socket. This fix also increases performance of parsing large responses from the Redis server. * Added support for ZREVRANGEBYLEX. * ConnectionErrors are now raised if Redis refuses a connection due to the maxclients limit being exceeded. Thanks Roman Karpovich. * max_connections can now be set when instantiating client instances. Thanks Ohad Perry.h01-ch5a 1729255327  ""$$&&((*+,--//1133557799;;==?@ABCDEFGHIJJLLNNPQRRTTVVXXZ[\]^_`abcdefggiikkmmooqqstuvvxxzz|}~5.0.1-150400.12.6.2   redisredis-5.0.1.dist-infoINSTALLERLICENSEMETADATARECORDREQUESTEDWHEELtop_level.txt__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pycbackoff.cpython-311.opt-1.pycbackoff.cpython-311.pycclient.cpython-311.opt-1.pycclient.cpython-311.pyccluster.cpython-311.opt-1.pyccluster.cpython-311.pyccompat.cpython-311.opt-1.pyccompat.cpython-311.pycconnection.cpython-311.opt-1.pycconnection.cpython-311.pyccrc.cpython-311.opt-1.pyccrc.cpython-311.pyccredentials.cpython-311.opt-1.pyccredentials.cpython-311.pycexceptions.cpython-311.opt-1.pycexceptions.cpython-311.pyclock.cpython-311.opt-1.pyclock.cpython-311.pycocsp.cpython-311.opt-1.pycocsp.cpython-311.pycretry.cpython-311.opt-1.pycretry.cpython-311.pycsentinel.cpython-311.opt-1.pycsentinel.cpython-311.pyctyping.cpython-311.opt-1.pyctyping.cpython-311.pycutils.cpython-311.opt-1.pycutils.cpython-311.pyc_parsers__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pycbase.cpython-311.opt-1.pycbase.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycencoders.cpython-311.opt-1.pycencoders.cpython-311.pychelpers.cpython-311.opt-1.pychelpers.cpython-311.pychiredis.cpython-311.opt-1.pychiredis.cpython-311.pycresp2.cpython-311.opt-1.pycresp2.cpython-311.pycresp3.cpython-311.opt-1.pycresp3.cpython-311.pycsocket.cpython-311.opt-1.pycsocket.cpython-311.pycbase.pycommands.pyencoders.pyhelpers.pyhiredis.pyresp2.pyresp3.pysocket.pyasyncio__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pycclient.cpython-311.opt-1.pycclient.cpython-311.pyccluster.cpython-311.opt-1.pyccluster.cpython-311.pycconnection.cpython-311.opt-1.pycconnection.cpython-311.pyclock.cpython-311.opt-1.pyclock.cpython-311.pycretry.cpython-311.opt-1.pycretry.cpython-311.pycsentinel.cpython-311.opt-1.pycsentinel.cpython-311.pycutils.cpython-311.opt-1.pycutils.cpython-311.pycclient.pycluster.pyconnection.pylock.pyretry.pysentinel.pyutils.pybackoff.pyclient.pycluster.pycommands__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyccluster.cpython-311.opt-1.pyccluster.cpython-311.pyccore.cpython-311.opt-1.pyccore.cpython-311.pychelpers.cpython-311.opt-1.pychelpers.cpython-311.pycredismodules.cpython-311.opt-1.pycredismodules.cpython-311.pycsentinel.cpython-311.opt-1.pycsentinel.cpython-311.pycbf__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycinfo.cpython-311.opt-1.pycinfo.cpython-311.pyccommands.pyinfo.pycluster.pycore.pygraph__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycedge.cpython-311.opt-1.pycedge.cpython-311.pycexceptions.cpython-311.opt-1.pycexceptions.cpython-311.pycexecution_plan.cpython-311.opt-1.pycexecution_plan.cpython-311.pycnode.cpython-311.opt-1.pycnode.cpython-311.pycpath.cpython-311.opt-1.pycpath.cpython-311.pycquery_result.cpython-311.opt-1.pycquery_result.cpython-311.pyccommands.pyedge.pyexceptions.pyexecution_plan.pynode.pypath.pyquery_result.pyhelpers.pyjson__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc_util.cpython-311.opt-1.pyc_util.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycdecoders.cpython-311.opt-1.pycdecoders.cpython-311.pycpath.cpython-311.opt-1.pycpath.cpython-311.pyc_util.pycommands.pydecoders.pypath.pyredismodules.pysearch__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc_util.cpython-311.opt-1.pyc_util.cpython-311.pycaggregation.cpython-311.opt-1.pycaggregation.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycdocument.cpython-311.opt-1.pycdocument.cpython-311.pycfield.cpython-311.opt-1.pycfield.cpython-311.pycindexDefinition.cpython-311.opt-1.pycindexDefinition.cpython-311.pycquery.cpython-311.opt-1.pycquery.cpython-311.pycquerystring.cpython-311.opt-1.pycquerystring.cpython-311.pycreducers.cpython-311.opt-1.pycreducers.cpython-311.pycresult.cpython-311.opt-1.pycresult.cpython-311.pycsuggestion.cpython-311.opt-1.pycsuggestion.cpython-311.pyc_util.pyaggregation.pycommands.pydocument.pyfield.pyindexDefinition.pyquery.pyquerystring.pyreducers.pyresult.pysuggestion.pysentinel.pytimeseries__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyccommands.cpython-311.opt-1.pyccommands.cpython-311.pycinfo.cpython-311.opt-1.pycinfo.cpython-311.pycutils.cpython-311.opt-1.pycutils.cpython-311.pyccommands.pyinfo.pyutils.pycompat.pyconnection.pycrc.pycredentials.pyexceptions.pylock.pyocsp.pyretry.pysentinel.pytyping.pyutils.pypython311-redisREADME.mdpython311-redisLICENSE/usr/lib/python3.11/site-packages//usr/lib/python3.11/site-packages/redis-5.0.1.dist-info//usr/lib/python3.11/site-packages/redis//usr/lib/python3.11/site-packages/redis/__pycache__//usr/lib/python3.11/site-packages/redis/_parsers//usr/lib/python3.11/site-packages/redis/_parsers/__pycache__//usr/lib/python3.11/site-packages/redis/asyncio//usr/lib/python3.11/site-packages/redis/asyncio/__pycache__//usr/lib/python3.11/site-packages/redis/commands//usr/lib/python3.11/site-packages/redis/commands/__pycache__//usr/lib/python3.11/site-packages/redis/commands/bf//usr/lib/python3.11/site-packages/redis/commands/bf/__pycache__//usr/lib/python3.11/site-packages/redis/commands/graph//usr/lib/python3.11/site-packages/redis/commands/graph/__pycache__//usr/lib/python3.11/site-packages/redis/commands/json//usr/lib/python3.11/site-packages/redis/commands/json/__pycache__//usr/lib/python3.11/site-packages/redis/commands/search//usr/lib/python3.11/site-packages/redis/commands/search/__pycache__//usr/lib/python3.11/site-packages/redis/commands/timeseries//usr/lib/python3.11/site-packages/redis/commands/timeseries/__pycache__//usr/share/doc/packages//usr/share/doc/packages/python311-redis//usr/share/licenses//usr/share/licenses/python311-redis/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:36094/SUSE_SLE-15-SP4_Update/dc9db7b1104298e26f5678fc5320e610-python-redis.SUSE_SLE-15-SP4_Updatedrpmxz5noarch-suse-linuxdirectoryASCII textASCII text, with very long linesASCII text, with CRLF line terminatorsemptyPython script, ASCII text executable  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRzb lbVpython311-hiredisredis1.0.0 utf-8a3bbe3f2f131af9702787d6441f60617f27b7594f19d4e7041e08df9e4d98ae5?7zXZ !t/$ ]"k%4Pa La6= ?+ŵ@eJuXdc=twRx:`Rtpmv] Ƿ$;8YUޅs=jmo2;JB\%tQ ٰ 1T2(ٷo:{qg1 \?p{6a|p7!2*&(Ůb?& %ŔQ jcqF; ES4u`Sj4> \Bfe* quJ|_É,dm!dbcYFWvG@_NZ,}4Cgz=#o/u PiLQ0n*ZV0);E5bمsB$nRtD=s=f?Aia XhnbߜB"h1P6^ogBZՁ>}0P;|\A)mʼn!B1gî;L6Th,XjMʄ߹ Ï9&2tò9j!`jޫx'}%ϼl#bJ԰\/հdcq*.AuCȂKq#vcU}_eua/~A$iIJI>UuGp;go# YX+9D isxpv~="cm*&) 0Ih̰(ʜ~f15rxdk kY?_f")(^)ƍ fz`܌cuG(>v,ೆqe-('s6]A͖`RCΫW,4_9%'^s Va;O ;hVh]SxJ P({@gj%[h^ r }g,_Mg[Fhc.a3ܟxj o2?&KZՔ-l4XEɢP~^?@ċ\Qtzԑ HAl-1xwŽo(3s҄t9= DRk`YR_6z&$i}]^VX}QS¢JOufБczRHJq(pǰ=wsx ^| l8t]n6zP7]L&1a3;‹ tUS##I)=j/{s Lվ}N|kHS1-v8&yT `(0ptm&m|{|>f]lT_Z&yG ǝutj;NM*iKP`KLBٰ ~U&5jU,5Ci"jxh+dЬN0ndiIF=ɀɲEdM-xƪ獁\Rp#Yw9Cg |wB2! FZZO#LV{%c e-xN|$X%e͔?og8Xo*h82{OS4\ "%(ec94 GQL 7?ǟ]v|=3p??LIQJ(&kp BZ[tN@ th4M-(wajVE?*\4ZqmH8cQpA%g2YrY;xMpag|h1g`U֭HF _wp?%l"B&wjhcmTC;Y& DrAn,o tlKyjEK;@,*Ӳ{;!ƑbЌ`רߛ7p![K52bxE{"S#/w'buŢhj<!Mx3MT*`1"19%>ZwS{,i#3Ěδ^ę"…mFmEs.|qdgnFkY"]Q-2a ַn !L Y58;ժ0lU'F=k_&Ϭ@ ]| /-U;I׳)@A2 K^-4a4ztl^] &7 U{ 5g+)={h"IhFkx]B}sjh|HAYU]e]@Hכּ0e6+pı=?)0܂u ?rK xE