PageRenderTime 8ms CodeModel.GetById 1ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/ansible/parsing/quoting.py

https://github.com/debfx/ansible
Python | 31 lines | 11 code | 3 blank | 17 comment | 4 complexity | 9ee2b9b9b1dd75930606a047e9a5966f MD5 | raw file
 1# (c) 2014 James Cammarata, <jcammarata@ansible.com>
 2#
 3# This file is part of Ansible
 4#
 5# Ansible is free software: you can redistribute it and/or modify
 6# it under the terms of the GNU General Public License as published by
 7# the Free Software Foundation, either version 3 of the License, or
 8# (at your option) any later version.
 9#
10# Ansible is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with Ansible.  If not, see <http://www.gnu.org/licenses/>.
17
18# Make coding more python3-ish
19from __future__ import (absolute_import, division, print_function)
20__metaclass__ = type
21
22
23def is_quoted(data):
24    return len(data) > 1 and data[0] == data[-1] and data[0] in ('"', "'") and data[-2] != '\\'
25
26
27def unquote(data):
28    ''' removes first and last quotes from a string, if the string starts and ends with the same quotes '''
29    if is_quoted(data):
30        return data[1:-1]
31    return data