Skip to content

Commit afc165a

Browse files
authored
Merge pull request #132 from astronomy-commons/delucchi/healpix
Add method to get filepointer's basename
2 parents a95bb4d + eb92c48 commit afc165a

5 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/hipscat/io/file_io/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
directory_has_contents,
1818
does_file_or_directory_exist,
1919
find_files_matching_path,
20+
get_basename_from_filepointer,
2021
get_directory_contents,
2122
get_file_pointer_from_path,
2223
is_regular_file,

src/hipscat/io/file_io/file_io.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def load_csv_to_pandas(file_pointer: FilePointer, **kwargs) -> pd.DataFrame:
7878
"""
7979
return pd.read_csv(file_pointer, **kwargs)
8080

81+
8182
def load_parquet_to_pandas(file_pointer: FilePointer, **kwargs) -> pd.DataFrame:
8283
"""Load a parquet file to a pandas dataframe
8384

src/hipscat/io/file_io/file_pointer.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@ def get_file_pointer_from_path(path: str) -> FilePointer:
1111
return FilePointer(path)
1212

1313

14+
def get_basename_from_filepointer(pointer: FilePointer) -> str:
15+
"""Returns the base name of a regular file. May return empty string if the file is a directory.
16+
17+
Args:
18+
pointer: `FilePointer` object to find a basename within
19+
20+
Returns:
21+
string representation of the basename of a file.
22+
"""
23+
return os.path.basename(pointer)
24+
25+
1426
def append_paths_to_pointer(pointer: FilePointer, *paths: str) -> FilePointer:
1527
"""Append directories and/or a file name to a specified file pointer.
1628

tests/hipscat/io/file_io/test_file_io.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ def test_load_csv_to_pandas(small_sky_dir):
9393
loaded_df = load_csv_to_pandas(partition_info_pointer)
9494
pd.testing.assert_frame_equal(csv_df, loaded_df)
9595

96+
9697
def test_load_parquet_to_pandas(small_sky_dir):
9798
pixel_data_path = pixel_catalog_file(small_sky_dir, 0, 11)
9899
parquet_df = pd.read_parquet(pixel_data_path)

tests/hipscat/io/file_io/test_file_pointers.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
directory_has_contents,
66
does_file_or_directory_exist,
77
find_files_matching_path,
8+
get_basename_from_filepointer,
89
get_directory_contents,
910
get_file_pointer_from_path,
1011
is_regular_file,
@@ -16,6 +17,12 @@ def test_get_pointer_from_path(tmp_path):
1617
assert str(tmp_pointer) == str(tmp_path)
1718

1819

20+
def test_get_basename_from_filepointer(tmp_path):
21+
catalog_info_string = os.path.join(tmp_path, "catalog_info.json")
22+
catalog_info_pointer = get_file_pointer_from_path(catalog_info_string)
23+
assert get_basename_from_filepointer(catalog_info_pointer) == "catalog_info.json"
24+
25+
1926
def test_file_or_dir_exist(small_sky_dir):
2027
small_sky_pointer = get_file_pointer_from_path(small_sky_dir)
2128
assert does_file_or_directory_exist(small_sky_pointer)

0 commit comments

Comments
 (0)