django-json-widget 2.0.2__tar.gz → 2.0.4__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.
Files changed (66) hide show
  1. django_json_widget-2.0.4/.coveragerc +11 -0
  2. django_json_widget-2.0.4/.editorconfig +23 -0
  3. django_json_widget-2.0.4/.github/ISSUE_TEMPLATE.md +16 -0
  4. django_json_widget-2.0.4/.github/workflows/tests.yml +31 -0
  5. django_json_widget-2.0.4/.gitignore +57 -0
  6. django_json_widget-2.0.4/.travis.yml +57 -0
  7. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/AUTHORS.rst +29 -29
  8. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/CHANGELOG.rst +65 -57
  9. django_json_widget-2.0.4/CONTRIBUTING.md +83 -0
  10. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/LICENSE +14 -14
  11. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/MANIFEST.in +6 -6
  12. django_json_widget-2.0.4/Makefile +66 -0
  13. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/PKG-INFO +209 -201
  14. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/README.rst +106 -105
  15. django_json_widget-2.0.4/django_json_widget/__init__.py +1 -0
  16. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/apps.py +6 -6
  17. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/models.py +1 -1
  18. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/static/dist/img/jsoneditor-icons.svg +749 -749
  19. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/static/dist/jsoneditor.min.css +9 -9
  20. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/static/dist/jsoneditor.min.js +85 -85
  21. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/templates/django_json_widget.html +25 -25
  22. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/urls.py +1 -1
  23. django_json_widget-2.0.4/django_json_widget/widgets.py +47 -0
  24. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget.egg-info/PKG-INFO +209 -201
  25. django_json_widget-2.0.4/django_json_widget.egg-info/SOURCES.txt +60 -0
  26. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget.egg-info/not-zip-safe +1 -1
  27. django_json_widget-2.0.4/example/README.md +24 -0
  28. django_json_widget-2.0.4/example/characters/__init__.py +0 -0
  29. django_json_widget-2.0.4/example/characters/admin.py +11 -0
  30. django_json_widget-2.0.4/example/characters/apps.py +5 -0
  31. django_json_widget-2.0.4/example/characters/migrations/0001_initial.py +24 -0
  32. django_json_widget-2.0.4/example/characters/migrations/0002_alter_character_data_alter_character_other_data.py +23 -0
  33. django_json_widget-2.0.4/example/characters/migrations/__init__.py +0 -0
  34. django_json_widget-2.0.4/example/characters/models.py +11 -0
  35. django_json_widget-2.0.4/example/characters/tests.py +3 -0
  36. django_json_widget-2.0.4/example/characters/views.py +3 -0
  37. django_json_widget-2.0.4/example/example/__init__.py +0 -0
  38. django_json_widget-2.0.4/example/example/settings.py +111 -0
  39. django_json_widget-2.0.4/example/example/urls.py +21 -0
  40. django_json_widget-2.0.4/example/example/wsgi.py +16 -0
  41. django_json_widget-2.0.4/example/manage.py +21 -0
  42. django_json_widget-2.0.4/example/requirements.txt +5 -0
  43. django_json_widget-2.0.4/example/templates/django_json_widget/base.html +88 -0
  44. django_json_widget-2.0.4/imgs/jsonfield_0.png +0 -0
  45. django_json_widget-2.0.4/imgs/jsonfield_1.png +0 -0
  46. django_json_widget-2.0.4/manage.py +10 -0
  47. django_json_widget-2.0.4/pyproject.toml +138 -0
  48. django_json_widget-2.0.4/requirements.txt +1 -0
  49. django_json_widget-2.0.4/requirements_dev.txt +9 -0
  50. django_json_widget-2.0.4/requirements_test.txt +7 -0
  51. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/setup.cfg +16 -27
  52. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/setup.py +79 -80
  53. django_json_widget-2.0.4/tests/__init__.py +0 -0
  54. django_json_widget-2.0.4/tests/settings.py +23 -0
  55. django_json_widget-2.0.4/tests/test_logic.py +317 -0
  56. django_json_widget-2.0.4/tests/test_widget_security.py +162 -0
  57. django_json_widget-2.0.4/tox.ini +26 -0
  58. django_json_widget-2.0.2/CONTRIBUTING.rst +0 -113
  59. django_json_widget-2.0.2/django_json_widget/__init__.py +0 -1
  60. django_json_widget-2.0.2/django_json_widget/widgets.py +0 -88
  61. django_json_widget-2.0.2/django_json_widget.egg-info/SOURCES.txt +0 -25
  62. django_json_widget-2.0.2/tests/test_models.py +0 -23
  63. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/static/css/django_json_widget.css +0 -0
  64. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget/views.py +0 -0
  65. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget.egg-info/dependency_links.txt +0 -0
  66. {django_json_widget-2.0.2 → django_json_widget-2.0.4}/django_json_widget.egg-info/top_level.txt +0 -0
@@ -0,0 +1,11 @@
1
+ [run]
2
+ branch = true
3
+
4
+ [report]
5
+ omit =
6
+ *site-packages*
7
+ *tests*
8
+ *.tox*
9
+ show_missing = True
10
+ exclude_lines =
11
+ raise NotImplementedError
@@ -0,0 +1,23 @@
1
+ # http://editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ charset = utf-8
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.{py,rst,ini}]
12
+ indent_style = space
13
+ indent_size = 4
14
+
15
+ [*.{html,css,scss,json,yml}]
16
+ indent_style = space
17
+ indent_size = 2
18
+
19
+ [*.md]
20
+ trim_trailing_whitespace = false
21
+
22
+ [Makefile]
23
+ indent_style = tab
@@ -0,0 +1,16 @@
1
+ * django-json-widget version:
2
+ * Django version:
3
+ * Python version:
4
+ * Operating System:
5
+
6
+ ### Description
7
+
8
+ Describe what you were trying to get done.
9
+ Tell us what happened, what went wrong, and what you expected to happen.
10
+
11
+ ### What I Did
12
+
13
+ ```
14
+ Paste the command(s) you ran and the output.
15
+ If there was a crash, please include the traceback here.
16
+ ```
@@ -0,0 +1,31 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ master ]
6
+ pull_request:
7
+ branches: [ master ]
8
+
9
+ jobs:
10
+ build:
11
+
12
+ runs-on: ubuntu-latest
13
+ strategy:
14
+ max-parallel: 5
15
+ matrix:
16
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - name: Set up Python ${{ matrix.python-version }}
21
+ uses: actions/setup-python@v4
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ python -m pip install tox tox-gh-actions
29
+
30
+ - name: Run tests
31
+ run: tox
@@ -0,0 +1,57 @@
1
+ *.py[cod]
2
+ __pycache__
3
+
4
+ # C extensions
5
+ *.so
6
+
7
+ # Packages
8
+ *.egg
9
+ *.egg-info
10
+ build
11
+ eggs
12
+ parts
13
+ bin
14
+ var
15
+ sdist
16
+ develop-eggs
17
+ .installed.cfg
18
+ lib
19
+ lib64
20
+ .pypirc
21
+
22
+ # Installer logs
23
+ pip-log.txt
24
+
25
+ # Unit test / coverage reports
26
+ .coverage
27
+ .tox
28
+ nosetests.xml
29
+ htmlcov
30
+
31
+ # Translations
32
+ *.mo
33
+
34
+ # Mr Developer
35
+ .mr.developer.cfg
36
+ .project
37
+ .pydevproject
38
+
39
+ # Pycharm/Intellij
40
+ .idea
41
+
42
+ # Complexity
43
+ output/*.html
44
+ output/*/index.html
45
+
46
+ # Sphinx
47
+ docs/_build
48
+ /.tox/
49
+ /dist/
50
+
51
+ # venv
52
+ /.pypirc
53
+ /example/.python-version
54
+
55
+ # OS
56
+ .DS_Store
57
+ example/.DS_Store
@@ -0,0 +1,57 @@
1
+ # Config file for automatic testing at travis-ci.org
2
+
3
+ language: python
4
+
5
+ python:
6
+ - "3.6"
7
+ - "3.7"
8
+ - "3.8"
9
+ - "3.9"
10
+ - "3.10"
11
+ - "3.11"
12
+ - "3.12"
13
+
14
+ matrix:
15
+ fast_finish: true
16
+ include:
17
+ # DJANGO 3.2.25
18
+ - python: 3.6
19
+ env: DJANGO_VERSION=3.2.25
20
+ - python: 3.7
21
+ env: DJANGO_VERSION=3.2.25
22
+ - python: 3.8
23
+ env: DJANGO_VERSION=3.2.25
24
+ - python: 3.9
25
+ env: DJANGO_VERSION=3.2.25
26
+ - python: 3.10
27
+ env: DJANGO_VERSION=3.2.25
28
+ # DJANGO 4.2.11
29
+ env: DJANGO_VERSION=3.2.25
30
+ - python: 3.8
31
+ env: DJANGO_VERSION=3.2.25
32
+ - python: 3.9
33
+ env: DJANGO_VERSION=3.2.25
34
+ - python: 3.10
35
+ env: DJANGO_VERSION=3.2.25
36
+ - python: 3.11
37
+ env: DJANGO_VERSION=3.2.25
38
+ - python: 3.12
39
+ env: DJANGO_VERSION=3.2.25
40
+ # DJANGO 5.0.3
41
+ - python: 3.10
42
+ env: DJANGO_VERSION=3.2.25
43
+ - python: 3.11
44
+ env: DJANGO_VERSION=3.2.25
45
+ - python: 3.12
46
+ env: DJANGO_VERSION=3.2.25
47
+ # command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors
48
+ install:
49
+ - echo "$DJANGO_VERSION"
50
+ - pip install -r requirements_test.txt
51
+
52
+ # command to run tests using coverage, e.g. python setup.py test
53
+ script: coverage run --source django_json_widget runtests.py
54
+ # script: tox -e $TOX_ENV
55
+
56
+ # after_success:
57
+ # - codecov -e TOX_ENV
@@ -1,29 +1,29 @@
1
- =======
2
- Credits
3
- =======
4
-
5
- Development Lead
6
- ----------------
7
-
8
- * José Manuel Rivas (jmrivas86) <jmrivas86@gmail.com>
9
-
10
- Contributors
11
- ------------
12
-
13
- * Knut Hühne (k-nut)
14
- * Qiying Wang (WqyJh)
15
- * Erkin Çakar (travijuu)
16
- * Vinay Pai (vinaypai)
17
- * Pedro Miguel Correia (pedroma)
18
- * Artur BarseghyanArtur Barseghyan (barseghyanartur)
19
- * Alexandre Voiney (avoiney)
20
- * Michał Bielawski (D3X)
21
- * Arcuri Davide (dadokkio)
22
- * Ling Li (lingster)
23
- * Steven Mapes (StevenMapes)
24
- * Stefan Wehrmeyer (stefanw)
25
- * Michał Bielawski (D3X)
26
- * Ashok Argent-Katwala (ashokdelphia)
27
- * Chris Culhane (cfculhane)
28
- * Amar Sahinovic (amarsahinovic)
29
- * Erfan Arefmehr (erfan-rfmhr)
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ Development Lead
6
+ ----------------
7
+
8
+ * José Manuel Rivas (jmrivas86) <jmrivas86@gmail.com>
9
+
10
+ Contributors
11
+ ------------
12
+
13
+ * Knut Hühne (k-nut)
14
+ * Qiying Wang (WqyJh)
15
+ * Erkin Çakar (travijuu)
16
+ * Vinay Pai (vinaypai)
17
+ * Pedro Miguel Correia (pedroma)
18
+ * Artur BarseghyanArtur Barseghyan (barseghyanartur)
19
+ * Alexandre Voiney (avoiney)
20
+ * Michał Bielawski (D3X)
21
+ * Arcuri Davide (dadokkio)
22
+ * Ling Li (lingster)
23
+ * Steven Mapes (StevenMapes)
24
+ * Stefan Wehrmeyer (stefanw)
25
+ * Michał Bielawski (D3X)
26
+ * Ashok Argent-Katwala (ashokdelphia)
27
+ * Chris Culhane (cfculhane)
28
+ * Amar Sahinovic (amarsahinovic)
29
+ * Erfan Arefmehr (erfan-rfmhr)
@@ -1,57 +1,65 @@
1
- =========
2
- Changelog
3
- =========
4
-
5
- 2.0.2 (2025-07-28)
6
- ------------------
7
-
8
- * Fix Version 2.0.1 causes rendering HTML scripts issue #80
9
-
10
- 2.0.1 (2024-03-02)
11
- ------------------=
12
-
13
- * Fixed Version 2.0.0 causes issues with Django 4.x due to missing sourcemaps issue #83
14
-
15
- 2.0.0 (2024-03-24)
16
- ------------------
17
-
18
- * Fix default paths for static files #53
19
- * Stop declaring support for Django versions before 3.2 #65
20
- * Avoid HTML injection via unsafe JSON injection #64
21
- * Remove source map reference from JS bundle #70
22
- * Add dark mode CSS support #82
23
- * Updated documentation
24
-
25
- 1.1.1 (2021-02-17)
26
- ------------------
27
-
28
- * Fix for issue #51, updates the bundled libs to 9.1.9 and additional notes for Django 3.1 changes
29
-
30
- 1.1.0 (2021-02-05)
31
- ------------------
32
-
33
- * Added functionality to override version of JSONEditor to use
34
- * update readme for django 3.1
35
-
36
- 1.0.1 (2020-04-17)
37
- ------------------
38
-
39
- * Stop resolving paths to the static files
40
-
41
- 1.0.0 (2020-01-16)
42
- ------------------
43
-
44
- * Update Makefile
45
- * Make Stable the project
46
-
47
-
48
- 0.3.0 (2020-01-16)
49
- ------------------
50
-
51
- * Update requirements.txt
52
- * Fixed static to work with CDN tools like django-storages
53
- * Make widget more configurable
54
- * Fixed an incompatibility with Python 2.7
55
- * update jsoneditor to latest version
56
-
57
-
1
+ =========
2
+ Changelog
3
+ =========
4
+
5
+ 2.0.4 (2025-10-11)
6
+ ------------------
7
+
8
+ * Fix dark mode CSS support #107
9
+
10
+ 2.0.3 (2025-07-29)
11
+ ------------------
12
+
13
+ 2.0.2 (2025-07-28)
14
+ ------------------
15
+
16
+ * Fix Version 2.0.1 causes rendering HTML scripts issue #80
17
+
18
+ 2.0.1 (2024-03-02)
19
+ ------------------=
20
+
21
+ * Fixed Version 2.0.0 causes issues with Django 4.x due to missing sourcemaps issue #83
22
+
23
+ 2.0.0 (2024-03-24)
24
+ ------------------
25
+
26
+ * Fix default paths for static files #53
27
+ * Stop declaring support for Django versions before 3.2 #65
28
+ * Avoid HTML injection via unsafe JSON injection #64
29
+ * Remove source map reference from JS bundle #70
30
+ * Add dark mode CSS support #82
31
+ * Updated documentation
32
+
33
+ 1.1.1 (2021-02-17)
34
+ ------------------
35
+
36
+ * Fix for issue #51, updates the bundled libs to 9.1.9 and additional notes for Django 3.1 changes
37
+
38
+ 1.1.0 (2021-02-05)
39
+ ------------------
40
+
41
+ * Added functionality to override version of JSONEditor to use
42
+ * update readme for django 3.1
43
+
44
+ 1.0.1 (2020-04-17)
45
+ ------------------
46
+
47
+ * Stop resolving paths to the static files
48
+
49
+ 1.0.0 (2020-01-16)
50
+ ------------------
51
+
52
+ * Update Makefile
53
+ * Make Stable the project
54
+
55
+
56
+ 0.3.0 (2020-01-16)
57
+ ------------------
58
+
59
+ * Update requirements.txt
60
+ * Fixed static to work with CDN tools like django-storages
61
+ * Make widget more configurable
62
+ * Fixed an incompatibility with Python 2.7
63
+ * update jsoneditor to latest version
64
+
65
+
@@ -0,0 +1,83 @@
1
+ # Contributing
2
+
3
+ Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
4
+
5
+ You can contribute in many ways:
6
+
7
+ ## Types of Contributions
8
+
9
+ ### Report Bugs
10
+
11
+ Report bugs at https://github.com/jmrivas86/django-json-widget/issues.
12
+
13
+ If you are reporting a bug, please include:
14
+
15
+ * Your operating system name and version.
16
+ * Any details about your local setup that might be helpful in troubleshooting.
17
+ * Detailed steps to reproduce the bug.
18
+
19
+ ### Fix Bugs
20
+
21
+ Look through the GitHub issues for bugs. Anything tagged with "bug" is open to whoever wants to implement it.
22
+
23
+ ### Implement Features
24
+
25
+ Look through the GitHub issues for features. Anything tagged with "feature" is open to whoever wants to implement it.
26
+
27
+ ### Write Documentation
28
+
29
+ django-json-widget could always use more documentation, whether as part of the official django-json-widget docs, in docstrings, or even on the web in blog posts, articles, and such.
30
+
31
+ ### Submit Feedback
32
+
33
+ The best way to send feedback is to file an issue at https://github.com/jmrivas86/django-json-widget/issues.
34
+
35
+ If you are proposing a feature:
36
+
37
+ * Explain in detail how it would work.
38
+ * Keep the scope as narrow as possible, to make it easier to implement.
39
+ * Remember that this is a volunteer-driven project, and that contributions are welcome :)
40
+
41
+ ## Get Started!
42
+
43
+ Ready to contribute? Here's how to set up `django-json-widget` for local development.
44
+
45
+ 1. Fork the `django-json-widget` repo on GitHub.
46
+
47
+ 2. Clone your fork locally:
48
+ ```bash
49
+ git clone git@github.com:your_name_here/django-json-widget.git
50
+ ```
51
+
52
+ 3. Install development dependencies:
53
+ ```bash
54
+ cd django-json-widget/
55
+ python -m venv .venv
56
+ source .venv/bin/activate
57
+ pip install -r requirements_test.txt
58
+ ```
59
+
60
+ 4. Create a branch for local development from the dev branch:
61
+ ```bash
62
+ git checkout dev
63
+ git checkout -b name-of-your-branch
64
+ ```
65
+
66
+ Now you can make your changes locally.
67
+
68
+ 5. Commit your changes and push your branch:
69
+ ```bash
70
+ git add .
71
+ git commit -m "Your detailed description of your changes."
72
+ git push origin name-of-your-branch
73
+ ```
74
+
75
+ 6. Submit a pull request through the GitHub website.
76
+
77
+ ## Pull Request Guidelines
78
+
79
+ Before you submit a pull request, check that it meets these guidelines:
80
+
81
+ 1. **The pull request must be submitted against the `dev` branch.**
82
+ 2. Please explain what you have done in the pull request.
83
+ 3. Make sure you have had passed pre-commit hooks.
@@ -1,14 +1,14 @@
1
-
2
- MIT License
3
-
4
- Copyright (c) 2017, José Manuel Rivas
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
-
8
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
-
10
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
-
12
-
13
-
14
-
1
+
2
+ MIT License
3
+
4
+ Copyright (c) 2017, José Manuel Rivas
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
+
12
+
13
+
14
+
@@ -1,6 +1,6 @@
1
- include AUTHORS.rst
2
- include CONTRIBUTING.rst
3
- include CHANGELOG.rst
4
- include LICENSE
5
- include README.rst
6
- recursive-include django_json_widget *.html *.png *.gif *js *.css *jpg *jpeg *svg *py
1
+ include AUTHORS.rst
2
+ include CONTRIBUTING.rst
3
+ include CHANGELOG.md
4
+ include LICENSE
5
+ include README.rst
6
+ recursive-include django_json_widget *.html *.png *.gif *js *.css *jpg *jpeg *svg *py
@@ -0,0 +1,66 @@
1
+ .PHONY: clean-pyc clean-build docs help
2
+ .DEFAULT_GOAL := help
3
+ define BROWSER_PYSCRIPT
4
+ import os, webbrowser, sys
5
+ try:
6
+ from urllib import pathname2url
7
+ except:
8
+ from urllib.request import pathname2url
9
+
10
+ webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
11
+ endef
12
+ export BROWSER_PYSCRIPT
13
+ BROWSER := python -c "$$BROWSER_PYSCRIPT"
14
+
15
+ help:
16
+ @perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-25s\033[0m %s\n", $$1, $$2}'
17
+
18
+ clean: clean-build clean-pyc
19
+
20
+ clean-build: ## remove build artifacts
21
+ rm -fr build/
22
+ rm -fr dist/
23
+ rm -fr *.egg-info
24
+
25
+ clean-pyc: ## remove Python file artifacts
26
+ find . -name '*.pyc' -exec rm -f {} +
27
+ find . -name '*.pyo' -exec rm -f {} +
28
+ find . -name '*~' -exec rm -f {} +
29
+
30
+ lint: ## check style with flake8
31
+ flake8 django_json_widget tests
32
+
33
+ test: ## run tests quickly with the default Python
34
+ python runtests.py tests
35
+
36
+ test-all: ## run tests on every Python version with tox
37
+ tox
38
+
39
+ coverage: ## check code coverage quickly with the default Python
40
+ coverage run --source django_json_widget runtests.py tests
41
+ coverage report -m
42
+ coverage html
43
+ open htmlcov/index.html
44
+
45
+ docs: ## generate Sphinx HTML documentation, including API docs
46
+ rm -f docs/django-json-widget.rst
47
+ rm -f docs/modules.rst
48
+ sphinx-apidoc -o docs/ django_json_widget
49
+ $(MAKE) -C docs clean
50
+ $(MAKE) -C docs html
51
+ $(BROWSER) docs/_build/html/index.html
52
+
53
+ release: clean ## package and upload a release
54
+ python -m build
55
+ twine upload dist/*
56
+
57
+ test-release: clean ## package and upload a release to test PyPI
58
+ python -m build
59
+ twine upload --repository testpypi dist/*
60
+
61
+ sdist: clean ## package
62
+ python -m build --sdist
63
+ ls -l dist
64
+
65
+ twine-release: ## upload release to pypi
66
+ twine upload dist/*