Skip to content

Commit fd81f8d

Browse files
fix: respect tempdir for temporary equation files
Co-authored-by: Miles Cranmer <miles.cranmer@gmail.com>
1 parent 9283914 commit fd81f8d

2 files changed

Lines changed: 13 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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ 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(temp_equation_file=True, tempdir=str(tempdir), run_id="t")
84+
model._setup_equation_file()
85+
self.assertEqual(Path(model.output_directory_).parent, tempdir)
86+
8087
def test_linear_relation(self):
8188
y = self.X[:, 0]
8289
model = PySRRegressor(

0 commit comments

Comments
 (0)