tiny-datalog 0.1.1__tar.gz → 0.1.2__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 (21) hide show
  1. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/PKG-INFO +31 -1
  2. tiny_datalog-0.1.1/tiny_datalog.egg-info/PKG-INFO → tiny_datalog-0.1.2/README.md +9 -12
  3. tiny_datalog-0.1.2/pyproject.toml +56 -0
  4. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/__init__.py +1 -1
  5. tiny_datalog-0.1.1/README.md → tiny_datalog-0.1.2/tiny_datalog.egg-info/PKG-INFO +42 -0
  6. tiny_datalog-0.1.1/pyproject.toml +0 -29
  7. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/LICENSE +0 -0
  8. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/setup.cfg +0 -0
  9. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/containment.py +0 -0
  10. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/datalog.py +0 -0
  11. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/incremental.py +0 -0
  12. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/magic.py +0 -0
  13. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/prolog.py +0 -0
  14. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/semantics.py +0 -0
  15. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/semiring.py +0 -0
  16. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/subsumption.py +0 -0
  17. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog/tabling.py +0 -0
  18. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog.egg-info/SOURCES.txt +0 -0
  19. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog.egg-info/dependency_links.txt +0 -0
  20. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog.egg-info/entry_points.txt +0 -0
  21. {tiny_datalog-0.1.1 → tiny_datalog-0.1.2}/tiny_datalog.egg-info/top_level.txt +0 -0
@@ -1,10 +1,31 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tiny-datalog
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: A Datalog engine small enough to read in an afternoon
5
5
  Author: Andrew Goodchild
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://github.com/andrewgoodchild/tiny-datalog
8
+ Project-URL: Source, https://github.com/andrewgoodchild/tiny-datalog
9
+ Project-URL: Issues, https://github.com/andrewgoodchild/tiny-datalog/issues
10
+ Project-URL: Changelog, https://github.com/andrewgoodchild/tiny-datalog/releases
11
+ Project-URL: Lessons, https://github.com/andrewgoodchild/tiny-datalog/tree/main/lessons
12
+ Keywords: datalog,logic programming,deductive database,semi-naive evaluation,magic sets,provenance,stable models,teaching
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Education
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Database
26
+ Classifier: Topic :: Education
27
+ Classifier: Topic :: Software Development :: Interpreters
28
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
8
29
  Requires-Python: >=3.9
9
30
  Description-Content-Type: text/markdown
10
31
  License-File: LICENSE
@@ -210,6 +231,13 @@ tabled evaluation all agree, and that incremental maintenance matches
210
231
  recomputation under random updates. 400 programs per run;
211
232
  `TINY_DATALOG_FUZZ=3000 python3 tests.py DifferentialFuzzTests` soaks.
212
233
 
234
+ Answers are also checked against engines this repository did not write.
235
+ [`conformance/`](https://github.com/andrewgoodchild/tiny-datalog/tree/main/conformance)
236
+ runs the [datalog-conformance](https://pypi.org/project/datalog-conformance/)
237
+ corpus, harvested from Soufflé, Nemo and Crepe, through all four
238
+ strategies: 89 cases pass. The 25 it skips need arithmetic or 10⁵-fact
239
+ joins, and both are omissions this course makes on purpose.
240
+
213
241
  ## Learning Datalog
214
242
 
215
243
  `lessons/` is a complete course, no prior exposure assumed, every
@@ -330,6 +358,8 @@ programs/ teaching programs, numbered by the lesson that uses
330
358
  lessons/ getting started, glossary, and lessons 0–18
331
359
  exercises/ worked answers, verified by the test suite
332
360
  cases/ golden test cases — add one without writing Python
361
+ conformance/ the external datalog-conformance corpus (Soufflé, Nemo,
362
+ Crepe), run against all four evaluation strategies
333
363
  benchmarks/ scaled input generators (chain/tree/clique/grid)
334
364
  tests.py 235 tests: every shipped program and exercise answer is
335
365
  executed, a conformance suite runs every query through
@@ -1,15 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: tiny-datalog
3
- Version: 0.1.1
4
- Summary: A Datalog engine small enough to read in an afternoon
5
- Author: Andrew Goodchild
6
- License-Expression: MIT
7
- Project-URL: Homepage, https://github.com/andrewgoodchild/tiny-datalog
8
- Requires-Python: >=3.9
9
- Description-Content-Type: text/markdown
10
- License-File: LICENSE
11
- Dynamic: license-file
12
-
13
1
  # tiny-datalog
14
2
 
15
3
  [![tests](https://github.com/andrewgoodchild/tiny-datalog/actions/workflows/ci.yml/badge.svg)](https://github.com/andrewgoodchild/tiny-datalog/actions/workflows/ci.yml)
@@ -210,6 +198,13 @@ tabled evaluation all agree, and that incremental maintenance matches
210
198
  recomputation under random updates. 400 programs per run;
211
199
  `TINY_DATALOG_FUZZ=3000 python3 tests.py DifferentialFuzzTests` soaks.
212
200
 
201
+ Answers are also checked against engines this repository did not write.
202
+ [`conformance/`](https://github.com/andrewgoodchild/tiny-datalog/tree/main/conformance)
203
+ runs the [datalog-conformance](https://pypi.org/project/datalog-conformance/)
204
+ corpus, harvested from Soufflé, Nemo and Crepe, through all four
205
+ strategies: 89 cases pass. The 25 it skips need arithmetic or 10⁵-fact
206
+ joins, and both are omissions this course makes on purpose.
207
+
213
208
  ## Learning Datalog
214
209
 
215
210
  `lessons/` is a complete course, no prior exposure assumed, every
@@ -330,6 +325,8 @@ programs/ teaching programs, numbered by the lesson that uses
330
325
  lessons/ getting started, glossary, and lessons 0–18
331
326
  exercises/ worked answers, verified by the test suite
332
327
  cases/ golden test cases — add one without writing Python
328
+ conformance/ the external datalog-conformance corpus (Soufflé, Nemo,
329
+ Crepe), run against all four evaluation strategies
333
330
  benchmarks/ scaled input generators (chain/tree/clique/grid)
334
331
  tests.py 235 tests: every shipped program and exercise answer is
335
332
  executed, a conformance suite runs every query through
@@ -0,0 +1,56 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "tiny-datalog"
7
+ version = "0.1.2"
8
+ description = "A Datalog engine small enough to read in an afternoon"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ license-files = ["LICENSE"]
12
+ requires-python = ">=3.9"
13
+ authors = [{name = "Andrew Goodchild"}]
14
+ dependencies = []
15
+ keywords = ["datalog", "logic programming", "deductive database",
16
+ "semi-naive evaluation", "magic sets", "provenance",
17
+ "stable models", "teaching"]
18
+ # No "License ::" classifier: `license` above is an SPDX expression, and
19
+ # setuptools refuses a build that declares the licence both ways.
20
+ classifiers = [
21
+ "Development Status :: 3 - Alpha",
22
+ "Intended Audience :: Developers",
23
+ "Intended Audience :: Education",
24
+ "Intended Audience :: Science/Research",
25
+ "Operating System :: OS Independent",
26
+ "Programming Language :: Python :: 3",
27
+ "Programming Language :: Python :: 3 :: Only",
28
+ "Programming Language :: Python :: 3.9",
29
+ "Programming Language :: Python :: 3.10",
30
+ "Programming Language :: Python :: 3.11",
31
+ "Programming Language :: Python :: 3.12",
32
+ "Programming Language :: Python :: 3.13",
33
+ "Topic :: Database",
34
+ "Topic :: Education",
35
+ "Topic :: Software Development :: Interpreters",
36
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
37
+ ]
38
+
39
+ [project.urls]
40
+ Homepage = "https://github.com/andrewgoodchild/tiny-datalog"
41
+ Source = "https://github.com/andrewgoodchild/tiny-datalog"
42
+ Issues = "https://github.com/andrewgoodchild/tiny-datalog/issues"
43
+ Changelog = "https://github.com/andrewgoodchild/tiny-datalog/releases"
44
+ Lessons = "https://github.com/andrewgoodchild/tiny-datalog/tree/main/lessons"
45
+
46
+ [project.scripts]
47
+ tiny-datalog = "tiny_datalog.datalog:main"
48
+ tiny-datalog-prolog = "tiny_datalog.prolog:main"
49
+ tiny-datalog-semiring = "tiny_datalog.semiring:main"
50
+ tiny-datalog-tabling = "tiny_datalog.tabling:main"
51
+ tiny-datalog-incremental = "tiny_datalog.incremental:main"
52
+ tiny-datalog-subsumption = "tiny_datalog.subsumption:main"
53
+ tiny-datalog-containment = "tiny_datalog.containment:main"
54
+
55
+ [tool.setuptools.packages.find]
56
+ include = ["tiny_datalog*"]
@@ -29,7 +29,7 @@ from tiny_datalog.datalog import (
29
29
  format_atom, format_fact,
30
30
  )
31
31
 
32
- __version__ = "0.1.1"
32
+ __version__ = "0.1.2"
33
33
 
34
34
  __all__ = [
35
35
  "Var", "Const", "Struct", "Atom", "Literal", "Rule",
@@ -1,3 +1,36 @@
1
+ Metadata-Version: 2.4
2
+ Name: tiny-datalog
3
+ Version: 0.1.2
4
+ Summary: A Datalog engine small enough to read in an afternoon
5
+ Author: Andrew Goodchild
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/andrewgoodchild/tiny-datalog
8
+ Project-URL: Source, https://github.com/andrewgoodchild/tiny-datalog
9
+ Project-URL: Issues, https://github.com/andrewgoodchild/tiny-datalog/issues
10
+ Project-URL: Changelog, https://github.com/andrewgoodchild/tiny-datalog/releases
11
+ Project-URL: Lessons, https://github.com/andrewgoodchild/tiny-datalog/tree/main/lessons
12
+ Keywords: datalog,logic programming,deductive database,semi-naive evaluation,magic sets,provenance,stable models,teaching
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Education
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Database
26
+ Classifier: Topic :: Education
27
+ Classifier: Topic :: Software Development :: Interpreters
28
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
29
+ Requires-Python: >=3.9
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Dynamic: license-file
33
+
1
34
  # tiny-datalog
2
35
 
3
36
  [![tests](https://github.com/andrewgoodchild/tiny-datalog/actions/workflows/ci.yml/badge.svg)](https://github.com/andrewgoodchild/tiny-datalog/actions/workflows/ci.yml)
@@ -198,6 +231,13 @@ tabled evaluation all agree, and that incremental maintenance matches
198
231
  recomputation under random updates. 400 programs per run;
199
232
  `TINY_DATALOG_FUZZ=3000 python3 tests.py DifferentialFuzzTests` soaks.
200
233
 
234
+ Answers are also checked against engines this repository did not write.
235
+ [`conformance/`](https://github.com/andrewgoodchild/tiny-datalog/tree/main/conformance)
236
+ runs the [datalog-conformance](https://pypi.org/project/datalog-conformance/)
237
+ corpus, harvested from Soufflé, Nemo and Crepe, through all four
238
+ strategies: 89 cases pass. The 25 it skips need arithmetic or 10⁵-fact
239
+ joins, and both are omissions this course makes on purpose.
240
+
201
241
  ## Learning Datalog
202
242
 
203
243
  `lessons/` is a complete course, no prior exposure assumed, every
@@ -318,6 +358,8 @@ programs/ teaching programs, numbered by the lesson that uses
318
358
  lessons/ getting started, glossary, and lessons 0–18
319
359
  exercises/ worked answers, verified by the test suite
320
360
  cases/ golden test cases — add one without writing Python
361
+ conformance/ the external datalog-conformance corpus (Soufflé, Nemo,
362
+ Crepe), run against all four evaluation strategies
321
363
  benchmarks/ scaled input generators (chain/tree/clique/grid)
322
364
  tests.py 235 tests: every shipped program and exercise answer is
323
365
  executed, a conformance suite runs every query through
@@ -1,29 +0,0 @@
1
- [build-system]
2
- requires = ["setuptools>=77"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "tiny-datalog"
7
- version = "0.1.1"
8
- description = "A Datalog engine small enough to read in an afternoon"
9
- readme = "README.md"
10
- license = "MIT"
11
- license-files = ["LICENSE"]
12
- requires-python = ">=3.9"
13
- authors = [{name = "Andrew Goodchild"}]
14
- dependencies = []
15
-
16
- [project.urls]
17
- Homepage = "https://github.com/andrewgoodchild/tiny-datalog"
18
-
19
- [project.scripts]
20
- tiny-datalog = "tiny_datalog.datalog:main"
21
- tiny-datalog-prolog = "tiny_datalog.prolog:main"
22
- tiny-datalog-semiring = "tiny_datalog.semiring:main"
23
- tiny-datalog-tabling = "tiny_datalog.tabling:main"
24
- tiny-datalog-incremental = "tiny_datalog.incremental:main"
25
- tiny-datalog-subsumption = "tiny_datalog.subsumption:main"
26
- tiny-datalog-containment = "tiny_datalog.containment:main"
27
-
28
- [tool.setuptools.packages.find]
29
- include = ["tiny_datalog*"]
File without changes
File without changes