Mercurial > cpython-lru_cache-weakref
annotate Doc/lib/liburlparse.tex @ 25838:8540887bcec6 2.2
Backport of 2.183:
Fix memory leak in add_subclass() found by NealN with valgrind.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Fri, 18 Oct 2002 13:42:21 +0000 |
| parents | 4a92c7d9d415 |
| children | 032f196059aa |
| rev | line source |
|---|---|
| 8918 | 1 \section{\module{urlparse} --- |
|
14185
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
2 Parse URLs into components} |
|
8716
760dcf197048
Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents:
7877
diff
changeset
|
3 \declaremodule{standard}{urlparse} |
|
760dcf197048
Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents:
7877
diff
changeset
|
4 |
| 8855 | 5 \modulesynopsis{Parse URLs into components.} |
|
8716
760dcf197048
Adjusted to use the new module synopsis support macros.
Fred Drake <fdrake@acm.org>
parents:
7877
diff
changeset
|
6 |
| 2449 | 7 \index{WWW} |
|
18574
346dcafc878b
Minor changes to match the style guide.
Fred Drake <fdrake@acm.org>
parents:
14185
diff
changeset
|
8 \index{World Wide Web} |
| 2449 | 9 \index{URL} |
| 10 \indexii{URL}{parsing} | |
| 11 \indexii{relative}{URL} | |
| 12 | |
|
2453
cdd3a721b40e
a few typographical changes (e.g. -- => ---) and lots of new stuff in the WWW chapter
Guido van Rossum <guido@python.org>
parents:
2449
diff
changeset
|
13 |
|
14185
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
14 This module defines a standard interface to break Uniform Resource |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
15 Locator (URL) strings up in components (addressing scheme, network |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
16 location, path etc.), to combine the components back into a URL |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
17 string, and to convert a ``relative URL'' to an absolute URL given a |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
18 ``base URL.'' |
| 2449 | 19 |
|
7144
4ef6a83b2e62
Update comment about relative URL internet draft to reflect current RFC status;
Fred Drake <fdrake@acm.org>
parents:
6963
diff
changeset
|
20 The module has been designed to match the Internet RFC on Relative |
|
4ef6a83b2e62
Update comment about relative URL internet draft to reflect current RFC status;
Fred Drake <fdrake@acm.org>
parents:
6963
diff
changeset
|
21 Uniform Resource Locators (and discovered a bug in an earlier |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
22 draft!). |
| 2449 | 23 |
| 24 It defines the following functions: | |
| 25 | |
|
6963
10f2921a091e
Reduce warning count from partparse.py.
Fred Drake <fdrake@acm.org>
parents:
5818
diff
changeset
|
26 \begin{funcdesc}{urlparse}{urlstring\optional{, default_scheme\optional{, allow_fragments}}} |
| 2449 | 27 Parse a URL into 6 components, returning a 6-tuple: (addressing |
| 28 scheme, network location, path, parameters, query, fragment | |
| 29 identifier). This corresponds to the general structure of a URL: | |
| 30 \code{\var{scheme}://\var{netloc}/\var{path};\var{parameters}?\var{query}\#\var{fragment}}. | |
| 31 Each tuple item is a string, possibly empty. | |
| 32 The components are not broken up in smaller parts (e.g. the network | |
| 33 location is a single string), and \% escapes are not expanded. | |
|
2576
f47bc5554418
mass changes; fix titles; add examples; correct typos; clarifications;
Guido van Rossum <guido@python.org>
parents:
2453
diff
changeset
|
34 The delimiters as shown above are not part of the tuple items, |
|
f47bc5554418
mass changes; fix titles; add examples; correct typos; clarifications;
Guido van Rossum <guido@python.org>
parents:
2453
diff
changeset
|
35 except for a leading slash in the \var{path} component, which is |
|
f47bc5554418
mass changes; fix titles; add examples; correct typos; clarifications;
Guido van Rossum <guido@python.org>
parents:
2453
diff
changeset
|
36 retained if present. |
| 2449 | 37 |
| 38 Example: | |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
39 |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
40 \begin{verbatim} |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
41 urlparse('http://www.cwi.nl:80/%7Eguido/Python.html') |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
42 \end{verbatim} |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
43 |
| 2449 | 44 yields the tuple |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
45 |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
46 \begin{verbatim} |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
47 ('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '') |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
48 \end{verbatim} |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
49 |
| 2449 | 50 If the \var{default_scheme} argument is specified, it gives the |
| 51 default addressing scheme, to be used only if the URL string does not | |
| 52 specify one. The default value for this argument is the empty string. | |
| 53 | |
| 54 If the \var{allow_fragments} argument is zero, fragment identifiers | |
| 55 are not allowed, even if the URL's addressing scheme normally does | |
| 56 support them. The default value for this argument is \code{1}. | |
| 57 \end{funcdesc} | |
| 58 | |
| 59 \begin{funcdesc}{urlunparse}{tuple} | |
|
7144
4ef6a83b2e62
Update comment about relative URL internet draft to reflect current RFC status;
Fred Drake <fdrake@acm.org>
parents:
6963
diff
changeset
|
60 Construct a URL string from a tuple as returned by \code{urlparse()}. |
| 2449 | 61 This may result in a slightly different, but equivalent URL, if the |
| 62 URL that was parsed originally had redundant delimiters, e.g. a ? with | |
| 63 an empty query (the draft states that these are equivalent). | |
| 64 \end{funcdesc} | |
| 65 | |
|
20996
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
66 \begin{funcdesc}{urlsplit}{urlstring\optional{, |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
67 default_scheme\optional{, allow_fragments}}} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
68 This is similar to \function{urlparse()}, but does not split the |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
69 params from the URL. This should generally be used instead of |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
70 \function{urlparse()} if the more recent URL syntax allowing |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
71 parameters to be applied to each segment of the \var{path} portion of |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
72 the URL (see \rfc{2396}). A separate function is needed to separate |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
73 the path segments and parameters. This function returns a 5-tuple: |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
74 (addressing scheme, network location, path, query, fragment |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
75 identifier). |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
76 \versionadded{2.2} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
77 \end{funcdesc} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
78 |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
79 \begin{funcdesc}{urlunsplit}{tuple} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
80 Combine the elements of a tuple as returned by \function{urlsplit()} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
81 into a complete URL as a string. |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
82 \versionadded{2.2} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
83 \end{funcdesc} |
|
f0b575d6feaa
Document the urlsplit() and urlunsplit() functions.
Fred Drake <fdrake@acm.org>
parents:
18574
diff
changeset
|
84 |
|
7712
0cbc9df882b6
Change "\," to just "," in function signatures. This is easier to maintain,
Fred Drake <fdrake@acm.org>
parents:
7277
diff
changeset
|
85 \begin{funcdesc}{urljoin}{base, url\optional{, allow_fragments}} |
| 2449 | 86 Construct a full (``absolute'') URL by combining a ``base URL'' |
| 87 (\var{base}) with a ``relative URL'' (\var{url}). Informally, this | |
| 88 uses components of the base URL, in particular the addressing scheme, | |
| 89 the network location and (part of) the path, to provide missing | |
| 90 components in the relative URL. | |
| 91 | |
| 92 Example: | |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
93 |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
94 \begin{verbatim} |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
95 urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html') |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
96 \end{verbatim} |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
97 |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
98 yields the string |
|
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
99 |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
100 \begin{verbatim} |
|
2647
9b7e6d9a528d
typos, layout and other small things
Guido van Rossum <guido@python.org>
parents:
2576
diff
changeset
|
101 'http://www.cwi.nl/%7Eguido/FAQ.html' |
|
7277
bf4e790bd61a
Remove all \bcode / \ecode cruft; this is no longer needed. See previous
Fred Drake <fdrake@acm.org>
parents:
7219
diff
changeset
|
102 \end{verbatim} |
|
14185
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
103 |
| 2449 | 104 The \var{allow_fragments} argument has the same meaning as for |
|
7144
4ef6a83b2e62
Update comment about relative URL internet draft to reflect current RFC status;
Fred Drake <fdrake@acm.org>
parents:
6963
diff
changeset
|
105 \code{urlparse()}. |
| 2449 | 106 \end{funcdesc} |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
107 |
| 25815 | 108 \begin{funcdesc}{urldefrag}{url} |
| 109 If \var{url} contains a fragment identifier, returns a modified | |
| 110 version of \var{url} with no fragment identifier, and the fragment | |
| 111 identifier as a separate string. If there is no fragment identifier | |
| 112 in \var{url}, returns \var{url} unmodified and an empty string. | |
| 113 \end{funcdesc} | |
| 114 | |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
115 |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
116 \begin{seealso} |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
117 \seerfc{1738}{Uniform Resource Locators (URL)}{ |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
118 This specifies the formal syntax and semantics of absolute |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
119 URLs.} |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
120 \seerfc{1808}{Relative Uniform Resource Locators}{ |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
121 This Request For Comments includes the rules for joining an |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
122 absolute and a relative URL, including a fair normal of |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
123 ``Abnormal Examples'' which govern the treatment of border |
|
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
124 cases.} |
|
14185
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
125 \seerfc{2396}{Uniform Resource Identifiers (URI): Generic Syntax}{ |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
126 Document describing the generic syntactic requirements for |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
127 both Uniform Resource Names (URNs) and Uniform Resource |
|
93013e4bbe02
Add reference to RFC 2396 in "See also" section.
Fred Drake <fdrake@acm.org>
parents:
14153
diff
changeset
|
128 Locators (URLs).} |
|
14153
40447b672064
Move references to RFCs to a "See also" section for consistency with
Fred Drake <fdrake@acm.org>
parents:
13625
diff
changeset
|
129 \end{seealso} |
