pretty-notebook 0.10.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.
- pretty_notebook-0.10.0/LICENSE +22 -0
- pretty_notebook-0.10.0/PKG-INFO +77 -0
- pretty_notebook-0.10.0/README.md +51 -0
- pretty_notebook-0.10.0/docs/pnbp.md +56 -0
- pretty_notebook-0.10.0/pyproject.toml +61 -0
- pretty_notebook-0.10.0/setup.cfg +4 -0
- pretty_notebook-0.10.0/src/pnbp/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pnbp/_icons.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_identities.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_journal.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_links.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_moves.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_navigation.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_publication_execute.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_publication_plan.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_publication_state.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_publishing.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_rendering.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_routes.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_search.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/_storage.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/cli.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pnbp/commands/code.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/collect.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/commit.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/correct.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/deploy.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/graph.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/pprint.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/subl.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/commands/tasks.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/helpers/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pnbp/helpers/_datetime.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/helpers/wrappers.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/codeblock.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/component.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/link.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/tag.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/components/url.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/note.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/models/notebook.py +5 -0
- pretty_notebook-0.10.0/src/pnbp/settings.py +5 -0
- pretty_notebook-0.10.0/src/pretty_notebook/__init__.py +7 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/__init__.py +1 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/deployment.py +184 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/icons.py +51 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/identities.py +295 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/journal.py +305 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/links.py +187 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/moves.py +168 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/navigation.py +242 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/publication_execute.py +125 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/publication_plan.py +296 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/publication_state.py +111 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/publishing.py +447 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/rendering.py +163 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/routes.py +82 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/search.py +113 -0
- pretty_notebook-0.10.0/src/pretty_notebook/_internal/storage.py +271 -0
- pretty_notebook-0.10.0/src/pretty_notebook/appearance.py +63 -0
- pretty_notebook-0.10.0/src/pretty_notebook/cli.py +533 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/__init__.py +0 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/code.py +173 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/collect.py +249 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/commit.py +281 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/correct.py +234 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/deploy.py +63 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/graph.py +189 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/pprint.py +81 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/subl.py +75 -0
- pretty_notebook-0.10.0/src/pretty_notebook/commands/tasks.py +323 -0
- pretty_notebook-0.10.0/src/pretty_notebook/helpers/__init__.py +2 -0
- pretty_notebook-0.10.0/src/pretty_notebook/helpers/_datetime.py +26 -0
- pretty_notebook-0.10.0/src/pretty_notebook/helpers/wrappers.py +77 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/__init__.py +4 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/__init__.py +13 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/codeblock.py +123 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/component.py +79 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/link.py +252 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/tag.py +72 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/components/url.py +104 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/note.py +504 -0
- pretty_notebook-0.10.0/src/pretty_notebook/models/notebook.py +633 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/checkpoint.py.tmpl +42 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/common.sh.tmpl +56 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/environment.example.tmpl +10 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/init.sh.tmpl +29 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/nginx.conf.tmpl +33 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/rollback.sh.tmpl +27 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/service.tmpl +25 -0
- pretty_notebook-0.10.0/src/pretty_notebook/resources/deploy/upgrade.sh.tmpl +36 -0
- pretty_notebook-0.10.0/src/pretty_notebook/settings.py +422 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/PKG-INFO +77 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/SOURCES.txt +132 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/dependency_links.txt +1 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/entry_points.txt +2 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/requires.txt +4 -0
- pretty_notebook-0.10.0/src/pretty_notebook.egg-info/top_level.txt +2 -0
- pretty_notebook-0.10.0/tests/test_appearance.py +49 -0
- pretty_notebook-0.10.0/tests/test_checked_publication_execution.py +306 -0
- pretty_notebook-0.10.0/tests/test_cleanup_contracts.py +108 -0
- pretty_notebook-0.10.0/tests/test_cli_collections.py +64 -0
- pretty_notebook-0.10.0/tests/test_code_extraction.py +173 -0
- pretty_notebook-0.10.0/tests/test_component_semantics.py +62 -0
- pretty_notebook-0.10.0/tests/test_config_contracts.py +158 -0
- pretty_notebook-0.10.0/tests/test_current_content.py +75 -0
- pretty_notebook-0.10.0/tests/test_deploy.py +174 -0
- pretty_notebook-0.10.0/tests/test_empty_sections.py +44 -0
- pretty_notebook-0.10.0/tests/test_favicon_client.py +104 -0
- pretty_notebook-0.10.0/tests/test_git_automation.py +188 -0
- pretty_notebook-0.10.0/tests/test_hash_publication_plans.py +235 -0
- pretty_notebook-0.10.0/tests/test_icons.py +56 -0
- pretty_notebook-0.10.0/tests/test_identities.py +281 -0
- pretty_notebook-0.10.0/tests/test_links.py +118 -0
- pretty_notebook-0.10.0/tests/test_lookup.py +63 -0
- pretty_notebook-0.10.0/tests/test_moves.py +311 -0
- pretty_notebook-0.10.0/tests/test_namespace.py +48 -0
- pretty_notebook-0.10.0/tests/test_navigation.py +262 -0
- pretty_notebook-0.10.0/tests/test_note_commands.py +170 -0
- pretty_notebook-0.10.0/tests/test_note_io.py +155 -0
- pretty_notebook-0.10.0/tests/test_note_state.py +95 -0
- pretty_notebook-0.10.0/tests/test_protected_text.py +118 -0
- pretty_notebook-0.10.0/tests/test_publication_eligibility.py +93 -0
- pretty_notebook-0.10.0/tests/test_publication_preflight.py +145 -0
- pretty_notebook-0.10.0/tests/test_publication_sync.py +327 -0
- pretty_notebook-0.10.0/tests/test_rendering.py +147 -0
- pretty_notebook-0.10.0/tests/test_routes.py +105 -0
- pretty_notebook-0.10.0/tests/test_search.py +120 -0
- pretty_notebook-0.10.0/tests/test_settings.py +300 -0
- pretty_notebook-0.10.0/tests/test_smoke.py +28 -0
- pretty_notebook-0.10.0/tests/test_tasks.py +143 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 prettynb
|
|
4
|
+
Copyright (c) 2026 Outside Labs
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pretty-notebook
|
|
3
|
+
Version: 0.10.0
|
|
4
|
+
Summary: Python tools for parsing and querying wiki-linked, tagged Markdown notebooks.
|
|
5
|
+
Author: prettynb
|
|
6
|
+
Maintainer: Outside Labs
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://outside-labs.com
|
|
9
|
+
Project-URL: Repository, https://github.com/outside-labs/pretty-notebook
|
|
10
|
+
Project-URL: Documentation, https://github.com/outside-labs/pretty-notebook/tree/v0.10.0/docs
|
|
11
|
+
Project-URL: Issues, https://github.com/outside-labs/pretty-notebook/issues
|
|
12
|
+
Keywords: markdown,notes,wikilinks,knowledge-management
|
|
13
|
+
Requires-Python: >=3.11
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Requires-Dist: click>=8.0
|
|
17
|
+
Requires-Dist: markdown>=3.3.4
|
|
18
|
+
Requires-Dist: requests>=2.26
|
|
19
|
+
Requires-Dist: rich>=10.6
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
# Pretty Notebook package
|
|
23
|
+
|
|
24
|
+
Pretty Notebook is a Python library and command-line interface for interconnected
|
|
25
|
+
Markdown notebooks. A notebook is an existing directory of Markdown files;
|
|
26
|
+
a note is one source file. Wiki links, tags, code blocks and URLs have explicit
|
|
27
|
+
models, while ordinary Markdown remains the authoritative content.
|
|
28
|
+
|
|
29
|
+
## Choose a version
|
|
30
|
+
|
|
31
|
+
The 0.10 release is `pretty-notebook==0.10.0` on Python 3.11 or newer.
|
|
32
|
+
It supplies canonical `pretty_notebook` imports, compatible `pnbp` imports,
|
|
33
|
+
and the `pnbp` executable.
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
python -m pip uninstall pnbp
|
|
37
|
+
python -m pip install pretty-notebook==0.10.0
|
|
38
|
+
pnbp --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Uninstall the old distribution before installing the release to preserve the
|
|
42
|
+
compatibility modules. See [package migration](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/package-migration.md) and
|
|
43
|
+
[0.10 release notes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/release-0.10.0.md). The historical stable package is
|
|
44
|
+
`pnbp==0.9.0`; its versioned [release notes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/release-0.9.0.md) retain that contract.
|
|
45
|
+
|
|
46
|
+
For source development, install the checkout with
|
|
47
|
+
`python -m pip install --editable .`.
|
|
48
|
+
|
|
49
|
+
## First notebook and existing notebooks
|
|
50
|
+
|
|
51
|
+
Follow the [notebook workflow tutorial](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/tutorials.md) for a temporary notebook,
|
|
52
|
+
initialization, pending edits, checked renames, search and navigation. Its local
|
|
53
|
+
examples are executed by the documentation build.
|
|
54
|
+
|
|
55
|
+
```python
|
|
56
|
+
from pretty_notebook import Notebook
|
|
57
|
+
|
|
58
|
+
nb = Notebook.open("~/notes", settings={"NOTE_NESTED": "recurs"})
|
|
59
|
+
note = nb.get("guides/overview", fuzzy=False)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
The path must already exist. Opening reads files without prompting or creating
|
|
63
|
+
configuration. Initialize deliberately with `pnbp init PATH`; see the canonical
|
|
64
|
+
[settings and profile guide](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/settings.md) for precedence, migration and credentials.
|
|
65
|
+
`Notebook()` continues to use `NOTE_PATH` for existing environment-based setups.
|
|
66
|
+
|
|
67
|
+
## Continue by topic
|
|
68
|
+
|
|
69
|
+
- [Note commands and pending edits](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/editing.md): add/edit, empty bodies, saves and recovery drafts.
|
|
70
|
+
- [Models and methods](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/pnbp_models.md) and [generated API reference](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/reference.md): public imports and signatures.
|
|
71
|
+
- [Local search](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/local-search.md), [navigation](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/navigation.md) and [links](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/links.md): read-only projections and explicit traversal.
|
|
72
|
+
- [Stable identities](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/identities.md) and [publication routes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/routes.md): identity, source paths and URLs remain separate.
|
|
73
|
+
- [Checked publishing](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/checked-publishing.md): dry-run plans, ETags, retries and explicit pruning.
|
|
74
|
+
- [Web deployment](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/web.md): separate application, bootstrap, durable state and the supported local-host worker profile.
|
|
75
|
+
|
|
76
|
+
The macOS URL handlers are [unsupported](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/pnano.md). The FastAPI app and its
|
|
77
|
+
optional dependencies are absent from the `pnbp` wheel.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Pretty-Notebook
|
|
2
|
+
|
|
3
|
+
A Python toolkit for interconnected Markdown notebooks. The repository also
|
|
4
|
+
contains a FastAPI publisher with a constrained public-deployment profile.
|
|
5
|
+
|
|
6
|
+
The `0.10.0` release supports the `pretty_notebook` Python package and its `pnbp`
|
|
7
|
+
command-line interface on Python 3.11 or newer:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python -m pip install --upgrade pip
|
|
11
|
+
python -m pip install pretty-notebook==0.10.0
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The repository supports the `apps/web` publisher as one Gunicorn instance with up to four workers,
|
|
15
|
+
one local SQLite database and one owning notebook behind a TLS reverse proxy. Read the
|
|
16
|
+
deployment contract and security boundaries before exposing it publicly. The
|
|
17
|
+
macOS URL handlers remain unsupported.
|
|
18
|
+
|
|
19
|
+
[Documentation index](docs/index.md) · [Workflow tutorial](docs/tutorials.md) · [0.10.0 release notes](docs/release-0.10.0.md) · [Web deployment](docs/web.md) · [Development roadmap](docs/roadmap.md)
|
|
20
|
+
|
|
21
|
+
The current release is `pretty-notebook==0.10.0`. It includes settings/profiles,
|
|
22
|
+
identities, checked publication, search/navigation, reference-style appearance
|
|
23
|
+
preferences and coordinated worker deployments. Upgrade an old installation:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
python -m pip uninstall pnbp
|
|
27
|
+
python -m pip install pretty-notebook==0.10.0
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The final `pnbp==0.10.0` distribution installs the canonical package and contains
|
|
31
|
+
no implementation modules. [0.10 release notes](docs/release-0.10.0.md) and
|
|
32
|
+
[versions/support](docs/versions.md) define the supported scope. Tagged GitHub
|
|
33
|
+
documentation is the release reference; hosted documentation remains separate.
|
|
34
|
+
|
|
35
|
+
New code uses `from pretty_notebook import Notebook, Note`; existing `pnbp`
|
|
36
|
+
imports and the `pnbp` executable remain compatible. See the
|
|
37
|
+
[package migration](docs/package-migration.md) before upgrading old installations.
|
|
38
|
+
|
|
39
|
+
```mermaid
|
|
40
|
+
graph BT
|
|
41
|
+
id1[(Notebook)]
|
|
42
|
+
id2[(Note)] --> id1
|
|
43
|
+
Link --> id2
|
|
44
|
+
Url --> id2
|
|
45
|
+
CodeBlock --> id2
|
|
46
|
+
Tag --> id2
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
<p align=center>
|
|
50
|
+
<img src=https://raw.githubusercontent.com/outside-labs/pretty-notebook/main/docs/IMG_pnbp.png alt=Pretty-Notebook width=200>
|
|
51
|
+
</p>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Pretty Notebook package
|
|
2
|
+
|
|
3
|
+
Pretty Notebook is a Python library and command-line interface for interconnected
|
|
4
|
+
Markdown notebooks. A notebook is an existing directory of Markdown files;
|
|
5
|
+
a note is one source file. Wiki links, tags, code blocks and URLs have explicit
|
|
6
|
+
models, while ordinary Markdown remains the authoritative content.
|
|
7
|
+
|
|
8
|
+
## Choose a version
|
|
9
|
+
|
|
10
|
+
The 0.10 release is `pretty-notebook==0.10.0` on Python 3.11 or newer.
|
|
11
|
+
It supplies canonical `pretty_notebook` imports, compatible `pnbp` imports,
|
|
12
|
+
and the `pnbp` executable.
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
python -m pip uninstall pnbp
|
|
16
|
+
python -m pip install pretty-notebook==0.10.0
|
|
17
|
+
pnbp --help
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Uninstall the old distribution before installing the release to preserve the
|
|
21
|
+
compatibility modules. See [package migration](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/package-migration.md) and
|
|
22
|
+
[0.10 release notes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/release-0.10.0.md). The historical stable package is
|
|
23
|
+
`pnbp==0.9.0`; its versioned [release notes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/release-0.9.0.md) retain that contract.
|
|
24
|
+
|
|
25
|
+
For source development, install the checkout with
|
|
26
|
+
`python -m pip install --editable .`.
|
|
27
|
+
|
|
28
|
+
## First notebook and existing notebooks
|
|
29
|
+
|
|
30
|
+
Follow the [notebook workflow tutorial](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/tutorials.md) for a temporary notebook,
|
|
31
|
+
initialization, pending edits, checked renames, search and navigation. Its local
|
|
32
|
+
examples are executed by the documentation build.
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from pretty_notebook import Notebook
|
|
36
|
+
|
|
37
|
+
nb = Notebook.open("~/notes", settings={"NOTE_NESTED": "recurs"})
|
|
38
|
+
note = nb.get("guides/overview", fuzzy=False)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The path must already exist. Opening reads files without prompting or creating
|
|
42
|
+
configuration. Initialize deliberately with `pnbp init PATH`; see the canonical
|
|
43
|
+
[settings and profile guide](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/settings.md) for precedence, migration and credentials.
|
|
44
|
+
`Notebook()` continues to use `NOTE_PATH` for existing environment-based setups.
|
|
45
|
+
|
|
46
|
+
## Continue by topic
|
|
47
|
+
|
|
48
|
+
- [Note commands and pending edits](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/editing.md): add/edit, empty bodies, saves and recovery drafts.
|
|
49
|
+
- [Models and methods](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/pnbp_models.md) and [generated API reference](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/reference.md): public imports and signatures.
|
|
50
|
+
- [Local search](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/local-search.md), [navigation](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/navigation.md) and [links](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/links.md): read-only projections and explicit traversal.
|
|
51
|
+
- [Stable identities](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/identities.md) and [publication routes](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/routes.md): identity, source paths and URLs remain separate.
|
|
52
|
+
- [Checked publishing](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/checked-publishing.md): dry-run plans, ETags, retries and explicit pruning.
|
|
53
|
+
- [Web deployment](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/web.md): separate application, bootstrap, durable state and the supported local-host worker profile.
|
|
54
|
+
|
|
55
|
+
The macOS URL handlers are [unsupported](https://github.com/outside-labs/pretty-notebook/blob/v0.10.0/docs/pnano.md). The FastAPI app and its
|
|
56
|
+
optional dependencies are absent from the `pnbp` wheel.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77.0.3"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "pretty-notebook"
|
|
7
|
+
version = "0.10.0"
|
|
8
|
+
description = "Python tools for parsing and querying wiki-linked, tagged Markdown notebooks."
|
|
9
|
+
readme = "docs/pnbp.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
13
|
+
|
|
14
|
+
authors = [
|
|
15
|
+
{ name = "prettynb" },
|
|
16
|
+
]
|
|
17
|
+
maintainers = [
|
|
18
|
+
{ name = "Outside Labs" },
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
keywords = [
|
|
22
|
+
"markdown",
|
|
23
|
+
"notes",
|
|
24
|
+
"wikilinks",
|
|
25
|
+
"knowledge-management",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
dependencies = [
|
|
29
|
+
"click>=8.0",
|
|
30
|
+
"markdown>=3.3.4",
|
|
31
|
+
"requests>=2.26",
|
|
32
|
+
"rich>=10.6",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
Homepage = "https://outside-labs.com"
|
|
37
|
+
Repository = "https://github.com/outside-labs/pretty-notebook"
|
|
38
|
+
Documentation = "https://github.com/outside-labs/pretty-notebook/tree/v0.10.0/docs"
|
|
39
|
+
Issues = "https://github.com/outside-labs/pretty-notebook/issues"
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
pnbp = "pretty_notebook.cli:cli"
|
|
43
|
+
|
|
44
|
+
[tool.setuptools]
|
|
45
|
+
package-dir = { "" = "src" }
|
|
46
|
+
|
|
47
|
+
[tool.setuptools.packages.find]
|
|
48
|
+
where = ["src"]
|
|
49
|
+
include = ["pretty_notebook*", "pnbp*"]
|
|
50
|
+
namespaces = false
|
|
51
|
+
|
|
52
|
+
[tool.setuptools.package-data]
|
|
53
|
+
pretty_notebook = ["resources/deploy/*.tmpl"]
|
|
54
|
+
|
|
55
|
+
[tool.pytest.ini_options]
|
|
56
|
+
addopts = ["-ra", "--strict-config", "--strict-markers"]
|
|
57
|
+
testpaths = ["tests"]
|
|
58
|
+
filterwarnings = [
|
|
59
|
+
"error",
|
|
60
|
+
"ignore:'crypt' is deprecated and slated for removal in Python 3.13:DeprecationWarning:passlib\\.utils",
|
|
61
|
+
]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from .models import Notebook, Note
|
|
2
|
+
from .settings import NotebookSettings, SettingsError
|
|
3
|
+
from pretty_notebook._internal.identities import IdentityError
|
|
4
|
+
from pretty_notebook._internal.search import SearchHit
|
|
5
|
+
from pretty_notebook._internal.navigation import NavigationHistory, NavigationIndex
|
|
6
|
+
|
|
7
|
+
__all__ = ["Notebook", "Note", "NotebookSettings", "SettingsError", "IdentityError", "SearchHit", "NavigationIndex", "NavigationHistory"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Private implementation helpers; use the public package API."""
|