method: path.local.join

 return a new path by appending all 'args' as path
        components.  if abs=1 is used restart from root if any
        of the args is an absolute path.
        
    def join(self, *args, **kwargs):

origin: path.local

where:

function source:

def join(self, *args, **kwargs):
    """ return a new path by appending all 'args' as path
        components.  if abs=1 is used restart from root if any
        of the args is an absolute path.
        """
    if not args:
        return self
    strpath = self.strpath
    sep = self.sep
    strargs = [str(x) for x in args]
    if kwargs.get('abs', 0):
        for i in range(len(strargs)-1, -1, -1):
            if os.path.isabs(strargs[i]):
                strpath = strargs[i]
                strargs = strargs[i+1:]
                break
    for arg in strargs:
        arg = arg.strip(sep)
        if py.std.sys.platform == 'win32':
            # allow unix style paths even on windows.
            arg = arg.strip('/')
            arg = arg.replace('/', sep)
        if arg:
            if not strpath.endswith(sep):
                strpath += sep
            strpath += arg
    obj = self.new()
    obj.strpath = strpath
    return obj

call sites:

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.0

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.1

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.2

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.3

called in /home/johnny/projects/merlinux/py/dist/py/apigen/rest/genrest.py

traceback path.local.join.4

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.5

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.6

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.7

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.8

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.9

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.10

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.11

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.12

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.13

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.14

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.15

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.16

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.17

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.18

called in /home/johnny/projects/merlinux/py/dist/py/path/common.py

traceback path.local.join.19

called in /home/johnny/projects/merlinux/py/dist/py/path/local/local.py

traceback path.local.join.20