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