Skip to content

Commit 0d2b870

Browse files
authored
Merge pull request #144 from stanford-centaur/build/ci
build: Update build system
2 parents 24c6c9f + cf3e65e commit 0d2b870

11 files changed

Lines changed: 510 additions & 457 deletions

File tree

.github/workflows/docs.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ jobs:
3333
run: |
3434
elan toolchain install $(<src/lean-toolchain)
3535
36-
- name: Install poetry
36+
- name: Install uv
3737
run: |
38-
pip install poetry
39-
poetry install --only doc
38+
curl -LsSf https://astral.sh/uv/install.sh | sh
39+
uv sync
4040
4141
- name: Build documentations
4242
run: |
43-
poetry run jupyter-book build doc
43+
uv run --group dev jupyter-book build doc
4444
4545
# Upload the book's HTML as an artifact
4646
- name: Upload artifact

.github/workflows/test.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ jobs:
2828
run: |
2929
elan toolchain install $(<src/lean-toolchain)
3030
31-
- name: Install poetry
31+
- name: Install uv
3232
run: |
33-
pip install poetry
34-
poetry install --only doc
33+
curl -LsSf https://astral.sh/uv/install.sh | sh
34+
uv sync
35+
3536
- name: Run tests
3637
run: |
37-
poetry run python3 -m pantograph.server
38-
poetry run python3 -m pantograph.search
38+
uv run pytest

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,19 @@ cd doc/_build/html
4040
python3 -m http.server -d .
4141
```
4242

43-
## Examples
43+
### Examples
4444

4545
For API interaction examples, see `examples/README.md`.
4646

47-
## Referencing
47+
### Contributing
48+
49+
Execute unit tests with
50+
51+
```sh
52+
uv run pytest
53+
```
54+
55+
## Reference
4856

4957
[Paper Link](https://arxiv.org/abs/2410.16429)
5058

pantograph/message.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from dataclasses import dataclass
22
from enum import Enum
33
from typing import Optional, Self
4-
import unittest
54

65
class Severity(Enum):
76
INFORMATION = 1
@@ -72,26 +71,3 @@ class ServerError(Exception):
7271
"""
7372
Indicates a logical error in the server.
7473
"""
75-
76-
class TestMessage(unittest.TestCase):
77-
78-
def test_severity(self):
79-
self.assertEqual(str(Severity.ERROR), "error")
80-
def test_message(self):
81-
m = Message(
82-
data="hi",
83-
pos=Position(12, 34),
84-
pos_end=Position(56, 78),
85-
severity=Severity.WARNING,
86-
)
87-
self.assertEqual(str(m), "12:34-56:78: warning: hi")
88-
89-
m = Message(
90-
data="hi",
91-
pos=Position(0, 0),
92-
severity=Severity.ERROR,
93-
)
94-
self.assertEqual(str(m), "0:0: error: hi")
95-
96-
if __name__ == '__main__':
97-
unittest.main()

pantograph/search.py

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1+
from .server import Server, TacticFailure, ServerError
2+
from .expr import Expr, Tactic, GoalState, Site
3+
14
import random
25
from abc import abstractmethod
36
import time
47
from dataclasses import dataclass
58
from typing import Optional, List
6-
import collections, unittest
9+
import collections
710
from math import log, sqrt
8-
from pantograph.server import Server, TacticFailure, ServerError
9-
from pantograph.expr import Expr, Tactic, GoalState, Site
11+
1012

1113

1214
@dataclass
@@ -446,55 +448,3 @@ def next_tactic(
446448
return tactics[i]
447449

448450

449-
class TestSearch(unittest.TestCase):
450-
451-
def test_solve(self):
452-
453-
server = Server()
454-
agent = DumbAgent()
455-
goal_state = server.goal_start("∀ (p q: Prop), p -> p")
456-
flag = agent.search(
457-
server=server,
458-
goal_state=goal_state,
459-
verbose=False)
460-
#flag = agent.search(server=server, target="∀ (p q: Prop), Or p q -> Or q p", verbose=True)
461-
self.assertTrue(flag)
462-
def test_solve_big(self):
463-
464-
server = Server()
465-
agent = DumbAgent()
466-
goal_state = server.goal_start("∀ (p q: Prop), Or p q -> Or q p")
467-
flag = agent.search(
468-
server=server,
469-
goal_state=goal_state,
470-
verbose=False)
471-
self.assertTrue(flag)
472-
473-
class TestMCTSSearch(unittest.TestCase):
474-
475-
def test_solve(self):
476-
477-
server = Server()
478-
agent = DumbMCTSAgent()
479-
goal_state = server.goal_start("∀ (p q: Prop), p -> p")
480-
flag = agent.search(
481-
server=server,
482-
goal_state=goal_state,
483-
verbose=False)
484-
#flag = agent.search(server=server, target="∀ (p q: Prop), Or p q -> Or q p", verbose=True)
485-
self.assertTrue(flag)
486-
def test_solve_big(self):
487-
488-
server = Server()
489-
agent = DumbMCTSAgent()
490-
goal_state = server.goal_start("∀ (p q: Prop), Or p q -> Or q p")
491-
flag = agent.search(
492-
server=server,
493-
goal_state=goal_state,
494-
max_steps=200,
495-
verbose=False)
496-
self.assertTrue(flag)
497-
498-
499-
if __name__ == '__main__':
500-
unittest.main()

0 commit comments

Comments
 (0)