Skip to content

Commit 4e2589f

Browse files
committed
deploy: 0f2f843
0 parents  commit 4e2589f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+8177
-0
lines changed

.buildinfo

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Sphinx build info version 1
2+
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3+
config: 1d020293d208c2f5ae9d4aa2a27aa227
4+
tags: 645f666f9bcd5a90fca523b33c5a78b7

.doctrees/environment.pickle

35.1 KB
Binary file not shown.
Binary file not shown.
5.48 KB
Binary file not shown.
5.71 KB
Binary file not shown.
10.9 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.

.doctrees/generated/pyJSON.doctree

9.43 KB
Binary file not shown.

.doctrees/index.doctree

11.4 KB
Binary file not shown.

.doctrees/installation.doctree

23.2 KB
Binary file not shown.

.doctrees/modules.doctree

40.7 KB
Binary file not shown.

.doctrees/usage.doctree

40.5 KB
Binary file not shown.

.nojekyll

Whitespace-only changes.

_images/pyJSON_interface.png

34.9 KB
Loading
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Modules.ModifiedTreeModel
2+
=========================
3+
4+
.. automodule:: Modules.ModifiedTreeModel
5+
6+
7+
.. rubric:: Classes
8+
9+
.. autosummary::
10+
11+
ModifiedTreeClass
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Modules.TreeItem
2+
================
3+
4+
.. automodule:: Modules.TreeItem
5+
6+
7+
.. rubric:: Classes
8+
9+
.. autosummary::
10+
11+
TreeItem
12+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
Modules.TreeModel
2+
=================
3+
4+
.. automodule:: Modules.TreeModel
5+
6+
7+
.. rubric:: Classes
8+
9+
.. autosummary::
10+
11+
TreeClass
12+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
Modules.deploy\_files
2+
=====================
3+
4+
.. automodule:: Modules.deploy_files
5+
6+
7+
.. rubric:: Functions
8+
9+
.. autosummary::
10+
11+
deploy_config
12+
deploy_schema
13+
save_config
14+
save_index
15+
save_main_index
16+
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Modules.jsonio\_lib
2+
===================
3+
4+
.. automodule:: Modules.jsonio_lib
5+
6+
7+
.. rubric:: Functions
8+
9+
.. autosummary::
10+
11+
decode_function
12+
py_to_tree
13+
schema_to_py_gen
14+
tree_to_py
15+
type_translation
16+
validator_files
17+
validator_vars
18+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Modules.jsonsearch\_lib
2+
=======================
3+
4+
.. automodule:: Modules.jsonsearch_lib
5+
6+
7+
.. rubric:: Functions
8+
9+
.. autosummary::
10+
11+
check_index
12+
dict_flatten_dict
13+
f_search
14+
schema_matching_search
15+
start_index
16+
watchdog
17+

_sources/generated/pyJSON.rst.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
pyJSON
2+
======
3+
4+
.. automodule:: pyJSON
5+
6+
7+
.. rubric:: Classes
8+
9+
.. autosummary::
10+
11+
BackgroundBrushDelegate
12+
EnumDropDownDelegate
13+
SearchWindow
14+
UiRunnerInstance
15+

_sources/index.md.txt

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# The pyJSON Schema Loader and Editor Documentation
2+
3+
## About
4+
This is the pyJSON Schema Loader and JSON Editor - a JSON Schema based editor capable of creating a well structured, metadata containing document based on a data schema. With pyJSON, one can create,
5+
edit, validate and save JSON documents. Furthermore, a simple search function helps keeping track of filesystem-based repositories filled with metadata.
6+
7+
For a JSON schema creating software that is capable of being integrated in network workflow structures, please have a look at [the ADAMANT web tool](https://github.com/INP-PM/adamant) ([Publication in F1000Research](https://doi.org/10.12688/f1000research.110875.1)).
8+
9+
pyJSON is licensed under the terms and conditions of [the MIT license](https://opensource.org/license/mit/). The source code is stored in [this Github repository](https://github.com/nplathe/pyJSON-Schema-Loader-and-JSON-Editor).
10+
11+
## Grant information
12+
The work was funded by the Federal Ministry of Education and Research (BMBF) under the grant mark 16QK03A and by "Deutsche Forschungsgemeinschaft (DFG)" - Projektnummer 454848899.
13+
The responsibility for the content of this repository lies with the authors.
14+
15+
## Requirements
16+
Head over to the [installation](installation) section of the documentation for details.
17+
In short, pyJSON requires Python 3.10 or newer, `PySide6` as bindings for Qt6, the `regex` and the `jsonschema` package.
18+
Furthermore, the `PyInstaller` package is needed, if you want to freeze the environment and distribute pyJSON as an executable for the platform
19+
of choice. Additional packages are needed for building the documentation. A virtual environment is highly advised.
20+
21+
```{note}
22+
pyJSON is unter active development
23+
```
24+
25+
26+
```{toctree}
27+
---
28+
maxdepth: 2
29+
caption: Contents
30+
---
31+
32+
installation
33+
usage
34+
modules
35+
```
36+
37+
# Indices and tables
38+
39+
- {ref}`genindex`
40+
- {ref}`modindex`
41+
- {ref}`search`

_sources/installation.md.txt

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Installation
2+
3+
## Pyinstaller builds
4+
5+
In order to simplify distribution, you can find packaged one-file builds created with [Pyinstaller](https://pyinstaller.org/en/stable/) via GitHub Actions
6+
on [the releases page](https://github.com/nplathe/pyJSON-Schema-Loader-and-JSON-Editor/releases).
7+
If you just want to use pyJSON without looking into the code or dealing with Python, the prebuilt files are the better choice.
8+
Note that Pyinstaller builds are not extensively tested. If you encounter unusual behaviour, please open [an issue](https://github.com/nplathe/pyJSON-Schema-Loader-and-JSON-Editor/issues).
9+
10+
## Working with the code
11+
12+
In order to use pyJSON, at least Python 3.10 is required, alongside a few third-party modules.
13+
14+
```{warning}
15+
Due to match cases being used in several parts, pyJSON is explicitly not compatible with versions
16+
prior to python 3.10! See [PEP 636](https://peps.python.org/pep-0636/) for details.
17+
```
18+
19+
Currently, in order to use pyJSON, it is necessary to download the source code. Either use
20+
```bash
21+
git clone https://github.com/nplathe/pyJSON-Schema-Loader-and-JSON-Editor
22+
```
23+
or use the "Code" -> "Download ZIP" button on the repository page to download the source code.
24+
25+
For running pyJSON, the following packages are needed:
26+
27+
| package | version | purpose |
28+
|------------|-------------|--------------------------------------|
29+
| jsonschema | ~=4.19.2 | JSON validation via JSON schema |
30+
| PySide6 | ~=6.5.1.1 | python bindings for the QT framework |
31+
| regex | ~=2023.10.3 | regular expressions |
32+
33+
## Prerequisites
34+
35+
It is highly recommended to create a virtual environment for installation and building an executable. Virtual environments
36+
keep your main installation free from unneeded packages and introduce a separation of the several packages used, which heavily
37+
benefits development and avoids unnecessary issues, e.g. package conflicts.
38+
39+
### A: installing packages via pip
40+
41+
In order to run pyJSON, run the following command in the repository directory to install the dependencies.
42+
43+
```bash
44+
pip install -r requirements.txt
45+
```
46+
47+
```{warning}
48+
As of [PEP 668](https://peps.python.org/pep-0668/), if your base environment is marked as externally managed, you **must**
49+
use a virtual environment.
50+
```
51+
52+
### B: conda managed environment
53+
54+
[conda](https://docs.conda.io/en/latest/) is an alternative package manager for python. It is capable of creating and managing
55+
several sources for packages, creating virtual environments and solving dependencies for packages.
56+
57+
First create a new virtual environment and enter it.
58+
```bash
59+
conda create -n <yourenvname> python=3.10.9
60+
conda activate <yourenvname>
61+
```
62+
63+
You can always leave your environment with `conda deactivate`.
64+
65+
Install the dependencies. Note, that, dependent on your settings and distribution of the conda package manager, you might have
66+
to specify the channel with the `-c` argument, e.g. `-c conda-forge` for the community-driven [conda-forge repository](https://conda-forge.org/),
67+
which contains all of the needed packages.
68+
69+
```bash
70+
conda install -c conda-forge jsonschema regex pyside6
71+
```
72+
73+
## Building the documentation
74+
75+
If you are interested in building the documentation yourself, you need the following packages:
76+
77+
| package | version | purpose |
78+
|-------------|------------|------------------------------------|
79+
| sphinx | ~=7.7.7 | documentation generation framework |
80+
| myst-parser | ~=3.0.1 | Markdown parser for sphinx |
81+
| furo | ~=2024.5.6 | alternative HTML theme for sphinx |
82+
83+
## Running pyJSON
84+
In your python environment in the command line, after installing the prerequisites, navigate to the directory pyJSON is located in and execute
85+
86+
```bash
87+
python pyJSON.py
88+
```
89+
90+
## Building a distributable package
91+
First, install [PyInstaller](https://pyinstaller.org/en/stable/) into your environment. Make sure to activate your environment, then navigate to the source directory and run
92+
93+
```bash
94+
pyinstaller --clean --icon=icon.ico ./pyJSON.py
95+
```
96+
97+
to generate a distributable frozen environment containing everything for pyJSON in order to run it without a local python installation.
98+
You can add the `--onefile` parameter to create an one-file executable instead of a directory tree.

_sources/modules.md.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Modules documentation
2+
3+
```{eval-rst}
4+
.. autosummary::
5+
:toctree: generated
6+
7+
pyJSON
8+
Modules.deploy_files
9+
Modules.jsonio_lib
10+
Modules.jsonsearch_lib
11+
Modules.TreeItem
12+
Modules.TreeModel
13+
Modules.ModifiedTreeModel
14+
```

0 commit comments

Comments
 (0)