Skip to content

Commit beaa405

Browse files
MilesCranmerBotMilesCranmerpre-commit-ci[bot]
authored
fix: respect tempdir for temporary equation files (#1207)
* fix: respect tempdir for temporary equation files Co-authored-by: Miles Cranmer <miles.cranmer@gmail.com> * chore: retrigger CI * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Miles Cranmer <miles.cranmer@gmail.com> Co-authored-by: MilesCranmerBot <milescranmerbot@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 9283914 commit beaa405

2 files changed

Lines changed: 15 additions & 5 deletions

File tree

pysr/sr.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,15 +1590,16 @@ def _setup_equation_file(self):
15901590
if self.output_directory is not None:
15911591
assert self.output_directory_ == self.output_directory
15921592
else:
1593-
self.output_directory_ = (
1594-
tempfile.mkdtemp()
1595-
if self.temp_equation_file
1596-
else (
1593+
if self.temp_equation_file:
1594+
if self.tempdir is not None:
1595+
Path(self.tempdir).mkdir(parents=True, exist_ok=True)
1596+
self.output_directory_ = tempfile.mkdtemp(dir=self.tempdir)
1597+
else:
1598+
self.output_directory_ = (
15971599
"outputs"
15981600
if self.output_directory is None
15991601
else self.output_directory
16001602
)
1601-
)
16021603
self.run_id_ = (
16031604
cast(str, SymbolicRegression.SearchUtilsModule.generate_run_id())
16041605
if self.run_id is None

pysr/test/test_main.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@ def setUp(self):
7777
self.rstate = np.random.RandomState(0)
7878
self.X = self.rstate.randn(100, 5)
7979

80+
def test_temp_equation_file_respects_tempdir(self):
81+
with tempfile.TemporaryDirectory() as d:
82+
tempdir = Path(d) / "pysr-temp"
83+
model = PySRRegressor(
84+
temp_equation_file=True, tempdir=str(tempdir), run_id="t"
85+
)
86+
model._setup_equation_file()
87+
self.assertEqual(Path(model.output_directory_).parent, tempdir)
88+
8089
def test_linear_relation(self):
8190
y = self.X[:, 0]
8291
model = PySRRegressor(

0 commit comments

Comments
 (0)