Skip to content

Commit

Permalink
Add type-hints to yaml.py
Browse files Browse the repository at this point in the history
  • Loading branch information
IwoHerka committed Nov 17, 2018
1 parent cfe5002 commit b0c3830
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions sexpr/yaml.py
@@ -1,21 +1,26 @@
import re
from typing import TYPE_CHECKING, Match, Optional

import yaml

if TYPE_CHECKING:
from yamlloader.ordereddict.loaders import Loader
from yaml.nodes import ScalarNode


class Regexpr(yaml.YAMLObject):
yaml_tag = u'!regexpr'

def __init__(self, pattern):
self.pattern = pattern
self.re_pattern = re.compile(pattern)

def matches(self, string):
return self.re_pattern.match(string)

@classmethod
def from_yaml(cls, loader, node):
def from_yaml(cls, loader: 'Loader', node: 'ScalarNode') -> 'Regexpr':
return Regexpr(node.value)

def __init__(self, pattern: str) -> None:
self.pattern = pattern
self.re_pattern = re.compile(pattern)

def __repr__(self):
return '(regex %s)' % self.pattern

def matches(self, string: str) -> Optional[Match[str]]:
return self.re_pattern.match(string)

0 comments on commit b0c3830

Please sign in to comment.