From ca02d12fc6eb201f05a1346612a3adfa0b83fb26 Mon Sep 17 00:00:00 2001 From: Mike Naberezny Date: Sat, 24 Jun 2023 08:29:59 -0700 Subject: [PATCH] Remove support for Python 2 --- .github/workflows/main.yml | 2 +- CHANGES.rst | 5 ++--- README.rst | 4 ++-- py65/monitor.py | 7 ++----- py65/tests/test_monitor.py | 8 +++----- setup.py | 11 ++--------- 6 files changed, 12 insertions(+), 25 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 239b184..f59c9e2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7, 3.6, 3.7, 3.8, 3.9, "3.10", 3.11] + python-version: [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 c19c9b1..ef6853c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,9 +1,8 @@ 2.0.0.dev0 (Next Release) ------------------------- -- Support for some older Python versions has been dropped. On Python 3, - Py65 now requires Python 3.6 or later. On Python 2, Py65 now requires - Python 2.7. +- 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 diff --git a/README.rst b/README.rst index 6a9d51e..0168ca1 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 ``pip`` to automatically install or upgrade Py65:: +use ``pip3`` to automatically install or upgrade Py65:: - $ pip install -U py65 + $ pip3 install -U py65 Devices ------- diff --git a/py65/monitor.py b/py65/monitor.py index c288bdc..99f513a 100644 --- a/py65/monitor.py +++ b/py65/monitor.py @@ -22,6 +22,8 @@ import shlex import sys from asyncore import compact_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 @@ -32,11 +34,6 @@ 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 2060463..8138876 100644 --- a/py65/tests/test_monitor.py +++ b/py65/tests/test_monitor.py @@ -2,12 +2,10 @@ import unittest import sys import os import tempfile -from py65.monitor import Monitor -try: - from StringIO import StringIO -except ImportError: # Python 3 - from io import StringIO +from io import StringIO + +from py65.monitor import Monitor class MonitorTests(unittest.TestCase): diff --git a/setup.py b/setup.py index bb21750..0057465 100644 --- a/setup.py +++ b/setup.py @@ -3,14 +3,9 @@ __version__ = '2.0.0.dev0' import sys py_version = sys.version_info[:2] -PY3 = py_version[0] == 3 -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') +if py_version < (3, 6): + raise RuntimeError('On Python 3, Py65 requires Python 3.6 or later') from setuptools import setup, find_packages @@ -24,8 +19,6 @@ 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',