packages/python/python-nodeenv/replace-removed-pipes-import.patch

103 lines
3.4 KiB
Diff

From c1dffc5c64377cfcda9f2befd357e4791903bf39 Mon Sep 17 00:00:00 2001
From: Ben Beasley <code@musicinmybrain.net>
Date: Tue, 28 May 2024 14:12:55 -0400
Subject: [PATCH] On Python 3.3+, replace pipes.quote with shlex.quote (#342)
* On Python 3.3+, replace pipes.quote with shlex.quote
The pipes.quote() function was undocumented, and the pipes module was
deprecated in Python 3.11 and will be removed in Python 3.13.
Fixes #341.
* Choose shlex or pipes based on Python version
It was pointed out that pyupgrade can handle this better than
try/except.
---
nodeenv.py | 13 ++++++++-----
tests/nodeenv_test.py | 9 ++++++---
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/nodeenv.py b/nodeenv.py
index 7d68237..88c849f 100644
--- a/nodeenv.py
+++ b/nodeenv.py
@@ -23,7 +23,10 @@
import argparse
import subprocess
import tarfile
-import pipes
+if sys.version_info < (3, 3):
+ from pipes import quote as _quote
+else:
+ from shlex import quote as _quote
import platform
import zipfile
import shutil
@@ -733,7 +736,7 @@ def build_node_from_src(env_dir, src_dir, node_src_dir, args):
conf_cmd = [
'./configure',
- '--prefix=%s' % pipes.quote(env_dir)
+ '--prefix=%s' % _quote(env_dir)
]
if args.without_ssl:
conf_cmd.append('--without-ssl')
@@ -815,7 +818,7 @@ def install_npm(env_dir, _src_dir, args):
(
'bash', '-c',
'. {0} && npm install -g npm@{1}'.format(
- pipes.quote(join(env_dir, 'bin', 'activate')),
+ _quote(join(env_dir, 'bin', 'activate')),
args.npm,
)
),
@@ -883,10 +886,10 @@ def install_packages(env_dir, args):
activate_path = join(env_dir, 'bin', 'activate')
real_npm_ver = args.npm if args.npm.count(".") == 2 else args.npm + ".0"
if args.npm == "latest" or real_npm_ver >= "1.0.0":
- cmd = '. ' + pipes.quote(activate_path) + \
+ cmd = '. ' + _quote(activate_path) + \
' && npm install -g %(pack)s'
else:
- cmd = '. ' + pipes.quote(activate_path) + \
+ cmd = '. ' + _quote(activate_path) + \
' && npm install %(pack)s' + \
' && npm activate %(pack)s'
diff --git a/tests/nodeenv_test.py b/tests/nodeenv_test.py
index 09bcbb0..22dd5eb 100644
--- a/tests/nodeenv_test.py
+++ b/tests/nodeenv_test.py
@@ -2,7 +2,10 @@
from __future__ import unicode_literals
import os.path
-import pipes
+if sys.version_info < (3, 3):
+ from pipes import quote as _quote
+else:
+ from shlex import quote as _quote
import subprocess
import sys
import sysconfig
@@ -29,7 +32,7 @@ def test_smoke(tmpdir):
'-m', 'nodeenv', '--prebuilt', nenv_path,
])
assert os.path.exists(nenv_path)
- activate = pipes.quote(os.path.join(nenv_path, 'bin', 'activate'))
+ activate = _quote(os.path.join(nenv_path, 'bin', 'activate'))
subprocess.check_call([
'sh', '-c', '. {} && node --version'.format(activate),
])
@@ -44,7 +47,7 @@ def test_smoke_n_system_special_chars(tmpdir):
'-m', 'nodeenv', '-n', 'system', nenv_path,
))
assert os.path.exists(nenv_path)
- activate = pipes.quote(os.path.join(nenv_path, 'bin', 'activate'))
+ activate = _quote(os.path.join(nenv_path, 'bin', 'activate'))
subprocess.check_call([
'sh', '-c', '. {} && node --version'.format(activate),
])