fileutils-dir 0.1.3__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.4
2
+ Name: fileutils-dir
3
+ Version: 0.2.0
4
+ Summary: Small utilities for listing files in directories
5
+ Author: Jatavallabhula Sarat Anirudh
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+
10
+ # fileutils
11
+
12
+ A small Python library for filtering and listing files.
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ pip install fileutils-dir
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```python
23
+ from fileutils import in_dir
24
+
25
+ # List all files in the current directory
26
+ files = in_dir()
27
+
28
+ # Filter by extension
29
+ python_files = in_dir(ext=[".py"])
30
+
31
+ # Filter by predefined categories
32
+ media_files = in_dir(dtype=["image", "video"])
33
+
34
+ # Filter by both
35
+ results = in_dir(path="src", ext=[".c"], dtype=["text"])
36
+ ```
37
+
38
+ ## API Reference
39
+
40
+ ### `in_dir(path=".", *, ext=None, dtype=None)`
41
+
42
+ Returns a list of file paths as strings from the specified directory.
43
+
44
+ - **path**: Directory to search. Accepts `str` or `pathlib.Path`. Defaults to `"."`.
45
+ - **ext**: An iterable of file extensions to include.
46
+ - **dtype**: An iterable of predefined file type categories.
47
+
48
+ If neither `ext` nor `dtype` are provided, all files in the directory are returned. If both are provided, the result is the union of both filters. Subdirectories are ignored.
49
+
50
+ ## Supported Types
51
+
52
+ The `dtype` parameter supports the following categories:
53
+
54
+ | Category | Extensions |
55
+ | :--- | :--- |
56
+ | `image` | .jpg, .jpeg, .png, .webp, .bmp, .gif, .tiff |
57
+ | `text` | .txt, .md, .rst, .log |
58
+ | `pdf` | .pdf |
59
+ | `doc` | .doc, .docx, .odt |
60
+ | `sheet` | .xls, .xlsx, .ods, .csv |
61
+ | `presentation` | .ppt, .pptx, .odp |
62
+ | `code` | .py, .js, .ts, .java, .c, .cpp, .h, .go, .rs, .rb, .php, .sh |
63
+ | `data` | .json, .yaml, .yml, .xml, .toml |
64
+ | `audio` | .mp3, .wav, .flac, .ogg, .aac, .m4a |
65
+ | `video` | .mp4, .mkv, .avi, .mov, .webm |
66
+ | `archive` | .zip, .tar, .gz, .bz2, .7z, .rar |
67
+
68
+ ## License
69
+
70
+ MIT
@@ -0,0 +1,61 @@
1
+ # fileutils
2
+
3
+ A small Python library for filtering and listing files.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pip install fileutils-dir
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```python
14
+ from fileutils import in_dir
15
+
16
+ # List all files in the current directory
17
+ files = in_dir()
18
+
19
+ # Filter by extension
20
+ python_files = in_dir(ext=[".py"])
21
+
22
+ # Filter by predefined categories
23
+ media_files = in_dir(dtype=["image", "video"])
24
+
25
+ # Filter by both
26
+ results = in_dir(path="src", ext=[".c"], dtype=["text"])
27
+ ```
28
+
29
+ ## API Reference
30
+
31
+ ### `in_dir(path=".", *, ext=None, dtype=None)`
32
+
33
+ Returns a list of file paths as strings from the specified directory.
34
+
35
+ - **path**: Directory to search. Accepts `str` or `pathlib.Path`. Defaults to `"."`.
36
+ - **ext**: An iterable of file extensions to include.
37
+ - **dtype**: An iterable of predefined file type categories.
38
+
39
+ If neither `ext` nor `dtype` are provided, all files in the directory are returned. If both are provided, the result is the union of both filters. Subdirectories are ignored.
40
+
41
+ ## Supported Types
42
+
43
+ The `dtype` parameter supports the following categories:
44
+
45
+ | Category | Extensions |
46
+ | :--- | :--- |
47
+ | `image` | .jpg, .jpeg, .png, .webp, .bmp, .gif, .tiff |
48
+ | `text` | .txt, .md, .rst, .log |
49
+ | `pdf` | .pdf |
50
+ | `doc` | .doc, .docx, .odt |
51
+ | `sheet` | .xls, .xlsx, .ods, .csv |
52
+ | `presentation` | .ppt, .pptx, .odp |
53
+ | `code` | .py, .js, .ts, .java, .c, .cpp, .h, .go, .rs, .rb, .php, .sh |
54
+ | `data` | .json, .yaml, .yml, .xml, .toml |
55
+ | `audio` | .mp3, .wav, .flac, .ogg, .aac, .m4a |
56
+ | `video` | .mp4, .mkv, .avi, .mov, .webm |
57
+ | `archive` | .zip, .tar, .gz, .bz2, .7z, .rar |
58
+
59
+ ## License
60
+
61
+ MIT
@@ -0,0 +1,51 @@
1
+ from collections.abc import Iterable
2
+ from pathlib import Path
3
+
4
+ FILE_TYPES = {
5
+ "image": [".jpg", ".jpeg", ".png", ".webp", ".bmp", ".gif", ".tiff"],
6
+ "text": [".txt", ".md", ".rst", ".log"],
7
+ "pdf": [".pdf"],
8
+ "doc": [".doc", ".docx", ".odt"],
9
+ "sheet": [".xls", ".xlsx", ".ods", ".csv"],
10
+ "presentation": [".ppt", ".pptx", ".odp"],
11
+ "code": [".py", ".js", ".ts", ".java", ".c", ".cpp", ".h", ".go", ".rs", ".rb", ".php", ".sh"],
12
+ "data": [".json", ".yaml", ".yml", ".xml", ".toml"],
13
+ "audio": [".mp3", ".wav", ".flac", ".ogg", ".aac", ".m4a"],
14
+ "video": [".mp4", ".mkv", ".avi", ".mov", ".webm"],
15
+ "archive": [".zip", ".tar", ".gz", ".bz2", ".7z", ".rar"],
16
+ }
17
+
18
+ def in_dir(
19
+ path: str | Path = ".",
20
+ *,
21
+ ext: Iterable[str] | None = None,
22
+ dtype: Iterable[str] | None = None,
23
+ ) -> list[str]:
24
+
25
+ ext = ext or []
26
+ dtype = dtype or []
27
+
28
+ normalized_extensions = {
29
+ e.lower() if e.startswith(".") else f".{e.lower()}"
30
+ for e in ext
31
+ }
32
+
33
+ for file_type in dtype:
34
+ key = file_type.strip().lower()
35
+ if key not in FILE_TYPES:
36
+ raise ValueError(
37
+ f"Unknown file type: {file_type}. "
38
+ f"Valid types: {', '.join(FILE_TYPES)}"
39
+ )
40
+ normalized_extensions.update(FILE_TYPES[key])
41
+
42
+ files: list[str] = []
43
+
44
+ for item in Path(path).iterdir():
45
+ if item.is_file() and (
46
+ not normalized_extensions or item.suffix.lower() in normalized_extensions
47
+ ):
48
+ files.append(str(item))
49
+
50
+ return files
51
+
@@ -0,0 +1,70 @@
1
+ Metadata-Version: 2.4
2
+ Name: fileutils-dir
3
+ Version: 0.2.0
4
+ Summary: Small utilities for listing files in directories
5
+ Author: Jatavallabhula Sarat Anirudh
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+
10
+ # fileutils
11
+
12
+ A small Python library for filtering and listing files.
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ pip install fileutils-dir
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```python
23
+ from fileutils import in_dir
24
+
25
+ # List all files in the current directory
26
+ files = in_dir()
27
+
28
+ # Filter by extension
29
+ python_files = in_dir(ext=[".py"])
30
+
31
+ # Filter by predefined categories
32
+ media_files = in_dir(dtype=["image", "video"])
33
+
34
+ # Filter by both
35
+ results = in_dir(path="src", ext=[".c"], dtype=["text"])
36
+ ```
37
+
38
+ ## API Reference
39
+
40
+ ### `in_dir(path=".", *, ext=None, dtype=None)`
41
+
42
+ Returns a list of file paths as strings from the specified directory.
43
+
44
+ - **path**: Directory to search. Accepts `str` or `pathlib.Path`. Defaults to `"."`.
45
+ - **ext**: An iterable of file extensions to include.
46
+ - **dtype**: An iterable of predefined file type categories.
47
+
48
+ If neither `ext` nor `dtype` are provided, all files in the directory are returned. If both are provided, the result is the union of both filters. Subdirectories are ignored.
49
+
50
+ ## Supported Types
51
+
52
+ The `dtype` parameter supports the following categories:
53
+
54
+ | Category | Extensions |
55
+ | :--- | :--- |
56
+ | `image` | .jpg, .jpeg, .png, .webp, .bmp, .gif, .tiff |
57
+ | `text` | .txt, .md, .rst, .log |
58
+ | `pdf` | .pdf |
59
+ | `doc` | .doc, .docx, .odt |
60
+ | `sheet` | .xls, .xlsx, .ods, .csv |
61
+ | `presentation` | .ppt, .pptx, .odp |
62
+ | `code` | .py, .js, .ts, .java, .c, .cpp, .h, .go, .rs, .rb, .php, .sh |
63
+ | `data` | .json, .yaml, .yml, .xml, .toml |
64
+ | `audio` | .mp3, .wav, .flac, .ogg, .aac, .m4a |
65
+ | `video` | .mp4, .mkv, .avi, .mov, .webm |
66
+ | `archive` | .zip, .tar, .gz, .bz2, .7z, .rar |
67
+
68
+ ## License
69
+
70
+ MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fileutils-dir"
3
- version = "0.1.3"
3
+ version = "0.2.0"
4
4
  description = "Small utilities for listing files in directories"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -1,59 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fileutils-dir
3
- Version: 0.1.3
4
- Summary: Small utilities for listing files in directories
5
- Author: Jatavallabhula Sarat Anirudh
6
- License-Expression: MIT
7
- Requires-Python: >=3.9
8
- Description-Content-Type: text/markdown
9
-
10
- # fileutils
11
-
12
- Small utilities for working with files and directories.
13
-
14
- Currently provides a helper to list files in one or more directories,
15
- optionally filtered by file extension or file type.
16
-
17
- Installation (local development)
18
-
19
- pip install -e .
20
-
21
- Usage
22
-
23
- from fileutils import in_dir
24
-
25
- # All files in current directory
26
- files = in_dir()
27
-
28
- # All Python files
29
- files = in_dir(extensions=[".py"])
30
-
31
- # Files by type
32
- files = in_dir(types=["code"])
33
-
34
- # Multiple directories
35
- files = in_dir(directories=["src", "tests"], types=["code"])
36
-
37
- Behavior
38
-
39
- - Defaults to the current directory (.)
40
- - If no extensions or types are provided, all files are returned
41
- - If both are provided, the result is the union of both filters
42
- - Only files are returned (directories are ignored)
43
-
44
- Supported types
45
-
46
- Common file groups such as:
47
- - code
48
- - text
49
- - image
50
- - pdf
51
- - audio
52
- - video
53
- - archive
54
-
55
- See source for the full mapping.
56
-
57
- License
58
-
59
- MIT
@@ -1,50 +0,0 @@
1
- # fileutils
2
-
3
- Small utilities for working with files and directories.
4
-
5
- Currently provides a helper to list files in one or more directories,
6
- optionally filtered by file extension or file type.
7
-
8
- Installation (local development)
9
-
10
- pip install -e .
11
-
12
- Usage
13
-
14
- from fileutils import in_dir
15
-
16
- # All files in current directory
17
- files = in_dir()
18
-
19
- # All Python files
20
- files = in_dir(extensions=[".py"])
21
-
22
- # Files by type
23
- files = in_dir(types=["code"])
24
-
25
- # Multiple directories
26
- files = in_dir(directories=["src", "tests"], types=["code"])
27
-
28
- Behavior
29
-
30
- - Defaults to the current directory (.)
31
- - If no extensions or types are provided, all files are returned
32
- - If both are provided, the result is the union of both filters
33
- - Only files are returned (directories are ignored)
34
-
35
- Supported types
36
-
37
- Common file groups such as:
38
- - code
39
- - text
40
- - image
41
- - pdf
42
- - audio
43
- - video
44
- - archive
45
-
46
- See source for the full mapping.
47
-
48
- License
49
-
50
- MIT
@@ -1,47 +0,0 @@
1
- from collections.abc import Iterable
2
- from pathlib import Path
3
-
4
- FILE_TYPES = {
5
- "image": [".jpg", ".jpeg", ".png", ".webp", ".bmp", ".gif", ".tiff"],
6
- "text": [".txt", ".md", ".rst", ".log"], "pdf": [".pdf"], "doc": [".doc", ".docx", ".odt"],
7
- "sheet": [".xls", ".xlsx", ".ods", ".csv"], "presentation": [".ppt", ".pptx", ".odp"],
8
- "code": [".py", ".js", ".ts", ".java", ".c", ".cpp", ".h", ".go", ".rs", ".rb", ".php", ".sh"],
9
- "data": [".json", ".yaml", ".yml", ".xml", ".toml"],
10
- "audio": [".mp3", ".wav", ".flac", ".ogg", ".aac", ".m4a"],
11
- "video": [".mp4", ".mkv", ".avi", ".mov", ".webm"],
12
- "archive": [".zip", ".tar", ".gz", ".bz2", ".7z", ".rar"],
13
- }
14
-
15
-
16
- def in_dir(
17
- paths: Iterable[str] | None = None,
18
- ext: Iterable[str] | None = None,
19
- dtype: Iterable[str] | None = None,
20
- ) -> list[str]:
21
- paths = paths or ["."]
22
- ext = ext or []
23
- dtype = dtype or []
24
-
25
- normalized_extensions = {
26
- e.lower() if e.startswith(".") else f".{e.lower()}"
27
- for e in ext
28
- }
29
-
30
- for file_type in dtype:
31
- key = file_type.strip().lower()
32
- try:
33
- normalized_extensions.update(FILE_TYPES[key])
34
- except KeyError:
35
- raise ValueError(f"Unknown file type: {file_type}")
36
-
37
- files_to_return: list[str] = []
38
-
39
- for path in paths:
40
- for item in Path(path).iterdir():
41
- if not item.is_file():
42
- continue
43
-
44
- if not normalized_extensions or item.suffix.lower() in normalized_extensions:
45
- files_to_return.append(str(item))
46
-
47
- return files_to_return
@@ -1,59 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: fileutils-dir
3
- Version: 0.1.3
4
- Summary: Small utilities for listing files in directories
5
- Author: Jatavallabhula Sarat Anirudh
6
- License-Expression: MIT
7
- Requires-Python: >=3.9
8
- Description-Content-Type: text/markdown
9
-
10
- # fileutils
11
-
12
- Small utilities for working with files and directories.
13
-
14
- Currently provides a helper to list files in one or more directories,
15
- optionally filtered by file extension or file type.
16
-
17
- Installation (local development)
18
-
19
- pip install -e .
20
-
21
- Usage
22
-
23
- from fileutils import in_dir
24
-
25
- # All files in current directory
26
- files = in_dir()
27
-
28
- # All Python files
29
- files = in_dir(extensions=[".py"])
30
-
31
- # Files by type
32
- files = in_dir(types=["code"])
33
-
34
- # Multiple directories
35
- files = in_dir(directories=["src", "tests"], types=["code"])
36
-
37
- Behavior
38
-
39
- - Defaults to the current directory (.)
40
- - If no extensions or types are provided, all files are returned
41
- - If both are provided, the result is the union of both filters
42
- - Only files are returned (directories are ignored)
43
-
44
- Supported types
45
-
46
- Common file groups such as:
47
- - code
48
- - text
49
- - image
50
- - pdf
51
- - audio
52
- - video
53
- - archive
54
-
55
- See source for the full mapping.
56
-
57
- License
58
-
59
- MIT
File without changes