<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _deploy_helper(filename, module_name, get_module, get_today_fn, hash_check=True, auth=None):
 """Deploys a file to the Artifactory BEL namespace cache :param str filename: The physical path :param str module_name: The name of the module to deploy to :param tuple[str] auth: A pair of (str username, str password) to give to the auth keyword of the constructor of :class:`artifactory.ArtifactoryPath`. Defaults to the result of :func:`get_arty_auth`. :return: The resource path, if it was deployed successfully, else none. :rtype: Optional[str] """

    path = ArtifactoryPath(
        get_module(module_name),
        auth=get_arty_auth() if auth is None else auth
    )
    path.mkdir(exist_ok=True)

    if hash_check:
        deployed_semantic_hashes = {
            get_bel_resource_hash(subpath.as_posix())
            for subpath in path
        }

        semantic_hash = get_bel_resource_hash(filename)

        if semantic_hash in deployed_semantic_hashes:
            return  # Don't deploy if it's already uploaded

    target = path / get_today_fn(module_name)
    target.deploy_file(filename)

    log.info('deployed %s', module_name)

    return target.as_posix()