Skip to content

Commit a81baa0

Browse files
committed
bind our python defined functions to the modules
1 parent 14cfb29 commit a81baa0

File tree

12 files changed

+87
-50
lines changed

12 files changed

+87
-50
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/BuiltinFunctions.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1352,7 +1352,6 @@ public boolean visit(Node node) {
13521352
PythonModule builtinModule;
13531353
if (globals instanceof PythonModule) {
13541354
builtinModule = (PythonModule) globals;
1355-
assert getContext().getCore().lookupBuiltinModule(((PythonModule) globals).getModuleName()) == builtinModule;
13561355
} else {
13571356
String moduleName = (String) getNameNode.execute(globals, __NAME__);
13581357
builtinModule = getContext().getCore().lookupBuiltinModule(moduleName);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/statement/AbstractImportNode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646

4747
import com.oracle.graal.python.builtins.objects.PNone;
4848
import com.oracle.graal.python.builtins.objects.function.PArguments;
49-
import com.oracle.graal.python.builtins.objects.function.PFunction;
5049
import com.oracle.graal.python.builtins.objects.function.PKeyword;
5150
import com.oracle.graal.python.builtins.objects.function.PythonCallable;
51+
import com.oracle.graal.python.builtins.objects.method.PMethod;
5252
import com.oracle.graal.python.builtins.objects.module.PythonModule;
5353
import com.oracle.graal.python.nodes.call.InvokeNode;
5454
import com.oracle.graal.python.nodes.object.GetDictNode;
@@ -97,9 +97,9 @@ protected Object importModule(String name, Object globals, String[] fromList, in
9797
}
9898

9999
Object __import__(String name, Object globals, String[] fromList, int level) {
100-
PFunction builtinImport = (PFunction) getContext().getBuiltins().getAttribute(__IMPORT__);
101-
Object[] importArguments = PArguments.create(1);
102-
PArguments.setArgument(importArguments, 0, name);
100+
PMethod builtinImport = (PMethod) getContext().getBuiltins().getAttribute(__IMPORT__);
101+
Object[] importArguments = PArguments.create(2);
102+
PArguments.setArgument(importArguments, 1, name);
103103
assert fromList != null;
104104
assert globals != null;
105105
return getInvokeNode(builtinImport).invoke(importArguments, new PKeyword[]{

graalpython/lib-graalpython/__builtins_patches__.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,14 @@
5050
import _pyio
5151
import io
5252

53+
54+
@__builtin__
55+
def open(*args, **kwargs):
56+
return _pyio.open(*args, **kwargs)
57+
58+
5359
for module in [_io, io]:
54-
setattr(module, 'open', _pyio.open)
60+
setattr(module, 'open', open)
5561
setattr(module, 'TextIOWrapper', _pyio.TextIOWrapper)
5662
setattr(module, 'IncrementalNewlineDecoder', _pyio.IncrementalNewlineDecoder)
5763
setattr(module, 'BufferedRandom', _pyio.BufferedRandom)
@@ -64,5 +70,5 @@
6470
setattr(module, 'BytesIO', _pyio.BytesIO)
6571
setattr(module, '_TextIOBase', _pyio.TextIOBase)
6672

67-
setattr(builtins, 'open', _pyio.open)
68-
globals()['open'] = _pyio.open
73+
74+
setattr(builtins, 'open', open)

graalpython/lib-graalpython/_codecs.py

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
__codec_error_registry__ = {}
4444

4545

46+
@__builtin__
4647
def register(search_function):
4748
if not __codec_search_path__:
4849
__codec_registry_init__()
@@ -56,6 +57,7 @@ def __normalizestring(string):
5657
return string.replace(' ', '-').lower()
5758

5859

60+
@__builtin__
5961
def lookup(encoding):
6062
if not __codec_search_path__:
6163
__codec_registry_init__()
@@ -99,6 +101,7 @@ def __decoder(encoding):
99101
return __codec_getitem(encoding, 1)
100102

101103

104+
@__builtin__
102105
def encode(obj, encoding='utf-8', errors='strict'):
103106
encoder = __encoder(encoding)
104107
if encoder:
@@ -108,6 +111,7 @@ def encode(obj, encoding='utf-8', errors='strict'):
108111
return result[0]
109112

110113

114+
@__builtin__
111115
def decode(obj, encoding='utf-8', errors='strict'):
112116
decoder = __decoder(encoding)
113117
if decoder:
@@ -117,12 +121,14 @@ def decode(obj, encoding='utf-8', errors='strict'):
117121
return result[0]
118122

119123

124+
@__builtin__
120125
def register_error(errors, handler):
121126
if not hasattr(handler, '__call__'):
122127
raise TypeError('handler must be callable')
123128
__codec_error_registry__[errors] = handler
124129

125130

131+
@__builtin__
126132
def lookup_error(errors='strict'):
127133
handler = __codec_error_registry__.get(errors)
128134
if handler is None:
@@ -139,201 +145,201 @@ def __codec_registry_init__():
139145

140146

141147
# TODO implement the encode / decode methods
142-
@staticmethod
148+
@__builtin__
143149
def escape_encode(data, errors=None):
144150
raise NotImplementedError()
145151

146152

147-
@staticmethod
153+
@__builtin__
148154
def escape_decode(data, errors=None):
149155
raise NotImplementedError()
150156

151157

152-
@staticmethod
158+
@__builtin__
153159
def utf_8_encode(string, errors=None):
154160
return __truffle_encode(string, "utf-8", errors)
155161

156162

157-
@staticmethod
163+
@__builtin__
158164
def utf_8_decode(string, errors=None, final=False):
159165
return __truffle_decode(string, "utf-8", errors)
160166

161167

162-
@staticmethod
168+
@__builtin__
163169
def utf_7_encode(string, errors=None):
164170
return __truffle_encode(string, "utf-7", errors)
165171

166172

167-
@staticmethod
173+
@__builtin__
168174
def utf_7_decode(string, errors=None, final=False):
169175
return __truffle_decode(string, "utf-7", errors)
170176

171177

172-
@staticmethod
178+
@__builtin__
173179
def utf_16_encode(string, errors=None, byteorder=0):
174180
return __truffle_encode(string, "utf-16", errors)
175181

176182

177-
@staticmethod
183+
@__builtin__
178184
def utf_16_decode(string, errors=None, final=False):
179185
return __truffle_decode(string, "utf-16", errors)
180186

181187

182-
@staticmethod
188+
@__builtin__
183189
def utf_16_le_encode(string, errors=None):
184190
return __truffle_encode(string, "utf-16-le", errors)
185191

186192

187-
@staticmethod
193+
@__builtin__
188194
def utf_16_le_decode(string, errors=None, final=False):
189195
return __truffle_decode(string, "utf-16-le", errors)
190196

191197

192-
@staticmethod
198+
@__builtin__
193199
def utf_16_be_encode(string, errors=None):
194200
return __truffle_encode(string, "utf-16-be", errors)
195201

196202

197-
@staticmethod
203+
@__builtin__
198204
def utf_16_be_decode(string, errors=None, final=False):
199205
return __truffle_decode(string, "utf-16-be", errors)
200206

201207

202-
@staticmethod
208+
@__builtin__
203209
def utf_16_ex_decode(data, errors=None, byteorder=0, final=False):
204210
raise NotImplementedError()
205211

206212

207-
@staticmethod
213+
@__builtin__
208214
def utf_32_encode(string, errors=None, byteorder=0):
209215
return __truffle_encode(string, "utf-32", errors)
210216

211217

212-
@staticmethod
218+
@__builtin__
213219
def utf_32_decode(string, errors=None, final=False):
214220
return __truffle_decode(string, "utf-32", errors)
215221

216222

217-
@staticmethod
223+
@__builtin__
218224
def utf_32_le_encode(string, errors=None):
219225
return __truffle_encode(string, "utf-32-le", errors)
220226

221227

222-
@staticmethod
228+
@__builtin__
223229
def utf_32_le_decode(string, errors=None, final=False):
224230
return __truffle_decode(string, "utf-32-le", errors)
225231

226232

227-
@staticmethod
233+
@__builtin__
228234
def utf_32_be_encode(string, errors=None):
229235
return __truffle_encode(string, "utf-32-be", errors)
230236

231237

232-
@staticmethod
238+
@__builtin__
233239
def utf_32_be_decode(string, errors=None, final=False):
234240
return __truffle_decode(string, "utf-32-be", errors)
235241

236242

237-
@staticmethod
243+
@__builtin__
238244
def utf_32_ex_decode(data, errors=None, byteorder=0, final=False):
239245
raise NotImplementedError()
240246

241247

242-
@staticmethod
248+
@__builtin__
243249
def unicode_escape_encode(string, errors=None):
244250
raise NotImplementedError()
245251

246252

247-
@staticmethod
253+
@__builtin__
248254
def unicode_escape_decode(string, errors=None):
249255
raise NotImplementedError()
250256

251257

252-
@staticmethod
258+
@__builtin__
253259
def unicode_internal_encode(obj, errors=None):
254260
raise NotImplementedError()
255261

256262

257-
@staticmethod
263+
@__builtin__
258264
def unicode_internal_decode(obj, errors=None):
259265
raise NotImplementedError()
260266

261267

262-
@staticmethod
268+
@__builtin__
263269
def raw_unicode_escape_encode(string, errors=None):
264270
raise NotImplementedError()
265271

266272

267-
@staticmethod
273+
@__builtin__
268274
def raw_unicode_escape_decode(string, errors=None):
269275
raise NotImplementedError()
270276

271277

272-
@staticmethod
278+
@__builtin__
273279
def latin_1_encode(string, errors=None):
274280
return __truffle_encode(string, "latin-1", errors)
275281

276282

277-
@staticmethod
283+
@__builtin__
278284
def latin_1_decode(string, errors=None):
279285
return __truffle_decode(string, "latin-1", errors)
280286

281287

282-
@staticmethod
288+
@__builtin__
283289
def ascii_encode(string, errors=None):
284290
return __truffle_encode(string, "ascii", errors)
285291

286292

287-
@staticmethod
293+
@__builtin__
288294
def ascii_decode(string, errors=None):
289295
return __truffle_decode(string, "ascii", errors)
290296

291297

292-
@staticmethod
298+
@__builtin__
293299
def charmap_encode(string, errors=None, mapping=None):
294300
raise NotImplementedError()
295301

296302

297-
@staticmethod
303+
@__builtin__
298304
def charmap_decode(string, errors=None, mapping=None):
299305
raise NotImplementedError()
300306

301307

302-
@staticmethod
308+
@__builtin__
303309
def charmap_build(mapping):
304310
raise NotImplementedError()
305311

306312

307-
@staticmethod
313+
@__builtin__
308314
def readbuffer_encode(data, errors=None):
309315
raise NotImplementedError()
310316

311317

312-
@staticmethod
318+
@__builtin__
313319
def mbcs_encode(string, errors=None):
314320
raise NotImplementedError()
315321

316322

317-
@staticmethod
323+
@__builtin__
318324
def mbcs_decode(string, errors=None, final=False):
319325
raise NotImplementedError()
320326

321327

322-
@staticmethod
328+
@__builtin__
323329
def oem_encode(string, errors):
324330
raise NotImplementedError()
325331

326332

327-
@staticmethod
333+
@__builtin__
328334
def oem_decode(string, errors=None, final=False):
329335
raise NotImplementedError()
330336

331337

332-
@staticmethod
338+
@__builtin__
333339
def code_page_encode(code_page, string, errors=None):
334340
raise NotImplementedError()
335341

336342

337-
@staticmethod
343+
@__builtin__
338344
def code_page_decode(code_page, string, errors=None, final=False):
339345
raise NotImplementedError()

graalpython/lib-graalpython/_frozen_importlib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@
6060
sys.modules[__name__] = sys.modules['_frozen_importlib']
6161
_install(sys, _imp)
6262

63-
sys.modules['builtins'].__import__ = __import__
63+
sys.modules['builtins'].__import__ = __builtin__(__import__)

graalpython/lib-graalpython/_functools.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3838
# SOFTWARE.
3939

40+
@__builtin__
4041
def reduce(function, iterable, initializer=None):
4142
it = iter(iterable)
4243
if initializer is None:
@@ -48,6 +49,7 @@ def reduce(function, iterable, initializer=None):
4849
return value
4950

5051

52+
@__builtin__
5153
def partial(func, *args, **keywords):
5254
def newfunc(*fargs, **fkeywords):
5355
newkeywords = keywords.copy()
@@ -57,4 +59,3 @@ def newfunc(*fargs, **fkeywords):
5759
newfunc.args = args
5860
newfunc.keywords = keywords
5961
return newfunc
60-

0 commit comments

Comments
 (0)