From 82fe4fd9bbe50c7e8285968f2caeb4688fc19f66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20H=C3=BChne?= Date: Fri, 17 Jun 2016 17:43:16 +0200 Subject: [PATCH] [#3126] remove backported `subprocess.check_output` --- ckan/lib/util.py | 47 ----------------------------- ckan/tests/test_coding_standards.py | 10 +++--- doc/conf.py | 4 +-- 3 files changed, 7 insertions(+), 54 deletions(-) delete mode 100644 ckan/lib/util.py diff --git a/ckan/lib/util.py b/ckan/lib/util.py deleted file mode 100644 index 3cf19c348d1..00000000000 --- a/ckan/lib/util.py +++ /dev/null @@ -1,47 +0,0 @@ -# encoding: utf-8 - -'''Shared utility functions for any Python code to use. - -Unlike :py:mod:`ckan.lib.helpers`, the functions in this module are not -available to templates. - -''' -import subprocess - - -# We implement our own check_output() function because -# subprocess.check_output() isn't in Python 2.6. -# This code is copy-pasted from Python 2.7 and adapted to make it work with -# Python 2.6. -# http://hg.python.org/cpython/file/d37f963394aa/Lib/subprocess.py#l544 -def check_output(*popenargs, **kwargs): - r"""Run command with arguments and return its output as a byte string. - - If the exit code was non-zero it raises a CalledProcessError. The - CalledProcessError object will have the return code in the returncode - attribute and output in the output attribute. - - The arguments are the same as for the Popen constructor. Example: - - >>> check_output(["ls", "-l", "/dev/null"]) - 'crw-rw-rw- 1 root root 1, 3 Oct 18 2007 /dev/null\n' - - The stdout argument is not allowed as it is used internally. - To capture standard error in the result, use stderr=STDOUT. - - >>> check_output(["/bin/sh", "-c", - ... "ls -l non_existent_file ; exit 0"], - ... stderr=STDOUT) - 'ls: non_existent_file: No such file or directory\n' - """ - if 'stdout' in kwargs: - raise ValueError('stdout argument not allowed, it will be overridden.') - process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) - output, unused_err = process.communicate() - retcode = process.poll() - if retcode: - cmd = kwargs.get("args") - if cmd is None: - cmd = popenargs[0] - raise subprocess.CalledProcessError(retcode, cmd) - return output diff --git a/ckan/tests/test_coding_standards.py b/ckan/tests/test_coding_standards.py index 8726f277bd3..6010449676d 100644 --- a/ckan/tests/test_coding_standards.py +++ b/ckan/tests/test_coding_standards.py @@ -15,8 +15,6 @@ import re import subprocess -import ckan.lib.util as util - def test_building_the_docs(): '''There should be no warnings or errors when building the Sphinx docs. @@ -28,8 +26,12 @@ def test_building_the_docs(): ''' try: - output = util.check_output( - ['python', 'setup.py', 'build_sphinx', '--all-files', '--fresh-env'], + output = subprocess.check_output( + ['python', + 'setup.py', + 'build_sphinx', + '--all-files', + '--fresh-env'], stderr=subprocess.STDOUT) except subprocess.CalledProcessError as err: assert False, ( diff --git a/doc/conf.py b/doc/conf.py index 635dba13f16..3ed57700fbb 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -18,8 +18,6 @@ import os import subprocess -import ckan.lib.util as util - # If your extensions (or modules documented by autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. @@ -126,7 +124,7 @@ def latest_release_tag(): This requires git to be installed. ''' - git_tags = util.check_output( + git_tags = subprocess.check_output( ['git', 'tag', '-l'], stderr=subprocess.STDOUT).split() # FIXME: We could do more careful pattern matching against ckan-X.Y.Z here.