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

Method new

src/_pytest/_py/path.py:640–678  ·  view source on GitHub ↗

Create a modified version of this path. the following keyword arguments modify various path parts:: a:/some/path/to/a/file.ext xx drive xxxxxxxxxxxxxxxxx dirname xxxxxxxx basename

(self, **kw)

Source from the content-addressed store, hash-verified

638 f.close()
639
640 def new(self, **kw):
641 """Create a modified version of this path.
642 the following keyword arguments modify various path parts::
643
644 a:/some/path/to/a/file.ext
645 xx drive
646 xxxxxxxxxxxxxxxxx dirname
647 xxxxxxxx basename
648 xxxx purebasename
649 xxx ext
650 """
651 obj = object.__new__(self.__class__)
652 if not kw:
653 obj.strpath = self.strpath
654 return obj
655 drive, dirname, _basename, purebasename, ext = self._getbyspec(
656 "drive,dirname,basename,purebasename,ext"
657 )
658 if "basename" in kw:
659 if "purebasename" in kw or "ext" in kw:
660 raise ValueError(f"invalid specification {kw!r}")
661 else:
662 pb = kw.setdefault("purebasename", purebasename)
663 try:
664 ext = kw["ext"]
665 except KeyError:
666 pass
667 else:
668 if ext and not ext.startswith("."):
669 ext = "." + ext
670 kw["basename"] = pb + ext
671
672 if "dirname" in kw and not kw["dirname"]:
673 kw["dirname"] = drive
674 else:
675 kw.setdefault("dirname", dirname)
676 kw.setdefault("sep", self.sep)
677 obj.strpath = normpath("{dirname}{sep}{basename}".format(**kw))
678 return obj
679
680 def _getbyspec(self, spec: str) -> list[str]:
681 """See new for what 'spec' can be."""

Callers 9

__add__Method · 0.95
dirpathMethod · 0.95
pyimportMethod · 0.95
test_new_identicalMethod · 0.80
test_newbasenameMethod · 0.80
test_newextMethod · 0.80

Calls 3

_getbyspecMethod · 0.95
setdefaultMethod · 0.80
formatMethod · 0.45

Tested by 6

test_new_identicalMethod · 0.64
test_newbasenameMethod · 0.64
test_newextMethod · 0.64