Skip to content

Commit

Permalink
Allow paths when creating 'DirectoryTree'.
Browse files Browse the repository at this point in the history
Related issues: #1438.
  • Loading branch information
rodrigogiraoserrao committed Mar 21, 2023
1 parent 5cd1263 commit 2d70172
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Tabs widget now sends Tabs.Cleared when there is no active tab.
- Breaking change: changed default behaviour of `Vertical` (see `VerticalScroll`) https://github.com/Textualize/textual/issues/1957
- The default `overflow` style for `Horizontal` was changed to `hidden hidden` https://github.com/Textualize/textual/issues/1957
- `DirectoryTree` also accepts `pathlib.Path` objects as the path to list https://github.com/Textualize/textual/issues/1438

### Removed

Expand Down
13 changes: 7 additions & 6 deletions src/textual/widgets/_directory_tree.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
from __future__ import annotations

import os
from dataclasses import dataclass
from pathlib import Path
from typing import ClassVar

from rich.style import Style
from rich.text import Text, TextType

from .._types import MessageTarget
from ..message import Message
from ._tree import TOGGLE_STYLE, Tree, TreeNode


@dataclass
class DirEntry:
"""Attaches directory information ot a node."""
"""Attaches directory information to a node."""

path: str
is_dir: bool
Expand All @@ -26,9 +26,9 @@ class DirectoryTree(Tree[DirEntry]):
Args:
path: Path to directory.
name: The name of the widget, or None for no name. Defaults to None.
id: The ID of the widget in the DOM, or None for no ID. Defaults to None.
classes: A space-separated list of classes, or None for no classes. Defaults to None.
name: The name of the widget, or None for no name.
id: The ID of the widget in the DOM, or None for no ID.
classes: A space-separated list of classes, or None for no classes.
disabled: Whether the directory tree is disabled or not.
"""

Expand Down Expand Up @@ -83,13 +83,14 @@ def __init__(self, path: str) -> None:

def __init__(
self,
path: str,
path: str | Path,
*,
name: str | None = None,
id: str | None = None,
classes: str | None = None,
disabled: bool = False,
) -> None:
path = os.fspath(path)
self.path = path
super().__init__(
path,
Expand Down

0 comments on commit 2d70172

Please sign in to comment.