[pypy-commit] pypy default: issue #1259: trying to remove all built-in modules '__file__' attribute.
arigo
noreply at buildbot.pypy.org
Sat Aug 30 18:44:32 CEST 2014
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r73212:93fffd3d2e03
Date: 2014-08-30 18:44 +0200
http://bitbucket.org/pypy/pypy/changeset/93fffd3d2e03/
Log: issue #1259: trying to remove all built-in modules '__file__'
attribute.
diff --git a/pypy/interpreter/mixedmodule.py b/pypy/interpreter/mixedmodule.py
--- a/pypy/interpreter/mixedmodule.py
+++ b/pypy/interpreter/mixedmodule.py
@@ -7,7 +7,6 @@
class MixedModule(Module):
applevel_name = None
- expose__file__attribute = True
# The following attribute is None as long as the module has not been
# imported yet, and when it has been, it is mod.__dict__.items() just
@@ -144,8 +143,6 @@
for name, spec in cls.appleveldefs.items():
loaders[name] = getappfileloader(pkgroot, appname, spec)
assert '__file__' not in loaders
- if cls.expose__file__attribute:
- loaders['__file__'] = cls.get__file__
if '__doc__' not in loaders:
loaders['__doc__'] = cls.get__doc__
@@ -159,28 +156,6 @@
w_obj = loader(space)
space.setattr(space.wrap(self), space.wrap(name), w_obj)
- def get__file__(cls, space):
- """ NOT_RPYTHON.
- return the __file__ attribute of a MixedModule
- which is the root-directory for the various
- applevel and interplevel snippets that make
- up the module.
- """
- try:
- fname = cls._fname
- except AttributeError:
- pkgroot = cls.__module__
- mod = __import__(pkgroot, None, None, ['__doc__'])
- fname = mod.__file__
- assert os.path.basename(fname).startswith('__init__.py')
- # make it clear that it's not really the interp-level module
- # at this path that we are seeing, but an app-level version of it
- fname = os.path.dirname(fname)
- cls._fname = fname
- return space.wrap(fname)
-
- get__file__ = classmethod(get__file__)
-
def get__doc__(cls, space):
return space.wrap(cls.__doc__)
get__doc__ = classmethod(get__doc__)
diff --git a/pypy/interpreter/test/test_extmodules.py b/pypy/interpreter/test/test_extmodules.py
--- a/pypy/interpreter/test/test_extmodules.py
+++ b/pypy/interpreter/test/test_extmodules.py
@@ -64,5 +64,5 @@
@pytest.mark.skipif("config.option.runappdirect")
def test_import(self):
import extmod
- assert extmod.__file__.endswith('extmod')
+ assert not hasattr(extmod, '__file__')
assert type(extmod.time()) is float
diff --git a/pypy/interpreter/test/test_module.py b/pypy/interpreter/test/test_module.py
--- a/pypy/interpreter/test/test_module.py
+++ b/pypy/interpreter/test/test_module.py
@@ -42,12 +42,9 @@
bar = type(sys)('bar','docstring')
assert bar.__doc__ == 'docstring'
- def test___file__(self):
- import sys, os
- if not hasattr(sys, "pypy_objspaceclass"):
- skip("need PyPy for sys.__file__ checking")
- assert sys.__file__
- assert os.path.basename(sys.__file__) == 'sys'
+ def test___file__(self):
+ import sys
+ assert not hasattr(sys, '__file__')
def test_repr(self):
import sys
diff --git a/pypy/module/__builtin__/__init__.py b/pypy/module/__builtin__/__init__.py
--- a/pypy/module/__builtin__/__init__.py
+++ b/pypy/module/__builtin__/__init__.py
@@ -7,7 +7,6 @@
class Module(MixedModule):
"""Built-in functions, exceptions, and other objects."""
- expose__file__attribute = False
appleveldefs = {
'execfile' : 'app_io.execfile',
diff --git a/pypy/module/errno/test/test_errno.py b/pypy/module/errno/test/test_errno.py
--- a/pypy/module/errno/test/test_errno.py
+++ b/pypy/module/errno/test/test_errno.py
@@ -8,7 +8,7 @@
cls.w_errorcode = cls.space.wrap(errno.errorcode)
def test_posix(self):
- assert self.errno.__file__
+ assert not hasattr(self.errno, '__file__')
def test_constants(self):
for code, name in self.errorcode.iteritems():
diff --git a/pypy/module/posix/test/test_posix2.py b/pypy/module/posix/test/test_posix2.py
--- a/pypy/module/posix/test/test_posix2.py
+++ b/pypy/module/posix/test/test_posix2.py
@@ -96,7 +96,7 @@
need_sparse_files()
def test_posix_is_pypy_s(self):
- assert self.posix.__file__
+ assert hasattr(self.posix, '_statfields')
def test_some_posix_basic_operation(self):
path = self.path
@@ -282,13 +282,8 @@
f = posix.fdopen(fd, "r")
f.close()
- # Ensure that fcntl is not faked
- try:
- import fcntl
- except ImportError:
- pass
- else:
- assert fcntl.__file__.endswith('pypy/module/fcntl')
+ # There used to be code here to ensure that fcntl is not faked
+ # but we can't do that cleanly any more
exc = raises(OSError, posix.fdopen, fd)
assert exc.value.errno == errno.EBADF
diff --git a/pypy/module/posix/test/test_posix_libfile.py b/pypy/module/posix/test/test_posix_libfile.py
--- a/pypy/module/posix/test/test_posix_libfile.py
+++ b/pypy/module/posix/test/test_posix_libfile.py
@@ -19,7 +19,7 @@
cls.w_path = cls.space.wrap(str(path))
def test_posix_is_pypy_s(self):
- assert self.posix.__file__
+ assert hasattr(self.posix, '_statfields')
def test_fdopen(self):
path = self.path
More information about the pypy-commit
mailing list