FieldFactory
Import
from pyqgis_wrapper.field import FieldFactory
FieldFactory
¶
Handle field creation from user input
register(builder)
classmethod
¶
Register the field builder tagged with the @FieldFactory.resiter decorator
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
builder
|
typing.Type[pyqgis_wrapper.field.field_factory.BaseField]
|
Field builder inherited from BaseField |
required |
Returns:
| Type | Description |
|---|---|
BaseField
|
Field builder just registered. The return only serves to allow a NoneType return ,provoked by the decorator. It should not be used directly. Use get method instead. |
Source code in pyqgis_wrapper/field/field_factory.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
get(type_id)
classmethod
¶
Get a registered field builder form is 'type_id'.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
type_id
|
str
|
Type of the field, can be : int32, int64, float, str, date, date_time, time, bool. |
required |
Returns:
| Type | Description |
|---|---|
Type[BaseField]
|
Field builder of the specified type_id |
Source code in pyqgis_wrapper/field/field_factory.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
create(*args, **kwargs)
classmethod
¶
Create one or more QgsField(s) from:
- Positional args: (type_id, name, length, precision)
- A dict of parameters : {{"type_id":"int32", "name":"my_field", "length": 10, "precision": 2}}
- A list of dicts : [{"type_id": "int32", "name",...}]
- Keyword arguments: type_id="int32", name="my_field", "length"=10, "precision"=2
For each type of inputs ony type_id and name are mandatory.
Returns:
| Type | Description |
|---|---|
Union[QgsField, QgsFields]
|
QgsField for a single field or QgsFields for multiple fields |
Source code in pyqgis_wrapper/field/field_factory.py
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | |
BaseField
¶
Bases: abc.ABC
Abstract builder for creating fields with the specified QMetaType type.
create(name, length=20, precision=2)
classmethod
¶
Create a field with the specified type.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Name of the field |
required |
length
|
int
|
The length of the field when needed |
20
|
precision
|
int
|
The precision of the field when needed |
2
|
Returns:
| Type | Description |
|---|---|
QgsField
|
QgsField |
Source code in pyqgis_wrapper/field/field_factory.py
195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | |
Int32Field
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
Int64Field
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
DoubleField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
StringField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
DateField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
DateTimeField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
TimeField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField
BoolField
¶
Bases: pyqgis_wrapper.field.field_factory.BaseField