QGIS/python/core/auto_generated/qgsfields.sip.in
Nyall Dawson 3f6b490218 Sipify
2025-04-02 11:11:10 +10:00

438 lines
11 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfields.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/
class QgsFields
{
%Docstring(signature="appended")
Container of fields for a vector layer.
In addition to storing a list of :py:class:`QgsField` instances, it
also:
- allows quick lookups of field names to index in the list
- keeps track of where the field definition comes from (vector data provider, joined layer or newly added from an editing operation)
.. note::
:py:class:`QgsFields` objects are implicitly shared.
%End
%TypeHeaderCode
#include "qgsfields.h"
%End
public:
static const QMetaObject staticMetaObject;
public:
QgsFields() /HoldGIL/;
%Docstring
Constructor for an empty field container
%End
QgsFields( const QgsFields &other ) /HoldGIL/;
QgsFields( const QList< QgsField > &fields ) /HoldGIL/;
%Docstring
Construct QgsFields from a list of ``fields``.
.. versionadded:: 3.40
%End
virtual ~QgsFields();
void clear() /HoldGIL/;
%Docstring
Removes all fields
%End
bool append( const QgsField &field, Qgis::FieldOrigin origin = Qgis::FieldOrigin::Provider, int originIndex = -1 ) /HoldGIL/;
%Docstring
Appends a ``field``.
The field must have a unique name, otherwise it is rejected (returns
``False``).
The ``originIndex`` argument must be set to a value corresponding to the
``origin`` type:
- :py:class:`Qgis`.FieldOrigin.Provider: The field's originIndex is the
index in provider's fields.
- :py:class:`Qgis`.FieldOrigin.Join: The field's originIndex / 1000 =
index of the join, originIndex % 1000 = index within the join
- :py:class:`Qgis`.FieldOrigin.Edit: The originIndex is the index in the
list of added attributes
%End
bool append( const QList< QgsField > &fields, Qgis::FieldOrigin origin = Qgis::FieldOrigin::Provider ) /HoldGIL/;
%Docstring
Appends a list of ``fields``.
The fields must have unique names, otherwise it is rejected (returns
``False``).
.. versionadded:: 3.40
%End
bool append( const QgsFields &fields ) /HoldGIL/;
%Docstring
Appends another set of ``fields`` to these fields.
The fields must have unique names, otherwise it is rejected (returns
``False``).
.. versionadded:: 3.40
%End
bool rename( int fieldIdx, const QString &name ) /HoldGIL/;
%Docstring
Renames a name of field. The field must have unique name, otherwise
change is rejected (returns ``False``)
.. versionadded:: 3.6
%End
bool appendExpressionField( const QgsField &field, int originIndex ) /HoldGIL/;
%Docstring
Appends an expression field. The field must have unique name, otherwise
it is rejected (returns ``False``)
%End
void remove( int fieldIdx ) /HoldGIL/;
%Docstring
Removes the field with the given index.
:raises KeyError: if no field with the specified index exists
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipCpp->remove( a0 );
}
%End
void extend( const QgsFields &other ) /HoldGIL/;
%Docstring
Extends with fields from another QgsFields container
%End
bool isEmpty() const /HoldGIL/;
%Docstring
Checks whether the container is empty
%End
int count() const /HoldGIL/;
%Docstring
Returns number of items
%End
int __len__() const /HoldGIL/;
%MethodCode
sipRes = sipCpp->count();
%End
//! Ensures that bool(obj) returns ``True`` (otherwise __len__() would be used)
int __bool__() const /HoldGIL/;
%MethodCode
sipRes = true;
%End
int size() const /HoldGIL/;
%Docstring
Returns number of items
%End
QStringList names() const /HoldGIL/;
%Docstring
Returns a list with field names
%End
bool exists( int i ) const /HoldGIL/;
%Docstring
Returns if a field index is valid
:param i: Index of the field which needs to be checked
:return: ``True`` if the field exists
%End
QgsField &operator[]( int i ) /HoldGIL,Factory/;
%MethodCode
SIP_SSIZE_T idx = sipConvertFromSequenceIndex( a0, sipCpp->count() );
if ( idx < 0 )
sipIsErr = 1;
else
sipRes = new QgsField( sipCpp->operator[]( idx ) );
%End
SIP_PYOBJECT __getitem__( const QString &name ) const /HoldGIL,TypeHint="QgsField"/;
%MethodCode
const int fieldIdx = sipCpp->lookupField( *a0 );
if ( fieldIdx == -1 )
{
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
sipIsErr = 1;
}
else
{
sipRes = sipConvertFromType( new QgsField( sipCpp->at( fieldIdx ) ), sipType_QgsField, Py_None );
}
%End
QgsField at( int i ) const /HoldGIL,Factory/;
%Docstring
Returns the field at particular index (must be in range 0..N-1).
:raises KeyError: if no field exists at the specified index
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipRes = new QgsField( sipCpp->at( a0 ) );
}
%End
QgsField field( int fieldIdx ) const /HoldGIL,Factory/;
%Docstring
Returns the field at particular index (must be in range 0..N-1).
:raises KeyError: if no field exists at the specified index
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipRes = new QgsField( sipCpp->field( a0 ) );
}
%End
QgsField field( const QString &name ) const /HoldGIL,Factory/;
%Docstring
Returns the field with matching name.
:raises KeyError: if no matching field was found.
%End
%MethodCode
int fieldIdx = sipCpp->indexFromName( *a0 );
if ( fieldIdx == -1 )
{
PyErr_SetString( PyExc_KeyError, a0->toLatin1() );
sipIsErr = 1;
}
else
{
sipRes = new QgsField( sipCpp->field( *a0 ) );
}
%End
Qgis::FieldOrigin fieldOrigin( int fieldIdx ) const /HoldGIL/;
%Docstring
Returns the field's origin (value from an enumeration).
:raises KeyError: if no field exists at the specified index
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipRes = sipCpp->fieldOrigin( a0 );
}
%End
int fieldOriginIndex( int fieldIdx ) const /HoldGIL/;
%Docstring
Returns the field's origin index (its meaning is specific to each type
of origin).
- :py:class:`Qgis`.FieldOrigin.Provider: The field's originIndex is the
index in provider's fields.
- :py:class:`Qgis`.FieldOrigin.Join: The field's originIndex / 1000 =
index of the join, originIndex % 1000 = index within the join
- :py:class:`Qgis`.FieldOrigin.Edit: The originIndex is the index in the
list of added attributes
:raises KeyError: if no field exists at the specified index
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipRes = sipCpp->fieldOriginIndex( a0 );
}
%End
int indexFromName( const QString &fieldName ) const /HoldGIL/;
%Docstring
Gets the field index from the field name.
This method is case sensitive and only matches the data source name of
the field.
Alias for indexOf
:param fieldName: The name of the field.
:return: The field index if found or -1 in case it cannot be found.
.. seealso:: :py:func:`lookupField` For a more tolerant alternative.
%End
int indexOf( const QString &fieldName ) const /HoldGIL/;
%Docstring
Gets the field index from the field name.
This method is case sensitive and only matches the data source name of
the field.
:param fieldName: The name of the field.
:return: The field index if found or -1 in case it cannot be found.
.. seealso:: :py:func:`lookupField` For a more tolerant alternative.
%End
int lookupField( const QString &fieldName ) const /HoldGIL/;
%Docstring
Looks up field's index from the field name. This method matches in the
following order:
1. The exact field name taking case sensitivity into account
2. Looks for the field name by case insensitive comparison
3. The field alias (case insensitive)
:param fieldName: The name to look for.
:return: The field index if found or -1 in case it cannot be found.
.. seealso:: :py:func:`indexFromName` For a more performant and precise but less tolerant alternative.
%End
QgsAttributeList allAttributesList() const /HoldGIL/;
%Docstring
Utility function to get list of attribute indexes
%End
QList<QgsField> toList() const /HoldGIL/;
%Docstring
Utility function to return a list of :py:class:`QgsField` instances
%End
bool operator==( const QgsFields &other ) const /HoldGIL/;
bool operator!=( const QgsFields &other ) const /HoldGIL/;
QIcon iconForField( int fieldIdx, bool considerOrigin = false ) const /Factory/;
%Docstring
Returns an icon corresponding to a field index, based on the field's
type and source
:param fieldIdx: the field index
:param considerOrigin: if ``True`` the icon will the origin of the field
:raises KeyError: if no field exists at the specified index
%End
%MethodCode
if ( a0 < 0 || a0 >= sipCpp->count() )
{
PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
sipIsErr = 1;
}
else
{
sipRes = new QIcon( sipCpp->iconForField( a0 ) );
}
%End
static QIcon iconForFieldType( QMetaType::Type type, QMetaType::Type subType = QMetaType::Type::UnknownType, const QString &typeString = QString() );
%Docstring
Returns an icon corresponding to a field ``type``
Since QGIS 3.24, the optional ``subType`` argument can be used to
specify the type of variant list or map values. Since QGIS 3.30, the
optional ``typeString`` argument can be used to specify field type
strings for handling user field types.
.. versionadded:: 3.16
%End
static QIcon iconForFieldType( QVariant::Type type, QVariant::Type subType, const QString &typeString = QString() ) /Deprecated="Since 3.38. Use the method with a QMetaType.Type argument instead."/;
%Docstring
Returns an icon corresponding to a field ``type``
Since QGIS 3.24, the optional ``subType`` argument can be used to
specify the type of variant list or map values. Since QGIS 3.30, the
optional ``typeString`` argument can be used to specify field type
strings for handling user field types.
.. versionadded:: 3.16
.. deprecated:: 3.38
Use the method with a QMetaType.Type argument instead.
%End
operator QVariant() const;
void __setitem__( int key, const QgsField &field ) /HoldGIL/;
%MethodCode
int idx = ( int )sipConvertFromSequenceIndex( a0, sipCpp->count() );
if ( idx < 0 )
sipIsErr = 1;
else
( *sipCpp )[idx] = *a1;
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/qgsfields.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.py again *
************************************************************************/