algobattle-base 4.3.0__tar.gz → 4.3.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 (89) hide show
  1. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/PKG-INFO +9 -9
  2. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/cli.py +3 -4
  3. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/pyproject.toml +8 -8
  4. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/LICENSE +0 -0
  5. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/README.md +0 -0
  6. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/__init__.py +0 -0
  7. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/battle.py +0 -0
  8. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/match.py +0 -0
  9. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/problem.py +0 -0
  10. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/program.py +0 -0
  11. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/py.typed +0 -0
  12. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/__init__.py +0 -0
  13. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/c/.gitignore +0 -0
  14. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/c/Dockerfile +0 -0
  15. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/c/src/CMakeLists.txt +0 -0
  16. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/c/src/main.c +0 -0
  17. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/cpp/.gitignore +0 -0
  18. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/cpp/Dockerfile +0 -0
  19. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/cpp/src/CMakeLists.txt +0 -0
  20. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/cpp/src/main.cpp +0 -0
  21. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/csharp/Dockerfile.jinja +0 -0
  22. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/csharp/Program.cs +0 -0
  23. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/csharp/{{program.capitalize()}}.csproj +0 -0
  24. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/go/.gitignore +0 -0
  25. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/go/Dockerfile +0 -0
  26. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/go/go.mod.jinja +0 -0
  27. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/go/main.go +0 -0
  28. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/java/.dockerignore +0 -0
  29. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/java/.gitignore +0 -0
  30. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/java/Dockerfile.jinja +0 -0
  31. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/java/pom.xml.jinja +0 -0
  32. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/java/src/main/java/com/{{team_normalized}}/{{program.capitalize()}}.java.jinja +0 -0
  33. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/javascript/.gitignore +0 -0
  34. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/javascript/Dockerfile.jinja +0 -0
  35. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/javascript/package-lock.json.jinja +0 -0
  36. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/javascript/package.json.jinja +0 -0
  37. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/javascript/{{program}}.mjs.jinja +0 -0
  38. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/plain/Dockerfile.jinja +0 -0
  39. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/problem.py.jinja +0 -0
  40. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/python/.gitignore +0 -0
  41. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/python/Dockerfile.jinja +0 -0
  42. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/python/pyproject.toml.jinja +0 -0
  43. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/python/{{program}}.py.jinja +0 -0
  44. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/rust/.gitignore +0 -0
  45. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/rust/Cargo.toml.jinja +0 -0
  46. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/rust/Dockerfile.jinja +0 -0
  47. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/rust/src/main.rs.jinja +0 -0
  48. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/.gitignore +0 -0
  49. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/Dockerfile +0 -0
  50. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/package-lock.json.jinja +0 -0
  51. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/package.json.jinja +0 -0
  52. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/src/main.ts +0 -0
  53. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/templates/typescript/tsconfig.json +0 -0
  54. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/types.py +0 -0
  55. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/algobattle/util.py +0 -0
  56. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/README.md +0 -0
  57. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/__init__.py +0 -0
  58. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/configs/empty.toml +0 -0
  59. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/configs/teams.toml +0 -0
  60. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/configs/teams_incorrect.toml +0 -0
  61. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/configs/test.toml +0 -0
  62. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/test_battles.py +0 -0
  63. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/test_docker.py +0 -0
  64. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/test_match.py +0 -0
  65. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/test_types.py +0 -0
  66. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/test_util.py +0 -0
  67. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/README.md +0 -0
  68. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/__init__.py +0 -0
  69. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/build_error/Dockerfile +0 -0
  70. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/build_timeout/Dockerfile +0 -0
  71. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator/Dockerfile +0 -0
  72. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator/instance.json +0 -0
  73. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_execution_error/Dockerfile +0 -0
  74. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_semantics_error/Dockerfile +0 -0
  75. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_semantics_error/instance.json +0 -0
  76. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_syntax_error/Dockerfile +0 -0
  77. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_syntax_error/instance.json +0 -0
  78. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_timeout/Dockerfile +0 -0
  79. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/generator_timeout/instance.json +0 -0
  80. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/problem.py +0 -0
  81. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver/Dockerfile +0 -0
  82. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver/solution.json +0 -0
  83. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_execution_error/Dockerfile +0 -0
  84. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_semantics_error/Dockerfile +0 -0
  85. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_semantics_error/solution.json +0 -0
  86. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_syntax_error/Dockerfile +0 -0
  87. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_syntax_error/solution.json +0 -0
  88. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_timeout/Dockerfile +0 -0
  89. {algobattle_base-4.3.0 → algobattle_base-4.3.2}/tests/testsproblem/solver_timeout/solution.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: algobattle-base
3
- Version: 4.3.0
3
+ Version: 4.3.2
4
4
  Summary: The Algobattle lab course package.
5
5
  Author: Imogen Hergeth, Jan Dreier, Henri Lotze
6
6
  License: MIT
@@ -14,13 +14,14 @@ Project-URL: Homepage, https://algobattle.org
14
14
  Project-URL: Documentation, https://algobattle.org/docs
15
15
  Project-URL: Repository, https://github.com/Benezivas/algobattle
16
16
  Requires-Python: >=3.11
17
- Requires-Dist: docker>=7.0.0
18
- Requires-Dist: pydantic>=2.5.3
19
- Requires-Dist: anyio>=4.2.0
20
- Requires-Dist: typer[all]>=0.9.0
21
- Requires-Dist: typing-extensions>=4.9.0
22
- Requires-Dist: tomlkit>=0.12.3
23
- Requires-Dist: jinja2>=3.1.2
17
+ Requires-Dist: docker>=7.1.0
18
+ Requires-Dist: pydantic>=2.11.9
19
+ Requires-Dist: anyio>=4.11.0
20
+ Requires-Dist: typer>=0.19.2
21
+ Requires-Dist: typing-extensions>=4.15.0
22
+ Requires-Dist: tomlkit>=0.13.3
23
+ Requires-Dist: jinja2>=3.1.6
24
+ Provides-Extra: dev
24
25
  Requires-Dist: black>=23.12.1; extra == "dev"
25
26
  Requires-Dist: flake8>=6.1.0; extra == "dev"
26
27
  Requires-Dist: flake8-docstrings>=1.7.0; extra == "dev"
@@ -29,7 +30,6 @@ Requires-Dist: mkdocs-material>=9.5.3; extra == "dev"
29
30
  Requires-Dist: pymdown-extensions>=10.7; extra == "dev"
30
31
  Requires-Dist: mkdocstrings[python]>=0.24.0; extra == "dev"
31
32
  Requires-Dist: mdx-include>=1.4.2; extra == "dev"
32
- Provides-Extra: dev
33
33
  Description-Content-Type: text/markdown
34
34
 
35
35
  # Algorithmic Battle
@@ -4,7 +4,6 @@ Provides a command line interface to start matches and observe them. See `battle
4
4
  """
5
5
  from enum import StrEnum
6
6
  from functools import cached_property
7
- import json
8
7
  import operator
9
8
  from os import environ
10
9
  from pathlib import Path
@@ -21,7 +20,7 @@ import shutil
21
20
  from anyio import run as run_async_fn
22
21
  from click import Choice
23
22
  from click.core import Parameter
24
- from pydantic import Field, ValidationError
23
+ from pydantic import Field, TypeAdapter, ValidationError
25
24
  from typer import Typer, Argument, Option, Abort, get_app_dir, launch
26
25
  from rich.console import Group, RenderableType, Console
27
26
  from rich.live import Live
@@ -516,7 +515,7 @@ def test(
516
515
  config = AlgobattleConfig.from_file(project)
517
516
  all_errors: dict[str, TestErrors] = {}
518
517
 
519
- for team in config.teams.keys():
518
+ for team in config.teams:
520
519
  res = test_team(config, team, size)
521
520
  if not res.ok():
522
521
  all_errors[team] = res
@@ -524,7 +523,7 @@ def test(
524
523
  if all_errors:
525
524
  err_path = config.project.results.joinpath(f"test-{timestamp()}.json")
526
525
  config.project.results.mkdir(parents=True, exist_ok=True)
527
- err_path.write_text(json.dumps(all_errors, indent=4))
526
+ err_path.write_bytes(TypeAdapter(dict[str, TestErrors]).dump_json(all_errors, indent=2, exclude_defaults=True))
528
527
  console.print(f"You can find detailed error messages at {err_path}")
529
528
  return "error"
530
529
  else:
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "algobattle-base"
9
- version = "4.3.0"
9
+ version = "4.3.2"
10
10
  description = "The Algobattle lab course package."
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.11"
@@ -24,13 +24,13 @@ classifiers = [
24
24
  "Typing :: Typed",
25
25
  ]
26
26
  dependencies = [
27
- "docker>=7.0.0",
28
- "pydantic>=2.5.3",
29
- "anyio>=4.2.0",
30
- "typer[all]>=0.9.0",
31
- "typing-extensions>=4.9.0",
32
- "tomlkit>=0.12.3",
33
- "jinja2>=3.1.2",
27
+ "docker>=7.1.0",
28
+ "pydantic>=2.11.9",
29
+ "anyio>=4.11.0",
30
+ "typer>=0.19.2",
31
+ "typing-extensions>=4.15.0",
32
+ "tomlkit>=0.13.3",
33
+ "jinja2>=3.1.6",
34
34
  ]
35
35
 
36
36
  [project.license]
File without changes