Skip to content

Commit cd6890b

Browse files
committed
correct definition of iter_files
1 parent 767dd33 commit cd6890b

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

robotcode/analyzer/__main__.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
1-
def main() -> None:
2-
# TODO: implement commandline analyzer
3-
pass
1+
import asyncio
2+
from pathlib import Path
3+
from typing import List
4+
5+
from robotcode.language_server.robotframework.diagnostics.library_doc import (
6+
RESOURCE_FILE_EXTENSION,
7+
ROBOT_FILE_EXTENSION,
8+
)
9+
from robotcode.utils.glob_path import iter_files
10+
11+
exclude_patterns: List[str] = [
12+
"**/.git/**",
13+
"**/node_modules/**",
14+
"**/.pytest_cache/**",
15+
"**/__pycache__/**",
16+
"**/.mypy_cache/**",
17+
]
18+
19+
20+
async def main() -> None:
21+
async for f in iter_files(
22+
Path("c:/develop/robot/robotframework"),
23+
f"**/*.{{{ROBOT_FILE_EXTENSION[1:]},{RESOURCE_FILE_EXTENSION[1:]}}}",
24+
ignore_patterns=exclude_patterns,
25+
absolute=True,
26+
):
27+
print(f)
428

529

630
if __name__ == "__main__":
7-
main()
31+
asyncio.run(main())

robotcode/language_server/robotframework/parts/robot_workspace.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ async def _load_workspace_documents(self, sender: Any) -> List[WorkspaceDocument
6666
async for f in iter_files(
6767
folder.uri.to_path(),
6868
f"**/*.{{{ROBOT_FILE_EXTENSION[1:]},{RESOURCE_FILE_EXTENSION[1:]}}}",
69-
ignore_patterns=config.workspace.exclude_patterns or [], # type: ignore
69+
ignore_patterns=config.workspace.exclude_patterns or [],
7070
absolute=True,
7171
)
7272
]

robotcode/utils/glob_path.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import os
44
import re
55
from pathlib import Path
6-
from typing import Any, AsyncGenerator, Iterable, List, Union, cast
6+
from typing import Any, AsyncGenerator, Iterable, Sequence, Union, cast
77

88

99
def _glob_pattern_to_re(pattern: str) -> str:
@@ -84,8 +84,8 @@ def globmatches(pattern: str, path: Union[Path, str, os.PathLike[Any]]) -> bool:
8484

8585
async def iter_files(
8686
path: Union[Path, str, os.PathLike[str]],
87-
patterns: Union[List[Union[Pattern, str]], Pattern, str, None] = None,
88-
ignore_patterns: Union[List[Union[Pattern, str]], Pattern, str, None] = None,
87+
patterns: Union[Sequence[Union[Pattern, str]], Pattern, str, None] = None,
88+
ignore_patterns: Union[Sequence[Union[Pattern, str]], Pattern, str, None] = None,
8989
*,
9090
absolute: bool = False,
9191
_base_path: Union[Path, str, os.PathLike[str], None] = None,
@@ -99,12 +99,12 @@ async def iter_files(
9999
if not isinstance(_base_path, Path):
100100
path = Path(_base_path)
101101

102-
if patterns is not None and not isinstance(patterns, (set, list, tuple)):
102+
if patterns is not None and isinstance(patterns, (str, Pattern)):
103103
patterns = [patterns]
104104
if patterns is not None:
105105
patterns = list(map(lambda p: p if isinstance(p, Pattern) else Pattern(p), patterns))
106106

107-
if ignore_patterns is not None and not isinstance(ignore_patterns, (set, list, tuple)):
107+
if ignore_patterns is not None and isinstance(ignore_patterns, (str, Pattern)):
108108
ignore_patterns = [ignore_patterns]
109109
if ignore_patterns is not None:
110110
ignore_patterns = list(map(lambda p: p if isinstance(p, Pattern) else Pattern(p), ignore_patterns))

0 commit comments

Comments
 (0)