You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

93 line
3.1 KiB

  1. from __future__ import annotations
  2. from ruamel.yaml.reader import Reader
  3. from ruamel.yaml.scanner import Scanner, RoundTripScanner
  4. from ruamel.yaml.parser import Parser, RoundTripParser
  5. from ruamel.yaml.composer import Composer
  6. from ruamel.yaml.constructor import (
  7. BaseConstructor,
  8. SafeConstructor,
  9. Constructor,
  10. RoundTripConstructor,
  11. )
  12. from ruamel.yaml.resolver import VersionedResolver
  13. if False: # MYPY
  14. from typing import Any, Dict, List, Union, Optional # NOQA
  15. from ruamel.yaml.compat import StreamTextType, VersionType # NOQA
  16. __all__ = ['BaseLoader', 'SafeLoader', 'Loader', 'RoundTripLoader']
  17. class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, VersionedResolver):
  18. def __init__(
  19. self,
  20. stream: StreamTextType,
  21. version: Optional[VersionType] = None,
  22. preserve_quotes: Optional[bool] = None,
  23. ) -> None:
  24. self.comment_handling = None
  25. Reader.__init__(self, stream, loader=self)
  26. Scanner.__init__(self, loader=self)
  27. Parser.__init__(self, loader=self)
  28. Composer.__init__(self, loader=self)
  29. BaseConstructor.__init__(self, loader=self)
  30. VersionedResolver.__init__(self, version, loader=self)
  31. class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, VersionedResolver):
  32. def __init__(
  33. self,
  34. stream: StreamTextType,
  35. version: Optional[VersionType] = None,
  36. preserve_quotes: Optional[bool] = None,
  37. ) -> None:
  38. self.comment_handling = None
  39. Reader.__init__(self, stream, loader=self)
  40. Scanner.__init__(self, loader=self)
  41. Parser.__init__(self, loader=self)
  42. Composer.__init__(self, loader=self)
  43. SafeConstructor.__init__(self, loader=self)
  44. VersionedResolver.__init__(self, version, loader=self)
  45. class Loader(Reader, Scanner, Parser, Composer, Constructor, VersionedResolver):
  46. def __init__(
  47. self,
  48. stream: StreamTextType,
  49. version: Optional[VersionType] = None,
  50. preserve_quotes: Optional[bool] = None,
  51. ) -> None:
  52. self.comment_handling = None
  53. Reader.__init__(self, stream, loader=self)
  54. Scanner.__init__(self, loader=self)
  55. Parser.__init__(self, loader=self)
  56. Composer.__init__(self, loader=self)
  57. Constructor.__init__(self, loader=self)
  58. VersionedResolver.__init__(self, version, loader=self)
  59. class RoundTripLoader(
  60. Reader,
  61. RoundTripScanner,
  62. RoundTripParser,
  63. Composer,
  64. RoundTripConstructor,
  65. VersionedResolver,
  66. ):
  67. def __init__(
  68. self,
  69. stream: StreamTextType,
  70. version: Optional[VersionType] = None,
  71. preserve_quotes: Optional[bool] = None,
  72. ) -> None:
  73. # self.reader = Reader.__init__(self, stream)
  74. self.comment_handling = None # issue 385
  75. Reader.__init__(self, stream, loader=self)
  76. RoundTripScanner.__init__(self, loader=self)
  77. RoundTripParser.__init__(self, loader=self)
  78. Composer.__init__(self, loader=self)
  79. RoundTripConstructor.__init__(self, preserve_quotes=preserve_quotes, loader=self)
  80. VersionedResolver.__init__(self, version, loader=self)