diff --git a/.drone.yml b/.drone.yml index 7230ae65f8..764e69cd9c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,12 +26,6 @@ services: matrix: include: - - IMAGE: python:2.7 - TOXENV: py27 - DATABASE: sqlite - - IMAGE: python:2.7 - TOXENV: py27 - DATABASE: postgresql - IMAGE: python:3.4 TOXENV: py34 DATABASE: sqlite diff --git a/CHANGELOG b/CHANGELOG index 339b67e2f1..e869c4b7a6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Remove support for Python 2.7 + Version 4.8.0 - 2018-04-23 * Bug fixes (see mercurial logs for details) diff --git a/INSTALL b/INSTALL index b04d16a98d..56d96f1e14 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,7 @@ Installing trytond_stock_package_shipping_dpd Prerequisites ------------- - * Python 2.7 or later (http://www.python.org/) + * Python 3.4 or later (http://www.python.org/) * trytond (http://www.tryton.org/) * trytond_party (http://www.tryton.org/) * trytond_product (http://www.tryton.org/) diff --git a/carrier.py b/carrier.py index 2d87551d99..3b63667311 100644 --- a/carrier.py +++ b/carrier.py @@ -1,6 +1,5 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from __future__ import absolute_import import locale @@ -60,8 +59,7 @@ class CredentialDPD(ModelSQL, ModelView, MatchMixin): self.save() -class Carrier: - __metaclass__ = PoolMeta +class Carrier(metaclass=PoolMeta): __name__ = 'carrier' @classmethod diff --git a/configuration.py b/configuration.py index 4b4b60dd89..17312b9978 100644 --- a/configuration.py +++ b/configuration.py @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from urlparse import urljoin +from urllib.parse import urljoin from zeep import Client from zeep.transports import Transport diff --git a/setup.py b/setup.py index 1d7cbdd0dc..ad08e11156 100644 --- a/setup.py +++ b/setup.py @@ -1,15 +1,12 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from setuptools import setup -import re -import os import io -try: - from configparser import ConfigParser -except ImportError: - from ConfigParser import ConfigParser +import os +import re +from configparser import ConfigParser +from setuptools import setup def read(fname): @@ -27,6 +24,7 @@ def get_require_version(name): major_version, minor_version + 1) return require + config = ConfigParser() config.readfp(open('tryton.cfg')) info = dict(config.items('tryton')) @@ -101,7 +99,6 @@ setup(name=name, 'Natural Language :: Slovenian', 'Natural Language :: Spanish', 'Operating System :: OS Independent', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', @@ -110,6 +107,7 @@ setup(name=name, 'Topic :: Office/Business', ], license='GPL-3', + python_requires='>=3.4', install_requires=requires, dependency_links=dependency_links, zip_safe=False, @@ -120,5 +118,4 @@ setup(name=name, test_suite='tests', test_loader='trytond.test_loader:Loader', tests_require=tests_require, - use_2to3=True, ) diff --git a/stock.py b/stock.py index 39a92c618d..9ab8f3aaa4 100644 --- a/stock.py +++ b/stock.py @@ -1,6 +1,5 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from __future__ import absolute_import import locale from io import BytesIO @@ -18,8 +17,7 @@ from .configuration import get_client, SHIPMENT_SERVICE __all__ = ['ShipmentOut', 'CreateShipping', 'CreateDPDShipping'] -class ShipmentOut: - __metaclass__ = PoolMeta +class ShipmentOut(metaclass=PoolMeta): __name__ = 'stock.shipment.out' @classmethod @@ -38,9 +36,8 @@ class ShipmentOut: }) -class CreateShipping: +class CreateShipping(metaclass=PoolMeta): __name__ = 'stock.shipment.create_shipping' - __metaclass__ = PoolMeta dpd = StateAction( 'stock_package_shipping_dpd.act_create_shipping_dpd_wizard') diff --git a/tests/scenario_shipping_dpd.rst b/tests/scenario_shipping_dpd.rst index 52eb6f1642..5f13881cff 100644 --- a/tests/scenario_shipping_dpd.rst +++ b/tests/scenario_shipping_dpd.rst @@ -133,7 +133,7 @@ Create an Inventory:: >>> inventory_line.expected_quantity = 0.0 >>> inventory.click('confirm') >>> inventory.state - u'done' + 'done' Create Package Type:: diff --git a/tox.ini b/tox.ini index f22a71a175..9783ca7b0b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,11 @@ [tox] -envlist = {py27,py34,py35,py36}-{sqlite,postgresql},pypy-{sqlite,postgresql} +envlist = {py34,py35,py36}-{sqlite,postgresql},pypy3-{sqlite,postgresql} [testenv] commands = {envpython} setup.py test deps = - {py27,py34,py35,py36}-postgresql: psycopg2 >= 2.5 - pypy-postgresql: psycopg2cffi >= 2.5 + {py34,py35,py36}-postgresql: psycopg2 >= 2.5 + pypy3-postgresql: psycopg2cffi >= 2.5 sqlite: sqlitebck setenv = sqlite: TRYTOND_DATABASE_URI={env:SQLITE_URI:sqlite://}