Allow paths when creating 'DirectoryTree'.

Related issues: #1438.
This commit is contained in:
Rodrigo Girão Serrão
2023-03-21 14:18:49 +00:00
parent 5cd1263875
commit 2d70172b8e
2 changed files with 8 additions and 6 deletions

View File

@@ -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

View File

@@ -1,5 +1,6 @@
from __future__ import annotations
import os
from dataclasses import dataclass
from pathlib import Path
from typing import ClassVar
@@ -7,14 +8,13 @@ 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
@@ -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.
"""
@@ -83,13 +83,14 @@ class DirectoryTree(Tree[DirEntry]):
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,