--- .classpath
+++ .classpath
@@ -35,8 +35,11 @@
-
-
+
+
+
+
+
--- build.xml
+++ build.xml
@@ -208,9 +208,11 @@
-
-
-
+
+
+
+
+
--- src/org/python/core/Py.java
+++ src/org/python/core/Py.java
@@ -130,6 +130,14 @@
return OSError(errno, Py.newString(filename));
}
+ public static PyException OSError(jnr.constants.Constant errno, PyObject filename) {
+ int value = errno.intValue();
+ // Pass to strerror because constantine currently lacks Errno descriptions on
+ // Windows, and strerror falls back to Linux's
+ PyObject args = new PyTuple(Py.newInteger(value), PosixModule.strerror(value), filename);
+ return new PyException(Py.OSError, args);
+ }
+
public static PyObject NotImplementedError;
public static PyException NotImplementedError(String message) {
return new PyException(Py.NotImplementedError, message);
--- src/org/python/core/PySystemState.java
+++ src/org/python/core/PySystemState.java
@@ -27,7 +27,7 @@
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.util.Platform;
import org.python.Version;
import org.python.core.adapter.ClassicPyObjectAdapter;
import org.python.core.adapter.ExtensiblePyObjectAdapter;
--- src/org/python/core/io/FileIO.java
+++ src/org/python/core/io/FileIO.java
@@ -13,7 +13,7 @@
import java.nio.channels.FileChannel;
import com.kenai.constantine.platform.Errno;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.util.Platform;
import org.python.core.Py;
import org.python.core.PyString;
import org.python.core.util.RelativeFile;
--- src/org/python/core/util/PlatformUtil.java
+++ src/org/python/core/util/PlatformUtil.java
@@ -1,7 +1,7 @@
/* Copyright (c) 2009 Jython project */
package org.python.core.util;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.util.Platform;
/**
* Methods for testing the platform/operating system that we are on.
--- src/org/python/modules/errno.java
+++ src/org/python/modules/errno.java
@@ -4,7 +4,7 @@
import com.kenai.constantine.Constant;
import com.kenai.constantine.ConstantSet;
import com.kenai.constantine.platform.Errno;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.util.Platform;
import org.python.core.ClassDictInit;
import org.python.core.Py;
import org.python.core.PyDictionary;
--- src/org/python/modules/posix/PosixModule.java
+++ src/org/python/modules/posix/PosixModule.java
@@ -17,10 +17,10 @@
import java.util.Iterator;
import java.util.Map;
-import org.jruby.ext.posix.FileStat;
-import org.jruby.ext.posix.POSIX;
-import org.jruby.ext.posix.POSIXFactory;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.FileStat;
+import jnr.posix.POSIX;
+import jnr.posix.POSIXFactory;
+import jnr.posix.util.Platform;
import org.python.core.ClassDictInit;
import org.python.core.Py;
--- src/org/python/modules/posix/PyStatResult.java
+++ src/org/python/modules/posix/PyStatResult.java
@@ -1,7 +1,7 @@
/* Copyright (c) Jython Developers */
package org.python.modules.posix;
-import org.jruby.ext.posix.FileStat;
+import jnr.posix.FileStat;
import org.python.core.ArgParser;
import org.python.core.Py;
--- src/org/python/modules/posix/PythonPOSIXHandler.java
+++ src/org/python/modules/posix/PythonPOSIXHandler.java
@@ -1,26 +1,26 @@
/* Copyright (c) Jython Developers */
package org.python.modules.posix;
-import com.kenai.constantine.platform.Errno;
-
import java.io.File;
import java.io.InputStream;
import java.io.PrintStream;
-import org.jruby.ext.posix.POSIX;
-import org.jruby.ext.posix.POSIXHandler;
+import jnr.constants.platform.Errno;
+import jnr.posix.POSIX;
+import jnr.posix.POSIXHandler;
import org.python.core.imp;
import org.python.core.Options;
import org.python.core.Py;
import org.python.core.PyObject;
+
/**
* Jython specific hooks for our underlying POSIX library.
*/
public class PythonPOSIXHandler implements POSIXHandler {
- public void error(Errno error, String extraData) {
+ public void error(Errno error, String extraData) {
// XXX: extraData (filename) could have been unicode!
// http://bugs.jython.org/issue1825
throw Py.OSError(error, Py.newString(extraData));
--- tests/java/org/python/core/PySystemStateTest.java
+++ tests/java/org/python/core/PySystemStateTest.java
@@ -7,7 +7,7 @@
import junit.framework.TestCase;
-import org.jruby.ext.posix.util.Platform;
+import jnr.posix.util.Platform;
public class PySystemStateTest extends TestCase {