Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/shellescape-3.4.1.dist-info/METADATA @ 5:9b1c78e6ba9c draft default tip
"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author | shellac |
---|---|
date | Mon, 01 Jun 2020 08:59:25 -0400 |
parents | 79f47841a781 |
children |
comparison
equal
deleted
inserted
replaced
4:79f47841a781 | 5:9b1c78e6ba9c |
---|---|
1 Metadata-Version: 2.0 | |
2 Name: shellescape | |
3 Version: 3.4.1 | |
4 Summary: Shell escape a string to safely use it as a token in a shell command (backport of Python shlex.quote for Python versions 2.x & < 3.3) | |
5 Home-page: https://github.com/chrissimpkins/shellescape | |
6 Author: Christopher Simpkins | |
7 Author-email: git.simpkins@gmail.com | |
8 License: MIT license | |
9 Keywords: shell,quote,escape,backport,command line,command,subprocess | |
10 Platform: any | |
11 Classifier: Development Status :: 5 - Production/Stable | |
12 Classifier: Intended Audience :: Developers | |
13 Classifier: Natural Language :: English | |
14 Classifier: License :: OSI Approved :: MIT License | |
15 Classifier: Programming Language :: Python | |
16 Classifier: Programming Language :: Python :: 2 | |
17 Classifier: Programming Language :: Python :: 3 | |
18 Classifier: Operating System :: MacOS :: MacOS X | |
19 Classifier: Operating System :: POSIX | |
20 Classifier: Operating System :: Unix | |
21 Classifier: Operating System :: Microsoft :: Windows | |
22 | |
23 Source Repository: https://github.com/chrissimpkins/shellescape | |
24 | |
25 Description | |
26 ----------- | |
27 | |
28 The shellescape Python module defines the ``shellescape.quote()`` function that returns a shell-escaped version of a Python string. This is a backport of the ``shlex.quote()`` function from Python 3.4.3 that makes it accessible to users of Python 3 versions < 3.3 and all Python 2.x versions. | |
29 | |
30 quote(s) | |
31 -------- | |
32 | |
33 >From the Python documentation: | |
34 | |
35 Return a shell-escaped version of the string s. The returned value is a string that can safely be used as one token in a shell command line, for cases where you cannot use a list. | |
36 | |
37 This idiom would be unsafe: | |
38 | |
39 .. code-block:: python | |
40 | |
41 >>> filename = 'somefile; rm -rf ~' | |
42 >>> command = 'ls -l {}'.format(filename) | |
43 >>> print(command) # executed by a shell: boom! | |
44 ls -l somefile; rm -rf ~ | |
45 | |
46 | |
47 ``quote()`` lets you plug the security hole: | |
48 | |
49 .. code-block:: python | |
50 | |
51 >>> command = 'ls -l {}'.format(quote(filename)) | |
52 >>> print(command) | |
53 ls -l 'somefile; rm -rf ~' | |
54 >>> remote_command = 'ssh home {}'.format(quote(command)) | |
55 >>> print(remote_command) | |
56 ssh home 'ls -l '"'"'somefile; rm -rf ~'"'"'' | |
57 | |
58 | |
59 The quoting is compatible with UNIX shells and with ``shlex.split()``: | |
60 | |
61 .. code-block:: python | |
62 | |
63 >>> remote_command = split(remote_command) | |
64 >>> remote_command | |
65 ['ssh', 'home', "ls -l 'somefile; rm -rf ~'"] | |
66 >>> command = split(remote_command[-1]) | |
67 >>> command | |
68 ['ls', '-l', 'somefile; rm -rf ~'] | |
69 | |
70 | |
71 Usage | |
72 ----- | |
73 | |
74 Include ``shellescape`` in your project setup.py file ``install_requires`` dependency definition list: | |
75 | |
76 .. code-block:: python | |
77 | |
78 setup( | |
79 ... | |
80 install_requires=['shellescape'], | |
81 ... | |
82 ) | |
83 | |
84 | |
85 Then import the ``quote`` function into your module(s) and use it as needed: | |
86 | |
87 .. code-block:: python | |
88 | |
89 #!/usr/bin/env python | |
90 # -*- coding: utf-8 -*- | |
91 | |
92 from shellescape import quote | |
93 | |
94 filename = "somefile; rm -rf ~" | |
95 escaped_shell_command = 'ls -l {}'.format(quote(filename)) | |
96 | |
97 | |
98 Issue Reporting | |
99 --------------- | |
100 | |
101 Issue reporting is available on the `GitHub repository <https://github.com/chrissimpkins/shellescape/issues>`_ | |
102 | |
103 | |
104 | |
105 |