Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/fsspec/__init__.py: 69%

29 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2023-12-08 06:40 +0000

1from importlib.metadata import entry_points 

2 

3from . import _version, caching 

4from .callbacks import Callback 

5from .compression import available_compressions 

6from .core import get_fs_token_paths, open, open_files, open_local 

7from .exceptions import FSTimeoutError 

8from .mapping import FSMap, get_mapper 

9from .registry import ( 

10 available_protocols, 

11 filesystem, 

12 get_filesystem_class, 

13 register_implementation, 

14 registry, 

15) 

16from .spec import AbstractFileSystem 

17 

18__version__ = _version.get_versions()["version"] 

19 

20__all__ = [ 

21 "AbstractFileSystem", 

22 "FSTimeoutError", 

23 "FSMap", 

24 "filesystem", 

25 "register_implementation", 

26 "get_filesystem_class", 

27 "get_fs_token_paths", 

28 "get_mapper", 

29 "open", 

30 "open_files", 

31 "open_local", 

32 "registry", 

33 "caching", 

34 "Callback", 

35 "available_protocols", 

36 "available_compressions", 

37] 

38 

39 

40def process_entries(): 

41 if entry_points is not None: 

42 try: 

43 eps = entry_points() 

44 except TypeError: 

45 pass # importlib-metadata < 0.8 

46 else: 

47 if hasattr(eps, "select"): # Python 3.10+ / importlib_metadata >= 3.9.0 

48 specs = eps.select(group="fsspec.specs") 

49 else: 

50 specs = eps.get("fsspec.specs", []) 

51 registered_names = {} 

52 for spec in specs: 

53 err_msg = f"Unable to load filesystem from {spec}" 

54 name = spec.name 

55 if name in registered_names: 

56 continue 

57 registered_names[name] = True 

58 register_implementation( 

59 name, 

60 spec.value.replace(":", "."), 

61 errtxt=err_msg, 

62 # We take our implementations as the ones to overload with if 

63 # for some reason we encounter some, may be the same, already 

64 # registered 

65 clobber=True, 

66 ) 

67 

68 

69process_entries()