Utilities for managing / converting field paths to / from strings.
Classes
FieldPath
FieldPath
(
*
parts
)
Field Path object for client use.
A field path is a sequence of element keys, separated by periods. Each element key can be either a simple identifier, or a full unicode string.
In the string representation of a field path, non-identifier elements must be quoted using backticks, with internal backticks and backslashes escaped with a backslash.
Modules Functions
get_field_path
get_field_path
(
field_names
:
Iterable
[
str
])
Create a field pathfrom a list of nested field names.
A field pathis a .
-delimited concatenation of the field
names. It is used to represent a nested field. For example,
in the data
data = {
'aa': {
'bb': {
'cc': 10,
},
},
}
the field path 'aa.bb.cc'
represents that data stored in data['aa']['bb']['cc']
.
str
.
-delimited field path.get_nested_value
get_nested_value
(
field_path
:
str
,
data
:
dict
)
Get a (potentially nested) value from a dictionary.
If the data is nested, for example:
>>> data
{
'top1': {
'middle2': {
'bottom3': 20,
'bottom4': 22,
},
'middle5': True,
},
'top6': b' foo',
}
a field pathcan be used to access the nested data. For example:
>>> get_nested_value('top1', data)
{
'middle2': {
'bottom3': 20,
'bottom4': 22,
},
'middle5': True,
}
>>> get_nested_value('top1.middle2', data)
{
'bottom3': 20,
'bottom4': 22,
}
>>> get_nested_value('top1.middle2.bottom3', data)
20
See xref_field_path for more information on field paths.
field_path
str
A field path ( .
-delimited list of field names).
data
Dict[str, Any]
The (possibly nested) data.
KeyError
field_path
does not match nested data.Any
field_path
.parse_field_path
parse_field_path
(
api_repr
:
str
)
Parse a field pathfrom into a list of nested field names.
See field_path
for more on field paths.
api_repr
str
The unique Firestore api representation which consists of either simple or UTF-8 field names. It cannot exceed 1500 bytes, and cannot be empty. Simple field names match '^
_a-zA-Z][_a-zA-Z0-9] *$'
. All other field names are escaped by surrounding them with backticks.
List[str, ...]
render_field_path
render_field_path
(
field_names
:
Iterable
[
str
])
Create a field pathfrom a list of nested field names.
A field pathis a .
-delimited concatenation of the field
names. It is used to represent a nested field. For example,
in the data
data = {
'aa': {
'bb': {
'cc': 10,
},
},
}
the field path 'aa.bb.cc'
represents that data stored in data['aa']['bb']['cc']
.
str
.
-delimited field path.split_field_path
split_field_path
(
path
:
str
)
Split a field path into valid elements (without dots).
path
str
field path to be lexed.
ValueError
List(str)

