Skip to content

Commit 80b724d

Browse files
committed
deploy: 48a1af1
0 parents  commit 80b724d

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

+8161
-0
lines changed

.buildinfo

+4
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: 9dc280ed60f2eb4e569fa98a99e8dbe5
4+
tags: 645f666f9bcd5a90fca523b33c5a78b7

.doctrees/environment.pickle

34.6 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.3 KB
Binary file not shown.

.doctrees/installation.doctree

20.8 KB
Binary file not shown.

.doctrees/modules.doctree

40.1 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
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+
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+
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+
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+
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+
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

+15
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

+41
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

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

_sources/modules.md.txt

+14
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)