t-doc-common 0.3.dev1__tar.gz → 0.4.dev1__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.
- t_doc_common-0.4.dev1/.github/workflows/publish.yml +19 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.hgtags +1 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/PKG-INFO +8 -5
- t_doc_common-0.4.dev1/README.md +11 -0
- t_doc_common-0.4.dev1/docs/conf.py +18 -0
- t_doc_common-0.4.dev1/docs/development.md +48 -0
- t_doc_common-0.4.dev1/docs/index.md +14 -0
- t_doc_common-0.4.dev1/docs/install.md +65 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/pyproject.toml +2 -1
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/__init__.py +3 -1
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/cli.py +68 -12
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/defaults.py +3 -2
- t_doc_common-0.3.dev1/README.md +0 -9
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.github/workflows/deploy-github-pages.yml +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.gitignore +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.gitmodules +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.hgignore +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.hgsub +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/.hgsubstate +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/LICENSE.txt +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/.gitignore +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/.prettierrc +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/README.md +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/bin/index.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/index.html +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/main-thread.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/module-workers-polyfill.min.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/script.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/worker.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/wrapped-worker.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/index.d.ts +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/index.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/package-lock.json +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/package.json +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-bundler-friendly.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-node.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-opfs-async-proxy.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-worker1-bundler-friendly.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-worker1-promiser.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-worker1-promiser.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-worker1.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.mjs +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.wasm +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/common.mk +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/components/copyright.html +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/static/styles/t-doc.css +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/static/tdoc-sql.js +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/theme.toml +0 -0
- {t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/tdoc/common/util.py +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Copyright 2024 Caroline Blank <caro@c-space.org>
|
|
2
|
+
# Copyright 2024 Remy Blank <remy@c-space.org>
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
name: Publish
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [main]
|
|
9
|
+
workflow_dispatch:
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
pages: write
|
|
14
|
+
id-token: write
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
deploy:
|
|
18
|
+
uses: t-doc-org/common/.github/workflows/deploy-github-pages.yml@main
|
|
19
|
+
secrets: inherit
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: t-doc-common
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.dev1
|
|
4
4
|
Summary: Common functionality for t-doc
|
|
5
5
|
Project-URL: Code, https://github.com/t-docs/common
|
|
6
|
+
Project-URL: Documentation, https://t-doc.org/common/
|
|
6
7
|
Project-URL: Homepage, https://t-doc.org/
|
|
7
8
|
Author-email: Remy Blank <remy@c-space.org>, Caroline Blank <caro@c-space.org>
|
|
8
9
|
License: Copyright 2024 Caroline Blank <caro@c-space.org>
|
|
@@ -45,15 +46,17 @@ Requires-Dist: sphinx-design>=0.6.0
|
|
|
45
46
|
Requires-Dist: sphinx-exercise>=0.4.1
|
|
46
47
|
Requires-Dist: sphinx-proof>=0.1.3
|
|
47
48
|
Requires-Dist: sphinx-togglebutton>=0.3.2
|
|
48
|
-
Requires-Dist: sphinx
|
|
49
|
+
Requires-Dist: sphinx>=8.0.2
|
|
49
50
|
Description-Content-Type: text/markdown
|
|
50
51
|
|
|
51
52
|
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
52
53
|
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
53
54
|
<!-- SPDX-License-Identifier: MIT -->
|
|
54
55
|
|
|
55
|
-
# t-doc -
|
|
56
|
+
# t-doc - Common
|
|
56
57
|
|
|
57
|
-
|
|
58
|
+
[](https://github.com/t-doc-org/common/actions/workflows/publish.yml)
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
This package contains the common functionality for documents based on t-doc.
|
|
61
|
+
|
|
62
|
+
This software is distributed under the [MIT](LICENSE.txt) license.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
2
|
+
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
3
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
4
|
+
|
|
5
|
+
# t-doc - Common
|
|
6
|
+
|
|
7
|
+
[](https://github.com/t-doc-org/common/actions/workflows/publish.yml)
|
|
8
|
+
|
|
9
|
+
This package contains the common functionality for documents based on t-doc.
|
|
10
|
+
|
|
11
|
+
This software is distributed under the [MIT](LICENSE.txt) license.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Copyright 2024 Caroline Blank <caro@c-space.org>
|
|
2
|
+
# Copyright 2024 Remy Blank <remy@c-space.org>
|
|
3
|
+
# SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
import time
|
|
6
|
+
|
|
7
|
+
from tdoc.common.defaults import *
|
|
8
|
+
|
|
9
|
+
project = "t-doc"
|
|
10
|
+
copyright = f"{time.strftime('%Y')} Remy Blank"
|
|
11
|
+
license = 'MIT'
|
|
12
|
+
language = 'en'
|
|
13
|
+
|
|
14
|
+
keep_warnings = True
|
|
15
|
+
|
|
16
|
+
html_theme_options = {
|
|
17
|
+
'repository_url': 'https://github.com/t-doc-org/common',
|
|
18
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
2
|
+
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
3
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
4
|
+
|
|
5
|
+
# Development
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
- Install the [required packages](install.md#requirements) for your system.
|
|
10
|
+
|
|
11
|
+
- Clone the `t-doc/common` repository (substitute `USER` with your username).
|
|
12
|
+
```{code-block} shell-session
|
|
13
|
+
hg clone https://USER@c-space.net/rc/hg/t-doc/common
|
|
14
|
+
cd common
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- Enable git subrepositories.
|
|
18
|
+
```{code-block} shell-session
|
|
19
|
+
echo -e '[subrepos]\ngit:allowed = true\n' >> .hg/hgrc
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- Checkout the subrepositories and activate the `main` bookmark.
|
|
23
|
+
```{code-block} shell-session
|
|
24
|
+
hg checkout main
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- Install the `t-doc-common` package from editable sources.
|
|
28
|
+
```{code-block} shell-session
|
|
29
|
+
python -m pip install --user --editable .
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Upgrade
|
|
33
|
+
|
|
34
|
+
- Pull missing changesets from the `t-doc/common` repository.
|
|
35
|
+
```{code-block} shell-session
|
|
36
|
+
cd common
|
|
37
|
+
hg pull
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- Update to the branch head.
|
|
41
|
+
```{code-block} shell-session
|
|
42
|
+
hg update --check
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- Upgrade the `t-doc-common` package metadata and any out-of-date dependencies.
|
|
46
|
+
```{code-block} shell-session
|
|
47
|
+
python -m pip install --user --upgrade --editable .
|
|
48
|
+
```
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
2
|
+
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
3
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
4
|
+
|
|
5
|
+
# t-doc
|
|
6
|
+
|
|
7
|
+
This documentation describes how to install and use t-doc.
|
|
8
|
+
|
|
9
|
+
```{toctree}
|
|
10
|
+
:maxdepth: 1
|
|
11
|
+
|
|
12
|
+
install
|
|
13
|
+
development
|
|
14
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
2
|
+
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
3
|
+
<!-- SPDX-License-Identifier: MIT -->
|
|
4
|
+
|
|
5
|
+
# Install & upgrade
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
t-doc requires the following software to be installed:
|
|
10
|
+
|
|
11
|
+
- [Python](https://www.python.org/) 3.12 or later
|
|
12
|
+
- [Graphviz](https://graphviz.org/), for `{graphviz}` directives
|
|
13
|
+
- [Mercurial](https://www.mercurial-scm.org/), for managing source files
|
|
14
|
+
|
|
15
|
+
### Windows
|
|
16
|
+
|
|
17
|
+
- Install [Python](https://www.python.org/).
|
|
18
|
+
```{code-block} shell-session
|
|
19
|
+
winget install --id Python.Python.3.12
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- Install [Graphviz](https://graphviz.org/). The installer must be run
|
|
23
|
+
interactively and the **"Add Graphviz to the system PATH for all users"**
|
|
24
|
+
option must be enabled.
|
|
25
|
+
```{code-block} shell-session
|
|
26
|
+
winget install --id Graphviz.Graphviz --interactive
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- Install [TortoiseHg](https://tortoisehg.bitbucket.io/).
|
|
30
|
+
```{code-block} shell-session
|
|
31
|
+
winget install --id TortoiseHg.TortoiseHg
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```{admonition} TODO
|
|
35
|
+
TODO: Describe how to update .hgrc to configure the name and email address.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- (Optional, Windows 10) Install
|
|
39
|
+
[Windows Terminal](https://github.com/microsoft/terminal) (it's already
|
|
40
|
+
installed on Windows 11 and later).
|
|
41
|
+
```{code-block} shell-session
|
|
42
|
+
winget install --id Microsoft.WindowsTerminal
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Linux, macOS
|
|
46
|
+
|
|
47
|
+
- Install [Python](https://www.python.org/), [Graphviz](https://graphviz.org/)
|
|
48
|
+
and [Mercurial](https://www.mercurial-scm.org/) through your system's package
|
|
49
|
+
manager.
|
|
50
|
+
|
|
51
|
+
## Install
|
|
52
|
+
|
|
53
|
+
- Install the [required packages](#requirements).
|
|
54
|
+
|
|
55
|
+
- Install the `t-doc-common` package.
|
|
56
|
+
```{code-block} shell-session
|
|
57
|
+
python -m pip install --user t-doc-common
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Upgrade
|
|
61
|
+
|
|
62
|
+
- Upgrade the `t-doc-common` package and any out-of-date dependencies.
|
|
63
|
+
```{code-block} shell-session
|
|
64
|
+
python -m pip install --user --upgrade t-doc-common
|
|
65
|
+
```
|
|
@@ -10,6 +10,7 @@ authors = [
|
|
|
10
10
|
{name = "Caroline Blank", email = "caro@c-space.org"},
|
|
11
11
|
]
|
|
12
12
|
urls.Code = "https://github.com/t-docs/common"
|
|
13
|
+
urls.Documentation = "https://t-doc.org/common/"
|
|
13
14
|
urls.Homepage = "https://t-doc.org/"
|
|
14
15
|
readme = "README.md"
|
|
15
16
|
license.file = "LICENSE.txt"
|
|
@@ -28,7 +29,7 @@ requires-python = ">=3.12"
|
|
|
28
29
|
dependencies = [
|
|
29
30
|
"colorama>=0.4.6; sys_platform == 'win32'",
|
|
30
31
|
"myst-parser>=3.0.1",
|
|
31
|
-
"Sphinx>=
|
|
32
|
+
"Sphinx>=8.0.2",
|
|
32
33
|
"sphinx-book-theme>=1.1.3",
|
|
33
34
|
"sphinx-copybutton>=0.5.2",
|
|
34
35
|
"sphinx_design>=0.6.0",
|
|
@@ -8,7 +8,8 @@ from docutils import nodes
|
|
|
8
8
|
from sphinx.directives.code import CodeBlock
|
|
9
9
|
from sphinx.util import logging
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
__project__ = 't-doc-common'
|
|
12
|
+
__version__ = '0.4.dev1'
|
|
12
13
|
|
|
13
14
|
_common = pathlib.Path(__file__).absolute().parent
|
|
14
15
|
_root = _common.parent.parent
|
|
@@ -23,6 +24,7 @@ _license_urls = {
|
|
|
23
24
|
'CC-BY-NC-4.0': 'https://creativecommons.org/licenses/by-nc/4.0/',
|
|
24
25
|
'CC-BY-NC-SA-4.0': 'https://creativecommons.org/licenses/by-nc-sa/4.0/',
|
|
25
26
|
'CC-BY-ND-4.0': 'https://creativecommons.org/licenses/by-nd/4.0/',
|
|
27
|
+
'MIT': 'https://opensource.org/license/mit',
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
def setup(app):
|
|
@@ -6,14 +6,18 @@ import argparse
|
|
|
6
6
|
import contextlib
|
|
7
7
|
from http import server
|
|
8
8
|
import itertools
|
|
9
|
+
from importlib import metadata
|
|
10
|
+
import json
|
|
9
11
|
import pathlib
|
|
10
12
|
import shutil
|
|
11
13
|
import socket
|
|
12
14
|
import stat
|
|
13
15
|
import subprocess
|
|
16
|
+
import sys
|
|
14
17
|
import threading
|
|
15
18
|
import time
|
|
16
19
|
|
|
20
|
+
from .. import common
|
|
17
21
|
from . import util
|
|
18
22
|
|
|
19
23
|
|
|
@@ -81,6 +85,10 @@ def main(argv, stdin, stdout, stderr):
|
|
|
81
85
|
arg('--watch', metavar='PATH', action='append', dest='watch', default=[],
|
|
82
86
|
help="Additional directories to watch for changes.")
|
|
83
87
|
|
|
88
|
+
p = subparsers.add_parser('version', add_help=False,
|
|
89
|
+
help="Display version information.")
|
|
90
|
+
p.set_defaults(handler=cmd_version)
|
|
91
|
+
|
|
84
92
|
cfg = parser.parse_args(argv[1:])
|
|
85
93
|
cfg.stdin, cfg.stdout, cfg.stderr = stdin, stdout, stderr
|
|
86
94
|
cfg.ansi = util.ansi if cfg.color else util.no_ansi
|
|
@@ -95,15 +103,6 @@ def cmd_build(cfg):
|
|
|
95
103
|
if res.returncode != 0: return res.returncode
|
|
96
104
|
|
|
97
105
|
|
|
98
|
-
def sphinx_build(cfg, target, *, build, **kwargs):
|
|
99
|
-
argv = [cfg.sphinx_build, '-M', target, cfg.source, build,
|
|
100
|
-
'--jobs=auto', '--fail-on-warning']
|
|
101
|
-
if cfg.debug: argv += ['--show-traceback']
|
|
102
|
-
argv += cfg.sphinx_opts
|
|
103
|
-
return subprocess.run(argv, stdin=cfg.stdin, stdout=cfg.stdout,
|
|
104
|
-
stderr=cfg.stderr, **kwargs)
|
|
105
|
-
|
|
106
|
-
|
|
107
106
|
def cmd_clean(cfg):
|
|
108
107
|
return sphinx_build(cfg, 'clean', build=cfg.build).returncode
|
|
109
108
|
|
|
@@ -129,15 +128,30 @@ def cmd_serve(cfg):
|
|
|
129
128
|
cfg.stderr.write("Interrupted, exiting\n")
|
|
130
129
|
|
|
131
130
|
|
|
132
|
-
|
|
131
|
+
def cmd_version(cfg):
|
|
132
|
+
cfg.stdout.write(f"{common.__project__}-{common.__version__}\n")
|
|
133
133
|
|
|
134
|
+
|
|
135
|
+
def sphinx_build(cfg, target, *, build, **kwargs):
|
|
136
|
+
argv = [cfg.sphinx_build, '-M', target, cfg.source, build,
|
|
137
|
+
'--jobs=auto', '--fail-on-warning']
|
|
138
|
+
if cfg.debug: argv += ['--show-traceback']
|
|
139
|
+
argv += cfg.sphinx_opts
|
|
140
|
+
return subprocess.run(argv, stdin=cfg.stdin, stdout=cfg.stdout,
|
|
141
|
+
stderr=cfg.stderr, **kwargs)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
class ServerBase(server.ThreadingHTTPServer):
|
|
134
145
|
def __init__(self, *args, cfg, **kwargs):
|
|
135
146
|
self.cfg = cfg
|
|
136
147
|
self.lock = threading.Lock()
|
|
137
|
-
self.directory = self.
|
|
148
|
+
self.directory = self.build_dir(0) / 'html'
|
|
149
|
+
self.upgrade_msg = None
|
|
138
150
|
self.stop = False
|
|
139
151
|
self.builder = threading.Thread(target=self.watch_and_build)
|
|
140
152
|
self.builder.start()
|
|
153
|
+
self.checker = threading.Thread(target=self.check_upgrade, daemon=True)
|
|
154
|
+
self.checker.start()
|
|
141
155
|
super().__init__(*args, **kwargs)
|
|
142
156
|
|
|
143
157
|
def server_bind(self):
|
|
@@ -227,10 +241,28 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
227
241
|
if ':' in host: host = f'[{host}]'
|
|
228
242
|
self.cfg.stdout.write(self.cfg.ansi("Serving at <@{LBLUE}%s@{NORM}>\n")
|
|
229
243
|
% f"http://{host}:{port}/")
|
|
244
|
+
with self.lock:
|
|
245
|
+
msg = self.upgrade_msg
|
|
246
|
+
if msg: self.cfg.stdout.write(msg)
|
|
247
|
+
|
|
248
|
+
def check_upgrade(self):
|
|
249
|
+
try:
|
|
250
|
+
project = common.__project__
|
|
251
|
+
upgrades, editable = pip_check_upgrades(self.cfg, project)
|
|
252
|
+
if project not in upgrades: return
|
|
253
|
+
msg = self.cfg.ansi(
|
|
254
|
+
"@{LYELLOW}A t-doc upgrade is available:@{NORM} "
|
|
255
|
+
"%s @{CYAN}%s@{NORM} => @{CYAN}%s@{NORM}\n"
|
|
256
|
+
"See <@{LBLUE}https://t-doc.org/common/%s#upgrade@{NORM}>\n"
|
|
257
|
+
% (project, metadata.version(project), upgrades[project],
|
|
258
|
+
'development' if editable else 'install'))
|
|
259
|
+
with self.lock:
|
|
260
|
+
self.upgrade_msg = msg
|
|
261
|
+
except Exception:
|
|
262
|
+
if self.cfg.debug: raise
|
|
230
263
|
|
|
231
264
|
|
|
232
265
|
class HandlerBase(server.SimpleHTTPRequestHandler):
|
|
233
|
-
|
|
234
266
|
def log_request(self, code='-', size='-'):
|
|
235
267
|
pass
|
|
236
268
|
|
|
@@ -240,5 +272,29 @@ class HandlerBase(server.SimpleHTTPRequestHandler):
|
|
|
240
272
|
(format % args).translate(self._control_char_table)))
|
|
241
273
|
|
|
242
274
|
|
|
275
|
+
class Namespace(dict):
|
|
276
|
+
def __getattr__(self, name):
|
|
277
|
+
return self[name]
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def pip(cfg, *args, json_output=False):
|
|
281
|
+
p = subprocess.run((sys.executable, '-m', 'pip') + args,
|
|
282
|
+
stdin=subprocess.DEVNULL, capture_output=True, text=True)
|
|
283
|
+
if p.returncode != 0: raise Exception(p.stderr)
|
|
284
|
+
if not json_output: return p.stdout
|
|
285
|
+
return json.loads(p.stdout, object_pairs_hook=Namespace)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
def pip_check_upgrades(cfg, package):
|
|
289
|
+
data = pip(cfg, 'install', '--dry-run', '--upgrade',
|
|
290
|
+
'--upgrade-strategy=only-if-needed', '--only-binary=:all:',
|
|
291
|
+
'--report=-', '--quiet', package, json_output=True)
|
|
292
|
+
upgrades = {pkg.metadata.name: pkg.metadata.version for pkg in data.install}
|
|
293
|
+
if package not in upgrades: return {}, False
|
|
294
|
+
pkgs = pip(cfg, 'list', '--editable', '--format=json', json_output=True)
|
|
295
|
+
editable = any(pkg.name == package for pkg in pkgs)
|
|
296
|
+
return upgrades, editable
|
|
297
|
+
|
|
298
|
+
|
|
243
299
|
if __name__ == '__main__':
|
|
244
300
|
main()
|
|
@@ -39,7 +39,7 @@ graphviz_output_format = 'svg'
|
|
|
39
39
|
todo_include_todos = True
|
|
40
40
|
|
|
41
41
|
# MyST options.
|
|
42
|
-
myst_enable_extensions =
|
|
42
|
+
myst_enable_extensions = {
|
|
43
43
|
'amsmath',
|
|
44
44
|
'colon_fence',
|
|
45
45
|
'deflist',
|
|
@@ -52,8 +52,9 @@ myst_enable_extensions = [
|
|
|
52
52
|
'strikethrough',
|
|
53
53
|
'substitution',
|
|
54
54
|
'tasklist',
|
|
55
|
-
|
|
55
|
+
}
|
|
56
56
|
myst_dmath_double_inline = True
|
|
57
|
+
myst_heading_anchors = 6
|
|
57
58
|
|
|
58
59
|
# HTML rendering options.
|
|
59
60
|
html_show_sphinx = False
|
t_doc_common-0.3.dev1/README.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<!-- Copyright 2024 Caroline Blank <caro@c-space.org> -->
|
|
2
|
-
<!-- Copyright 2024 Remy Blank <remy@c-space.org> -->
|
|
3
|
-
<!-- SPDX-License-Identifier: MIT -->
|
|
4
|
-
|
|
5
|
-
# t-doc - Base commune
|
|
6
|
-
|
|
7
|
-
Ce package contient la fonctionnalité commune aux documents basés sur t-doc.
|
|
8
|
-
|
|
9
|
-
Ce logiciel est distribué sous la licence [MIT](LICENSE.txt).
|
|
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
|
{t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/demo/module-workers-polyfill.min.js
RENAMED
|
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
|
{t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3-node.mjs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.js
RENAMED
|
File without changes
|
{t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.mjs
RENAMED
|
File without changes
|
{t_doc_common-0.3.dev1 → t_doc_common-0.4.dev1}/ext/sqlite-wasm/sqlite-wasm/jswasm/sqlite3.wasm
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|