From b39d27954dc163b84b582bd7b4c98c59cd7bc291 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 26 Jun 2018 19:11:55 +0200 Subject: [PATCH] Remove support for Python 2.7 issue7497 review53261002 --- .drone.yml | 6 ------ CHANGELOG | 4 +++- INSTALL | 2 +- account.py | 3 +-- setup.py | 20 +++++++------------ stock.py | 24 +++++++++------------- tests/scenario_stock_consignment.rst | 30 ++++++++++++++-------------- tox.ini | 6 +++--- 8 files changed, 39 insertions(+), 56 deletions(-) diff --git a/.drone.yml b/.drone.yml index e0bc2f7026..5da6083eb7 100644 --- a/.drone.yml +++ b/.drone.yml @@ -25,12 +25,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 94d01a64ec..585fc68878 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,7 @@ +* Remove support for Python 2.7 + Version 4.8.0 - 2018-04-23 * Bug fixes (see mercurial logs for details) Version 4.6.0 - 2017-10-30 -* Initial release \ No newline at end of file +* Initial release diff --git a/INSTALL b/INSTALL index c8774a6a45..3eac2ab7a6 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,7 @@ Installing trytond_stock_consignment 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_account_invoice (http://www.tryton.org/) * trytond_account_invoice_line_standalone (http://www.tryton.org/) diff --git a/account.py b/account.py index a50ead2f97..2243828d97 100644 --- a/account.py +++ b/account.py @@ -5,8 +5,7 @@ from trytond.pool import PoolMeta, Pool __all__ = ['InvoiceLine'] -class InvoiceLine: - __metaclass__ = PoolMeta +class InvoiceLine(metaclass=PoolMeta): __name__ = 'account.invoice.line' @property diff --git a/setup.py b/setup.py index d72c13be9c..a1ec48838f 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')) @@ -103,7 +101,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', @@ -112,6 +109,7 @@ setup(name=name, 'Topic :: Office/Business', ], license='GPL-3', + python_requires='>=3.4', install_requires=requires, dependency_links=dependency_links, zip_safe=False, @@ -122,8 +120,4 @@ setup(name=name, test_suite='tests', test_loader='trytond.test_loader:Loader', tests_require=tests_require, - use_2to3=True, - convert_2to3_doctests=[ - 'tests/scenario_stock_consignment.rst', - ], ) diff --git a/stock.py b/stock.py index 8f9ab88c65..a47fc10d21 100644 --- a/stock.py +++ b/stock.py @@ -12,8 +12,7 @@ __all__ = ['Location', 'LocationLeadTime', 'Move', 'ShipmentInternal', 'Inventory', 'OrderPoint'] -class Location: - __metaclass__ = PoolMeta +class Location(metaclass=PoolMeta): __name__ = 'stock.location' consignment_party = fields.Many2One( @@ -32,8 +31,7 @@ class Location: return domain -class LocationLeadTime: - __metaclass__ = PoolMeta +class LocationLeadTime(metaclass=PoolMeta): __name__ = 'stock.location.lead_time' @classmethod @@ -57,10 +55,10 @@ def set_origin_consignment(func): if line: lines[move] = line if lines: - InvoiceLine.save(lines.values()) - for move, line in lines.iteritems(): + InvoiceLine.save(list(lines.values())) + for move, line in lines.items(): move.origin = line - cls.save(lines.keys()) + cls.save(list(lines.keys())) return func(cls, moves) return wrapper @@ -84,8 +82,7 @@ def unset_origin_consignment(func): return wrapper -class Move: - __metaclass__ = PoolMeta +class Move(metaclass=PoolMeta): __name__ = 'stock.move' @classmethod @@ -245,8 +242,7 @@ class Move: super(Move, cls).cancel(moves) -class ShipmentInternal: - __metaclass__ = PoolMeta +class ShipmentInternal(metaclass=PoolMeta): __name__ = 'stock.shipment.internal' @classmethod @@ -271,8 +267,7 @@ class ShipmentInternal: pattern=pattern) -class Inventory: - __metaclass__ = PoolMeta +class Inventory(metaclass=PoolMeta): __name__ = 'stock.inventory' @classmethod @@ -284,8 +279,7 @@ class Inventory: ] -class OrderPoint: - __metaclass__ = PoolMeta +class OrderPoint(metaclass=PoolMeta): __name__ = 'stock.order_point' @classmethod diff --git a/tests/scenario_stock_consignment.rst b/tests/scenario_stock_consignment.rst index 004681528b..0e6d2cce14 100644 --- a/tests/scenario_stock_consignment.rst +++ b/tests/scenario_stock_consignment.rst @@ -119,14 +119,14 @@ Fill supplier consignment location:: >>> move.to_location = supplier_consignment_loc >>> shipment.click('wait') >>> shipment.state - u'waiting' + 'waiting' >>> shipment.click('assign_try') True >>> shipment.state - u'assigned' + 'assigned' >>> shipment.click('done') >>> shipment.state - u'done' + 'done' Use supplier consignment stock:: @@ -140,14 +140,14 @@ Use supplier consignment stock:: >>> move.to_location = storage_loc >>> shipment.click('wait') >>> shipment.state - u'waiting' + 'waiting' >>> shipment.click('assign_try') True >>> shipment.state - u'assigned' + 'assigned' >>> shipment.click('done') >>> shipment.state - u'done' + 'done' Check supplier invoice line:: @@ -199,14 +199,14 @@ Fill customer consignment location:: >>> move.to_location = customer_consignment_loc >>> shipment.click('wait') >>> shipment.state - u'waiting' + 'waiting' >>> shipment.click('assign_try') True >>> shipment.state - u'assigned' + 'assigned' >>> shipment.click('done') >>> shipment.state - u'done' + 'done' Use customer consignment stock:: @@ -220,14 +220,14 @@ Use customer consignment stock:: >>> move.to_location = customer_loc >>> shipment.click('wait') >>> shipment.state - u'waiting' + 'waiting' >>> shipment.click('assign_try') True >>> shipment.state - u'assigned' + 'assigned' >>> shipment.click('done') >>> shipment.state - u'done' + 'done' Check customer invoice line:: @@ -258,17 +258,17 @@ Cancel supplier consignment stock:: >>> move.to_location = storage_loc >>> shipment.click('wait') >>> shipment.state - u'waiting' + 'waiting' >>> shipment.click('assign_try') True >>> shipment.state - u'assigned' + 'assigned' >>> move, = shipment.moves >>> bool(move.origin) True >>> shipment.click('cancel') >>> shipment.state - u'cancel' + 'cancel' >>> move, = shipment.moves >>> bool(move.origin) False diff --git a/tox.ini b/tox.ini index 2082ab4f4d..adbcbf8431 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://}