MilesCranmer commited on
Commit
b487874
1 Parent(s): 2128884

Avoid processing julia project twice

Browse files
Files changed (1) hide show
  1. pysr/julia_helpers.py +10 -16
pysr/julia_helpers.py CHANGED
@@ -64,17 +64,11 @@ def install(julia_project=None, quiet=False): # pragma: no cover
64
 
65
  _version_assertion()
66
  # Set JULIA_PROJECT so that we install in the pysr environment
67
- julia_project, is_shared = _process_julia_project(julia_project)
68
- _set_julia_project_env(julia_project, is_shared)
69
 
70
  julia.install(quiet=quiet)
71
-
72
- if is_shared:
73
- # is_shared is only true if the julia_project arg was None
74
- # See _process_julia_project
75
- Main = init_julia(None)
76
- else:
77
- Main = init_julia(julia_project)
78
 
79
  Main.eval("using Pkg")
80
 
@@ -84,7 +78,7 @@ def install(julia_project=None, quiet=False): # pragma: no cover
84
  # Can't pass IO to Julia call as it evaluates to PyObject, so just directly
85
  # use Main.eval:
86
  Main.eval(
87
- f'Pkg.activate("{_escape_filename(julia_project)}", shared = Bool({int(is_shared)}), {io_arg})'
88
  )
89
  if is_shared:
90
  # Install SymbolicRegression.jl:
@@ -117,14 +111,14 @@ def _import_error_string(julia_project=None):
117
  def _process_julia_project(julia_project):
118
  if julia_project is None:
119
  is_shared = True
120
- julia_project = f"pysr-{__version__}"
121
  elif julia_project[0] == "@":
122
  is_shared = True
123
- julia_project = julia_project[1:]
124
  else:
125
  is_shared = False
126
- julia_project = Path(julia_project)
127
- return julia_project, is_shared
128
 
129
 
130
  def is_julia_version_greater_eq(juliainfo=None, version=(1, 6, 0)):
@@ -164,8 +158,8 @@ def init_julia(julia_project=None):
164
  from julia.core import JuliaInfo, UnsupportedPythonError
165
 
166
  _version_assertion()
167
- julia_project, is_shared = _process_julia_project(julia_project)
168
- _set_julia_project_env(julia_project, is_shared)
169
 
170
  try:
171
  info = JuliaInfo.load(julia="julia")
 
64
 
65
  _version_assertion()
66
  # Set JULIA_PROJECT so that we install in the pysr environment
67
+ processed_julia_project, is_shared = _process_julia_project(julia_project)
68
+ _set_julia_project_env(processed_julia_project, is_shared)
69
 
70
  julia.install(quiet=quiet)
71
+ Main = init_julia(julia_project)
 
 
 
 
 
 
72
 
73
  Main.eval("using Pkg")
74
 
 
78
  # Can't pass IO to Julia call as it evaluates to PyObject, so just directly
79
  # use Main.eval:
80
  Main.eval(
81
+ f'Pkg.activate("{_escape_filename(processed_julia_project)}", shared = Bool({int(is_shared)}), {io_arg})'
82
  )
83
  if is_shared:
84
  # Install SymbolicRegression.jl:
 
111
  def _process_julia_project(julia_project):
112
  if julia_project is None:
113
  is_shared = True
114
+ processed_julia_project = f"pysr-{__version__}"
115
  elif julia_project[0] == "@":
116
  is_shared = True
117
+ processed_julia_project = julia_project[1:]
118
  else:
119
  is_shared = False
120
+ processed_julia_project = Path(julia_project)
121
+ return processed_julia_project, is_shared
122
 
123
 
124
  def is_julia_version_greater_eq(juliainfo=None, version=(1, 6, 0)):
 
158
  from julia.core import JuliaInfo, UnsupportedPythonError
159
 
160
  _version_assertion()
161
+ processed_julia_project, is_shared = _process_julia_project(julia_project)
162
+ _set_julia_project_env(processed_julia_project, is_shared)
163
 
164
  try:
165
  info = JuliaInfo.load(julia="julia")