sql-assignment-generator 0.0.14__tar.gz → 0.0.16__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 (151) hide show
  1. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/PKG-INFO +1 -1
  2. sql_assignment_generator-0.0.16/docs/autoapi/index.rst +11 -0
  3. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/assignments/index.rst +173 -0
  4. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/index.rst +104 -0
  5. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/query/index.rst +43 -0
  6. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/schema/index.rst +66 -0
  7. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/index.rst +373 -0
  8. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/llm/index.rst +36 -0
  9. sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/llm/models/index.rst +48 -0
  10. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/pyproject.toml +1 -1
  11. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/requirements.txt +1 -1
  12. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/__init__.py +70 -21
  13. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/dataset/dataset.py +198 -144
  14. sql_assignment_generator-0.0.16/src/sql_assignment_generator/assignments/dataset/strings.py +105 -0
  15. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/exercise/exercise.py +116 -101
  16. sql_assignment_generator-0.0.16/src/sql_assignment_generator/assignments/exercise/strings.py +132 -0
  17. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/base.py +2 -3
  18. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/aggregation.py +126 -0
  19. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/query/base.py +1 -1
  20. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_from.py +190 -0
  21. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_group_by.py +79 -0
  22. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_having.py +87 -0
  23. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_order_by.py +224 -0
  24. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_select.py +127 -0
  25. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_where.py +1020 -0
  26. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/rows.py +89 -0
  27. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/set_operations.py +150 -0
  28. sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/subquery.py +153 -0
  29. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/base.py +1 -0
  30. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/tables.py +72 -22
  31. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/values.py +18 -4
  32. sql_assignment_generator-0.0.16/src/sql_assignment_generator/domains.py +21 -0
  33. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/__init__.py +64 -64
  34. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/base.py +8 -4
  35. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_002.py +6 -2
  36. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/exceptions.py +9 -1
  37. sql_assignment_generator-0.0.16/src/sql_assignment_generator/translatable_text.py +53 -0
  38. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/test.py +60 -56
  39. sql_assignment_generator-0.0.14/src/sql_assignment_generator/assignments/dataset/strings.py +0 -64
  40. sql_assignment_generator-0.0.14/src/sql_assignment_generator/assignments/exercise/strings.py +0 -72
  41. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/costraintType.py +0 -19
  42. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/aggregation.py +0 -83
  43. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_from.py +0 -122
  44. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_group_by.py +0 -57
  45. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_having.py +0 -65
  46. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_order_by.py +0 -160
  47. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_select.py +0 -91
  48. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_where.py +0 -798
  49. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/rows.py +0 -65
  50. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/set_operations.py +0 -109
  51. sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/subquery.py +0 -98
  52. sql_assignment_generator-0.0.14/src/sql_assignment_generator/domains.py +0 -20
  53. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.env.template +0 -0
  54. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.gitattributes +0 -0
  55. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.gitignore +0 -0
  56. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.readthedocs.yaml +0 -0
  57. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/LICENSE +0 -0
  58. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/Makefile +0 -0
  59. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/README.md +0 -0
  60. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/Makefile +0 -0
  61. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/conf.py +0 -0
  62. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/index.rst +0 -0
  63. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/make.bat +0 -0
  64. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/requirements.txt +0 -0
  65. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/__init__.py +0 -0
  66. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/assignment.py +0 -0
  67. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/dataset/__init__.py +0 -0
  68. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/exercise/__init__.py +0 -0
  69. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/__init__.py +0 -0
  70. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/query/__init__.py +0 -0
  71. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/__init__.py +0 -0
  72. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/difficulty_level.py +0 -0
  73. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_004.py +0 -0
  74. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_007.py +0 -0
  75. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_009.py +0 -0
  76. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_010.py +0 -0
  77. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_011.py +0 -0
  78. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_012.py +0 -0
  79. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_015.py +0 -0
  80. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_019.py +0 -0
  81. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_021.py +0 -0
  82. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_026.py +0 -0
  83. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_035.py +0 -0
  84. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_039.py +0 -0
  85. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_040.py +0 -0
  86. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_041.py +0 -0
  87. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_042.py +0 -0
  88. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_043.py +0 -0
  89. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_044.py +0 -0
  90. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_045.py +0 -0
  91. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_046.py +0 -0
  92. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_049.py +0 -0
  93. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_052.py +0 -0
  94. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_053.py +0 -0
  95. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_054.py +0 -0
  96. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_055.py +0 -0
  97. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_057.py +0 -0
  98. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_058.py +0 -0
  99. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_059.py +0 -0
  100. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_060.py +0 -0
  101. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_062.py +0 -0
  102. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_063.py +0 -0
  103. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_064.py +0 -0
  104. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_066.py +0 -0
  105. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_067.py +0 -0
  106. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_068.py +0 -0
  107. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_069.py +0 -0
  108. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_070.py +0 -0
  109. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_071.py +0 -0
  110. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_072.py +0 -0
  111. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_073.py +0 -0
  112. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_074.py +0 -0
  113. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_075.py +0 -0
  114. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_076.py +0 -0
  115. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_077.py +0 -0
  116. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_078.py +0 -0
  117. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_079.py +0 -0
  118. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_080.py +0 -0
  119. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_081.py +0 -0
  120. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_083.py +0 -0
  121. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_084.py +0 -0
  122. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_086.py +0 -0
  123. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_088.py +0 -0
  124. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_089.py +0 -0
  125. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_091.py +0 -0
  126. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_093.py +0 -0
  127. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_095.py +0 -0
  128. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_096.py +0 -0
  129. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_097.py +0 -0
  130. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_098.py +0 -0
  131. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_099.py +0 -0
  132. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_102.py +0 -0
  133. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_104.py +0 -0
  134. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_105.py +0 -0
  135. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/__init__.py +0 -0
  136. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/chatgpt.py +0 -0
  137. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/message.py +0 -0
  138. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/models.py +0 -0
  139. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_aggregation.py +0 -0
  140. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_from.py +0 -0
  141. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_group_by.py +0 -0
  142. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_having.py +0 -0
  143. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_order_by.py +0 -0
  144. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_select.py +0 -0
  145. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_where.py +0 -0
  146. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_rows.py +0 -0
  147. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_set_operation.py +0 -0
  148. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_subquery.py +0 -0
  149. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/schema/__init__.py +0 -0
  150. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/schema/test_tables.py +0 -0
  151. {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/schema/test_values.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sql_assignment_generator
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Summary: This project generates SQL assignments based on common mistakes made by learners.
5
5
  Project-URL: Repository, https://github.com/DavidePonzini/sql_assignment_generator
6
6
  Project-URL: Documentation, https://sql-assignment-generator.readthedocs.io/en/latest/index.html
@@ -0,0 +1,11 @@
1
+ API Reference
2
+ =============
3
+
4
+ This page contains auto-generated API reference documentation [#f1]_.
5
+
6
+ .. toctree::
7
+ :titlesonly:
8
+
9
+ /autoapi/sql_assignment_generator/index
10
+
11
+ .. [#f1] Created with `sphinx-autoapi <https://github.com/readthedocs/sphinx-autoapi>`_
@@ -0,0 +1,173 @@
1
+ sql_assignment_generator.assignments
2
+ ====================================
3
+
4
+ .. py:module:: sql_assignment_generator.assignments
5
+
6
+ .. autoapi-nested-parse::
7
+
8
+ Data structures for SQL assignments.
9
+
10
+
11
+
12
+ Classes
13
+ -------
14
+
15
+ .. autoapisummary::
16
+
17
+ sql_assignment_generator.assignments.Assignment
18
+ sql_assignment_generator.assignments.Exercise
19
+ sql_assignment_generator.assignments.Dataset
20
+
21
+
22
+ Package Contents
23
+ ----------------
24
+
25
+ .. py:class:: Assignment
26
+
27
+ A full SQL assignment consisting of a dataset and exercises.
28
+
29
+
30
+ .. py:attribute:: dataset
31
+ :type: sql_assignment_generator.assignments.dataset.Dataset
32
+
33
+ The dataset associated with the assignment.
34
+
35
+
36
+
37
+ .. py:attribute:: exercises
38
+ :type: list[sql_assignment_generator.assignments.exercise.Exercise]
39
+
40
+ The exercises included in the assignment.
41
+
42
+
43
+
44
+ .. py:class:: Exercise
45
+
46
+ A SQL exercise consisting of a title, request, and solutions.
47
+
48
+
49
+ .. py:attribute:: title
50
+ :type: str
51
+
52
+ The title of the exercise.
53
+
54
+
55
+
56
+ .. py:attribute:: request
57
+ :type: str
58
+
59
+ The natural language request or question for the exercise.
60
+
61
+
62
+
63
+ .. py:attribute:: solutions
64
+ :type: list[sqlscope.Query]
65
+
66
+ The list of SQL query solutions for the exercise.
67
+
68
+
69
+
70
+ .. py:attribute:: difficulty
71
+ :type: sql_assignment_generator.difficulty_level.DifficultyLevel
72
+
73
+ The difficulty level of the exercise.
74
+
75
+
76
+
77
+ .. py:attribute:: error
78
+ :type: sql_error_taxonomy.SqlErrors
79
+
80
+ The SQL error type associated with the exercise.
81
+
82
+
83
+
84
+ .. py:method:: generate(error, difficulty, constraints, *, extra_details, dataset, title, sql_dialect, language, max_attempts = 3)
85
+ :staticmethod:
86
+
87
+
88
+ Generate a SQL exercise based on the specified parameters.
89
+
90
+
91
+
92
+ .. py:class:: Dataset
93
+
94
+ A SQL dataset related to a specific domain, including schema creation and data insertion commands.
95
+
96
+
97
+ .. py:attribute:: create_commands
98
+ :type: list[str]
99
+
100
+ SQL commands to create the database schema.
101
+
102
+
103
+
104
+ .. py:attribute:: insert_commands
105
+ :type: list[str]
106
+
107
+ SQL commands to insert data into the database.
108
+
109
+
110
+
111
+ .. py:attribute:: domain
112
+ :type: str
113
+
114
+ The domain associated with the dataset.
115
+
116
+
117
+
118
+ .. py:attribute:: _catalog_cache
119
+ :type: sqlscope.Catalog | None
120
+ :value: None
121
+
122
+
123
+ Cached SQLScope Catalog for the dataset.
124
+
125
+
126
+
127
+ .. py:attribute:: _catalog_cache_commands_hash
128
+ :type: int | None
129
+ :value: None
130
+
131
+
132
+ Hash of the CREATE TABLE commands used to build the cached Catalog.
133
+
134
+
135
+
136
+ .. py:property:: catalog
137
+ :type: sqlscope.Catalog
138
+
139
+
140
+ Build and return a SQLScope Catalog from the dataset's SQL commands.
141
+ The result is cached for handling multiple accesses efficiently.
142
+ Cache is properly invalidated if the CREATE TABLE commands change.
143
+
144
+
145
+
146
+ .. py:method:: to_sql_no_context()
147
+
148
+ Generate the SQL commands to create and populate the dataset without schema context.
149
+
150
+
151
+
152
+ .. py:method:: to_sql(schema)
153
+
154
+ Generate the SQL commands to create and populate the dataset within the specified schema.
155
+
156
+
157
+
158
+ .. py:method:: from_sql(sql_str, sql_dialect)
159
+ :staticmethod:
160
+
161
+
162
+ Create a Dataset instance from a raw SQL string containing CREATE TABLE and INSERT INTO commands.
163
+
164
+
165
+
166
+ .. py:method:: generate(domain, sql_dialect, constraints, extra_details = [], *, language, max_attempts = 5)
167
+ :staticmethod:
168
+
169
+
170
+ Generate a SQL dataset based on the specified parameters.
171
+
172
+
173
+
@@ -0,0 +1,104 @@
1
+ sql_assignment_generator.constraints
2
+ ====================================
3
+
4
+ .. py:module:: sql_assignment_generator.constraints
5
+
6
+ .. autoapi-nested-parse::
7
+
8
+ Constraints for assignment generation.
9
+
10
+
11
+
12
+ Submodules
13
+ ----------
14
+
15
+ .. toctree::
16
+ :maxdepth: 1
17
+
18
+ /autoapi/sql_assignment_generator/constraints/query/index
19
+ /autoapi/sql_assignment_generator/constraints/schema/index
20
+
21
+
22
+ Classes
23
+ -------
24
+
25
+ .. autoapisummary::
26
+
27
+ sql_assignment_generator.constraints.BaseConstraint
28
+ sql_assignment_generator.constraints.QueryConstraint
29
+ sql_assignment_generator.constraints.SchemaConstraint
30
+
31
+
32
+ Package Contents
33
+ ----------------
34
+
35
+ .. py:class:: BaseConstraint
36
+
37
+ Bases: :py:obj:`abc.ABC`
38
+
39
+
40
+ Abstract base class for SQL query constraints.
41
+
42
+
43
+ .. py:property:: description
44
+ :type: sql_assignment_generator.translatable_text.TranslatableText
45
+
46
+ :abstractmethod:
47
+
48
+
49
+ Textual description of the constraint, to be used in prompts.
50
+
51
+
52
+
53
+ .. py:class:: QueryConstraint
54
+
55
+ Bases: :py:obj:`sql_assignment_generator.constraints.base.BaseConstraint`
56
+
57
+
58
+ Base class for query-related constraints.
59
+
60
+
61
+ .. py:method:: validate(query)
62
+ :abstractmethod:
63
+
64
+
65
+ Validate if the given SQL query satisfies the constraint.
66
+
67
+ Args:
68
+ query (Query): The SQL query to validate.
69
+ Raises:
70
+ ConstraintValidationError: If the query does not satisfy the constraint.
71
+
72
+
73
+
74
+ .. py:class:: SchemaConstraint
75
+
76
+ Bases: :py:obj:`sql_assignment_generator.constraints.base.BaseConstraint`
77
+
78
+
79
+ Base class for schema-related constraints.
80
+
81
+
82
+ .. py:method:: validate(catalog, tables_sql, values_sql)
83
+ :abstractmethod:
84
+
85
+
86
+ Validate if the given table creation and insertion statements satisfy the constraint.
87
+
88
+ Args:
89
+ catalog (Catalog): The catalog representing the database schema.
90
+ tables_sql (list[exp.Create]): List of CREATE TABLE expressions.
91
+ values_sql (list[exp.Insert]): List of INSERT INTO expressions.
92
+ Raises:
93
+ ConstraintValidationError: If the schema does not satisfy the constraint.
94
+
95
+
96
+
97
+ .. py:method:: merge(other)
98
+ :abstractmethod:
99
+
100
+
101
+ Merges this constraint with another constraint of the same type.
102
+
103
+
104
+
@@ -0,0 +1,43 @@
1
+ sql_assignment_generator.constraints.query
2
+ ==========================================
3
+
4
+ .. py:module:: sql_assignment_generator.constraints.query
5
+
6
+ .. autoapi-nested-parse::
7
+
8
+ Constraints related to SQL queries.
9
+
10
+
11
+
12
+ Classes
13
+ -------
14
+
15
+ .. autoapisummary::
16
+
17
+ sql_assignment_generator.constraints.query.QueryConstraint
18
+
19
+
20
+ Package Contents
21
+ ----------------
22
+
23
+ .. py:class:: QueryConstraint
24
+
25
+ Bases: :py:obj:`sql_assignment_generator.constraints.base.BaseConstraint`
26
+
27
+
28
+ Base class for query-related constraints.
29
+
30
+
31
+ .. py:method:: validate(query)
32
+ :abstractmethod:
33
+
34
+
35
+ Validate if the given SQL query satisfies the constraint.
36
+
37
+ Args:
38
+ query (Query): The SQL query to validate.
39
+ Raises:
40
+ ConstraintValidationError: If the query does not satisfy the constraint.
41
+
42
+
43
+
@@ -0,0 +1,66 @@
1
+ sql_assignment_generator.constraints.schema
2
+ ===========================================
3
+
4
+ .. py:module:: sql_assignment_generator.constraints.schema
5
+
6
+ .. autoapi-nested-parse::
7
+
8
+ Constraints related to database schema.
9
+
10
+
11
+
12
+ Classes
13
+ -------
14
+
15
+ .. autoapisummary::
16
+
17
+ sql_assignment_generator.constraints.schema.SchemaConstraint
18
+
19
+
20
+ Functions
21
+ ---------
22
+
23
+ .. autoapisummary::
24
+
25
+ sql_assignment_generator.constraints.schema.merge_constraints
26
+
27
+
28
+ Package Contents
29
+ ----------------
30
+
31
+ .. py:class:: SchemaConstraint
32
+
33
+ Bases: :py:obj:`sql_assignment_generator.constraints.base.BaseConstraint`
34
+
35
+
36
+ Base class for schema-related constraints.
37
+
38
+
39
+ .. py:method:: validate(catalog, tables_sql, values_sql)
40
+ :abstractmethod:
41
+
42
+
43
+ Validate if the given table creation and insertion statements satisfy the constraint.
44
+
45
+ Args:
46
+ catalog (Catalog): The catalog representing the database schema.
47
+ tables_sql (list[exp.Create]): List of CREATE TABLE expressions.
48
+ values_sql (list[exp.Insert]): List of INSERT INTO expressions.
49
+ Raises:
50
+ ConstraintValidationError: If the schema does not satisfy the constraint.
51
+
52
+
53
+
54
+ .. py:method:: merge(other)
55
+ :abstractmethod:
56
+
57
+
58
+ Merges this constraint with another constraint of the same type.
59
+
60
+
61
+
62
+ .. py:function:: merge_constraints(constraints)
63
+
64
+ Merge similar schema constraints into a single set of constraints.
65
+
66
+