summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2017-12-21 16:31:59 +0100
committerClaude Paroz <claude@2xlibre.net>2017-12-23 10:28:29 +0100
commit830636df739d359116e3106c35375ac838bf15c3 (patch)
tree90f1ccde8ab6e18835d9f8ba70d55df8abf2116a
parent45d89856fcf103e8f109e76eea548149bd7e0ced (diff)
[2.0.x] Fixed #28594 -- Removed Jython docs and specific code
Thanks Andrey Martyanov for the report, and Tim Graham for the review. Backport of 23b21db31bfcf2a065d485617412cca43a311a4c from master.
-rw-r--r--django/core/management/templates.py4
-rw-r--r--django/utils/autoreload.py15
-rw-r--r--docs/howto/jython.txt74
-rw-r--r--docs/index.txt8
-rw-r--r--docs/intro/install.txt7
-rw-r--r--docs/releases/1.0.txt2
-rw-r--r--docs/topics/install.txt6
-rw-r--r--tests/admin_scripts/tests.py16
8 files changed, 13 insertions, 119 deletions
diff --git a/django/core/management/templates.py b/django/core/management/templates.py
index eb4baafd62..a89a54fa62 100644
--- a/django/core/management/templates.py
+++ b/django/core/management/templates.py
@@ -5,7 +5,6 @@ import posixpath
import re
import shutil
import stat
-import sys
import tempfile
from importlib import import_module
from os import path
@@ -335,9 +334,6 @@ class TemplateCommand(BaseCommand):
Make sure that the file is writeable.
Useful if our source is read-only.
"""
- if sys.platform.startswith('java'):
- # On Jython there is no os.access()
- return
if not os.access(filename, os.W_OK):
st = os.stat(filename)
new_permissions = stat.S_IMODE(st.st_mode) | stat.S_IWUSR
diff --git a/django/utils/autoreload.py b/django/utils/autoreload.py
index 0081b502fe..534fb4af46 100644
--- a/django/utils/autoreload.py
+++ b/django/utils/autoreload.py
@@ -307,24 +307,11 @@ def python_reloader(main_func, args, kwargs):
pass
-def jython_reloader(main_func, args, kwargs):
- from _systemrestart import SystemRestart
- _thread.start_new_thread(main_func, args)
- while True:
- if code_changed():
- raise SystemRestart
- time.sleep(1)
-
-
def main(main_func, args=None, kwargs=None):
if args is None:
args = ()
if kwargs is None:
kwargs = {}
- if sys.platform.startswith('java'):
- reloader = jython_reloader
- else:
- reloader = python_reloader
wrapped_main_func = check_errors(main_func)
- reloader(wrapped_main_func, args, kwargs)
+ python_reloader(wrapped_main_func, args, kwargs)
diff --git a/docs/howto/jython.txt b/docs/howto/jython.txt
index cdb9b06caf..9685ba2bb0 100644
--- a/docs/howto/jython.txt
+++ b/docs/howto/jython.txt
@@ -1,74 +1,14 @@
-========================
-Running Django on Jython
-========================
+================
+Django on Jython
+================
.. index:: Jython, Java, JVM
Jython_ is an implementation of Python that runs on the Java platform (JVM).
-This document will get you up and running with Django on top of Jython.
-
-Installing Jython
-=================
-
-Django works with Jython versions 2.7b2 and higher. See the Jython_ website for
-download and installation instructions.
.. _jython: http://www.jython.org/
-Creating a servlet container
-============================
-
-If you just want to experiment with Django, skip ahead to the next section;
-Django includes a lightweight Web server you can use for testing, so you won't
-need to set up anything else until you're ready to deploy Django in production.
-
-If you want to use Django on a production site, use a Java servlet container,
-such as `Apache Tomcat`_. Full JavaEE applications servers such as `GlassFish`_
-or `JBoss`_ are also OK, if you need the extra features they include.
-
-.. _`Apache Tomcat`: https://tomcat.apache.org/
-.. _GlassFish: https://javaee.github.io/glassfish/
-.. _JBoss: https://www.jboss.org/
-
-Installing Django
-=================
-
-The next step is to install Django itself. This is exactly the same as
-installing Django on standard Python, so see
-:ref:`removing-old-versions-of-django` and :ref:`install-django-code` for
-instructions.
-
-Installing Jython platform support libraries
-============================================
-
-The `django-jython`_ project contains database backends and management commands
-for Django/Jython development. Note that the builtin Django backends won't work
-on top of Jython.
-
-.. _`django-jython`: https://github.com/beachmachine/django-jython
-
-To install it, follow the `installation instructions`_ detailed on the project
-website. Also, read the `database backends`_ documentation there.
-
-.. _`installation instructions`: https://pythonhosted.org/django-jython/quickstart.html#install
-.. _`database backends`: https://pythonhosted.org/django-jython/database-backends.html
-
-Differences with Django on Jython
-=================================
-
-.. index:: JYTHONPATH
-
-At this point, Django on Jython should behave nearly identically to Django
-running on standard Python. However, are a few differences to keep in mind:
-
-* Remember to use the ``jython`` command instead of ``python``. The
- documentation uses ``python`` for consistency, but if you're using Jython
- you'll want to mentally replace ``python`` with ``jython`` every time it
- occurs.
-
-* Similarly, you'll need to use the ``JYTHONPATH`` environment variable
- instead of ``PYTHONPATH``.
-
-* Any part of Django that requires `Pillow`_ will not work.
-
-.. _Pillow: https://pillow.readthedocs.io/en/latest/
+If you want to use Jython (which supports only Python 2.7 at the time of this
+writing), you must use Django 1.11.x (the last series to support Python 2).
+Jython support may be readded to Django if a Python 3 compatible Jython is
+released.
diff --git a/docs/index.txt b/docs/index.txt
index a764ee1be1..6ab9fdb4c5 100644
--- a/docs/index.txt
+++ b/docs/index.txt
@@ -275,14 +275,6 @@ more efficiently - faster, and using fewer system resources.
* :doc:`Performance and optimization overview <topics/performance>`
-Python compatibility
-====================
-
-Django aims to be compatible with multiple different flavors and versions of
-Python:
-
-* :doc:`Jython support <howto/jython>`
-
Geographic framework
====================
diff --git a/docs/intro/install.txt b/docs/intro/install.txt
index 9861923b37..a0e7f54562 100644
--- a/docs/intro/install.txt
+++ b/docs/intro/install.txt
@@ -19,13 +19,6 @@ database called SQLite_ so you won't need to set up a database just yet.
Get the latest version of Python at https://www.python.org/downloads/ or with
your operating system's package manager.
-.. admonition:: Django on Jython
-
- If you use Jython_ (a Python implementation for the Java platform), you'll
- need to follow a few additional steps. See :doc:`/howto/jython` for details.
-
-.. _jython: http://www.jython.org/
-
You can verify that Python is installed by typing ``python`` from your shell;
you should see something like::
diff --git a/docs/releases/1.0.txt b/docs/releases/1.0.txt
index 65c185e82a..0c24ca3fb9 100644
--- a/docs/releases/1.0.txt
+++ b/docs/releases/1.0.txt
@@ -154,8 +154,6 @@ Django's codebase has been refactored to remove incompatibilities with
on the Java Virtual Machine. Django is now compatible with the forthcoming
Jython 2.5 release.
-See :doc:`/howto/jython`.
-
.. _Jython: http://www.jython.org/
Generic relations in forms and admin
diff --git a/docs/topics/install.txt b/docs/topics/install.txt
index 60affd4f29..ab6b41a3ee 100644
--- a/docs/topics/install.txt
+++ b/docs/topics/install.txt
@@ -15,10 +15,10 @@ your operating system's package manager.
.. admonition:: Django on Jython
- If you use Jython_ (a Python implementation for the Java platform), you'll
- need to follow a few additional steps. See :doc:`/howto/jython` for details.
+ Jython_ (a Python implementation for the Java platform) is not compatible
+ with Python 3, so Django ≥ 2.0 cannot run on Jython.
-.. _jython: http://jython.org/
+.. _jython: http://www.jython.org/
.. admonition:: Python on Windows
diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py
index 8fd564468d..4617978947 100644
--- a/tests/admin_scripts/tests.py
+++ b/tests/admin_scripts/tests.py
@@ -95,15 +95,8 @@ class AdminScriptTestCase(unittest.TestCase):
else:
os.remove(full_name)
- # Also try to remove the compiled file; if it exists, it could
+ # Also remove a __pycache__ directory, if it exists; it could
# mess up later tests that depend upon the .py file not existing
- try:
- if sys.platform.startswith('java'):
- # Jython produces module$py.class files
- os.remove(re.sub(r'\.py$', '$py.class', full_name))
- except OSError:
- pass
- # Also remove a __pycache__ directory, if it exists
cache_name = os.path.join(self.test_dir, '__pycache__')
if os.path.isdir(cache_name):
shutil.rmtree(cache_name)
@@ -133,11 +126,6 @@ class AdminScriptTestCase(unittest.TestCase):
# Define a temporary environment for the subprocess
test_environ = os.environ.copy()
- if sys.platform.startswith('java'):
- python_path_var_name = 'JYTHONPATH'
- else:
- python_path_var_name = 'PYTHONPATH'
-
old_cwd = os.getcwd()
# Set the test environment
@@ -147,7 +135,7 @@ class AdminScriptTestCase(unittest.TestCase):
del test_environ['DJANGO_SETTINGS_MODULE']
python_path = [base_dir, django_dir, tests_dir]
python_path.extend(ext_backend_base_dirs)
- test_environ[python_path_var_name] = os.pathsep.join(python_path)
+ test_environ['PYTHONPATH'] = os.pathsep.join(python_path)
test_environ['PYTHONWARNINGS'] = ''
# Move to the test directory and run