MCPcopy
hub / github.com/pytest-dev/pytest / _getbyspec

Method _getbyspec

src/_pytest/_py/path.py:680–707  ·  view source on GitHub ↗

See new for what 'spec' can be.

(self, spec: str)

Source from the content-addressed store, hash-verified

678 return obj
679
680 def _getbyspec(self, spec: str) -> list[str]:
681 """See new for what 'spec' can be."""
682 res = []
683 parts = self.strpath.split(self.sep)
684
685 args = filter(None, spec.split(","))
686 for name in args:
687 if name == "drive":
688 res.append(parts[0])
689 elif name == "dirname":
690 res.append(self.sep.join(parts[:-1]))
691 else:
692 basename = parts[-1]
693 if name == "basename":
694 res.append(basename)
695 else:
696 i = basename.rfind(".")
697 if i == -1:
698 purebasename, ext = basename, ""
699 else:
700 purebasename, ext = basename[:i], basename[i:]
701 if name == "purebasename":
702 res.append(purebasename)
703 elif name == "ext":
704 res.append(ext)
705 else:
706 raise ValueError(f"invalid part specification {name!r}")
707 return res
708
709 def dirpath(self, *args, **kwargs):
710 """Return the directory path joined with any given path arguments."""

Callers 6

basenameMethod · 0.95
dirnameMethod · 0.95
purebasenameMethod · 0.95
extMethod · 0.95
newMethod · 0.95
test_multiple_partsMethod · 0.80

Calls 2

appendMethod · 0.80
joinMethod · 0.80

Tested by 1

test_multiple_partsMethod · 0.64