Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/ruamel/yaml/scalarint.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
| author | shellac |
|---|---|
| date | Sat, 02 May 2020 07:14:21 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:26e78fe6e8c4 |
|---|---|
| 1 # coding: utf-8 | |
| 2 | |
| 3 from __future__ import print_function, absolute_import, division, unicode_literals | |
| 4 | |
| 5 from .compat import no_limit_int # NOQA | |
| 6 from ruamel.yaml.anchor import Anchor | |
| 7 | |
| 8 if False: # MYPY | |
| 9 from typing import Text, Any, Dict, List # NOQA | |
| 10 | |
| 11 __all__ = ['ScalarInt', 'BinaryInt', 'OctalInt', 'HexInt', 'HexCapsInt', 'DecimalInt'] | |
| 12 | |
| 13 | |
| 14 class ScalarInt(no_limit_int): | |
| 15 def __new__(cls, *args, **kw): | |
| 16 # type: (Any, Any, Any) -> Any | |
| 17 width = kw.pop('width', None) # type: ignore | |
| 18 underscore = kw.pop('underscore', None) # type: ignore | |
| 19 anchor = kw.pop('anchor', None) # type: ignore | |
| 20 v = no_limit_int.__new__(cls, *args, **kw) # type: ignore | |
| 21 v._width = width | |
| 22 v._underscore = underscore | |
| 23 if anchor is not None: | |
| 24 v.yaml_set_anchor(anchor, always_dump=True) | |
| 25 return v | |
| 26 | |
| 27 def __iadd__(self, a): # type: ignore | |
| 28 # type: (Any) -> Any | |
| 29 x = type(self)(self + a) | |
| 30 x._width = self._width # type: ignore | |
| 31 x._underscore = ( # type: ignore | |
| 32 self._underscore[:] if self._underscore is not None else None # type: ignore | |
| 33 ) # NOQA | |
| 34 return x | |
| 35 | |
| 36 def __ifloordiv__(self, a): # type: ignore | |
| 37 # type: (Any) -> Any | |
| 38 x = type(self)(self // a) | |
| 39 x._width = self._width # type: ignore | |
| 40 x._underscore = ( # type: ignore | |
| 41 self._underscore[:] if self._underscore is not None else None # type: ignore | |
| 42 ) # NOQA | |
| 43 return x | |
| 44 | |
| 45 def __imul__(self, a): # type: ignore | |
| 46 # type: (Any) -> Any | |
| 47 x = type(self)(self * a) | |
| 48 x._width = self._width # type: ignore | |
| 49 x._underscore = ( # type: ignore | |
| 50 self._underscore[:] if self._underscore is not None else None # type: ignore | |
| 51 ) # NOQA | |
| 52 return x | |
| 53 | |
| 54 def __ipow__(self, a): # type: ignore | |
| 55 # type: (Any) -> Any | |
| 56 x = type(self)(self ** a) | |
| 57 x._width = self._width # type: ignore | |
| 58 x._underscore = ( # type: ignore | |
| 59 self._underscore[:] if self._underscore is not None else None # type: ignore | |
| 60 ) # NOQA | |
| 61 return x | |
| 62 | |
| 63 def __isub__(self, a): # type: ignore | |
| 64 # type: (Any) -> Any | |
| 65 x = type(self)(self - a) | |
| 66 x._width = self._width # type: ignore | |
| 67 x._underscore = ( # type: ignore | |
| 68 self._underscore[:] if self._underscore is not None else None # type: ignore | |
| 69 ) # NOQA | |
| 70 return x | |
| 71 | |
| 72 @property | |
| 73 def anchor(self): | |
| 74 # type: () -> Any | |
| 75 if not hasattr(self, Anchor.attrib): | |
| 76 setattr(self, Anchor.attrib, Anchor()) | |
| 77 return getattr(self, Anchor.attrib) | |
| 78 | |
| 79 def yaml_anchor(self, any=False): | |
| 80 # type: (bool) -> Any | |
| 81 if not hasattr(self, Anchor.attrib): | |
| 82 return None | |
| 83 if any or self.anchor.always_dump: | |
| 84 return self.anchor | |
| 85 return None | |
| 86 | |
| 87 def yaml_set_anchor(self, value, always_dump=False): | |
| 88 # type: (Any, bool) -> None | |
| 89 self.anchor.value = value | |
| 90 self.anchor.always_dump = always_dump | |
| 91 | |
| 92 | |
| 93 class BinaryInt(ScalarInt): | |
| 94 def __new__(cls, value, width=None, underscore=None, anchor=None): | |
| 95 # type: (Any, Any, Any, Any) -> Any | |
| 96 return ScalarInt.__new__(cls, value, width=width, underscore=underscore, anchor=anchor) | |
| 97 | |
| 98 | |
| 99 class OctalInt(ScalarInt): | |
| 100 def __new__(cls, value, width=None, underscore=None, anchor=None): | |
| 101 # type: (Any, Any, Any, Any) -> Any | |
| 102 return ScalarInt.__new__(cls, value, width=width, underscore=underscore, anchor=anchor) | |
| 103 | |
| 104 | |
| 105 # mixed casing of A-F is not supported, when loading the first non digit | |
| 106 # determines the case | |
| 107 | |
| 108 | |
| 109 class HexInt(ScalarInt): | |
| 110 """uses lower case (a-f)""" | |
| 111 | |
| 112 def __new__(cls, value, width=None, underscore=None, anchor=None): | |
| 113 # type: (Any, Any, Any, Any) -> Any | |
| 114 return ScalarInt.__new__(cls, value, width=width, underscore=underscore, anchor=anchor) | |
| 115 | |
| 116 | |
| 117 class HexCapsInt(ScalarInt): | |
| 118 """uses upper case (A-F)""" | |
| 119 | |
| 120 def __new__(cls, value, width=None, underscore=None, anchor=None): | |
| 121 # type: (Any, Any, Any, Any) -> Any | |
| 122 return ScalarInt.__new__(cls, value, width=width, underscore=underscore, anchor=anchor) | |
| 123 | |
| 124 | |
| 125 class DecimalInt(ScalarInt): | |
| 126 """needed if anchor""" | |
| 127 | |
| 128 def __new__(cls, value, width=None, underscore=None, anchor=None): | |
| 129 # type: (Any, Any, Any, Any) -> Any | |
| 130 return ScalarInt.__new__(cls, value, width=width, underscore=underscore, anchor=anchor) |
