def __new__(cls, *args, **kwargs):
        """
        pathlib.Path overrides __new__ in order to create objects
        of different classes based on platform. This magic prevents
        us from adding an 'auth' argument to the constructor.
        So we have to first construct ArtifactoryPath by Pathlib and
        only then add auth information.
        """
        obj = pathlib.Path.__new__(cls, *args, **kwargs)

        cfg_entry = get_global_config_entry(obj.drive)
        obj.auth = kwargs.get('auth', None)
        obj.cert = kwargs.get('cert', None)

        if obj.auth is None and cfg_entry:
            obj.auth = (cfg_entry['username'], cfg_entry['password'])

        if obj.cert is None and cfg_entry:
            obj.cert = cfg_entry['cert']

        if 'verify' in kwargs:
            obj.verify = kwargs.get('verify')
        elif cfg_entry:
            obj.verify = cfg_entry['verify']
        else:
            obj.verify = True

        return obj
def __new__ ( cls , * args , ** kwargs ) : obj = pathlib . Path . __new__ ( cls , * args , ** kwargs ) cfg_entry = get_global_config_entry ( obj . drive ) obj . auth = kwargs . get ( 'auth' , None ) obj . cert = kwargs . get ( 'cert' , None ) if obj . auth is None and cfg_entry : obj . auth = ( cfg_entry [ 'username' ] , cfg_entry [ 'password' ] ) if obj . cert is None and cfg_entry : obj . cert = cfg_entry [ 'cert' ] if 'verify' in kwargs : obj . verify = kwargs . get ( 'verify' ) elif cfg_entry : obj . verify = cfg_entry [ 'verify' ] else : obj . verify = True return obj
pathlib.Path overrides __new__ in order to create objects
        of different classes based on platform. This magic prevents
        us from adding an 'auth' argument to the constructor.
        So we have to first construct ArtifactoryPath by Pathlib and
        only then add auth information.