Team Ai
Datasetpublic

Brunobkr/llama.cpp_AlgMor24_github

ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes3kdownloads
cache.js292 linesDownload Raw Back to file-entry-cache
1var path = require('path');2var crypto = require('crypto');3 4module.exports = {5  createFromFile: function (filePath, useChecksum) {6    var fname = path.basename(filePath);7    var dir = path.dirname(filePath);8    return this.create(fname, dir, useChecksum);9  },10 11  create: function (cacheId, _path, useChecksum) {12    var fs = require('fs');13    var flatCache = require('flat-cache');14    var cache = flatCache.load(cacheId, _path);15    var normalizedEntries = {};16 17    var removeNotFoundFiles = function removeNotFoundFiles() {18      const cachedEntries = cache.keys();19      // remove not found entries20      cachedEntries.forEach(function remover(fPath) {21        try {22          fs.statSync(fPath);23        } catch (err) {24          if (err.code === 'ENOENT') {25            cache.removeKey(fPath);26          }27        }28      });29    };30 31    removeNotFoundFiles();32 33    return {34      /**35       * the flat cache storage used to persist the metadata of the `files36       * @type {Object}37       */38      cache: cache,39 40      /**41       * Given a buffer, calculate md5 hash of its content.42       * @method getHash43       * @param  {Buffer} buffer   buffer to calculate hash on44       * @return {String}          content hash digest45       */46      getHash: function (buffer) {47        return crypto.createHash('md5').update(buffer).digest('hex');48      },49 50      /**51       * Return whether or not a file has changed since last time reconcile was called.52       * @method hasFileChanged53       * @param  {String}  file  the filepath to check54       * @return {Boolean}       wheter or not the file has changed55       */56      hasFileChanged: function (file) {57        return this.getFileDescriptor(file).changed;58      },59 60      /**61       * given an array of file paths it return and object with three arrays:62       *  - changedFiles: Files that changed since previous run63       *  - notChangedFiles: Files that haven't change64       *  - notFoundFiles: Files that were not found, probably deleted65       *66       * @param  {Array} files the files to analyze and compare to the previous seen files67       * @return {[type]}       [description]68       */69      analyzeFiles: function (files) {70        var me = this;71        files = files || [];72 73        var res = {74          changedFiles: [],75          notFoundFiles: [],76          notChangedFiles: [],77        };78 79        me.normalizeEntries(files).forEach(function (entry) {80          if (entry.changed) {81            res.changedFiles.push(entry.key);82            return;83          }84          if (entry.notFound) {85            res.notFoundFiles.push(entry.key);86            return;87          }88          res.notChangedFiles.push(entry.key);89        });90        return res;91      },92 93      getFileDescriptor: function (file) {94        var fstat;95 96        try {97          fstat = fs.statSync(file);98        } catch (ex) {99          this.removeEntry(file);100          return { key: file, notFound: true, err: ex };101        }102 103        if (useChecksum) {104          return this._getFileDescriptorUsingChecksum(file);105        }106 107        return this._getFileDescriptorUsingMtimeAndSize(file, fstat);108      },109 110      _getFileDescriptorUsingMtimeAndSize: function (file, fstat) {111        var meta = cache.getKey(file);112        var cacheExists = !!meta;113 114        var cSize = fstat.size;115        var cTime = fstat.mtime.getTime();116 117        var isDifferentDate;118        var isDifferentSize;119 120        if (!meta) {121          meta = { size: cSize, mtime: cTime };122        } else {123          isDifferentDate = cTime !== meta.mtime;124          isDifferentSize = cSize !== meta.size;125        }126 127        var nEntry = (normalizedEntries[file] = {128          key: file,129          changed: !cacheExists || isDifferentDate || isDifferentSize,130          meta: meta,131        });132 133        return nEntry;134      },135 136      _getFileDescriptorUsingChecksum: function (file) {137        var meta = cache.getKey(file);138        var cacheExists = !!meta;139 140        var contentBuffer;141        try {142          contentBuffer = fs.readFileSync(file);143        } catch (ex) {144          contentBuffer = '';145        }146 147        var isDifferent = true;148        var hash = this.getHash(contentBuffer);149 150        if (!meta) {151          meta = { hash: hash };152        } else {153          isDifferent = hash !== meta.hash;154        }155 156        var nEntry = (normalizedEntries[file] = {157          key: file,158          changed: !cacheExists || isDifferent,159          meta: meta,160        });161 162        return nEntry;163      },164 165      /**166       * Return the list o the files that changed compared167       * against the ones stored in the cache168       *169       * @method getUpdated170       * @param files {Array} the array of files to compare against the ones in the cache171       * @returns {Array}172       */173      getUpdatedFiles: function (files) {174        var me = this;175        files = files || [];176 177        return me178          .normalizeEntries(files)179          .filter(function (entry) {180            return entry.changed;181          })182          .map(function (entry) {183            return entry.key;184          });185      },186 187      /**188       * return the list of files189       * @method normalizeEntries190       * @param files191       * @returns {*}192       */193      normalizeEntries: function (files) {194        files = files || [];195 196        var me = this;197        var nEntries = files.map(function (file) {198          return me.getFileDescriptor(file);199        });200 201        //normalizeEntries = nEntries;202        return nEntries;203      },204 205      /**206       * Remove an entry from the file-entry-cache. Useful to force the file to still be considered207       * modified the next time the process is run208       *209       * @method removeEntry210       * @param entryName211       */212      removeEntry: function (entryName) {213        delete normalizedEntries[entryName];214        cache.removeKey(entryName);215      },216 217      /**218       * Delete the cache file from the disk219       * @method deleteCacheFile220       */221      deleteCacheFile: function () {222        cache.removeCacheFile();223      },224 225      /**226       * remove the cache from the file and clear the memory cache227       */228      destroy: function () {229        normalizedEntries = {};230        cache.destroy();231      },232 233      _getMetaForFileUsingCheckSum: function (cacheEntry) {234        var contentBuffer = fs.readFileSync(cacheEntry.key);235        var hash = this.getHash(contentBuffer);236        var meta = Object.assign(cacheEntry.meta, { hash: hash });237        delete meta.size;238        delete meta.mtime;239        return meta;240      },241 242      _getMetaForFileUsingMtimeAndSize: function (cacheEntry) {243        var stat = fs.statSync(cacheEntry.key);244        var meta = Object.assign(cacheEntry.meta, {245          size: stat.size,246          mtime: stat.mtime.getTime(),247        });248        delete meta.hash;249        return meta;250      },251 252      /**253       * Sync the files and persist them to the cache254       * @method reconcile255       */256      reconcile: function (noPrune) {257        removeNotFoundFiles();258 259        noPrune = typeof noPrune === 'undefined' ? true : noPrune;260 261        var entries = normalizedEntries;262        var keys = Object.keys(entries);263 264        if (keys.length === 0) {265          return;266        }267 268        var me = this;269 270        keys.forEach(function (entryName) {271          var cacheEntry = entries[entryName];272 273          try {274            var meta = useChecksum275              ? me._getMetaForFileUsingCheckSum(cacheEntry)276              : me._getMetaForFileUsingMtimeAndSize(cacheEntry);277            cache.setKey(entryName, meta);278          } catch (err) {279            // if the file does not exists we don't save it280            // other errors are just thrown281            if (err.code !== 'ENOENT') {282              throw err;283            }284          }285        });286 287        cache.save(noPrune);288      },289    };290  },291};292 
Brunobkr/llama.cpp_AlgMor24_github · Team Ai