~cr3/checkbox/graph

« back to all changes in this revision

Viewing changes to checkbox/lib/url.py

  • Committer: Marc Tardif
  • Date: 2009-05-15 21:15:03 UTC
  • Revision ID: marc.tardif@canonical.com-20090515211503-pe3bt6lar2axclb5
Added url parsing module to supplement urlparse.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# This file is part of Checkbox.
 
3
#
 
4
# Copyright 2008 Canonical Ltd.
 
5
#
 
6
# Checkbox is free software: you can redistribute it and/or modify
 
7
# it under the terms of the GNU General Public License as published by
 
8
# the Free Software Foundation, either version 3 of the License, or
 
9
# (at your option) any later version.
 
10
#
 
11
# Checkbox is distributed in the hope that it will be useful,
 
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
# GNU General Public License for more details.
 
15
#
 
16
# You should have received a copy of the GNU General Public License
 
17
# along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.
 
18
#
 
19
import urlparse
 
20
 
 
21
 
 
22
def parse_url(url):
 
23
    scheme, host, path, params, query, fragment = urlparse.urlparse(url)
 
24
 
 
25
    if "@" in host:
 
26
        username, host = host.rsplit("@", 1)
 
27
        if ":" in username:
 
28
            username, password = username.split(":", 1)
 
29
        else:
 
30
            password = None
 
31
    else:
 
32
        username = password = None
 
33
 
 
34
    if ":" in host:
 
35
        host, port = host.split(":")
 
36
        assert port.isdigit()
 
37
        port = int(port)
 
38
    else:
 
39
        port = None
 
40
 
 
41
    return scheme, username, password, host, port, path, params, query, fragment