@@ -446,7 +446,8 @@ def file_path_to_url(path: str) -> str:
446
446
return urljoin ("file:" , pathname2url (path ))
447
447
448
448
449
- _compression_to_extension = {"gzip" : ".gz" , "bz2" : ".bz2" , "zip" : ".zip" , "xz" : ".xz" }
449
+ _extension_to_compression = {".gz" : "gzip" , ".bz2" : "bz2" , ".zip" : "zip" , ".xz" : "xz" }
450
+ _supported_compressions = set (_extension_to_compression .values ())
450
451
451
452
452
453
def get_compression_method (
@@ -525,20 +526,18 @@ def infer_compression(
525
526
return "tar"
526
527
527
528
# Infer compression from the filename/URL extension
528
- for compression , extension in _compression_to_extension .items ():
529
+ for extension , compression in _extension_to_compression .items ():
529
530
if filepath_or_buffer .lower ().endswith (extension ):
530
531
return compression
531
532
return None
532
533
533
534
# Compression has been specified. Check that it's valid
534
- if compression in _compression_to_extension :
535
+ if compression in _supported_compressions :
535
536
return compression
536
537
537
538
# https://github.com/python/mypy/issues/5492
538
539
# Unsupported operand types for + ("List[Optional[str]]" and "List[str]")
539
- valid = ["infer" , None ] + sorted (
540
- _compression_to_extension
541
- ) # type: ignore[operator]
540
+ valid = ["infer" , None ] + sorted (_supported_compressions ) # type: ignore[operator]
542
541
msg = (
543
542
f"Unrecognized compression type: { compression } \n "
544
543
f"Valid compression types are { valid } "
@@ -683,7 +682,7 @@ def get_handle(
683
682
ioargs .encoding ,
684
683
ioargs .mode ,
685
684
errors ,
686
- ioargs .compression ["method" ] not in _compression_to_extension ,
685
+ ioargs .compression ["method" ] not in _supported_compressions ,
687
686
)
688
687
689
688
is_path = isinstance (handle , str )
0 commit comments