Skip to content

Commit a6d2763

Browse files
committed
Faster qualified name format
1 parent 42164f8 commit a6d2763

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

libcst/metadata/scope_provider.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,9 @@ def _index(self) -> int:
219219
def get_qualified_names_for(self, full_name: str) -> Set[QualifiedName]:
220220
return {
221221
QualifiedName(
222-
self.scope._maybe_dotted_name(full_name),
222+
f"{self.scope._name_prefix}.{full_name}"
223+
if self.scope._name_prefix
224+
else full_name,
223225
QualifiedNameSource.LOCAL,
224226
)
225227
}
@@ -581,11 +583,6 @@ def accesses(self) -> Accesses:
581583
"""Return an :class:`~libcst.metadata.Accesses` contains all accesses in current scope."""
582584
return Accesses(self._accesses_by_name)
583585

584-
# makes a dot separated name but filters out empty strings
585-
def _maybe_dotted_name(self, *args: Optional[str]) -> str:
586-
# filter(None, ...) removes all falsey values (ie empty string)
587-
return ".".join(filter(None, [self._name_prefix, *args]))
588-
589586

590587
class BuiltinScope(Scope):
591588
"""
@@ -693,7 +690,8 @@ def __getitem__(self, name: str) -> Set[BaseAssignment]:
693690
return self.parent._getitem_from_self_or_parent(name)
694691

695692
def _make_name_prefix(self) -> str:
696-
return self.parent._maybe_dotted_name(self.name, "<locals>")
693+
# filter falsey strings out
694+
return ".".join(filter(None, [self.parent._name_prefix, self.name, "<locals>"]))
697695

698696

699697
# even though we don't override the constructor.
@@ -742,7 +740,8 @@ def _contains_in_self_or_parent(self, name: str) -> bool:
742740
return self.parent._contains_in_self_or_parent(name)
743741

744742
def _make_name_prefix(self) -> str:
745-
return self.parent._maybe_dotted_name(self.name)
743+
# filter falsey strings out
744+
return ".".join(filter(None, [self.parent._name_prefix, self.name]))
746745

747746

748747
# even though we don't override the constructor.
@@ -760,7 +759,8 @@ class ComprehensionScope(LocalScope):
760759
# https://www.python.org/dev/peps/pep-0572/#scope-of-the-target
761760

762761
def _make_name_prefix(self) -> str:
763-
return self.parent._maybe_dotted_name("<comprehension>")
762+
# filter falsey strings out
763+
return ".".join(filter(None, [self.parent._name_prefix, "<comprehension>"]))
764764

765765

766766
# Generates dotted names from an Attribute or Name node:

0 commit comments

Comments
 (0)