dirplot 0.1.0__tar.gz → 0.1.2__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.
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/workflows/ci.yml +2 -2
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/workflows/publish.yml +2 -2
- {dirplot-0.1.0 → dirplot-0.1.2}/CHANGELOG.md +13 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/Makefile +1 -1
- {dirplot-0.1.0 → dirplot-0.1.2}/PKG-INFO +4 -1
- {dirplot-0.1.0 → dirplot-0.1.2}/README.md +3 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/pyproject.toml +1 -1
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/display.py +3 -2
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/render.py +1 -1
- {dirplot-0.1.0 → dirplot-0.1.2}/uv.lock +23 -23
- {dirplot-0.1.0 → dirplot-0.1.2}/.claude/settings.local.json +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.github/dependabot.yml +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.gitignore +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.pre-commit-config.yaml +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/.python-version +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/CONTRIBUTING.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/LICENSE +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/SECURITY.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/docs/dirplot.png +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/scripts/open_terminals.sh +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/__init__.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/__main__.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/colors.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/fonts/JetBrainsMono-Bold.ttf +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/fonts/JetBrainsMono-BoldItalic.ttf +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/fonts/JetBrainsMono-Italic.ttf +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/fonts/JetBrainsMono-Regular.ttf +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/fonts/OFL.txt +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/main.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/py.typed +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/scanner.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/src/dirplot/terminal.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/__init__.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/conftest.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/example/bar/bar.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/example/bar/baz.json +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/example/foo/foo.md +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_cli.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_colors.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_display.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_drawing.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_render.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_scanner.py +0 -0
- {dirplot-0.1.0 → dirplot-0.1.2}/tests/test_terminal.py +0 -0
|
@@ -14,10 +14,10 @@ jobs:
|
|
|
14
14
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
15
15
|
|
|
16
16
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v6
|
|
18
18
|
|
|
19
19
|
- name: Install uv
|
|
20
|
-
uses: astral-sh/setup-uv@
|
|
20
|
+
uses: astral-sh/setup-uv@v7
|
|
21
21
|
|
|
22
22
|
- name: Set up Python ${{ matrix.python-version }}
|
|
23
23
|
run: uv python install ${{ matrix.python-version }}
|
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.2] - 2026-03-06
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Partly incorrect `uvx install dirplot` command
|
|
15
|
+
- Wrong version number in `uv.lock`
|
|
16
|
+
|
|
17
|
+
## [0.1.1] - 2026-03-06
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Typing complaints
|
|
22
|
+
- Improved README with better install/run commands
|
|
10
23
|
|
|
11
24
|
## [0.1.0] - 2026-03-06
|
|
12
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dirplot
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Static treemap bitmaps for directory trees, displayed as inline terminal images
|
|
5
5
|
Project-URL: Repository, https://github.com/deeplook/dirplot
|
|
6
6
|
License: MIT
|
|
@@ -73,6 +73,9 @@ pip install git+https://github.com/deeplook/dirplot
|
|
|
73
73
|
## Usage
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
|
+
# Use it before installing it
|
|
77
|
+
uvx dirplot --help
|
|
78
|
+
|
|
76
79
|
# Show dirplot for the current directory (opens image in system viewer)
|
|
77
80
|
dirplot .
|
|
78
81
|
|
|
@@ -8,6 +8,7 @@ import sys
|
|
|
8
8
|
import termios
|
|
9
9
|
import time
|
|
10
10
|
import tty
|
|
11
|
+
from typing import BinaryIO, TextIO
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def _read_fd_response(fd: int, timeout: float = 0.3) -> bytes:
|
|
@@ -69,7 +70,7 @@ def _detect_inline_protocol() -> str:
|
|
|
69
70
|
return ""
|
|
70
71
|
|
|
71
72
|
|
|
72
|
-
def _open_tty_write_binary() -> tuple[
|
|
73
|
+
def _open_tty_write_binary() -> tuple[BinaryIO, bool]:
|
|
73
74
|
"""Return (file_obj, owned) for the best available binary output channel.
|
|
74
75
|
|
|
75
76
|
Tries /dev/tty first using low-level os.open() (avoids O_CREAT/O_TRUNC
|
|
@@ -83,7 +84,7 @@ def _open_tty_write_binary() -> tuple[io.RawIOBase, bool]:
|
|
|
83
84
|
return sys.stdout.buffer, False
|
|
84
85
|
|
|
85
86
|
|
|
86
|
-
def _open_tty_write_text() -> tuple[
|
|
87
|
+
def _open_tty_write_text() -> tuple[TextIO, bool]:
|
|
87
88
|
"""Return (file_obj, owned) for the best available text output channel."""
|
|
88
89
|
try:
|
|
89
90
|
fd = os.open("/dev/tty", os.O_WRONLY | os.O_NOCTTY)
|
|
@@ -42,7 +42,7 @@ def _label_color(rgb: tuple[int, int, int]) -> tuple[int, int, int]:
|
|
|
42
42
|
|
|
43
43
|
def _text_w(draw: ImageDraw.ImageDraw, text: str, font: ImageFont.FreeTypeFont) -> int:
|
|
44
44
|
bb = draw.textbbox((0, 0), text, font=font)
|
|
45
|
-
return bb[2] - bb[0]
|
|
45
|
+
return int(bb[2] - bb[0])
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
def _wrap(name: str, draw: ImageDraw.ImageDraw, font: ImageFont.FreeTypeFont, max_w: int) -> str:
|
|
@@ -329,7 +329,7 @@ wheels = [
|
|
|
329
329
|
|
|
330
330
|
[[package]]
|
|
331
331
|
name = "dirplot"
|
|
332
|
-
version = "0.1.
|
|
332
|
+
version = "0.1.2"
|
|
333
333
|
source = { editable = "." }
|
|
334
334
|
dependencies = [
|
|
335
335
|
{ name = "matplotlib" },
|
|
@@ -1084,11 +1084,11 @@ wheels = [
|
|
|
1084
1084
|
|
|
1085
1085
|
[[package]]
|
|
1086
1086
|
name = "platformdirs"
|
|
1087
|
-
version = "4.9.
|
|
1087
|
+
version = "4.9.4"
|
|
1088
1088
|
source = { registry = "https://pypi.org/simple" }
|
|
1089
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1089
|
+
sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" }
|
|
1090
1090
|
wheels = [
|
|
1091
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1091
|
+
{ url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" },
|
|
1092
1092
|
]
|
|
1093
1093
|
|
|
1094
1094
|
[[package]]
|
|
@@ -1270,27 +1270,27 @@ wheels = [
|
|
|
1270
1270
|
|
|
1271
1271
|
[[package]]
|
|
1272
1272
|
name = "ruff"
|
|
1273
|
-
version = "0.15.
|
|
1273
|
+
version = "0.15.5"
|
|
1274
1274
|
source = { registry = "https://pypi.org/simple" }
|
|
1275
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1275
|
+
sdist = { url = "https://files.pythonhosted.org/packages/77/9b/840e0039e65fcf12758adf684d2289024d6140cde9268cc59887dc55189c/ruff-0.15.5.tar.gz", hash = "sha256:7c3601d3b6d76dce18c5c824fc8d06f4eef33d6df0c21ec7799510cde0f159a2", size = 4574214, upload-time = "2026-03-05T20:06:34.946Z" }
|
|
1276
1276
|
wheels = [
|
|
1277
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1278
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1279
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1280
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1281
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1282
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1283
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1284
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1285
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1286
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1287
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1288
|
-
{ url = "https://files.pythonhosted.org/packages/ff/
|
|
1289
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1290
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1291
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1292
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1293
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1277
|
+
{ url = "https://files.pythonhosted.org/packages/47/20/5369c3ce21588c708bcbe517a8fbe1a8dfdb5dfd5137e14790b1da71612c/ruff-0.15.5-py3-none-linux_armv6l.whl", hash = "sha256:4ae44c42281f42e3b06b988e442d344a5b9b72450ff3c892e30d11b29a96a57c", size = 10478185, upload-time = "2026-03-05T20:06:29.093Z" },
|
|
1278
|
+
{ url = "https://files.pythonhosted.org/packages/44/ed/e81dd668547da281e5dce710cf0bc60193f8d3d43833e8241d006720e42b/ruff-0.15.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6edd3792d408ebcf61adabc01822da687579a1a023f297618ac27a5b51ef0080", size = 10859201, upload-time = "2026-03-05T20:06:32.632Z" },
|
|
1279
|
+
{ url = "https://files.pythonhosted.org/packages/c4/8f/533075f00aaf19b07c5cd6aa6e5d89424b06b3b3f4583bfa9c640a079059/ruff-0.15.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:89f463f7c8205a9f8dea9d658d59eff49db05f88f89cc3047fb1a02d9f344010", size = 10184752, upload-time = "2026-03-05T20:06:40.312Z" },
|
|
1280
|
+
{ url = "https://files.pythonhosted.org/packages/66/0e/ba49e2c3fa0395b3152bad634c7432f7edfc509c133b8f4529053ff024fb/ruff-0.15.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba786a8295c6574c1116704cf0b9e6563de3432ac888d8f83685654fe528fd65", size = 10534857, upload-time = "2026-03-05T20:06:19.581Z" },
|
|
1281
|
+
{ url = "https://files.pythonhosted.org/packages/59/71/39234440f27a226475a0659561adb0d784b4d247dfe7f43ffc12dd02e288/ruff-0.15.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd4b801e57955fe9f02b31d20375ab3a5c4415f2e5105b79fb94cf2642c91440", size = 10309120, upload-time = "2026-03-05T20:06:00.435Z" },
|
|
1282
|
+
{ url = "https://files.pythonhosted.org/packages/f5/87/4140aa86a93df032156982b726f4952aaec4a883bb98cb6ef73c347da253/ruff-0.15.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391f7c73388f3d8c11b794dbbc2959a5b5afe66642c142a6effa90b45f6f5204", size = 11047428, upload-time = "2026-03-05T20:05:51.867Z" },
|
|
1283
|
+
{ url = "https://files.pythonhosted.org/packages/5a/f7/4953e7e3287676f78fbe85e3a0ca414c5ca81237b7575bdadc00229ac240/ruff-0.15.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc18f30302e379fe1e998548b0f5e9f4dff907f52f73ad6da419ea9c19d66c8", size = 11914251, upload-time = "2026-03-05T20:06:22.887Z" },
|
|
1284
|
+
{ url = "https://files.pythonhosted.org/packages/77/46/0f7c865c10cf896ccf5a939c3e84e1cfaeed608ff5249584799a74d33835/ruff-0.15.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc6e7f90087e2d27f98dc34ed1b3ab7c8f0d273cc5431415454e22c0bd2a681", size = 11333801, upload-time = "2026-03-05T20:05:57.168Z" },
|
|
1285
|
+
{ url = "https://files.pythonhosted.org/packages/d3/01/a10fe54b653061585e655f5286c2662ebddb68831ed3eaebfb0eb08c0a16/ruff-0.15.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1cb7169f53c1ddb06e71a9aebd7e98fc0fea936b39afb36d8e86d36ecc2636a", size = 11206821, upload-time = "2026-03-05T20:06:03.441Z" },
|
|
1286
|
+
{ url = "https://files.pythonhosted.org/packages/7a/0d/2132ceaf20c5e8699aa83da2706ecb5c5dcdf78b453f77edca7fb70f8a93/ruff-0.15.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9b037924500a31ee17389b5c8c4d88874cc6ea8e42f12e9c61a3d754ff72f1ca", size = 11133326, upload-time = "2026-03-05T20:06:25.655Z" },
|
|
1287
|
+
{ url = "https://files.pythonhosted.org/packages/72/cb/2e5259a7eb2a0f87c08c0fe5bf5825a1e4b90883a52685524596bfc93072/ruff-0.15.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:65bb414e5b4eadd95a8c1e4804f6772bbe8995889f203a01f77ddf2d790929dd", size = 10510820, upload-time = "2026-03-05T20:06:37.79Z" },
|
|
1288
|
+
{ url = "https://files.pythonhosted.org/packages/ff/20/b67ce78f9e6c59ffbdb5b4503d0090e749b5f2d31b599b554698a80d861c/ruff-0.15.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d20aa469ae3b57033519c559e9bc9cd9e782842e39be05b50e852c7c981fa01d", size = 10302395, upload-time = "2026-03-05T20:05:54.504Z" },
|
|
1289
|
+
{ url = "https://files.pythonhosted.org/packages/5f/e5/719f1acccd31b720d477751558ed74e9c88134adcc377e5e886af89d3072/ruff-0.15.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:15388dd28c9161cdb8eda68993533acc870aa4e646a0a277aa166de9ad5a8752", size = 10754069, upload-time = "2026-03-05T20:06:06.422Z" },
|
|
1290
|
+
{ url = "https://files.pythonhosted.org/packages/c3/9c/d1db14469e32d98f3ca27079dbd30b7b44dbb5317d06ab36718dee3baf03/ruff-0.15.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b30da330cbd03bed0c21420b6b953158f60c74c54c5f4c1dabbdf3a57bf355d2", size = 11304315, upload-time = "2026-03-05T20:06:10.867Z" },
|
|
1291
|
+
{ url = "https://files.pythonhosted.org/packages/28/3a/950367aee7c69027f4f422059227b290ed780366b6aecee5de5039d50fa8/ruff-0.15.5-py3-none-win32.whl", hash = "sha256:732e5ee1f98ba5b3679029989a06ca39a950cced52143a0ea82a2102cb592b74", size = 10551676, upload-time = "2026-03-05T20:06:13.705Z" },
|
|
1292
|
+
{ url = "https://files.pythonhosted.org/packages/b8/00/bf077a505b4e649bdd3c47ff8ec967735ce2544c8e4a43aba42ee9bf935d/ruff-0.15.5-py3-none-win_amd64.whl", hash = "sha256:821d41c5fa9e19117616c35eaa3f4b75046ec76c65e7ae20a333e9a8696bc7fe", size = 11678972, upload-time = "2026-03-05T20:06:45.379Z" },
|
|
1293
|
+
{ url = "https://files.pythonhosted.org/packages/fe/4e/cd76eca6db6115604b7626668e891c9dd03330384082e33662fb0f113614/ruff-0.15.5-py3-none-win_arm64.whl", hash = "sha256:b498d1c60d2fe5c10c45ec3f698901065772730b411f164ae270bb6bfcc4740b", size = 10965572, upload-time = "2026-03-05T20:06:16.984Z" },
|
|
1294
1294
|
]
|
|
1295
1295
|
|
|
1296
1296
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|