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.
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/PKG-INFO +1 -1
- sql_assignment_generator-0.0.16/docs/autoapi/index.rst +11 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/assignments/index.rst +173 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/index.rst +104 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/query/index.rst +43 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/schema/index.rst +66 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/index.rst +373 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/llm/index.rst +36 -0
- sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/llm/models/index.rst +48 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/pyproject.toml +1 -1
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/requirements.txt +1 -1
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/__init__.py +70 -21
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/dataset/dataset.py +198 -144
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/assignments/dataset/strings.py +105 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/exercise/exercise.py +116 -101
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/assignments/exercise/strings.py +132 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/base.py +2 -3
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/aggregation.py +126 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/query/base.py +1 -1
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_from.py +190 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_group_by.py +79 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_having.py +87 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_order_by.py +224 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_select.py +127 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/clause_where.py +1020 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/rows.py +89 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/set_operations.py +150 -0
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/constraints/query/subquery.py +153 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/base.py +1 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/tables.py +72 -22
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/values.py +18 -4
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/domains.py +21 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/__init__.py +64 -64
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/base.py +8 -4
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_002.py +6 -2
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/exceptions.py +9 -1
- sql_assignment_generator-0.0.16/src/sql_assignment_generator/translatable_text.py +53 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/test.py +60 -56
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/assignments/dataset/strings.py +0 -64
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/assignments/exercise/strings.py +0 -72
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/costraintType.py +0 -19
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/aggregation.py +0 -83
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_from.py +0 -122
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_group_by.py +0 -57
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_having.py +0 -65
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_order_by.py +0 -160
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_select.py +0 -91
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/clause_where.py +0 -798
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/rows.py +0 -65
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/set_operations.py +0 -109
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/constraints/query/subquery.py +0 -98
- sql_assignment_generator-0.0.14/src/sql_assignment_generator/domains.py +0 -20
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.env.template +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.gitattributes +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.gitignore +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/.readthedocs.yaml +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/LICENSE +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/Makefile +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/README.md +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/Makefile +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/conf.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/index.rst +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/make.bat +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/docs/requirements.txt +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/assignment.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/dataset/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/assignments/exercise/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/query/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/constraints/schema/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/difficulty_level.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_004.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_007.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_009.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_010.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_011.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_012.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_015.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_019.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_021.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_026.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_035.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_039.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_040.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_041.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_042.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_043.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_044.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_045.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_046.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_049.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_052.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_053.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_054.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_055.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_057.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_058.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_059.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_060.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_062.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_063.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_064.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_066.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_067.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_068.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_069.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_070.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_071.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_072.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_073.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_074.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_075.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_076.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_077.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_078.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_079.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_080.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_081.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_083.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_084.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_086.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_088.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_089.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_091.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_093.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_095.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_096.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_097.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_098.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_099.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_102.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_104.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/error_requirements/err_105.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/chatgpt.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/message.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/src/sql_assignment_generator/llm/models.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_aggregation.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_from.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_group_by.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_having.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_order_by.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_select.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_clause_where.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_rows.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_set_operation.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/query/test_subquery.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/schema/__init__.py +0 -0
- {sql_assignment_generator-0.0.14 → sql_assignment_generator-0.0.16}/tests/constraints/schema/test_tables.py +0 -0
- {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.
|
|
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
|
+
|
sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/query/index.rst
ADDED
|
@@ -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
|
+
|
sql_assignment_generator-0.0.16/docs/autoapi/sql_assignment_generator/constraints/schema/index.rst
ADDED
|
@@ -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
|
+
|