joop 0.0.1__py3-none-any.whl
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.
- joop/__init__.py +9 -0
- joop/abstract/README.md +3 -0
- joop/abstract/__init__.py +95 -0
- joop/cli/README.md +6 -0
- joop/cli/__init__.py +1 -0
- joop/cli/__main__.py +39 -0
- joop/cli/test_flask.py +36 -0
- joop/dao/__init__.py +151 -0
- joop/flask/__init__.py +31 -0
- joop/flask/example.py +19 -0
- joop/flask/flask_view.py +71 -0
- joop/http/methods.py +49 -0
- joop/tests/__init__.py +5 -0
- joop/tests/test_joop.py +29 -0
- joop/tests/test_templater.py +31 -0
- joop/tests/test_view.py +46 -0
- joop/tests/test_web.py +75 -0
- joop/web/__init__.py +14 -0
- joop/web/component.py +163 -0
- joop/web/components.py +116 -0
- joop/web/examples/hello.py +148 -0
- joop/web/examples/table.py +148 -0
- joop/web/examples/view.py +30 -0
- joop/web/html.py +212 -0
- joop/web/j_env.py +39 -0
- joop/web/templater.py +139 -0
- joop/web/view.py +214 -0
- joop-0.0.1.dist-info/METADATA +133 -0
- joop-0.0.1.dist-info/RECORD +31 -0
- joop-0.0.1.dist-info/WHEEL +4 -0
- joop-0.0.1.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: joop
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Justin's Object-Oriented Paradigms
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
Keywords: object-oriented programming,DAO,HTMX,AlpineJS,Python
|
|
7
|
+
Author: Justin Rushin
|
|
8
|
+
Requires-Python: >=3.10
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Intended Audience :: Education
|
|
11
|
+
Classifier: Natural Language :: English
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
15
|
+
Provides-Extra: flask
|
|
16
|
+
Requires-Dist: click (>=7.0)
|
|
17
|
+
Requires-Dist: flask (>=3.1.2,<4.0.0) ; extra == "flask"
|
|
18
|
+
Requires-Dist: jinja2 (>=3.1.6,<4.0.0)
|
|
19
|
+
Requires-Dist: markupsafe (>=3.0.3,<4.0.0)
|
|
20
|
+
Requires-Dist: pydantic (>=2.12.5,<3.0.0)
|
|
21
|
+
Requires-Dist: sqlmodel (>=0.0.31,<0.0.32)
|
|
22
|
+
Project-URL: Homepage, https://github.com/rushinjgr/joop
|
|
23
|
+
Project-URL: bugs, https://github.com/rushinjgr/joop/issues
|
|
24
|
+
Project-URL: changelog, https://github.com/rushinjgr/joop/blob/master/python/docs/changelog.md
|
|
25
|
+
Project-URL: source, https://github.com/rushinjgr/joop
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
|
|
28
|
+
# joop
|
|
29
|
+
|
|
30
|
+
[](https://pypi.python.org/pypi/joop)
|
|
31
|
+
|
|
32
|
+
**OOP Paradigms with an emphasis on DAO patterns, HTMX, and AlpineJS.**
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
- Free software: Apache Software License 2.0
|
|
36
|
+
- Documentation: https://rushinjgr.github.io/joop
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Features
|
|
40
|
+
|
|
41
|
+
- HTML Components for server-side rendering.
|
|
42
|
+
|
|
43
|
+
## Getting Started
|
|
44
|
+
|
|
45
|
+
### Setting Up a Virtual Environment
|
|
46
|
+
|
|
47
|
+
It is recommended to use `poetry` to manage the virtual environment and dependencies. Follow these steps:
|
|
48
|
+
|
|
49
|
+
1. Install `poetry` globally if it is not already installed:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install poetry
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. Install the Poetry Shell plugin to enable the `poetry shell` command:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
poetry self add poetry-plugin-shell
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
3. Use `poetry` to install all dependencies (including development tools like `twine`):
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
poetry install
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
This will automatically create a virtual environment in the `.venv` folder inside the project directory, as specified in the `poetry.toml` file.
|
|
68
|
+
|
|
69
|
+
4. To activate the virtual environment, use:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
poetry shell
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Build commands
|
|
76
|
+
|
|
77
|
+
1. Run `poetry check` to validate the `pyproject.toml` file:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
poetry check
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
2. Build the package using `python -m build`:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
poetry run python -m build
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
This will generate distribution files in the `dist/` directory.
|
|
90
|
+
|
|
91
|
+
3. Verify the distribution files using `twine check`:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
poetry run twine check dist/*
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This ensures the distribution files are ready for upload to PyPI.
|
|
98
|
+
|
|
99
|
+
### Building the Documentation
|
|
100
|
+
|
|
101
|
+
To build the documentation, follow these steps:
|
|
102
|
+
|
|
103
|
+
1. Ensure all dependencies, including development dependencies, are installed:
|
|
104
|
+
```bash
|
|
105
|
+
poetry install --with dev
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
2. Build the documentation using Sphinx:
|
|
109
|
+
```bash
|
|
110
|
+
poetry run sphinx-build -b html docs/source docs/build/html
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
The generated HTML files will be located in the `docs/build/html` directory.
|
|
114
|
+
|
|
115
|
+
3. Open the documentation in your browser by navigating to:
|
|
116
|
+
```
|
|
117
|
+
docs/build/html/index.html
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Commands
|
|
121
|
+
|
|
122
|
+
For all commands, run in `joop/python`
|
|
123
|
+
|
|
124
|
+
To run the CLI: `python -m joop.cli`
|
|
125
|
+
|
|
126
|
+
For tests, run `python -m unittest joop.tests` (add `-vvv` to see output)
|
|
127
|
+
|
|
128
|
+
For coverage, run:
|
|
129
|
+
```
|
|
130
|
+
coverage run -m unittest joop.tests
|
|
131
|
+
coverage report
|
|
132
|
+
```
|
|
133
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
joop/__init__.py,sha256=tcUhqXRMmCnkqsK80Ag0Cy5WuXpcq25ffcr2Lj3jBUA,196
|
|
2
|
+
joop/abstract/README.md,sha256=Np27MGN-nseV3p4-oYGud79ykKKg74dqiI15kBI_DPc,162
|
|
3
|
+
joop/abstract/__init__.py,sha256=A7JqwtHk94fbV0BhFhHkwuCs_WUrctUxA2ZYoZHso3w,3079
|
|
4
|
+
joop/cli/README.md,sha256=FTNqymKClBR7quGaD0gidU5lnRMuZJKmlb3MQdi7DDQ,202
|
|
5
|
+
joop/cli/__init__.py,sha256=iczWnKeZNGrIqQLPhZU-KEMivlVULPGaFQ5fpXQChIQ,34
|
|
6
|
+
joop/cli/__main__.py,sha256=hZiww8R1o01VldXC3XVIsNz8c4Nm2OvlOAxKCcEsI5g,1186
|
|
7
|
+
joop/cli/test_flask.py,sha256=lxikHs8c_RSGFVwMYwOpCm0LyypGxExJuNK98I3caDs,1011
|
|
8
|
+
joop/dao/__init__.py,sha256=wwk9OvHt1nRw4RJXscRIkXp0vOzwgHweIPytSVTHwus,5239
|
|
9
|
+
joop/flask/__init__.py,sha256=CkAdeS3sD7z5hSiQC0VNS1JA6TQBlXIScBmXCMIMpNA,945
|
|
10
|
+
joop/flask/example.py,sha256=R8BvbiKOMhsxtF7zN9a2F_mXd5YFtKHSLar7O1f4FlM,417
|
|
11
|
+
joop/flask/flask_view.py,sha256=XMaD5vAWWo6sEeHUqMIdz-LNv3I3rZbaN12Qx5yL2Zs,2398
|
|
12
|
+
joop/http/methods.py,sha256=12Y87zR7vHXtCwg9ravSn9NDCq6dsR1UiQ7aM5Q1d2s,1775
|
|
13
|
+
joop/tests/__init__.py,sha256=H0axufHJO_TulEi4OR03ZFenjcgr3dVe5vKe7qGv2rA,163
|
|
14
|
+
joop/tests/test_joop.py,sha256=2tzKbfT2EVnOCxwVbfu2sCAmVdh37IxMEGJWcGlhXdc,785
|
|
15
|
+
joop/tests/test_templater.py,sha256=-DVOMiPuA7sO2lGQVvD7wngIDUXAL-OEKYE11_9TEFQ,791
|
|
16
|
+
joop/tests/test_view.py,sha256=G0N6DQrgSKPhRW3T13NbrDvbynVayt-bvRW2Q0Qd4Pc,1270
|
|
17
|
+
joop/tests/test_web.py,sha256=RrvuVj0VmyjDbpvvdJVv5DnbpEzbP6ky6E0CA4QMpsk,2493
|
|
18
|
+
joop/web/__init__.py,sha256=SXfAxuh96-w1uxlHd2NMfn7ThrSGOUU84cCXiZX6JzM,412
|
|
19
|
+
joop/web/component.py,sha256=oZO9tVhlXAlF4tn8tmtHp95SlPuD6-q8gezWOU4l9y0,5135
|
|
20
|
+
joop/web/components.py,sha256=74EUiZOO9yCJnFQYYyRREvZKeRsKgYpAJIHkzQdJ_vY,3772
|
|
21
|
+
joop/web/examples/hello.py,sha256=29c5EUjIZgHiD5-O5KC_40sO9D2Tg69QBvvOPLfQ4Qg,4824
|
|
22
|
+
joop/web/examples/table.py,sha256=jshGjwh66MIbQRkSgKYkzzeLViUU6ULwsTVOxEZbCzs,4697
|
|
23
|
+
joop/web/examples/view.py,sha256=FwKPeXqJ6CpJxdEGQohGS2yhPH8H2TBMem8vHkp2ZME,655
|
|
24
|
+
joop/web/html.py,sha256=O2Xo_xGeO-ro62Wc_8q__WUS29G0uF5axYvQF3IqSNk,7690
|
|
25
|
+
joop/web/j_env.py,sha256=Pj-DIVUFd4Rb_wSAqT3nfyyKtR9cW6kzCHSxF1d7BTg,1093
|
|
26
|
+
joop/web/templater.py,sha256=SnlSj0mf83KUiCWTh4-6s3UQtmrsFDngbqENZjc1SPQ,5010
|
|
27
|
+
joop/web/view.py,sha256=9DU_i1Hpeai_NDuhf17mGF0xoIUV7aSLE3zoisoRUGA,6833
|
|
28
|
+
joop-0.0.1.dist-info/METADATA,sha256=rAoKQXNlx73rx2_1lqFFKgSGSEs6Yd_WmiqAq7AzcCo,3411
|
|
29
|
+
joop-0.0.1.dist-info/WHEEL,sha256=kJCRJT_g0adfAJzTx2GUMmS80rTJIVHRCfG0DQgLq3o,88
|
|
30
|
+
joop-0.0.1.dist-info/entry_points.txt,sha256=EXfYHkMxWW2P6AJ4sLEljXmhALjKMGlyta2NNIPDtQw,38
|
|
31
|
+
joop-0.0.1.dist-info/RECORD,,
|