pyctxpack 0.1.0__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.
- pyctxpack-0.1.0/.gitignore +48 -0
- pyctxpack-0.1.0/.python-version +1 -0
- pyctxpack-0.1.0/PKG-INFO +127 -0
- pyctxpack-0.1.0/README.md +107 -0
- pyctxpack-0.1.0/docs/pypi_public_memo.md +1462 -0
- pyctxpack-0.1.0/docs/testing.md +142 -0
- pyctxpack-0.1.0/main.py +4 -0
- pyctxpack-0.1.0/pyproject.toml +53 -0
- pyctxpack-0.1.0/src/ctxpack/__init__.py +0 -0
- pyctxpack-0.1.0/src/ctxpack/cli.py +98 -0
- pyctxpack-0.1.0/src/ctxpack/collector.py +44 -0
- pyctxpack-0.1.0/src/ctxpack/gitignore.py +28 -0
- pyctxpack-0.1.0/src/ctxpack/reader.py +38 -0
- pyctxpack-0.1.0/src/ctxpack/token.py +3 -0
- pyctxpack-0.1.0/src/ctxpack/tree.py +19 -0
- pyctxpack-0.1.0/src/ctxpack/writer.py +75 -0
- pyctxpack-0.1.0/tests/test_cli.py +125 -0
- pyctxpack-0.1.0/tests/test_collector.py +90 -0
- pyctxpack-0.1.0/tests/test_gitignore.py +85 -0
- pyctxpack-0.1.0/tests/test_reader.py +65 -0
- pyctxpack-0.1.0/tests/test_token.py +18 -0
- pyctxpack-0.1.0/tests/test_tree.py +44 -0
- pyctxpack-0.1.0/tests/test_writer.py +138 -0
- pyctxpack-0.1.0/uv.lock +1341 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# --- Python Standard ---
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.so
|
|
6
|
+
.mypy_cache/
|
|
7
|
+
.ruff_cache/
|
|
8
|
+
|
|
9
|
+
# --- Distribution / Build ---
|
|
10
|
+
# PyPI公開時のビルド成果物
|
|
11
|
+
build/
|
|
12
|
+
dist/
|
|
13
|
+
local_settings.py
|
|
14
|
+
*.egg-info/
|
|
15
|
+
.installed.cfg
|
|
16
|
+
*.egg
|
|
17
|
+
|
|
18
|
+
# --- uv / Virtual Environments ---
|
|
19
|
+
# 仮想環境とuv特有のキャッシュ
|
|
20
|
+
.venv/
|
|
21
|
+
.uv/
|
|
22
|
+
|
|
23
|
+
# --- Testing / Coverage ---
|
|
24
|
+
# pytestのキャッシュとカバレッジレポート
|
|
25
|
+
.pytest_cache/
|
|
26
|
+
.coverage
|
|
27
|
+
.coverage.*
|
|
28
|
+
htmlcov/
|
|
29
|
+
docs/coverage/
|
|
30
|
+
docs/report.html
|
|
31
|
+
nosetests.xml
|
|
32
|
+
coverage.xml
|
|
33
|
+
*.cover
|
|
34
|
+
*.py,cover
|
|
35
|
+
assets/
|
|
36
|
+
|
|
37
|
+
# --- IDEs / Editors ---
|
|
38
|
+
# 開発者の環境依存ファイル
|
|
39
|
+
.vscode/
|
|
40
|
+
.idea/
|
|
41
|
+
*.swp
|
|
42
|
+
*.swo
|
|
43
|
+
.DS_Store
|
|
44
|
+
|
|
45
|
+
# --- Project Specific ---
|
|
46
|
+
# 実行時に生成される成果物
|
|
47
|
+
out.md
|
|
48
|
+
context.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
pyctxpack-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyctxpack
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Combine source files into a single text file for AI context (ChatGPT, Claude, Gemini)
|
|
5
|
+
Project-URL: Homepage, https://github.com/pekokana/ctxpack
|
|
6
|
+
Project-URL: Repository, https://github.com/pekokana/ctxpack
|
|
7
|
+
Project-URL: Issues, https://github.com/pekokana/ctxpack/issues
|
|
8
|
+
Author: pekokana
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: ai,cli,context,development,llm,prompt-engineering
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Classifier: Topic :: Utilities
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Requires-Dist: pathspec>=1.0.4
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# ctxpack
|
|
22
|
+
|
|
23
|
+
**ctxpack** は、ローカルリポジトリのソースコードを1つのテキストファイルにまとめ、LLM(ChatGPT, Claude, Gemini等)に渡すコンテキストを瞬時に作成するためのコマンドラインツールです。
|
|
24
|
+
|
|
25
|
+
多くのファイルを扱うプロジェクトでも、適切なフィルタリングとフォーマットによって、AIへの依頼をスムーズにします。
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## 主な特徴
|
|
29
|
+
|
|
30
|
+
* **スマートなファイル収集**: ディレクトリを再帰的にスキャンし、ソースファイルを統合。
|
|
31
|
+
* **柔軟なフィルタリング**: 拡張子、最大ファイルサイズ、最大ファイル数による制限。
|
|
32
|
+
* **.gitignore 対応**: プロジェクトの無視設定を尊重し、不要なファイル(node_modules等)を除外。
|
|
33
|
+
* **プロジェクト構造の可視化**: ファイルリストの冒頭にディレクトリツリーを自動挿入。
|
|
34
|
+
* **堅牢な文字コード判定**: UTF-8, UTF-16, CP932(Shift_JIS) を自動判別。バイナリファイルは自動でスキップ。
|
|
35
|
+
* **トークン数見積もり**: LLMに渡す前に、おおよそのトークン数を確認可能。
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## インストール
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pip install ctxpack
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
または **uv** を使用している場合:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
uv tool install ctxpack
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## 使い方
|
|
55
|
+
|
|
56
|
+
基本コマンド:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ctxpack src/ -o context.md
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### よく使うオプション
|
|
64
|
+
|
|
65
|
+
**拡張子を限定する:**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
ctxpack . -o out.md -e py,js,ts
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**プロジェクト構造を含め、.gitignoreを反映させる:**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
ctxpack . -o out.md --tree --gitignore
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**トークン数を見積もり、ファイルにも記録する:**
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
ctxpack . -o out.md --estimate-tokens --token-output
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**LLMに最適化されたフォーマット(セパレーターを強化)を使用:**
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
ctxpack . -o out.md --llm-format
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## コマンドライン引数詳細
|
|
95
|
+
|
|
96
|
+
| 引数 | 説明 |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| `target` | 対象となるディレクトリまたはファイル |
|
|
99
|
+
| `-o, --output` | **[必須]** 出力先のファイル名 |
|
|
100
|
+
| `-e, --ext` | 対象とする拡張子(カンマ区切り。例: `py,ts`) |
|
|
101
|
+
| `--max-size` | 収集するファイルの最大サイズ (KB) |
|
|
102
|
+
| `--max-files` | 収集する最大ファイル数 |
|
|
103
|
+
| `--tree` | 出力の冒頭にプロジェクト構造(ツリー)を含める |
|
|
104
|
+
| `--gitignore` | `.gitignore` の設定に従ってファイルを無視する |
|
|
105
|
+
| `--estimate-tokens` | 実行時に推定トークン数を表示 |
|
|
106
|
+
| `--token-output` | ファイルの末尾に推定トークン数を書き込む |
|
|
107
|
+
| `--llm-format` | LLMがファイルを識別しやすいフォーマットを使用する |
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
## ライセンス
|
|
112
|
+
|
|
113
|
+
[MIT License](https://www.google.com/search?q=LICENSE)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## 貢献
|
|
118
|
+
|
|
119
|
+
Issue や Pull Request は大歓迎です。
|
|
120
|
+
開発環境のセットアップ:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git clone https://github.com/pekokana/ctxpack.git
|
|
124
|
+
cd ctxpack
|
|
125
|
+
uv sync
|
|
126
|
+
uv run pytest # 全テストの実行
|
|
127
|
+
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# ctxpack
|
|
2
|
+
|
|
3
|
+
**ctxpack** は、ローカルリポジトリのソースコードを1つのテキストファイルにまとめ、LLM(ChatGPT, Claude, Gemini等)に渡すコンテキストを瞬時に作成するためのコマンドラインツールです。
|
|
4
|
+
|
|
5
|
+
多くのファイルを扱うプロジェクトでも、適切なフィルタリングとフォーマットによって、AIへの依頼をスムーズにします。
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## 主な特徴
|
|
9
|
+
|
|
10
|
+
* **スマートなファイル収集**: ディレクトリを再帰的にスキャンし、ソースファイルを統合。
|
|
11
|
+
* **柔軟なフィルタリング**: 拡張子、最大ファイルサイズ、最大ファイル数による制限。
|
|
12
|
+
* **.gitignore 対応**: プロジェクトの無視設定を尊重し、不要なファイル(node_modules等)を除外。
|
|
13
|
+
* **プロジェクト構造の可視化**: ファイルリストの冒頭にディレクトリツリーを自動挿入。
|
|
14
|
+
* **堅牢な文字コード判定**: UTF-8, UTF-16, CP932(Shift_JIS) を自動判別。バイナリファイルは自動でスキップ。
|
|
15
|
+
* **トークン数見積もり**: LLMに渡す前に、おおよそのトークン数を確認可能。
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## インストール
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pip install ctxpack
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
または **uv** を使用している場合:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
uv tool install ctxpack
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## 使い方
|
|
35
|
+
|
|
36
|
+
基本コマンド:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ctxpack src/ -o context.md
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### よく使うオプション
|
|
44
|
+
|
|
45
|
+
**拡張子を限定する:**
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ctxpack . -o out.md -e py,js,ts
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**プロジェクト構造を含め、.gitignoreを反映させる:**
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
ctxpack . -o out.md --tree --gitignore
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**トークン数を見積もり、ファイルにも記録する:**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ctxpack . -o out.md --estimate-tokens --token-output
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**LLMに最適化されたフォーマット(セパレーターを強化)を使用:**
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ctxpack . -o out.md --llm-format
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
## コマンドライン引数詳細
|
|
75
|
+
|
|
76
|
+
| 引数 | 説明 |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `target` | 対象となるディレクトリまたはファイル |
|
|
79
|
+
| `-o, --output` | **[必須]** 出力先のファイル名 |
|
|
80
|
+
| `-e, --ext` | 対象とする拡張子(カンマ区切り。例: `py,ts`) |
|
|
81
|
+
| `--max-size` | 収集するファイルの最大サイズ (KB) |
|
|
82
|
+
| `--max-files` | 収集する最大ファイル数 |
|
|
83
|
+
| `--tree` | 出力の冒頭にプロジェクト構造(ツリー)を含める |
|
|
84
|
+
| `--gitignore` | `.gitignore` の設定に従ってファイルを無視する |
|
|
85
|
+
| `--estimate-tokens` | 実行時に推定トークン数を表示 |
|
|
86
|
+
| `--token-output` | ファイルの末尾に推定トークン数を書き込む |
|
|
87
|
+
| `--llm-format` | LLMがファイルを識別しやすいフォーマットを使用する |
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## ライセンス
|
|
92
|
+
|
|
93
|
+
[MIT License](https://www.google.com/search?q=LICENSE)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## 貢献
|
|
98
|
+
|
|
99
|
+
Issue や Pull Request は大歓迎です。
|
|
100
|
+
開発環境のセットアップ:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
git clone https://github.com/pekokana/ctxpack.git
|
|
104
|
+
cd ctxpack
|
|
105
|
+
uv sync
|
|
106
|
+
uv run pytest # 全テストの実行
|
|
107
|
+
|