Pyjo.Parameters - Parameters

import Pyjo.Parameters

# Parse
params = Pyjo.Parameters.new('foo=bar&baz=23')
print(params.param('baz'))

# Build
params = Pyjo.Parameters.new(foo='bar', baz=23)
params.append(i=u'♥ pyjo')
print(params)

Pyjo.Parameters is a container for form parameters used by Pyjo.URL and based on RFC 3986 as well as the HTML Living Standard.

Classes

class Pyjo.Parameters.Pyjo_Parameters(*args, **kwargs)

Pyjo.Parameters inherits all attributes and methods from Pyjo.Base and Pyjo.String.Mixin and implements the following new ones.

__bool__()
boolean = bool(params)

Always true. (Python 3.x)

__init__(*args, **kwargs)
params = Pyjo.Parameters.new()
params = Pyjo.Parameters.new('foo=b%3Bar&baz=23')
params = Pyjo.Parameters.new(foo='b&ar')
params = Pyjo.Parameters.new(foo=['ba&r', 'baz'])
params = Pyjo.Parameters.new(foo=['bar', 'baz'], bar=23)

Construct a new Pyjo.Parameters object and parse() parameters if necessary.

__iter__()
pairs = list(params)

Iterator based on params. Note that this will normalize the parameters.

__nonzero__()
boolean = bool(params)

Always true. (Python 2.x)

append(*args, **kwargs)
params = params.append(foo='ba&r')
params = params.append(foo=['ba&r', 'baz'])
params = params.append(('foo', ['bar', 'baz']), ('bar', 23))
params = params.append(Pyjo.Params.new())

Append parameters. Note that this method will normalize the parameters.

# "foo=bar&foo=baz"
Pyjo.Parameters.new('foo=bar').append(Pyjo.Parameters.new('foo=baz'))

# "foo=bar&foo=baz"
Pyjo.Parameters.new('foo=bar').append(foo='baz')

# "foo=bar&foo=baz&foo=yada"
Pyjo.Parameters.new('foo=bar').append(foo=['baz', 'yada'])

# "foo=bar&foo=baz&foo=yada&bar=23"
Pyjo.Parameters.new('foo=bar').append(('foo', ['baz', 'yada']), ('bar', 23))
charset = None
charset = params.charset
params.charset = 'utf-8'

Charset used for encoding and decoding parameters, defaults to utf-8.

# Disable encoding and decoding
params.charset = None
clone()
params2 = params.clone()

Clone parameters.

every_param(name)
values = params.every_param('foo')

Similar to param(), but returns all values sharing the same name as a list. Note that this method will normalize the parameters.

# Get first value
print(params.every_param('foo')[0])
merge(*args, **kwargs)
params = params.merge(('foo', 'ba&r'),)
params = params.merge(foo='baz')
params = params.merge(foo=['ba&r', 'baz'])
params = params.merge(('foo', ['bar', 'baz']), ('bar', 23))
params = params.merge(Pyjo.Parameters.new())

Merge parameters. Note that this method will normalize the parameters.

# "foo=baz"
Pyjo.Parameters.new('foo=bar').merge(Pyjo.Parameters.new('foo=baz'))

# "yada=yada&foo=baz"
Pyjo.Parameters.new('foo=bar&yada=yada').merge(foo='baz')

# "yada=yada"
Pyjo.Parameters.new('foo=bar&yada=yada').merge(foo=None)
names
names = params.names

Return a list of all parameter names.

# Names of all parameters
for n in params.names:
    print(n)
pairs
array = params.pairs
params.pairs = [('foo', 'b&ar'), ('baz', 23)]

Parsed parameters. Note that setting this property will normalize the parameters.

param(name, value=None)
value = params.param('foo')
foo, baz = params.param(['foo', 'baz'])
params = params.param('foo', 'ba&r')
params = params.param('foo', ['ba;r', 'baz'])

Access parameter values. If there are multiple values sharing the same name, and you want to access more than just the last one, you can use every_param(). Note that this method will normalize the parameters.

parse(*args, **kwargs)
params = params.parse('foo=b%3Bar&baz=23')

Parse parameters.

remove(name)
params = params.remove('foo')

Remove parameters. Note that this method will normalize the parameters.

# "bar=yada"
Pyjo.Parameters.new('foo=bar&foo=baz&bar=yada').remove('foo')
to_bytes()
bstring = params.to_bytes()

Turn parameters into a bytes string.

to_dict()
d = params.to_dict()

Turn parameters into a dict. Note that this method will normalize the parameters.

# "baz"
Pyjo.Parameters.new('foo=bar&foo=baz').to_dict()['foo'][1]
to_str()
string = params.to_str()

Turn parameters into a string.

Pyjo.Parameters.object

alias of Pyjo_Parameters