Skip to content

Commit f15b642

Browse files
committed
Merge remote-tracking branch 'upstream/master' into makeboxesoverhault
2 parents 99dd59f + 12ff672 commit f15b642

3 files changed

Lines changed: 113 additions & 153 deletions

File tree

mathics/builtin/__init__.py

Lines changed: 24 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -2,51 +2,18 @@
22
# -*- coding: utf-8 -*-
33
from mathics.core.expression import ensure_context
44

5+
import glob
6+
import importlib
7+
import re
8+
import os.path as osp
9+
from mathics.settings import ENABLE_FILES_MODULE
510

6-
from mathics.builtin import (
7-
algebra,
8-
arithmetic,
9-
assignment,
10-
attributes,
11-
calculus,
12-
combinatorial,
13-
compilation,
14-
comparison,
15-
constants,
16-
control,
17-
datentime,
18-
diffeqns,
19-
evaluation,
20-
exptrig,
21-
functional,
22-
graphics,
23-
graphics3d,
24-
image,
25-
inout,
26-
integer,
27-
iohooks,
28-
linalg,
29-
lists,
30-
logic,
31-
manipulate,
32-
quantities,
33-
numbertheory,
34-
numeric,
35-
options,
36-
patterns,
37-
plot,
38-
physchemdata,
39-
randomnumbers,
40-
recurrence,
41-
specialfunctions,
42-
scoping,
43-
strings,
44-
structure,
45-
system,
46-
tensors,
47-
xmlformat,
48-
optimization,
49-
)
11+
# Get a list of file in this directory. We'll exclude from the start
12+
# files with leading characters we don't want like __init__ with its leading underscore.
13+
__py_files__ = [
14+
osp.basename(f[0:-3])
15+
for f in glob.glob(osp.join(osp.dirname(__file__), "[a-z]*.py"))
16+
]
5017

5118
from mathics.builtin.base import (
5219
Builtin,
@@ -58,55 +25,23 @@
5825

5926
from mathics.settings import ENABLE_FILES_MODULE
6027

61-
modules = [
62-
algebra,
63-
arithmetic,
64-
assignment,
65-
attributes,
66-
calculus,
67-
combinatorial,
68-
compilation,
69-
comparison,
70-
constants,
71-
control,
72-
datentime,
73-
diffeqns,
74-
evaluation,
75-
exptrig,
76-
functional,
77-
graphics,
78-
graphics3d,
79-
image,
80-
inout,
81-
integer,
82-
iohooks,
83-
linalg,
84-
lists,
85-
logic,
86-
manipulate,
87-
quantities,
88-
numbertheory,
89-
numeric,
90-
options,
91-
patterns,
92-
plot,
93-
physchemdata,
94-
randomnumbers,
95-
recurrence,
96-
specialfunctions,
97-
scoping,
98-
strings,
99-
structure,
100-
system,
101-
tensors,
102-
xmlformat,
103-
optimization,
28+
exclude_files = set(("files", "codetables", "base", "importexport", "colors"))
29+
module_names = [
30+
f for f in __py_files__ if re.match("^[a-z0-9]+$", f) if f not in exclude_files
10431
]
10532

10633
if ENABLE_FILES_MODULE:
107-
from mathics.builtin import files, importexport
34+
module_names += ["files", "importexport"]
35+
36+
modules = []
10837

109-
modules += [files, importexport]
38+
for module_name in module_names:
39+
try:
40+
module = importlib.import_module("mathics.builtin." + module_name)
41+
except:
42+
# print("XXX", module_name)
43+
continue
44+
modules.append(module)
11045

11146
builtins = []
11247
builtins_by_module = {}

mathics/builtin/files.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4444,8 +4444,6 @@ class ResetDirectory(Builtin):
44444444

44454445
def apply(self, evaluation):
44464446
"ResetDirectory[]"
4447-
global DIRECTORY_STACK
4448-
44494447
try:
44504448
tmp = DIRECTORY_STACK.pop()
44514449
except IndexError:

0 commit comments

Comments
 (0)