Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
pip._vendor.pyparsing.actions Namespace Reference

Data Structures

class  OnlyOnce
 

Functions

 match_only_at_col (n)
 
 replace_with (repl_str)
 
 remove_quotes (s, l, t)
 
 with_attribute (*args, **attr_dict)
 
 with_class (classname, namespace="")
 
 replaceWith ()
 
 removeQuotes ()
 
 withAttribute ()
 
 withClass ()
 
 matchOnlyAtCol ()
 

Variables

 ANY_VALUE
 

Function Documentation

◆ match_only_at_col()

match_only_at_col (   n)
Helper method for defining parse actions that require matching at
a specific column in the input text.

Definition at line 33 of file actions.py.

33def match_only_at_col(n):
34 """
35 Helper method for defining parse actions that require matching at
36 a specific column in the input text.
37 """
38
39 def verify_col(strg, locn, toks):
40 if col(locn, strg) != n:
41 raise ParseException(strg, locn, f"matched token not at column {n}")
42
43 return verify_col
44
45
for i

◆ matchOnlyAtCol()

matchOnlyAtCol ( )

Definition at line 215 of file actions.py.

215def matchOnlyAtCol(): ...
216
217# fmt: on

◆ remove_quotes()

remove_quotes (   s,
  l,
  t 
)
Helper parse action for removing quotation marks from parsed
quoted strings.

Example::

    # by default, quotation marks are included in parsed results
    quoted_string.parse_string("'Now is the Winter of our Discontent'") # -> ["'Now is the Winter of our Discontent'"]

    # use remove_quotes to strip quotation marks from parsed results
    quoted_string.set_parse_action(remove_quotes)
    quoted_string.parse_string("'Now is the Winter of our Discontent'") # -> ["Now is the Winter of our Discontent"]

Definition at line 63 of file actions.py.

63def remove_quotes(s, l, t):
64 """
65 Helper parse action for removing quotation marks from parsed
66 quoted strings.
67
68 Example::
69
70 # by default, quotation marks are included in parsed results
71 quoted_string.parse_string("'Now is the Winter of our Discontent'") # -> ["'Now is the Winter of our Discontent'"]
72
73 # use remove_quotes to strip quotation marks from parsed results
74 quoted_string.set_parse_action(remove_quotes)
75 quoted_string.parse_string("'Now is the Winter of our Discontent'") # -> ["Now is the Winter of our Discontent"]
76 """
77 return t[0][1:-1]
78
79

◆ removeQuotes()

removeQuotes ( )

Definition at line 206 of file actions.py.

206def removeQuotes(): ...
207
208@replaced_by_pep8(with_attribute)

◆ replace_with()

replace_with (   repl_str)
Helper method for common parse actions that simply return
a literal value.  Especially useful when used with
:class:`transform_string<ParserElement.transform_string>` ().

Example::

    num = Word(nums).set_parse_action(lambda toks: int(toks[0]))
    na = one_of("N/A NA").set_parse_action(replace_with(math.nan))
    term = na | num

    term[1, ...].parse_string("324 234 N/A 234") # -> [324, 234, nan, 234]

Definition at line 46 of file actions.py.

46def replace_with(repl_str):
47 """
48 Helper method for common parse actions that simply return
49 a literal value. Especially useful when used with
50 :class:`transform_string<ParserElement.transform_string>` ().
51
52 Example::
53
54 num = Word(nums).set_parse_action(lambda toks: int(toks[0]))
55 na = one_of("N/A NA").set_parse_action(replace_with(math.nan))
56 term = na | num
57
58 term[1, ...].parse_string("324 234 N/A 234") # -> [324, 234, nan, 234]
59 """
60 return lambda s, l, t: [repl_str]
61
62

Referenced by ParserElement.run_tests().

Here is the caller graph for this function:

◆ replaceWith()

replaceWith ( )

Definition at line 203 of file actions.py.

203def replaceWith(): ...
204
205@replaced_by_pep8(remove_quotes)

◆ with_attribute()

with_attribute ( args,
**  attr_dict 
)
Helper to create a validating parse action to be used with start
tags created with :class:`make_xml_tags` or
:class:`make_html_tags`. Use ``with_attribute`` to qualify
a starting tag with a required attribute value, to avoid false
matches on common tags such as ``<TD>`` or ``<DIV>``.

Call ``with_attribute`` with a series of attribute names and
values. Specify the list of filter attributes names and values as:

- keyword arguments, as in ``(align="right")``, or
- as an explicit dict with ``**`` operator, when an attribute
  name is also a Python reserved word, as in ``**{"class":"Customer", "align":"right"}``
- a list of name-value tuples, as in ``(("ns1:class", "Customer"), ("ns2:align", "right"))``

For attribute names with a namespace prefix, you must use the second
form.  Attribute names are matched insensitive to upper/lower case.

If just testing for ``class`` (with or without a namespace), use
:class:`with_class`.

To verify that the attribute exists, but without specifying a value,
pass ``with_attribute.ANY_VALUE`` as the value.

Example::

    html = '''
        <div>
        Some text
        <div type="grid">1 4 0 1 0</div>
        <div type="graph">1,3 2,3 1,1</div>
        <div>this has no type</div>
        </div>

    '''
    div,div_end = make_html_tags("div")

    # only match div tag having a type attribute with value "grid"
    div_grid = div().set_parse_action(with_attribute(type="grid"))
    grid_expr = div_grid + SkipTo(div | div_end)("body")
    for grid_header in grid_expr.search_string(html):
        print(grid_header.body)

    # construct a match with any div tag having a type attribute, regardless of the value
    div_any_type = div().set_parse_action(with_attribute(type=with_attribute.ANY_VALUE))
    div_expr = div_any_type + SkipTo(div | div_end)("body")
    for div_header in div_expr.search_string(html):
        print(div_header.body)

prints::

    1 4 0 1 0

    1 4 0 1 0
    1,3 2,3 1,1

Definition at line 80 of file actions.py.

80def with_attribute(*args, **attr_dict):
81 """
82 Helper to create a validating parse action to be used with start
83 tags created with :class:`make_xml_tags` or
84 :class:`make_html_tags`. Use ``with_attribute`` to qualify
85 a starting tag with a required attribute value, to avoid false
86 matches on common tags such as ``<TD>`` or ``<DIV>``.
87
88 Call ``with_attribute`` with a series of attribute names and
89 values. Specify the list of filter attributes names and values as:
90
91 - keyword arguments, as in ``(align="right")``, or
92 - as an explicit dict with ``**`` operator, when an attribute
93 name is also a Python reserved word, as in ``**{"class":"Customer", "align":"right"}``
94 - a list of name-value tuples, as in ``(("ns1:class", "Customer"), ("ns2:align", "right"))``
95
96 For attribute names with a namespace prefix, you must use the second
97 form. Attribute names are matched insensitive to upper/lower case.
98
99 If just testing for ``class`` (with or without a namespace), use
100 :class:`with_class`.
101
102 To verify that the attribute exists, but without specifying a value,
103 pass ``with_attribute.ANY_VALUE`` as the value.
104
105 Example::
106
107 html = '''
108 <div>
109 Some text
110 <div type="grid">1 4 0 1 0</div>
111 <div type="graph">1,3 2,3 1,1</div>
112 <div>this has no type</div>
113 </div>
114
115 '''
116 div,div_end = make_html_tags("div")
117
118 # only match div tag having a type attribute with value "grid"
119 div_grid = div().set_parse_action(with_attribute(type="grid"))
120 grid_expr = div_grid + SkipTo(div | div_end)("body")
121 for grid_header in grid_expr.search_string(html):
122 print(grid_header.body)
123
124 # construct a match with any div tag having a type attribute, regardless of the value
125 div_any_type = div().set_parse_action(with_attribute(type=with_attribute.ANY_VALUE))
126 div_expr = div_any_type + SkipTo(div | div_end)("body")
127 for div_header in div_expr.search_string(html):
128 print(div_header.body)
129
130 prints::
131
132 1 4 0 1 0
133
134 1 4 0 1 0
135 1,3 2,3 1,1
136 """
137 if args:
138 attrs = args[:]
139 else:
140 attrs = attr_dict.items()
141 attrs = [(k, v) for k, v in attrs]
142
143 def pa(s, l, tokens):
144 for attrName, attrValue in attrs:
145 if attrName not in tokens:
146 raise ParseException(s, l, "no matching attribute " + attrName)
147 if attrValue != with_attribute.ANY_VALUE and tokens[attrName] != attrValue:
148 raise ParseException(
149 s,
150 l,
151 f"attribute {attrName!r} has value {tokens[attrName]!r}, must be {attrValue!r}",
152 )
153
154 return pa
155
156

References i.

Referenced by pip._vendor.pyparsing.actions.with_class().

Here is the caller graph for this function:

◆ with_class()

with_class (   classname,
  namespace = "" 
)
Simplified version of :class:`with_attribute` when
matching on a div class - made difficult because ``class`` is
a reserved word in Python.

Example::

    html = '''
        <div>
        Some text
        <div class="grid">1 4 0 1 0</div>
        <div class="graph">1,3 2,3 1,1</div>
        <div>this &lt;div&gt; has no class</div>
        </div>

    '''
    div,div_end = make_html_tags("div")
    div_grid = div().set_parse_action(with_class("grid"))

    grid_expr = div_grid + SkipTo(div | div_end)("body")
    for grid_header in grid_expr.search_string(html):
        print(grid_header.body)

    div_any_type = div().set_parse_action(with_class(withAttribute.ANY_VALUE))
    div_expr = div_any_type + SkipTo(div | div_end)("body")
    for div_header in div_expr.search_string(html):
        print(div_header.body)

prints::

    1 4 0 1 0

    1 4 0 1 0
    1,3 2,3 1,1

Definition at line 160 of file actions.py.

160def with_class(classname, namespace=""):
161 """
162 Simplified version of :class:`with_attribute` when
163 matching on a div class - made difficult because ``class`` is
164 a reserved word in Python.
165
166 Example::
167
168 html = '''
169 <div>
170 Some text
171 <div class="grid">1 4 0 1 0</div>
172 <div class="graph">1,3 2,3 1,1</div>
173 <div>this &lt;div&gt; has no class</div>
174 </div>
175
176 '''
177 div,div_end = make_html_tags("div")
178 div_grid = div().set_parse_action(with_class("grid"))
179
180 grid_expr = div_grid + SkipTo(div | div_end)("body")
181 for grid_header in grid_expr.search_string(html):
182 print(grid_header.body)
183
184 div_any_type = div().set_parse_action(with_class(withAttribute.ANY_VALUE))
185 div_expr = div_any_type + SkipTo(div | div_end)("body")
186 for div_header in div_expr.search_string(html):
187 print(div_header.body)
188
189 prints::
190
191 1 4 0 1 0
192
193 1 4 0 1 0
194 1,3 2,3 1,1
195 """
196 classattr = f"{namespace}:class" if namespace else "class"
197 return with_attribute(**{classattr: classname})
198
199
200# pre-PEP8 compatibility symbols
201# fmt: off
202@replaced_by_pep8(replace_with)

References pip._vendor.pyparsing.actions.with_attribute().

Here is the call graph for this function:

◆ withAttribute()

withAttribute ( )

Definition at line 209 of file actions.py.

209def withAttribute(): ...
210
211@replaced_by_pep8(with_class)

◆ withClass()

withClass ( )

Definition at line 212 of file actions.py.

212def withClass(): ...
213
214@replaced_by_pep8(match_only_at_col)

Variable Documentation

◆ ANY_VALUE

ANY_VALUE

Definition at line 157 of file actions.py.