D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
2
/
task
/
2
/
root
/
opt
/
imh-python
/
lib
/
python3.9
/
site-packages
/
rads
/
Filename :
_yaml.py
back
Copy
"""Helpers for yaml parsing""" import yaml class DumbYamlConstructor(yaml.constructor.SafeConstructor): """Subclass of SafeYamlConstructor that leaves bool/null/int as strs""" ignored_tags = [ 'tag:yaml.org,2002:bool', 'tag:yaml.org,2002:null', 'tag:yaml.org,2002:int', ] def __init__(self): super().__init__() for tag in self.ignored_tags: self.add_constructor(tag, DumbYamlConstructor.return_unchanged) def return_unchanged(self, node): """Handler for scalars that shouldn't be converted""" return self.construct_scalar(node) class DumbYamlLoader( yaml.reader.Reader, yaml.scanner.Scanner, yaml.parser.Parser, yaml.composer.Composer, DumbYamlConstructor, yaml.resolver.Resolver, ): """Custom YAML loader that leaves bool/null/int as strs, for use parsing cPanel's /etc/ YAML files Example: yaml.load(file_handle, rads.DumbYamlLoader) """ __module__ = 'rads' def __init__(self, stream): yaml.reader.Reader.__init__(self, stream) yaml.scanner.Scanner.__init__(self) yaml.parser.Parser.__init__(self) yaml.composer.Composer.__init__(self) DumbYamlConstructor.__init__(self) yaml.resolver.Resolver.__init__(self)