Message259778
I ran regex and issuperset version on a random string. The regex one gives better performance. So, I have included the re.escape in the patch.
>>> random_str = ''.join(random.choice(_LegalChars) for _ in range(10 ** 8))
>>> is_legal_key = re.compile('[%s]+' % re.escape(_LegalChars)).fullmatch
>>> Timer("is_legal_key(random_str)", setup="from __main__ import random_str, is_legal_key").timeit(1)
0.3168252399998437
>>> def is_legal_key(key):
... return key and set(_LegalChars).issuperset(key)
...
>>> Timer("is_legal_key(random_str)", setup="from __main__ import random_str, is_legal_key").timeit(1)
4.3335622880001665
Also, I have updated the patch. Can you please review it? :) |
|
Date |
User |
Action |
Args |
2016-02-07 10:36:05 | anish.shah | set | recipients:
+ anish.shah, jaraco, martin.panter, serhiy.storchaka, demian.brecht, Kunal Grover |
2016-02-07 10:36:05 | anish.shah | set | messageid: <1454841365.58.0.0687742856729.issue26302@psf.upfronthosting.co.za> |
2016-02-07 10:36:05 | anish.shah | link | issue26302 messages |
2016-02-07 10:36:05 | anish.shah | create | |
|