1==========================
2 Miscellaneous Submodules
3==========================
4
5There are several submodules in |rfc3986| that are not meant to be exposed to
6users directly but which are valuable to document, regardless.
7
8.. data:: rfc3986.misc.UseExisting
9
10    A sentinel object to make certain APIs simpler for users.
11
12.. module:: rfc3986.abnf_regexp
13
14The :mod:`rfc3986.abnf_regexp` module contains the regular expressions written
15from the RFC's ABNF. The :mod:`rfc3986.misc` module contains compiled regular
16expressions from :mod:`rfc3986.abnf_regexp` and previously contained those
17regular expressions.
18
19.. data:: rfc3986.abnf_regexp.GEN_DELIMS
20.. data:: rfc3986.abnf_regexp.GENERIC_DELIMITERS
21
22    The string containing all of the generic delimiters as defined on
23    `page 13 <https://tools.ietf.org/html/rfc3986#page-13>`__.
24
25.. data:: rfc3986.abnf_regexp.GENERIC_DELIMITERS_SET
26
27    :data:`rfc3986.abnf_regexp.GEN_DELIMS` represented as a :class:`set`.
28
29.. data:: rfc3986.abnf_regexp.SUB_DELIMS
30.. data:: rfc3986.abnf_regexp.SUB_DELIMITERS
31
32    The string containing all of the 'sub' delimiters as defined on
33    `page 13 <https://tools.ietf.org/html/rfc3986#page-13>`__.
34
35.. data:: rfc3986.abnf_regexp.SUB_DELIMITERS_SET
36
37    :data:`rfc3986.abnf_regexp.SUB_DELIMS` represented as a :class:`set`.
38
39.. data:: rfc3986.abnf_regexp.SUB_DELIMITERS_RE
40
41    :data:`rfc3986.abnf_regexp.SUB_DELIMS` with the ``*`` escaped for use in
42    regular expressions.
43
44.. data:: rfc3986.abnf_regexp.RESERVED_CHARS_SET
45
46    A :class:`set` constructed of :data:`GEN_DELIMS` and :data:`SUB_DELIMS`.
47    This union is defined on `page 13
48    <https://tools.ietf.org/html/rfc3986#page-13>`__.
49
50.. data:: rfc3986.abnf_regexp.ALPHA
51
52    The string of upper- and lower-case letters in USASCII.
53
54.. data:: rfc3986.abnf_regexp.DIGIT
55
56    The string of digits 0 through 9.
57
58.. data:: rfc3986.abnf_regexp.UNRESERVED
59.. data:: rfc3986.abnf_regexp.UNRESERVED_CHARS
60
61    The string of unreserved characters defined in :rfc:`3986#section-2.3`.
62
63.. data:: rfc3986.abnf_regexp.UNRESERVED_CHARS_SET
64
65    :data:`rfc3986.abnf_regexp.UNRESERVED_CHARS` represented as a
66    :class:`set`.
67
68.. data:: rfc3986.abnf_regexp.NON_PCT_ENCODED_SET
69
70    The non-percent encoded characters represented as a :class:`set`.
71
72.. data:: rfc3986.abnf_regexp.UNRESERVED_RE
73
74    Optimized regular expression for unreserved characters.
75
76.. data:: rfc3986.abnf_regexp.SCHEME_RE
77
78    Stricter regular expression to match and validate the scheme part
79    of a URI.
80
81.. data:: rfc3986.abnf_regexp.COMPONENT_PATTERN_DICT
82
83    Dictionary with regular expressions to match various components in
84    a URI. Except for :data:`rfc3986.abnf_regexp.SCHEME_RE`, all patterns
85    are from :rfc:`3986#appendix-B`.
86
87.. data:: rfc3986.abnf_regexp.URL_PARSING_RE
88
89    Regular expression compposed from the components in
90    :data:`rfc3986.abnf_regexp.COMPONENT_PATTERN_DICT`.
91
92.. data:: rfc3986.abnf_regexp.HEXDIG_RE
93
94    Hexadecimal characters used in each piece of an IPv6 address.
95    See :rfc:`3986#section-3.2.2`.
96
97.. data:: rfc3986.abnf_regexp.LS32_RE
98
99    Lease significant 32 bits of an IPv6 address.
100    See :rfc:`3986#section-3.2.2`.
101
102.. data:: rfc3986.abnf_regexp.REG_NAME
103.. data:: rfc3986.abnf_regexp.REGULAR_NAME_RE
104
105    The pattern for a regular name, e.g., ``www.google.com``,
106    ``api.github.com``.
107    See :rfc:`3986#section-3.2.2`.
108
109.. data:: rfc3986.abnf_regexp.IPv4_RE
110
111    The pattern for an IPv4 address, e.g., ``192.168.255.255``.
112    See :rfc:`3986#section-3.2.2`.
113
114.. data:: rfc3986.abnf_regexp.IPv6_RE
115
116    The pattern for an IPv6 address, e.g., ``::1``.
117    See :rfc:`3986#section-3.2.2`.
118
119.. data:: rfc3986.abnf_regexp.IPv_FUTURE_RE
120
121    A regular expression to parse out IPv Futures.
122    See :rfc:`3986#section-3.2.2`.
123
124.. data:: rfc3986.abnf_regexp.IP_LITERAL_RE
125
126    Pattern to match IPv6 addresses and IPv Future addresses.
127    See :rfc:`3986#section-3.2.2`.
128
129.. data:: rfc3986.abnf_regexp.HOST_RE
130.. data:: rfc3986.abnf_regexp.HOST_PATTERN
131
132    Pattern to match and validate the host piece of an authority.
133    This is composed of
134
135    - :data:`rfc3986.abnf_regexp.REG_NAME`
136    - :data:`rfc3986.abnf_regexp.IPv4_RE`
137    - :data:`rfc3986.abnf_regexp.IP_LITERAL_RE`
138
139    See :rfc:`3986#section-3.2.2`.
140
141.. data:: rfc3986.abnf_regexp.USERINFO_RE
142
143    Pattern to match and validate the user information portion of
144    an authority component.
145
146    See :rfc:`3986#section-3.2.2`.
147
148.. data:: rfc3986.abnf_regexp.PORT_RE
149
150    Pattern to match and validate the port portion of an authority
151    component.
152
153    See :rfc:`3986#section-3.2.2`.
154
155.. data:: rfc3986.abnf_regexp.PCT_ENCODED
156.. data:: rfc3986.abnf_regexp.PERCENT_ENCODED
157
158    Regular expression to match percent encoded character values.
159
160.. data:: rfc3986.abnf_regexp.PCHAR
161
162    Regular expression to match printable characters.
163
164.. data:: rfc3986.abnf_regexp.PATH_RE
165
166    Regular expression to match and validate the path component of a URI.
167
168    See :rfc:`3986#section-3.3`.
169
170.. data:: rfc3986.abnf_regexp.PATH_EMPTY
171.. data:: rfc3986.abnf_regexp.PATH_ROOTLESS
172.. data:: rfc3986.abnf_regexp.PATH_NOSCHEME
173.. data:: rfc3986.abnf_regexp.PATH_ABSOLUTE
174.. data:: rfc3986.abnf_regexp.PATH_ABEMPTY
175
176    Components of the :data:`rfc3986.abnf_regexp.PATH_RE`.
177
178    See :rfc:`3986#section-3.3`.
179
180.. data:: rfc3986.abnf_regexp.QUERY_RE
181
182    Regular expression to parse and validate the query component of a URI.
183
184.. data:: rfc3986.abnf_regexp.FRAGMENT_RE
185
186    Regular expression to parse and validate the fragment component of a URI.
187
188.. data:: rfc3986.abnf_regexp.RELATIVE_PART_RE
189
190    Regular expression to parse the relative URI when resolving URIs.
191
192.. data:: rfc3986.abnf_regexp.HIER_PART_RE
193
194    The hierarchical part of a URI. This regular expression is used when
195    resolving relative URIs.
196
197    See :rfc:`3986#section-3`.
198
199.. module:: rfc3986.misc
200
201.. data:: rfc3986.misc.URI_MATCHER
202
203    Compiled version of :data:`rfc3986.abnf_regexp.URL_PARSING_RE`.
204
205.. data:: rfc3986.misc.SUBAUTHORITY_MATCHER
206
207    Compiled compilation of :data:`rfc3986.abnf_regexp.USERINFO_RE`,
208    :data:`rfc3986.abnf_regexp.HOST_PATTERN`,
209    :data:`rfc3986.abnf_regexp.PORT_RE`.
210
211.. data:: rfc3986.misc.SCHEME_MATCHER
212
213    Compiled version of :data:`rfc3986.abnf_regexp.SCHEME_RE`.
214
215.. data:: rfc3986.misc.IPv4_MATCHER
216
217    Compiled version of :data:`rfc3986.abnf_regexp.IPv4_RE`.
218
219.. data:: rfc3986.misc.PATH_MATCHER
220
221    Compiled version of :data:`rfc3986.abnf_regexp.PATH_RE`.
222
223.. data:: rfc3986.misc.QUERY_MATCHER
224
225    Compiled version of :data:`rfc3986.abnf_regexp.QUERY_RE`.
226
227.. data:: rfc3986.misc.RELATIVE_REF_MATCHER
228
229    Compiled compilation of :data:`rfc3986.abnf_regexp.SCHEME_RE`,
230    :data:`rfc3986.abnf_regexp.HIER_PART_RE`,
231    :data:`rfc3986.abnf_regexp.QUERY_RE`.
232