workpytools 0.1.4__tar.gz → 0.1.12__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.
Files changed (58) hide show
  1. {workpytools-0.1.4 → workpytools-0.1.12}/PKG-INFO +54 -4
  2. workpytools-0.1.4/src/workpytools.egg-info/PKG-INFO → workpytools-0.1.12/README.md +476 -458
  3. {workpytools-0.1.4 → workpytools-0.1.12}/pyproject.toml +4 -2
  4. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/help_gen.py +417 -35
  5. workpytools-0.1.12/src/workpytools/common/shortcuts.py +104 -0
  6. workpytools-0.1.12/src/workpytools/data/app.ico +0 -0
  7. workpytools-0.1.12/src/workpytools/processing/shortcut.py +63 -0
  8. workpytools-0.1.12/src/workpytools/processing/umekomi.py +212 -0
  9. workpytools-0.1.4/README.md → workpytools-0.1.12/src/workpytools.egg-info/PKG-INFO +508 -426
  10. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools.egg-info/SOURCES.txt +4 -0
  11. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools.egg-info/entry_points.txt +2 -0
  12. {workpytools-0.1.4 → workpytools-0.1.12}/LICENSE +0 -0
  13. {workpytools-0.1.4 → workpytools-0.1.12}/setup.cfg +0 -0
  14. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/__init__.py +0 -0
  15. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/cli.py +0 -0
  16. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/__init__.py +0 -0
  17. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/browser_preview.py +0 -0
  18. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/clipboard.py +0 -0
  19. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/clustering.py +0 -0
  20. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/config.py +0 -0
  21. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/embedding.py +0 -0
  22. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/logging.py +0 -0
  23. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/markdown_html.py +0 -0
  24. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/outline_parse.py +0 -0
  25. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/output.py +0 -0
  26. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/powerpoint.py +0 -0
  27. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/shape_cluster.py +0 -0
  28. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/table_shapes.py +0 -0
  29. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/tabular.py +0 -0
  30. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/textfile.py +0 -0
  31. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/common/walk.py +0 -0
  32. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/data/__init__.py +0 -0
  33. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/data/synonym.tsv +0 -0
  34. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/data/user.dic +0 -0
  35. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/__init__.py +0 -0
  36. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/base.py +0 -0
  37. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/clipfmt.py +0 -0
  38. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/clipmd.py +0 -0
  39. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/clipview.py +0 -0
  40. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/cwc.py +0 -0
  41. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/denoise.py +0 -0
  42. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/help.py +0 -0
  43. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/ikko.py +0 -0
  44. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/kukiri.py +0 -0
  45. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/lsdir.py +0 -0
  46. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/mdtsv.py +0 -0
  47. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/mokuji.py +0 -0
  48. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/nagasa.py +0 -0
  49. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/outline.py +0 -0
  50. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/profiler.py +0 -0
  51. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/seiretsu.py +0 -0
  52. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/tbl.py +0 -0
  53. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/touka.py +0 -0
  54. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools/processing/vv.py +0 -0
  55. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools.egg-info/dependency_links.txt +0 -0
  56. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools.egg-info/requires.txt +0 -0
  57. {workpytools-0.1.4 → workpytools-0.1.12}/src/workpytools.egg-info/top_level.txt +0 -0
  58. {workpytools-0.1.4 → workpytools-0.1.12}/tests/test_cli.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workpytools
3
- Version: 0.1.4
3
+ Version: 0.1.12
4
4
  Summary: Collection of Python processing utilities
5
5
  License: MIT
6
6
  Requires-Python: >=3.11
@@ -67,7 +67,9 @@ workpytools/
67
67
  │ ├── tbl.py # PowerPointの表とシェイプ群を相互変換(分解/合成/行分割)
68
68
  │ ├── seiretsu.py # PowerPointのシェイプを表に変換せず格子状に整列
69
69
  │ ├── nagasa.py # PowerPointのシェイプの幅・高さを最大値に統一
70
- └── help.py # 全コマンドのヘルプ一覧をブラウザで開く
70
+ ├── umekomi.py # PowerPointのテキストボックスをシェイプに埋め込む
71
+ │ ├── help.py # 全コマンドのヘルプ一覧をブラウザで開く
72
+ │ └── shortcut.py # 全コマンドのスタートメニューショートカットを作成/削除
71
73
  ├── tests/ # src/workpytools と同じ階層構造でテストを配置
72
74
  ├── configs/ # 処理ごとの設定ファイル(TOML)を置く場所(common/config.py で読み込み)
73
75
  ├── scripts/ # 動作確認用の使い捨てスクリプト(.gitignore対象。
@@ -265,10 +267,24 @@ tools seiretsu
265
267
  # 選択したシェイプの幅・高さを最大値に統一する(中心を保ったまま拡大)
266
268
  tools nagasa
267
269
 
270
+ # shapeの上に重ねて配置されたテキストボックスをshapeに埋め込む
271
+ # (選択したシェイプ群が対象。中心座標が重なるテキストボックスをshapeに統合し、
272
+ # 元のテキストボックスは削除する)
273
+ tools umekomi
274
+
275
+ # 実際には変更せず、埋め込み対象になる組み合わせだけを確認する
276
+ tools umekomi --dry-run
277
+
268
278
  # 全コマンドのヘルプ一覧(doc/help.html)をブラウザで開く
269
279
  tools help
270
280
  # 単体実行ファイルはtoolh.exe(他コマンドと違いhelp.exeという名前ではない)
271
281
  toolh
282
+
283
+ # 全コマンドのスタートメニューショートカットを作成する
284
+ tools shortcut
285
+
286
+ # 作成済みのショートカットを削除する
287
+ tools shortcut --remove
272
288
  ```
273
289
 
274
290
  `touka` は初回実行時に背景除去モデル(U2Net, rembg)をインターネットからダウンロードします。
@@ -305,6 +321,27 @@ toolh
305
321
  `clipview`のみ、プレビュー用に `%TEMP%\workpytools_clipview_preview.html` を固定名で生成します
306
322
  (毎回上書きするためファイルは増殖しません)。
307
323
 
324
+ ### shortcut(スタートメニューへのショートカット登録)
325
+
326
+ `pip install` だけではスタートメニューにアイコンが並ばないため、`tools shortcut`
327
+ を1回実行すると `%APPDATA%\Microsoft\Windows\Start Menu\Programs\workpytools\` に
328
+ 全コマンド分の単体実行ファイル(`touka.exe`等)へのショートカットを作成します。
329
+ これにより、コマンド名を覚えて打ち込まなくても、スタートメニューの検索や
330
+ 一覧からクリックして起動できるようになります(引数が必要なコマンドは
331
+ クリップボード入力モードで起動します)。
332
+
333
+ - `pip install` 実行時に自動では作られません(勝手にファイルを配置しない
334
+ という方針のため)。導入後に一度だけ手動で実行してください
335
+ - アイコンは同梱の `data/app.ico`(自前描画のシンプルな図形)を使います
336
+ - `tools shortcut --remove` で作成済みのショートカットを一括削除できます
337
+ - レジストリの変更、スケジュールタスクの登録などの永続化は一切行いません
338
+ (スタートメニューフォルダへのショートカットファイル配置のみです)
339
+
340
+ ```powershell
341
+ tools shortcut # 全コマンド分のショートカットを作成
342
+ tools shortcut --remove # 作成済みのショートカットを削除
343
+ ```
344
+
308
345
  ### vv(定型プロンプトの呼び出し)
309
346
 
310
347
  よく使う長文プロンプトを、フォルダを開いて探して全選択コピーする手間なしに
@@ -348,7 +385,7 @@ size, mtime, depth`の固定列で一覧化します。サイズは既定でKB
348
385
  場合のみ解決します(`WScript.Shell`経由)。複数フォルダを指定して起点が
349
386
  重複する場合はフルパスで自動的に重複除去されます。
350
387
 
351
- ### PowerPointをCOM操作するコマンド(outline / ikko / mokuji / tbl / seiretsu / nagasa)
388
+ ### PowerPointをCOM操作するコマンド(outline / ikko / mokuji / tbl / seiretsu / nagasa / umekomi
352
389
 
353
390
  いずれも実行中のPowerPointを対象にします(`pywin32`経由、`python-pptx`は
354
391
  「開いているファイル」を操作できないため使いません)。役割は以下の通りです。
@@ -361,6 +398,7 @@ size, mtime, depth`の固定列で一覧化します。サイズは既定でKB
361
398
  | `tbl` | PowerPointの表とシェイプ群を相互変換する(選択状態から自動判定) |
362
399
  | `seiretsu` | 選択したシェイプを表に変換せず格子状の位置に整列する |
363
400
  | `nagasa` | 選択したシェイプの幅・高さを最大値に統一する |
401
+ | `umekomi` | 選択したシェイプの上に重ねて置かれたテキストボックスをシェイプ本体に埋め込む |
364
402
 
365
403
  - `outline`はクリップボードのテキストを**Markdown見出し(`#`等)/タブ区切り
366
404
  /空行区切り**の3形式から自動判別し、抽出した項目ぶんのスライドを
@@ -400,12 +438,24 @@ size, mtime, depth`の固定列で一覧化します。サイズは既定でKB
400
438
  編集した際にサイズが自動調整で巻き戻る事故が実機で確認されたため、
401
439
  リサイズ前に対象シェイプの`AutoSize`を無効化します**。2つ以上選択
402
440
  されていない場合はエラーになります
441
+ - `umekomi`は選択したシェイプ群の中から、図形種別が**テキストボックス
442
+ (`msoTextBox`)のもの**とそれ以外(埋め込み先シェイプ)を区別し、
443
+ テキストボックスの**中心座標**が埋め込み先シェイプの矩形内に入っている
444
+ 組み合わせを埋め込み対象とします。1つのシェイプに複数のテキストボックスが
445
+ 重なる場合は、上下位置(`Top`)の順に改行区切りで結合します。
446
+ 埋め込み先シェイプに元々テキストがある場合は、テキストボックスが
447
+ シェイプの垂直中心より下にあれば末尾へ、上にあれば先頭へ追加します。
448
+ 書式(フォント名・サイズ・太字・色・配置)は最も上にあるテキストボックス
449
+ のものを採用します。埋め込み後、元のテキストボックスは削除されます。
450
+ `ikko`と同じくUndo境界を必ず打つため、Ctrl+Z一回で元に戻せます。
451
+ `--dry-run`で実際に変更せず対象を確認できます。2つ以上選択されていない
452
+ 場合はエラーになります
403
453
 
404
454
  各サブコマンドは `tools <name>` の他に、単体の実行ファイルとしても呼び出せます
405
455
  (`pip install -e .` でインストールされる `touka.exe` / `denoise.exe` / `kukiri.exe` / `cwc.exe` /
406
456
  `clipmd.exe` / `mdtsv.exe` / `clipview.exe` / `clipfmt.exe` / `vv.exe` /
407
457
  `profiler.exe` / `lsdir.exe` / `outline.exe` / `ikko.exe` / `mokuji.exe` /
408
- `tbl.exe` / `seiretsu.exe` / `nagasa.exe` など)。
458
+ `tbl.exe` / `seiretsu.exe` / `nagasa.exe` / `umekomi.exe` / `shortcut.exe` など)。
409
459
 
410
460
  ### 出力先のデフォルト(`-o`省略時)
411
461