Elron commited on
Commit
f0b2749
1 Parent(s): fbbf277

Upload artifact.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. artifact.py +8 -0
artifact.py CHANGED
@@ -5,6 +5,7 @@ import os
5
  import pkgutil
6
  from abc import abstractmethod
7
  from copy import deepcopy
 
8
  from typing import Dict, List, Union, final
9
 
10
  from .dataclass import Dataclass, Field, fields
@@ -252,6 +253,7 @@ class UnitxtArtifactNotFoundError(Exception):
252
  return f"Artifact {self.name} does not exist, in artifactories:{self.artifactories}"
253
 
254
 
 
255
  def fetch_artifact(name):
256
  if Artifact.is_artifact_file(name):
257
  return Artifact.load(name), None
@@ -263,12 +265,18 @@ def fetch_artifact(name):
263
  raise UnitxtArtifactNotFoundError(name, Artifactories().artifactories)
264
 
265
 
 
266
  def verbosed_fetch_artifact(identifer):
267
  artifact, artifactory = fetch_artifact(identifer)
268
  logger.info(f"Artifact {identifer} is fetched from {artifactory}")
269
  return artifact
270
 
271
 
 
 
 
 
 
272
  def maybe_recover_artifact(artifact):
273
  if isinstance(artifact, str):
274
  return verbosed_fetch_artifact(artifact)
 
5
  import pkgutil
6
  from abc import abstractmethod
7
  from copy import deepcopy
8
+ from functools import lru_cache
9
  from typing import Dict, List, Union, final
10
 
11
  from .dataclass import Dataclass, Field, fields
 
253
  return f"Artifact {self.name} does not exist, in artifactories:{self.artifactories}"
254
 
255
 
256
+ @lru_cache(maxsize=None)
257
  def fetch_artifact(name):
258
  if Artifact.is_artifact_file(name):
259
  return Artifact.load(name), None
 
265
  raise UnitxtArtifactNotFoundError(name, Artifactories().artifactories)
266
 
267
 
268
+ @lru_cache(maxsize=None)
269
  def verbosed_fetch_artifact(identifer):
270
  artifact, artifactory = fetch_artifact(identifer)
271
  logger.info(f"Artifact {identifer} is fetched from {artifactory}")
272
  return artifact
273
 
274
 
275
+ def reset_artifacts_cache():
276
+ fetch_artifact.cache_clear()
277
+ verbosed_fetch_artifact.cache_clear()
278
+
279
+
280
  def maybe_recover_artifact(artifact):
281
  if isinstance(artifact, str):
282
  return verbosed_fetch_artifact(artifact)