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.
@@ -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
+ [![image](https://img.shields.io/pypi/v/joop.svg)](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,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.3.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ joop=joop.cli:main
3
+