convoviz 0.4.4__tar.gz → 0.4.5__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.
- {convoviz-0.4.4 → convoviz-0.4.5}/PKG-INFO +14 -12
- {convoviz-0.4.4 → convoviz-0.4.5}/README.md +13 -11
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/interactive.py +1 -1
- {convoviz-0.4.4 → convoviz-0.4.5}/pyproject.toml +43 -34
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/__init__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/__main__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/analysis/__init__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/analysis/graphs.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/analysis/wordcloud.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/colormaps.txt +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/AmaticSC-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/ArchitectsDaughter-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/BebasNeue-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Borel-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Courgette-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/CroissantOne-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Handjet-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/IndieFlower-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Kalam-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Lobster-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/MartianMono-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/MartianMono-Thin.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Montserrat-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Mooli-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Pacifico-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/PlayfairDisplay-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Raleway-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/RobotoMono-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/RobotoMono-Thin.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/RobotoSlab-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/RobotoSlab-Thin.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Ruwudu-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Sacramento-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/SedgwickAveDisplay-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/ShadowsIntoLight-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/TitilliumWeb-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Yellowtail-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/YsabeauOffice-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/YsabeauSC-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/YsabeauSC-Thin.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/fonts/Zeyada-Regular.ttf +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/assets/stopwords.txt +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/cli.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/config.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/exceptions.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/io/__init__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/io/assets.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/io/loaders.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/io/writers.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/logging_config.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/models/__init__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/models/collection.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/models/conversation.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/models/message.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/models/node.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/pipeline.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/py.typed +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/renderers/__init__.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/renderers/markdown.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/renderers/yaml.py +0 -0
- {convoviz-0.4.4 → convoviz-0.4.5}/convoviz/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: convoviz
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
4
4
|
Summary: Convert your ChatGPT export (ZIP) into clean Markdown text files with inline media, and generate data visualizations like word clouds and usage graphs.
|
|
5
5
|
Keywords: markdown,chatgpt,openai,visualization,analytics,json,export,data-analysis,obsidian
|
|
6
6
|
Author: Mohamed Cheikh Sidiya
|
|
@@ -194,6 +194,19 @@ Interested in contributing? Check out the **[Contributing Guide](https://github.
|
|
|
194
194
|
|
|
195
195
|
## 📝 Notes
|
|
196
196
|
|
|
197
|
+
<details>
|
|
198
|
+
<summary><strong>Offline</strong></summary>
|
|
199
|
+
|
|
200
|
+
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
python -c "import nltk; nltk.download('stopwords')"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
**NOTE:** The install script already handles this, so you can immediately go offline after running it.
|
|
207
|
+
|
|
208
|
+
</details>
|
|
209
|
+
|
|
197
210
|
<details>
|
|
198
211
|
<summary><strong>About This Project</strong></summary>
|
|
199
212
|
|
|
@@ -212,17 +225,6 @@ It should also work as a library, so you can import and use the models and funct
|
|
|
212
225
|
|
|
213
226
|
</details>
|
|
214
227
|
|
|
215
|
-
<details>
|
|
216
|
-
<summary><strong>Offline / Reproducible Runs</strong></summary>
|
|
217
|
-
|
|
218
|
-
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
python -c "import nltk; nltk.download('stopwords')"
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
</details>
|
|
225
|
-
|
|
226
228
|
<details>
|
|
227
229
|
<summary><strong>Bookmarklet (Experimental)</strong></summary>
|
|
228
230
|
|
|
@@ -169,6 +169,19 @@ Interested in contributing? Check out the **[Contributing Guide](https://github.
|
|
|
169
169
|
|
|
170
170
|
## 📝 Notes
|
|
171
171
|
|
|
172
|
+
<details>
|
|
173
|
+
<summary><strong>Offline</strong></summary>
|
|
174
|
+
|
|
175
|
+
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
python -c "import nltk; nltk.download('stopwords')"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**NOTE:** The install script already handles this, so you can immediately go offline after running it.
|
|
182
|
+
|
|
183
|
+
</details>
|
|
184
|
+
|
|
172
185
|
<details>
|
|
173
186
|
<summary><strong>About This Project</strong></summary>
|
|
174
187
|
|
|
@@ -187,17 +200,6 @@ It should also work as a library, so you can import and use the models and funct
|
|
|
187
200
|
|
|
188
201
|
</details>
|
|
189
202
|
|
|
190
|
-
<details>
|
|
191
|
-
<summary><strong>Offline / Reproducible Runs</strong></summary>
|
|
192
|
-
|
|
193
|
-
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
|
-
python -c "import nltk; nltk.download('stopwords')"
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
</details>
|
|
200
|
-
|
|
201
203
|
<details>
|
|
202
204
|
<summary><strong>Bookmarklet (Experimental)</strong></summary>
|
|
203
205
|
|
|
@@ -92,7 +92,7 @@ def run_interactive_config(initial_config: ConvovizConfig | None = None) -> Conv
|
|
|
92
92
|
input_default = str(config.input_path) if config.input_path else ""
|
|
93
93
|
input_result: str = _ask_or_cancel(
|
|
94
94
|
qst_path(
|
|
95
|
-
"Enter the path to the export ZIP, conversations JSON, or extracted directory:",
|
|
95
|
+
"Enter the path to the export ZIP:", # , conversations JSON, or extracted directory:",
|
|
96
96
|
default=input_default,
|
|
97
97
|
validate=_validate_input_path,
|
|
98
98
|
style=CUSTOM_STYLE,
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "convoviz"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.5"
|
|
4
4
|
description = "Convert your ChatGPT export (ZIP) into clean Markdown text files with inline media, and generate data visualizations like word clouds and usage graphs."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12"
|
|
7
|
+
authors = [
|
|
8
|
+
{ name = "Mohamed Cheikh Sidiya", email = "mohamedcheikhsidiya77@gmail.com" },
|
|
9
|
+
]
|
|
5
10
|
license = "MIT"
|
|
6
11
|
keywords = [
|
|
7
12
|
"markdown",
|
|
@@ -19,11 +24,6 @@ classifiers = [
|
|
|
19
24
|
"Programming Language :: Python :: 3",
|
|
20
25
|
"Programming Language :: Python :: 3.12",
|
|
21
26
|
]
|
|
22
|
-
readme = "README.md"
|
|
23
|
-
requires-python = ">=3.12"
|
|
24
|
-
authors = [
|
|
25
|
-
{ name = "Mohamed Cheikh Sidiya", email = "mohamedcheikhsidiya77@gmail.com" },
|
|
26
|
-
]
|
|
27
27
|
dependencies = [
|
|
28
28
|
"orjson>=3.11.5",
|
|
29
29
|
"pydantic>=2.12.5",
|
|
@@ -34,37 +34,11 @@ dependencies = [
|
|
|
34
34
|
"typer>=0.21.0",
|
|
35
35
|
]
|
|
36
36
|
|
|
37
|
-
[project.optional-dependencies]
|
|
38
|
-
viz = ["nltk>=3.9.2", "wordcloud>=1.9.5"]
|
|
39
|
-
|
|
40
37
|
[project.urls]
|
|
41
38
|
Repository = "https://github.com/mohamed-chs/convoviz"
|
|
42
39
|
|
|
43
|
-
[
|
|
44
|
-
|
|
45
|
-
build-backend = "uv_build"
|
|
46
|
-
|
|
47
|
-
[tool.uv.build-backend]
|
|
48
|
-
# Add this line to tell uv your code is in the root, not in src/
|
|
49
|
-
module-root = "."
|
|
50
|
-
|
|
51
|
-
# Files to exclude from the Source Distribution (sdist)
|
|
52
|
-
source-exclude = [
|
|
53
|
-
".github",
|
|
54
|
-
".vscode",
|
|
55
|
-
".gitattributes",
|
|
56
|
-
".gitignore",
|
|
57
|
-
"dev",
|
|
58
|
-
"playground.ipynb",
|
|
59
|
-
"pyproject.toml.bak",
|
|
60
|
-
"uv.lock",
|
|
61
|
-
"demo",
|
|
62
|
-
"js",
|
|
63
|
-
"tests",
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
[project.scripts]
|
|
67
|
-
convoviz = "convoviz.cli:main_entry"
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
viz = ["nltk>=3.9.2", "wordcloud>=1.9.5"]
|
|
68
42
|
|
|
69
43
|
[dependency-groups]
|
|
70
44
|
dev = [
|
|
@@ -75,8 +49,20 @@ dev = [
|
|
|
75
49
|
# Viz extras for testing (wordcloud pulls in matplotlib + pillow)
|
|
76
50
|
"nltk>=3.9.2",
|
|
77
51
|
"wordcloud>=1.9.5",
|
|
52
|
+
"poethepoet>=0.40.0",
|
|
78
53
|
]
|
|
79
54
|
|
|
55
|
+
# run with 'uv run poe <task>' eg. 'uv run poe fmt'
|
|
56
|
+
# or if poe is installed globally, 'poe fmt'
|
|
57
|
+
[tool.poe.tasks]
|
|
58
|
+
lint = "ruff check --fix convoviz tests"
|
|
59
|
+
fmt = "ruff format"
|
|
60
|
+
test = "pytest"
|
|
61
|
+
ty = "ty check convoviz"
|
|
62
|
+
|
|
63
|
+
[project.scripts]
|
|
64
|
+
convoviz = "convoviz.cli:main_entry"
|
|
65
|
+
|
|
80
66
|
[tool.ruff]
|
|
81
67
|
target-version = "py312"
|
|
82
68
|
line-length = 100
|
|
@@ -107,3 +93,26 @@ python-version = "3.12"
|
|
|
107
93
|
[tool.pytest.ini_options]
|
|
108
94
|
testpaths = ["tests"]
|
|
109
95
|
pythonpath = ["."]
|
|
96
|
+
|
|
97
|
+
[build-system]
|
|
98
|
+
requires = ["uv_build"]
|
|
99
|
+
build-backend = "uv_build"
|
|
100
|
+
|
|
101
|
+
[tool.uv.build-backend]
|
|
102
|
+
# Add this line to tell uv your code is in the root, not in src/
|
|
103
|
+
module-root = "."
|
|
104
|
+
|
|
105
|
+
# Files to exclude from the Source Distribution (sdist)
|
|
106
|
+
source-exclude = [
|
|
107
|
+
".github",
|
|
108
|
+
".vscode",
|
|
109
|
+
".gitattributes",
|
|
110
|
+
".gitignore",
|
|
111
|
+
"dev",
|
|
112
|
+
"playground.ipynb",
|
|
113
|
+
"pyproject.toml.bak",
|
|
114
|
+
"uv.lock",
|
|
115
|
+
"demo",
|
|
116
|
+
"js",
|
|
117
|
+
"tests",
|
|
118
|
+
]
|
|
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
|
|
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
|