diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f59c9e2..239b184 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.6, 3.7, 3.8, 3.9, "3.10", 3.11] + python-version: [2.7, 3.6, 3.7, 3.8, 3.9, "3.10", 3.11] os: [ubuntu-20.04, windows-2019] runs-on: ${{ matrix.os }} diff --git a/CHANGES.rst b/CHANGES.rst index 5eb31e8..4ff694e 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,9 +1,6 @@ -2.0.0.dev0 (Next Release) +1.2.0.dev0 (Next Release) ------------------------- -- Support for some older Python versions has been dropped. Py65 - now requires Python 3.6 or later. - - Fixed a bug with character input that would cause characters to be dropped when pasting in larger amounts of text. This makes it possible to paste programs into EhBASIC and Taliforth. Patch by SamCoVT. diff --git a/README.rst b/README.rst index 0168ca1..6a9d51e 100644 --- a/README.rst +++ b/README.rst @@ -20,9 +20,9 @@ Installation Py65 packages are `available `_ on the Python Package Index (PyPI). You download them from there or you can -use ``pip3`` to automatically install or upgrade Py65:: +use ``pip`` to automatically install or upgrade Py65:: - $ pip3 install -U py65 + $ pip install -U py65 Devices ------- diff --git a/py65/monitor.py b/py65/monitor.py index 5726281..3b67800 100644 --- a/py65/monitor.py +++ b/py65/monitor.py @@ -22,8 +22,6 @@ import shlex import sys import traceback -from urllib.request import urlopen - from py65.devices.mpu6502 import MPU as NMOS6502 from py65.devices.mpu65c02 import MPU as CMOS65C02 from py65.devices.mpu65org16 import MPU as V65Org16 @@ -34,6 +32,11 @@ from py65.utils import console from py65.utils.conversions import itoa from py65.memory import ObservableMemory +try: + from urllib2 import urlopen +except ImportError: # Python 3 + from urllib.request import urlopen + class Monitor(cmd.Cmd): Microprocessors = {'6502': NMOS6502, '65C02': CMOS65C02, diff --git a/py65/tests/test_monitor.py b/py65/tests/test_monitor.py index 8138876..2060463 100644 --- a/py65/tests/test_monitor.py +++ b/py65/tests/test_monitor.py @@ -2,11 +2,13 @@ import unittest import sys import os import tempfile - -from io import StringIO - from py65.monitor import Monitor +try: + from StringIO import StringIO +except ImportError: # Python 3 + from io import StringIO + class MonitorTests(unittest.TestCase): diff --git a/setup.py b/setup.py index 0057465..bb21750 100644 --- a/setup.py +++ b/setup.py @@ -3,9 +3,14 @@ __version__ = '2.0.0.dev0' import sys py_version = sys.version_info[:2] +PY3 = py_version[0] == 3 -if py_version < (3, 6): - raise RuntimeError('On Python 3, Py65 requires Python 3.6 or later') +if PY3: + if py_version < (3, 4): + raise RuntimeError('On Python 3, Py65 requires Python 3.6 or later') +else: + if py_version < (2, 7): + raise RuntimeError('On Python 2, Py65 requires Python 2.7 or later') from setuptools import setup, find_packages @@ -19,6 +24,8 @@ CLASSIFIERS = [ 'Natural Language :: English', 'Operating System :: POSIX', 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7',