Skip to content

Commit

Permalink
Fix introspector for patterns having a name defined
Browse files Browse the repository at this point in the history
  • Loading branch information
Toilal committed Nov 9, 2015
1 parent fc8a4fc commit 757ff7a
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions rebulk/introspector.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from collections import defaultdict

import six
from .pattern import StringPattern, RePattern
from .pattern import StringPattern, RePattern, FunctionalPattern
from .utils import extend_safe


Expand All @@ -30,7 +30,7 @@ class PatternDescription(Description):
"""
Description of a pattern.
"""
def __init__(self, pattern):
def __init__(self, pattern): # pylint:disable=too-many-branches
self.pattern = pattern
self._properties = defaultdict(list)

Expand All @@ -44,13 +44,16 @@ def __init__(self, pattern):
elif isinstance(pattern, StringPattern):
extend_safe(self._properties[pattern.name], pattern.patterns)
elif isinstance(pattern, RePattern):
if pattern.name and not pattern.private_parent and pattern.name not in pattern.private_names:
if pattern.name and pattern.name not in pattern.private_names:
extend_safe(self._properties[pattern.name], [None])
if not pattern.private_children:
for regex_pattern in pattern.patterns:
for group_name, values in regex_pattern.groupindex.items():
if group_name not in pattern.private_names:
extend_safe(self._properties[group_name], [None])
elif isinstance(pattern, FunctionalPattern):
if pattern.name and pattern.name not in pattern.private_names:
extend_safe(self._properties[pattern.name], [None])


@property
Expand Down

0 comments on commit 757ff7a

Please sign in to comment.