excel2moodle 0.6.1__py3-none-any.whl → 0.6.3__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel2moodle
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: A package for converting questions from a spreadsheet, to valid moodle-xml
5
5
  Author: Jakob Bosse
6
6
  License-Expression: GPL-3.0-or-later
@@ -17,16 +17,20 @@ Requires-Dist: lxml>=5.4.0
17
17
  Requires-Dist: asteval>=1.0.6
18
18
  Requires-Dist: python-calamine>=0.3.2
19
19
  Requires-Dist: pyside6-essentials>=6.8.0
20
+ Requires-Dist: pyyaml>=6.0.2
20
21
  Dynamic: license-file
21
22
 
22
23
  # excel 2 Moodle
23
- ![Logo](excel2moodleLogo.png "Logo excel2moodle"){width=35%}
24
+ ![Logo](https://gitlab.com/jbosse3/-/blob/master/excel2moodleLogo.png "Logo excel2moodle"){width=35%}
24
25
 
25
- This Python program helps to create Moodle questions in less time.
26
- The idea is to write the questions data into a spreadsheet file, from which the program generates the moodle compliant xml Files.
27
- All questions or a selection of questions can be exported into one xml file to be imported into moodle.
26
+ *excel2moodle* helps to create Moodle questions in less time.
27
+ The idea is to write the questions data into a spreadsheet file, from which the *excel2moodle* generates moodle compliant xml Files.
28
+ All questions or a selection of questions can then be imported into moodle.
28
29
 
29
30
  ## Concept
31
+ At the heart the *excel2moodle* is a simple key-value-pair "syntax", where the key is set once in the first spreadsheet column.
32
+ Each key can be provided with a value for each question in its column
33
+ To enhance reusability, key values which are correct for more than one question can be set per category or for all questions.
30
34
  The concept is, to store the different questions into categories of similar types and difficulties of questions, for each of which, a separated sheet in the Spreadsheet document should be created.
31
35
 
32
36
  A `settings` sheet contains global settings to be used for all questions and categories.
@@ -41,33 +45,38 @@ If you already have python and uv installed, it is as easy as running `uv tool i
41
45
 
42
46
  ### [ Documentation ](https://jbosse3.gitlab.io/excel2moodle/index.html)
43
47
  Once excel2moodle is installed you can checkout the [example question sheet](https://gitlab.com/jbosse3/excel2moodle/-/tree/master/example?ref_type=heads)
44
- in the repository.
48
+ in the repository. You need to download all Files in the `example` directory and save them together.
45
49
 
46
- Some steps are already documented as [ tutorials ](https://jbosse3.gitlab.io/excel2moodle/howto.html)
50
+ Most steps are already documented as [ tutorials ](https://jbosse3.gitlab.io/excel2moodle/howto.html)
47
51
  you can follow along.
48
52
 
49
53
  And please have a look into the [**user Reference**](https://jbosse3.gitlab.io/excel2moodle/userReference.html)
50
54
  of the documentation.
51
- That part explains each part of defining a question.
55
+ That part explains in more detail each part of defining a question.
52
56
 
53
57
 
54
- ## Functionality
55
- * Equation Verification:
56
- + this tool helps you to validate the correct equation for the parametrized Questions.
57
- * Question Preview:
58
+ ## Features
59
+ - Fully parametrized numeric questions:
60
+ * Formulas for the calculated results can be coded into extensive python modules, which can be loaded.
61
+ - Question Preview:
58
62
  + This helps you when selecting the correct questions for the export.
59
- * Export Options:
63
+ - Equation Verification:
64
+ + this tool helps you to validate the correct equation for the parametrized Questions.
65
+ - Variable Generation:
66
+ + You can generate variables for the parametric Question to easily create hundreds of different variants of the same question.
67
+ - Export Options:
60
68
  + you can export the questions preserving the categories in moodle
61
69
 
62
70
  ### Question Types
63
- * Generate multiple Choice Questions:
64
- + The answers can be pictures or normal text
65
- * Generate Numeric Questions
66
- * Generate parametrized numeric Questions
67
- * Generate parametrized cloze Questions
71
+ - Generate multiple Choice Questions:
72
+ * The answers can be pictures or normal text
73
+ - Generate Numeric Questions
74
+ - Generate parametrized numeric Questions:
75
+ * With the parametrization *excel2moodle* calculats the numeric answer from a given formula based on a set of variables.
76
+ - Generate parametrized cloze Questions
68
77
 
69
78
 
70
- ![MainWindow](mainWindow.png "Logo excel2moodle"){width=80%}
79
+ ![MainWindow](https://gitlab.com/jbosse3/-/blob/master/mainWindow.png "Logo excel2moodle"){width=80%}
71
80
 
72
81
  ## Licensing and authorship
73
82
  excel2moodle is lincensed under the latest [GNU GPL license](https://gitlab.com/jbosse3/excel2moodle/-/blob/master/LICENSE)
@@ -81,6 +90,44 @@ If You want to support my work as well, you can by me a [coffee](https://ko-fi.c
81
90
 
82
91
  # Changelogs
83
92
 
93
+ ## 0.6.3 (2025-08-03)
94
+ Lots of small improvements made
95
+
96
+ ### improvement (3 changes)
97
+
98
+ - [small logging improvements and error handling](https://gitlab.com/jbosse3/excel2moodle/-/commit/149f8e923a06d9d7077fe90c7005a3e1d5d2d42f)
99
+ - [Make variable generator rules editable](https://gitlab.com/jbosse3/excel2moodle/-/commit/80ea32d97bdec16b77100bc870a0e0272a739dd4)
100
+ - [Variable generator only generates unique sets.](https://gitlab.com/jbosse3/excel2moodle/-/commit/d347c91bbac66de1da157fee4f76faf8d4636557)
101
+
102
+ ### bugfix (3 changes)
103
+
104
+ - [mixed parametric and non parametric Bullets are working now](https://gitlab.com/jbosse3/excel2moodle/-/commit/f094b13dffd4b6b7ac1a03fc7e34eec6e8d1bfa7)
105
+ - [Loglevel setting is respected in spreadsheet file](https://gitlab.com/jbosse3/excel2moodle/-/commit/d6ef89beeec94f24782a00b7564883074badf72d)
106
+ - [Treewidget variants count updated after variable generation](https://gitlab.com/jbosse3/excel2moodle/-/commit/c48a0d093a0cce85fd3e9c3c091eef936739c02b)
107
+
108
+ ### feature (2 changes)
109
+
110
+ - [Category ID taken from any number in its name](https://gitlab.com/jbosse3/excel2moodle/-/commit/ac7e19af5f25ac2e576b63c478e7b07153e782ef)
111
+ - [Implemented Update Check on Startup](https://gitlab.com/jbosse3/excel2moodle/-/commit/a143edd47f566c5e731c05612f4ac21dc7728eb7)
112
+
113
+ ## 0.6.2 (2025-08-02)
114
+ Adding export options and fixing cloze points bug
115
+
116
+ ### feature (4 changes)
117
+
118
+ - [Added export options to include all Question Variants and generate report](https://gitlab.com/jbosse3/excel2moodle/-/commit/6433615de23174451748b69669a9dce748dd5b4d)
119
+ - [Implemented export dialog generator method](https://gitlab.com/jbosse3/excel2moodle/-/commit/a8eda982309bf9a6dae7ef2b261a59654f2c8910)
120
+ - [Answer Feedback strings settable in sheet](https://gitlab.com/jbosse3/excel2moodle/-/commit/ad90da49ac60e429ad3243f54846b08f0caf5bc7)
121
+ - [Inverted result and feedback for NFM & Cloze questions](https://gitlab.com/jbosse3/excel2moodle/-/commit/57d77c83a661398b0082f84d25e5447000df9096)
122
+
123
+ ### improvement (1 change)
124
+
125
+ - [Missing `settings` sheet raises an error](https://gitlab.com/jbosse3/excel2moodle/-/commit/e1cc42c1d31981bf74582b23c24c6ac378e9256d)
126
+
127
+ ### bugfix (1 change)
128
+
129
+ - [resolve cloze moodle import error due to float points](https://gitlab.com/jbosse3/excel2moodle/-/commit/f13b7b9df39df55d65b6063a9deb1fc1c72f5ebb)
130
+
84
131
  ## 0.6.1 (2025-07-12)
85
132
  Fixing import error caused by dumping pyside meta package
86
133
 
@@ -0,0 +1,41 @@
1
+ excel2moodle/__init__.py,sha256=W05Gsm3IOcxJnp4C-TPvxRiO3NR2L9g8PSIHDoRJua0,1893
2
+ excel2moodle/__main__.py,sha256=B55ZK25z-HzIIox2xLYkJXMUwYzITPKGCi9fELMFGaM,1877
3
+ excel2moodle/logger.py,sha256=fq8ZOkCI1wj38v8IyrZsUlpt16onlSH_phqbVvYUwBQ,3725
4
+ excel2moodle/core/__init__.py,sha256=87BwhtZse72Tk17Ib-V9X2k9wkhmtVnEj2ZmJ9JBAnI,63
5
+ excel2moodle/core/bullets.py,sha256=KwlxGOWbWexMkfXkY4Zg-gmxpzQCNZ09kSo8kPffGQU,3501
6
+ excel2moodle/core/category.py,sha256=fOMj2ynoAy6tXwmFhJ9uST9BQHiRJeU2BrkK1r57ek4,2897
7
+ excel2moodle/core/dataStructure.py,sha256=BzBKg_fCT1FHuJum2aGLK_4RqmA2qluODvg1GwiEA7E,19797
8
+ excel2moodle/core/etHelpers.py,sha256=LzimWGuX6RH2TbfEnWUoAXT2Tr0z6P7bCANjxuANSX0,1667
9
+ excel2moodle/core/exceptions.py,sha256=9xfsaIcm6Yej6QAZga0d3DK3jLQejdfgJARuAaG-uZY,739
10
+ excel2moodle/core/globals.py,sha256=gvkl8Obq4XBW40B1L68Ewg06sonK27l-KIiodwFv8ic,2393
11
+ excel2moodle/core/parser.py,sha256=wth3SPjlbWnS1zUVPap6PsJeVGCRatLuJZe6U7KgXBg,7540
12
+ excel2moodle/core/question.py,sha256=eylkSKYQYo0uRxzfTZqoQNFAXq94mzzxbRWyknstupg,14187
13
+ excel2moodle/core/settings.py,sha256=zqtA1fcQeO3bELLvS8bzP9TSZT7RksFxMaqnYYBXQCQ,6432
14
+ excel2moodle/core/stringHelpers.py,sha256=OzFZ6Eu3PeBLKb61K-aeVfUZmVuBerr9KfyOsuNRd7Y,2403
15
+ excel2moodle/core/validator.py,sha256=ssgkyUwrR-0AGPX1cUqvRwZsGja13J7HQ2W72ltqN-Y,4683
16
+ excel2moodle/extra/__init__.py,sha256=PM-id60HD21A3IcGC_fCYFihS8osBGZMIJCcN-ZRsIM,293
17
+ excel2moodle/extra/equationVerification.py,sha256=oQpk-4cM0x_vKGEexC0Z1UyVoGG7w3V3RydtkM0MV_Y,3869
18
+ excel2moodle/extra/updateQuery.py,sha256=kD_L23Qea9Cx4zUwfQVNJXXFbybd9cwE8sSbZrz7VF8,1554
19
+ excel2moodle/extra/variableGenerator.py,sha256=qYY9i872yJAE4_nrxy_M5jCdMtGgVKB7yz1Th31bySY,11486
20
+ excel2moodle/question_types/__init__.py,sha256=81mss0g7SVtnlb-WkydE28G_dEAAf6oT1uB8lpK2-II,1041
21
+ excel2moodle/question_types/cloze.py,sha256=xxhsqSNYqt878bjZ8MfGr-Oe7jLy9FdSTIUZ_GPE9PY,14657
22
+ excel2moodle/question_types/mc.py,sha256=nx6PsbfLLH_4H5eCSjGcfgEC6EEVgseI7xy15jg5JmA,5482
23
+ excel2moodle/question_types/nf.py,sha256=HAolGy13-FbLVJskAUXCFy76NJu91IG9wtq6OI05Igw,1374
24
+ excel2moodle/question_types/nfm.py,sha256=D5-aE4C7TAuwHFidXR15DLWNZ4JT-HVbPXI0CzGWOS0,3013
25
+ excel2moodle/ui/UI_equationChecker.py,sha256=evQDlqCHeooJcAnYjhFCyjlPhfknr7ULGKQwMmqQeJ4,8947
26
+ excel2moodle/ui/UI_exportSettingsDialog.py,sha256=I0Vqw2TCWoUhDKxTgLoGaAo4_L77vfN8G7_zi7b_5lY,8254
27
+ excel2moodle/ui/UI_mainWindow.py,sha256=9w8bRgOrVEX7BRGQvMuVhPCiSOsXYkMb4rxLDeRErII,21544
28
+ excel2moodle/ui/UI_updateDlg.py,sha256=uabFUsK0O6cRSzNcM84mPntuwdXZCNkqsRDJxAOxG4Q,5144
29
+ excel2moodle/ui/UI_variableGenerator.py,sha256=DjpZnBELSqyOjJdwjXNP2V71rCPm3tr6_XkNT9F3e34,11205
30
+ excel2moodle/ui/UI_variantDialog.py,sha256=snVaF3_YAc7NWjMRg7NzbjL_PzNbOpt4eiqElkE46io,5414
31
+ excel2moodle/ui/__init__.py,sha256=4EdGtpzwH3rgw4xW9E5x9kdPQYwKbo9rehHRZTNxCrQ,44
32
+ excel2moodle/ui/appUi.py,sha256=y5SWTNo45tIZ-HekdZkR7fPOD0QSP66uB_wlrk-b4YM,15046
33
+ excel2moodle/ui/dialogs.py,sha256=du6v17lh6LhgDDK0QltPzD-z8wUn3aD4QzaAQBmiTBQ,7314
34
+ excel2moodle/ui/equationChecker.py,sha256=RII9DlZAlHqe5udBWzeUaozhtyi3ZkCZs8h3-oO6pEw,2700
35
+ excel2moodle/ui/treewidget.py,sha256=3hZRLlrhp4FMXFyNY0LGDy7k1RSuKH87QyqB1N4qOqg,2335
36
+ excel2moodle-0.6.3.dist-info/licenses/LICENSE,sha256=ywQqe6Sitymkf2lV2NRcx_aGsaC-KbSl_EfEsRXmNRw,35135
37
+ excel2moodle-0.6.3.dist-info/METADATA,sha256=gspbMXBm2lHiIkV-_-8XL45Q7ItMAEZV-7YFaDGJhZc,11891
38
+ excel2moodle-0.6.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
39
+ excel2moodle-0.6.3.dist-info/entry_points.txt,sha256=myfMLDThuGgWHMJDPPfILiZqo_7D3fhmDdJGqWOAjPw,60
40
+ excel2moodle-0.6.3.dist-info/top_level.txt,sha256=5V1xRUQ9o7UmOCmNoWCZPAuy5nXp3Qbzyqch8fUGT_c,13
41
+ excel2moodle-0.6.3.dist-info/RECORD,,
@@ -1,39 +0,0 @@
1
- excel2moodle/__init__.py,sha256=mnb-RWgmWIPSBk4S65a_jP6rxntAkTeYxN0ObUJalbQ,1801
2
- excel2moodle/__main__.py,sha256=DgddHjnxFPXQp4CFvqGNjgUZRgaHp15U57Va9UdW_ms,1184
3
- excel2moodle/logger.py,sha256=fq8ZOkCI1wj38v8IyrZsUlpt16onlSH_phqbVvYUwBQ,3725
4
- excel2moodle/core/__init__.py,sha256=87BwhtZse72Tk17Ib-V9X2k9wkhmtVnEj2ZmJ9JBAnI,63
5
- excel2moodle/core/bullets.py,sha256=F9g0dZfkMjoYQ5jneT47GwM1-RAyhPF8y203W5mOYpU,3505
6
- excel2moodle/core/category.py,sha256=wLzpbweQbzaItdbp2NCPI_Zmk94fy1EDOwEEN8zPvkU,2123
7
- excel2moodle/core/dataStructure.py,sha256=eMQAuTTKXLmE72I6MP1255BP15N-35Qb4bESyIy4K7w,16011
8
- excel2moodle/core/etHelpers.py,sha256=G37qplp8tPJxqHNCBrf2Wo0jJZ0aDbxE9slQavqYqd8,2293
9
- excel2moodle/core/exceptions.py,sha256=9xfsaIcm6Yej6QAZga0d3DK3jLQejdfgJARuAaG-uZY,739
10
- excel2moodle/core/globals.py,sha256=URrDtWUeaZvhv38ETk_MGRDZpWF0J5cTWO_Jpf0rS9E,2807
11
- excel2moodle/core/parser.py,sha256=ExTgPkRXevXDcnQlWE2oGoEp6mbpzP1GBmzY4zs-OPU,7220
12
- excel2moodle/core/question.py,sha256=pltXKN52tBpFoPKEt9cIdGzZzVKpCQcXun2g9Eu1ljE,13726
13
- excel2moodle/core/settings.py,sha256=27D-P44rYk-DMrwI1dNpxHcznpFQf1W3XZrOc8e6rX4,5855
14
- excel2moodle/core/stringHelpers.py,sha256=OzFZ6Eu3PeBLKb61K-aeVfUZmVuBerr9KfyOsuNRd7Y,2403
15
- excel2moodle/core/validator.py,sha256=ssgkyUwrR-0AGPX1cUqvRwZsGja13J7HQ2W72ltqN-Y,4683
16
- excel2moodle/extra/__init__.py,sha256=PM-id60HD21A3IcGC_fCYFihS8osBGZMIJCcN-ZRsIM,293
17
- excel2moodle/extra/equationVerification.py,sha256=GLJl1r90d8AAiNy0H2hooZrg3D6aEwNfifYKAe3aGxM,3921
18
- excel2moodle/extra/variableGenerator.py,sha256=fiXaTeFaC--1KRyMNcsjBgUlUZ8H1rGS6f_WenN60fQ,9851
19
- excel2moodle/question_types/__init__.py,sha256=81mss0g7SVtnlb-WkydE28G_dEAAf6oT1uB8lpK2-II,1041
20
- excel2moodle/question_types/cloze.py,sha256=SvUS4gVKTr6z26KI17zV7pNIGIWQ2JdIVtPr-hgOOo8,13602
21
- excel2moodle/question_types/mc.py,sha256=2kn6dPjFVg97H8SlUBFbcPjzDk84vgDGCMOtSABseu0,5225
22
- excel2moodle/question_types/nf.py,sha256=bMP4IXrhnXmAI0NmjEc7DtX4xGaUbxzLicE2LjeaUho,1150
23
- excel2moodle/question_types/nfm.py,sha256=p1yP6QWtFzQpVVfpjZ7R8GrsEtUSUPklbvjC8_VgYmQ,2734
24
- excel2moodle/ui/UI_equationChecker.py,sha256=evQDlqCHeooJcAnYjhFCyjlPhfknr7ULGKQwMmqQeJ4,8947
25
- excel2moodle/ui/UI_exportSettingsDialog.py,sha256=71xxXEqtewN0ReMfJ5t4gbrX_Bf0VEuxJ_DIV7ZtH94,6045
26
- excel2moodle/ui/UI_mainWindow.py,sha256=9w8bRgOrVEX7BRGQvMuVhPCiSOsXYkMb4rxLDeRErII,21544
27
- excel2moodle/ui/UI_variableGenerator.py,sha256=DjpZnBELSqyOjJdwjXNP2V71rCPm3tr6_XkNT9F3e34,11205
28
- excel2moodle/ui/UI_variantDialog.py,sha256=snVaF3_YAc7NWjMRg7NzbjL_PzNbOpt4eiqElkE46io,5414
29
- excel2moodle/ui/__init__.py,sha256=4EdGtpzwH3rgw4xW9E5x9kdPQYwKbo9rehHRZTNxCrQ,44
30
- excel2moodle/ui/appUi.py,sha256=0jxpgGiDU82AEDrj-BFgD9XdktrY_0EB7bAVMqWzJLY,13283
31
- excel2moodle/ui/dialogs.py,sha256=8m1_hBGHt56T581PpPDsCrAd66cIy_Kxo_8NIy9kw_0,6179
32
- excel2moodle/ui/equationChecker.py,sha256=RII9DlZAlHqe5udBWzeUaozhtyi3ZkCZs8h3-oO6pEw,2700
33
- excel2moodle/ui/treewidget.py,sha256=aLR_B1iT2j1AAGk_9Dc6WtRbq1XijK8pICG8BEOW_Ak,1916
34
- excel2moodle-0.6.1.dist-info/licenses/LICENSE,sha256=ywQqe6Sitymkf2lV2NRcx_aGsaC-KbSl_EfEsRXmNRw,35135
35
- excel2moodle-0.6.1.dist-info/METADATA,sha256=963o72_grmJfUqLcnc4HQcbPXxOQ62BRtZGUCq6ku34,8656
36
- excel2moodle-0.6.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
- excel2moodle-0.6.1.dist-info/entry_points.txt,sha256=myfMLDThuGgWHMJDPPfILiZqo_7D3fhmDdJGqWOAjPw,60
38
- excel2moodle-0.6.1.dist-info/top_level.txt,sha256=5V1xRUQ9o7UmOCmNoWCZPAuy5nXp3Qbzyqch8fUGT_c,13
39
- excel2moodle-0.6.1.dist-info/RECORD,,