Spaces:
Running
Running
Commit
·
32f7c64
1
Parent(s):
c1c031f
Improve readability for user-defined operator code
Browse files- pysr/sr.py +10 -10
pysr/sr.py
CHANGED
|
@@ -236,16 +236,16 @@ def pysr(X=None, y=None, weights=None,
|
|
| 236 |
for op_list in [binary_operators, unary_operators]:
|
| 237 |
for i in range(len(op_list)):
|
| 238 |
op = op_list[i]
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
|
| 250 |
def_hyperparams += f"""include("{pkg_directory}/operators.jl")
|
| 251 |
const binops = {'[' + ', '.join(binary_operators) + ']'}
|
|
|
|
| 236 |
for op_list in [binary_operators, unary_operators]:
|
| 237 |
for i in range(len(op_list)):
|
| 238 |
op = op_list[i]
|
| 239 |
+
is_user_defined_operator = '(' in op
|
| 240 |
+
|
| 241 |
+
if is_user_defined_operator:
|
| 242 |
+
def_hyperparams += op + "\n"
|
| 243 |
+
# Cut off from the first non-alphanumeric char:
|
| 244 |
+
first_non_char = [
|
| 245 |
+
j for j in range(len(op))
|
| 246 |
+
if not (op[j].isalpha() or op[j].isdigit())][0]
|
| 247 |
+
function_name = op[:first_non_char]
|
| 248 |
+
op_list[i] = function_name
|
| 249 |
|
| 250 |
def_hyperparams += f"""include("{pkg_directory}/operators.jl")
|
| 251 |
const binops = {'[' + ', '.join(binary_operators) + ']'}
|