1# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
2# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE
3# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt
4
5from astroid import nodes
6from astroid.brain.helpers import register_module_extender
7from astroid.builder import parse
8from astroid.manager import AstroidManager
9
10
11def _re_transform() -> nodes.Module:
12 return parse(
13 """
14 from collections import namedtuple
15 _Method = namedtuple('_Method', 'name ident salt_chars total_size')
16
17 METHOD_SHA512 = _Method('SHA512', '6', 16, 106)
18 METHOD_SHA256 = _Method('SHA256', '5', 16, 63)
19 METHOD_BLOWFISH = _Method('BLOWFISH', 2, 'b', 22)
20 METHOD_MD5 = _Method('MD5', '1', 8, 34)
21 METHOD_CRYPT = _Method('CRYPT', None, 2, 13)
22 """
23 )
24
25
26def register(manager: AstroidManager) -> None:
27 register_module_extender(manager, "crypt", _re_transform)