Go to the documentation of this file.
34 #include <frameobject.h>
36 #include <unordered_map>
49 #if PY_MAJOR_VERSION >= 3
50 #define PyString_FromStringAndSize PyUnicode_FromStringAndSize
51 #define PyString_Check PyUnicode_Check
52 #define PyString_InternFromString PyUnicode_InternFromString
53 #define PyInt_FromLong PyLong_FromLong
54 #define PyInt_FromSize_t PyLong_FromSize_t
55 #if PY_VERSION_HEX < 0x03030000
56 #error "Python 3.0 - 3.2 are not supported."
58 #define PyString_AsStringAndSize(ob, charpp, sizep) \
59 (PyUnicode_Check(ob) ? ((*(charpp) = const_cast<char*>( \
60 PyUnicode_AsUTF8AndSize(ob, (sizep)))) == NULL \
63 : PyBytes_AsStringAndSize(ob, (charpp), (sizep)))
79 return PyString_FromStringAndSize(
str.c_str(),
str.size());
103 PyFrameObject* frame = PyEval_GetFrame();
107 while (stacklevel-- > 0) {
108 frame = frame->f_back;
114 if (frame->f_code->co_filename ==
NULL) {
118 Py_ssize_t filename_size;
119 if (PyString_AsStringAndSize(frame->f_code->co_filename,
120 &filename, &filename_size) < 0) {
125 if ((filename_size < 3) ||
126 (strcmp(&filename[filename_size - 3],
".py") != 0)) {
131 if (filename_size < 7) {
135 if (strcmp(&filename[filename_size - 7],
"_pb2.py") != 0) {
140 if (frame->f_globals != frame->f_locals) {
154 PyErr_Format(PyExc_AttributeError,
155 "attribute is not writable: %s", attr_name);
160 #ifndef PyVarObject_HEAD_INIT
161 #define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size,
164 #define Py_TYPE(ob) (((PyObject*)(ob))->ob_type)
171 template<
class DescriptorClass>
198 reinterpret_cast<const uint8*
>(serialized.c_str()), serialized.size());
214 template<
class DescriptorClass>
220 std::unordered_map<const void*, PyObject*>* descriptor_options =
222 if (descriptor_options->find(
descriptor) != descriptor_options->end()) {
246 PyErr_Format(PyExc_TypeError,
"Could not retrieve class for Options: %s",
257 PyErr_Format(PyExc_TypeError,
"Invalid class for %s: %s",
266 if (unknown_fields.
empty()) {
271 PyErr_Format(PyExc_ValueError,
"Error reparsing Options message");
277 Py_INCREF(
value.get());
280 return value.release();
286 template<
class DescriptorProtoClass,
class DescriptorClass>
290 DescriptorProtoClass::default_instance().GetDescriptor();
293 message->message->GetDescriptor() != self_descriptor) {
294 PyErr_Format(PyExc_TypeError,
"Not a %s message",
299 DescriptorProtoClass* descriptor_message =
300 static_cast<DescriptorProtoClass*
>(
message->message);
307 if (!
Reparse(message_factory, *descriptor_message, descriptor_message)) {
308 PyErr_Format(PyExc_ValueError,
"Error reparsing descriptor message");
346 template<
class DescriptorClass>
351 *was_created =
false;
354 PyErr_BadInternalCall();
359 std::unordered_map<const void*, PyObject*>::iterator
it =
363 Py_INCREF(
it->second);
369 if (py_descriptor ==
NULL) {
376 std::make_pair(
descriptor,
reinterpret_cast<PyObject*
>(py_descriptor)));
383 PyObject_Del(py_descriptor);
389 PyObject_GC_Track(py_descriptor);
394 return reinterpret_cast<PyObject*
>(py_descriptor);
401 Py_CLEAR(
self->pool);
407 Py_VISIT(
self->pool);
413 Py_CLEAR(
self->pool);
441 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
442 "Descriptors base class",
458 PyErr_SetString(PyExc_TypeError,
"Not a BaseDescriptor");
464 namespace message_descriptor {
468 return reinterpret_cast<const Descriptor*
>(
self->descriptor);
493 Py_XINCREF(concrete_class);
560 PyObject* range_list = PyList_New(
descriptor->extension_range_count());
562 for (
int i = 0;
i <
descriptor->extension_range_count();
i++) {
564 PyObject*
start = PyInt_FromLong(
range->start);
565 PyObject*
end = PyInt_FromLong(
range->end);
566 PyList_SetItem(range_list,
i, PyTuple_Pack(2,
start,
end));
575 if (containing_type) {
619 const char *enum_name;
621 if (!PyArg_ParseTuple(
args,
"si", &enum_name, &
number))
626 PyErr_SetString(PyExc_KeyError, enum_name);
631 if (enum_value ==
NULL) {
632 PyErr_Format(PyExc_KeyError,
"%d",
number);
639 return PyString_InternFromString(
647 {
"file", (getter)
GetFile,
NULL,
"File descriptor"},
652 "Fields by camelCase name"},
656 "Nested types by name"},
659 "Extensions by name"},
663 "Enum types by name"},
665 "Enum values by name"},
674 "Serialized Options"},
680 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
681 {
"CopyToProto", (PyCFunction)
CopyToProto, METH_O, },
682 {
"EnumValueName", (PyCFunction)
EnumValueName, METH_VARARGS, },
709 "A Message Descriptor",
730 PyErr_SetString(PyExc_TypeError,
"Not a MessageDescriptor");
737 namespace field_descriptor {
786 return PyLong_FromVoidPtr(
self);
794 return PyBool_FromLong(
_GetDescriptor(
self)->has_default_value());
801 return PyList_New(0);
808 result = PyInt_FromLong(
value);
813 result = PyLong_FromLongLong(
value);
818 result = PyInt_FromSize_t(
value);
823 result = PyLong_FromUnsignedLongLong(
value);
828 result = PyFloat_FromDouble(
value);
833 result = PyFloat_FromDouble(
value);
838 result = PyBool_FromLong(
value);
849 result = PyInt_FromLong(
value->number());
857 PyErr_Format(PyExc_NotImplementedError,
"default value for %s",
899 if (containing_type) {
914 if (extension_scope) {
924 if (containing_oneof) {
965 {
"name", (getter)
GetName,
NULL,
"Unqualified name"},
968 {
"file", (getter)
GetFile,
NULL,
"File Descriptor"},
992 "Serialized Options"},
997 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
1024 "A Field Descriptor",
1045 PyErr_SetString(PyExc_TypeError,
"Not a FieldDescriptor");
1057 return reinterpret_cast<const EnumDescriptor*
>(
self->descriptor);
1087 if (containing_type) {
1132 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
1133 {
"CopyToProto", (PyCFunction)
CopyToProto, METH_O, },
1140 {
"file", (getter)
GetFile,
NULL,
"File descriptor"},
1143 "Enum values by name"},
1145 "Enum values by number"},
1152 "Serialized Options"},
1179 "A Enum Descriptor",
1200 PyErr_SetString(PyExc_TypeError,
"Not an EnumDescriptor");
1207 namespace enumvalue_descriptor {
1267 "Serialized Options"},
1272 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
1299 "A EnumValue Descriptor",
1318 namespace file_descriptor {
1322 return reinterpret_cast<const FileDescriptor*
>(
self->base.descriptor);
1326 Py_XDECREF(
self->serialized_pb);
1331 PyObject*
pool =
reinterpret_cast<PyObject*
>(
1346 PyObject *serialized_pb =
self->serialized_pb;
1347 if (serialized_pb !=
NULL) {
1348 Py_INCREF(serialized_pb);
1349 return serialized_pb;
1354 file_proto.SerializePartialToString(&contents);
1355 self->serialized_pb = PyBytes_FromStringAndSize(
1356 contents.c_str(), contents.size());
1360 Py_INCREF(
self->serialized_pb);
1361 return self->serialized_pb;
1416 return PyString_InternFromString(
1430 "Messages by name"},
1433 "Extensions by name"},
1441 "Serialized Options"},
1447 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
1448 {
"CopyToProto", (PyCFunction)
CopyToProto, METH_O, },
1475 "A File Descriptor",
1503 const FileDescriptor* file_descriptor, PyObject *serialized_pb) {
1507 if (py_descriptor ==
NULL) {
1513 Py_XINCREF(serialized_pb);
1519 return py_descriptor;
1524 PyErr_SetString(PyExc_TypeError,
"Not a FileDescriptor");
1531 namespace oneof_descriptor {
1558 if (containing_type) {
1601 "Serialized Options"},
1607 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS },
1634 "A Oneof Descriptor",
1653 namespace service_descriptor {
1686 Py_ssize_t name_size;
1688 if (PyString_AsStringAndSize(arg, &
name, &name_size) < 0) {
1694 if (method_descriptor ==
NULL) {
1695 PyErr_Format(PyExc_KeyError,
"Couldn't find method %.200s",
name);
1707 return CopyToPythonProto<ServiceDescriptorProto>(
_GetDescriptor(
self),
1714 {
"file", (getter)
GetFile,
NULL,
"File descriptor"},
1723 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS },
1724 {
"CopyToProto", (PyCFunction)
CopyToProto, METH_O, },
1752 "A Service Descriptor",
1773 PyErr_SetString(PyExc_TypeError,
"Not a ServiceDescriptor");
1780 namespace method_descriptor {
1829 "Containing service",
NULL},
1836 {
"GetOptions", (PyCFunction)
GetOptions, METH_NOARGS, },
1837 {
"CopyToProto", (PyCFunction)
CopyToProto, METH_O, },
1864 "A Method Descriptor",
1892 if (PyDict_SetItemString(
type->tp_dict,
value->name().c_str(),
obj.get()) <
1902 if (PyDict_SetItemString(
type->tp_dict,
name,
obj.get()) < 0) {
1924 #define ADD_FIELDDESC_CONSTANT(NAME) AddIntConstant( \
1925 &PyFieldDescriptor_Type, #NAME, FieldDescriptor::NAME)
1938 #undef ADD_FIELDDESC_CONSTANT
const std::string & full_name() const
int32 default_value_int32() const
static int SetOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetSyntax(PyFileDescriptor *self, void *closure)
PyObject * NewFileDependencies(const FileDescriptor *descriptor)
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyObject * GetNestedTypesByName(PyBaseDescriptor *self, void *closure)
static PyObject * GetEnumTypesByName(PyBaseDescriptor *self, void *closure)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Type_descriptor()
PyObject * PyString_FromCppString(const string &str)
static PyObject * GetNestedTypesSeq(PyBaseDescriptor *self, void *closure)
static const FileOptions & default_instance()
static PyGetSetDef Getters[]
GLuint const GLchar * name
const EnumDescriptor * enum_type() const
PyTypeObject PyServiceDescriptor_Type
static PyObject * GetFile(PyBaseDescriptor *self, void *closure)
const Descriptor::ReservedRange value
PyObject * NewMessageExtensionsByName(ParentDescriptor descriptor)
static PyObject * GetExtensionsByName(PyBaseDescriptor *self, void *closure)
static PyObject * GetFieldsByNumber(PyBaseDescriptor *self, void *closure)
static PyObject * GetFieldsByCamelcaseName(PyBaseDescriptor *self, void *closure)
static PyObject * GetExtensionRanges(PyBaseDescriptor *self, void *closure)
static int SetContainingType(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetNumber(PyBaseDescriptor *self, void *closure)
static PyObject * GetFields(PyBaseDescriptor *self, void *closure)
static const MethodDescriptor * _GetDescriptor(PyBaseDescriptor *self)
std::unordered_map< const void *, PyObject * > * interned_descriptors
PyObject * NewMessageEnumValuesByName(ParentDescriptor descriptor)
PyTypeObject PyEnumValueDescriptor_Type
PyObject_HEAD MessageFactory * message_factory
static PyObject * GetExtensionsByName(PyFileDescriptor *self, void *closure)
PyObject * PyServiceDescriptor_FromDescriptor(const ServiceDescriptor *service_descriptor)
static PyObject * EnumValueName(PyBaseDescriptor *self, PyObject *args)
static int SetSerializedOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetPublicDependencies(PyFileDescriptor *self, void *closure)
PyDescriptorPool * GetDefaultDescriptorPool()
static PyObject * GetJsonName(PyBaseDescriptor *self, void *closure)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
PyObject * ToStringObject(const FieldDescriptor *descriptor, const string &value)
static int CheckCalledFromGeneratedFile(const char *attr_name)
PyObject * NewEnumValuesByNumber(ParentDescriptor descriptor)
PyObject * NewFilePublicDependencies(const FileDescriptor *descriptor)
bool ParseFromCodedStream(io::CodedInputStream *input)
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyObject * GetType(PyBaseDescriptor *self, void *closure)
static int SetOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
PyObject * NewServiceMethodsByName(ParentDescriptor descriptor)
static PyObject * GetContainingType(PyBaseDescriptor *self, void *closure)
const FileDescriptor * GetFileDescriptor(const DescriptorClass *descriptor)
PHP_PROTO_OBJECT_FREE_END PHP_PROTO_OBJECT_DTOR_END intern self
const FieldDescriptor * PyFieldDescriptor_AsDescriptor(PyObject *obj)
PyObject * PyMethodDescriptor_FromDescriptor(const MethodDescriptor *method_descriptor)
PyObject * NewMessageFieldsByName(ParentDescriptor descriptor)
GLuint GLsizei const GLchar * label
const Descriptor * containing_type() const
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
virtual void CopyFrom(const Message &from)
PyObject * PyEnumValueDescriptor_FromDescriptor(const EnumValueDescriptor *enumvalue_descriptor)
const Descriptor * containing_type() const
bool default_value_bool() const
PyObject * NewMessageFieldsSeq(ParentDescriptor descriptor)
PyObject * NewEnumValuesByName(ParentDescriptor descriptor)
static const EnumDescriptor * _GetDescriptor(PyBaseDescriptor *self)
PyObject * NewFileMessageTypesByName(ParentDescriptor descriptor)
static PyObject * GetMessageType(PyBaseDescriptor *self, void *closure)
PyObject * NewEnumValuesSeq(ParentDescriptor descriptor)
static const EnumValueDescriptor * _GetDescriptor(PyBaseDescriptor *self)
static int SetSerializedOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
PyObject * NewMessageNestedTypesByName(ParentDescriptor descriptor)
static const OneofOptions & default_instance()
const Descriptor * output_type() const
double default_value_double() const
static const char * SyntaxName(Syntax syntax)
static PyObject * GetNumber(PyBaseDescriptor *self, void *closure)
static PyObject * GetMessageTypesByName(PyFileDescriptor *self, void *closure)
zend_class_entry * enum_type
static PyMethodDef Methods[]
static PyObject * CopyToProto(PyBaseDescriptor *self, PyObject *target)
static PyObject * GetContainingType(PyBaseDescriptor *self, void *closure)
static PyObject * GetContainingType(PyBaseDescriptor *self, void *closure)
static PyGetSetDef Getters[]
static PyObject * GetContainingOneof(PyBaseDescriptor *self, void *closure)
PyTypeObject PyBaseDescriptor_Type
static int SetMessageType(PyBaseDescriptor *self, PyObject *value, void *closure)
static const FieldOptions & default_instance()
PyObject * PyEnumDescriptor_FromDescriptor(const EnumDescriptor *enum_descriptor)
static PyObject * IsExtension(PyBaseDescriptor *self, void *closure)
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
PyObject * PyFieldDescriptor_FromDescriptor(const FieldDescriptor *field_descriptor)
static PyObject * CopyToProto(PyBaseDescriptor *self, PyObject *target)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
static int SetHasOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetEnumvaluesByName(PyBaseDescriptor *self, void *closure)
static PyObject * GetHasOptions(PyFileDescriptor *self, void *closure)
static bool AddEnumValues(PyTypeObject *type, const EnumDescriptor *enum_descriptor)
PyObject * PyMessageDescriptor_FromDescriptor(const Descriptor *message_descriptor)
PyTypeObject PyFileDescriptor_Type
const std::string & name() const
static PyMethodDef Methods[]
zend_class_entry * message_type
static PyObject * GetEnumsSeq(PyBaseDescriptor *self, void *closure)
static PyObject * GetEnumType(PyBaseDescriptor *self, void *closure)
static PyObject * GetHasOptions(PyBaseDescriptor *self, void *closure)
PyObject * NewMessageOneofsByName(ParentDescriptor descriptor)
static int SetSerializedOptions(PyFileDescriptor *self, PyObject *value, void *closure)
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
PyDescriptorPool * GetDescriptorPool_FromPool(const DescriptorPool *pool)
static const EnumValueOptions & default_instance()
static PyObject * IsExtendable(PyBaseDescriptor *self, void *closure)
static PyObject * FindMethodByName(PyBaseDescriptor *self, PyObject *arg)
const Descriptor * PyMessageDescriptor_AsDescriptor(PyObject *obj)
GLsizei GLsizei GLuint * obj
static int SetSerializedOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
bool InitDescriptorMappingTypes()
static const MessageOptions & default_instance()
static PyMethodDef Methods[]
static int SetContainingOneof(PyBaseDescriptor *self, PyObject *value, void *closure)
#define PyVarObject_HEAD_INIT(type, size)
std::unordered_map< const void *, PyObject * > * descriptor_options
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
static PyObject * GetType(PyBaseDescriptor *self, void *closure)
static PyObject * GetOptions(PyBaseDescriptor *self)
const Descriptor * extension_scope() const
static PyObject * GetEnumvaluesByNumber(PyBaseDescriptor *self, void *closure)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
const EnumValueDescriptor * default_value_enum() const
static PyObject * GetMethodsByName(PyBaseDescriptor *self, void *closure)
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
struct google::protobuf::python::PyFileDescriptor PyFileDescriptor
static int SetContainingType(PyBaseDescriptor *self, PyObject *value, void *closure)
PyObject * NewFileExtensionsByName(ParentDescriptor descriptor)
static PyObject * GetEnumValuesByName(PyBaseDescriptor *self, void *closure)
static PyGetSetDef Getters[]
struct google::protobuf::python::PyBaseDescriptor PyBaseDescriptor
PyTypeObject * CMessage_Type
static int SetSerializedOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetConcreteClass(PyBaseDescriptor *self, void *closure)
static const ServiceDescriptor * _GetDescriptor(PyBaseDescriptor *self)
static PyGetSetDef Getters[]
PyObject * NewMessageOneofsSeq(ParentDescriptor descriptor)
const UnknownFieldSet & GetUnknownFields(const Message &message) const
PyObject * NewMessageFieldsByNumber(ParentDescriptor descriptor)
PyTypeObject PyEnumDescriptor_Type
static PyObject * CopyToPythonProto(const DescriptorClass *descriptor, PyObject *target)
bool SerializeToString(std::string *output) const
const ServiceDescriptor * service() const
static PyObject * GetCppType(PyBaseDescriptor *self, void *closure)
static int SetHasOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
PyObject * NewMessageFieldsByCamelcaseName(ParentDescriptor descriptor)
static PyObject * GetID(PyBaseDescriptor *self, void *closure)
static PyObject * GetName(PyFileDescriptor *self, void *closure)
static PyObject * GetExtensionScope(PyBaseDescriptor *self, void *closure)
static int SetOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetExtensions(PyBaseDescriptor *self, void *closure)
static PyObject * GetHasOptions(PyBaseDescriptor *self, void *closure)
static const EnumOptions & default_instance()
CMessageClass * GetOrCreateMessageClass(PyMessageFactory *self, const Descriptor *descriptor)
static PyObject * GetLabel(PyBaseDescriptor *self, void *closure)
uint32 default_value_uint32() const
static const OneofDescriptor * _GetDescriptor(PyBaseDescriptor *self)
static PyGetSetDef Getters[]
static PyMethodDef Methods[]
static int SetEnumType(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * GetHasOptions(PyBaseDescriptor *self, void *closure)
PyTypeObject PyMessageDescriptor_Type
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
void CopyTo(FileDescriptorProto *proto) const
const PyObject_HEAD void * descriptor
static int SetContainingType(PyBaseDescriptor *self, PyObject *value, void *closure)
int AssureWritable(CMessage *self)
PyObject * NewOneofFieldsSeq(ParentDescriptor descriptor)
static void Dealloc(PyObject *pself)
static PyObject * GetOutputType(PyBaseDescriptor *self, void *closure)
PyObject * NewFileEnumTypesByName(ParentDescriptor descriptor)
PyObject * NewInternedDescriptor(PyTypeObject *type, const DescriptorClass *descriptor, bool *was_created)
InternalDescriptorPool * pool
static PyObject * GetOrBuildOptions(const DescriptorClass *descriptor)
static int GcClear(PyObject *pself)
PyTypeObject PyFieldDescriptor_Type
const MethodDescriptor * FindMethodByName(const std::string &name) const
static PyObject * GetFile(PyBaseDescriptor *self, void *closure)
static int SetSerializedOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
int64 default_value_int64() const
PyObject * PyFileDescriptor_FromDescriptor(const FileDescriptor *file_descriptor)
static PyObject * GetOneofsSeq(PyBaseDescriptor *self, void *closure)
static PyObject * GetInputType(PyBaseDescriptor *self, void *closure)
static PyObject * GetCamelcaseName(PyBaseDescriptor *self, void *closure)
PyObject * NewServiceMethodsSeq(ParentDescriptor descriptor)
static PyObject * GetHasOptions(PyBaseDescriptor *self, void *closure)
static PyMethodDef Methods[]
static PyGetSetDef Getters[]
static const Descriptor * _GetDescriptor(PyBaseDescriptor *self)
float default_value_float() const
static bool AddIntConstant(PyTypeObject *type, const char *name, int value)
static PyGetSetDef Getters[]
static PyObject * GetFieldsByName(PyBaseDescriptor *self, void *closure)
static int SetOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
const Descriptor * input_type() const
static PyObject * GetOptions(PyFileDescriptor *self)
static PyObject * GetContainingType(PyBaseDescriptor *self, void *closure)
const std::string & default_value_string() const
const Descriptor * containing_type() const
const FileDescriptor * PyFileDescriptor_AsDescriptor(PyObject *obj)
PyMessageFactory * py_message_factory
PyObject * PyOneofDescriptor_FromDescriptor(const OneofDescriptor *oneof_descriptor)
static PyObject * GetEnumTypesByName(PyFileDescriptor *self, void *closure)
const void * PyDescriptor_AsVoidPtr(PyObject *obj)
VALUE enum_descriptor(VALUE self)
static PyObject * GetEnumvaluesSeq(PyBaseDescriptor *self, void *closure)
static const FileDescriptor * _GetDescriptor(PyFileDescriptor *self)
const EnumDescriptor * PyEnumDescriptor_AsDescriptor(PyObject *obj)
static PyObject * GetPool(PyFileDescriptor *self, void *closure)
PyObject * PyFileDescriptor_FromDescriptorWithSerializedPb(const FileDescriptor *file_descriptor, PyObject *serialized_pb)
PyObject * NewMessageEnumsByName(ParentDescriptor descriptor)
static PyObject * GetFieldsSeq(PyBaseDescriptor *self, void *closure)
static PyObject * GetSerializedPb(PyFileDescriptor *self, void *closure)
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
const ServiceDescriptor * PyServiceDescriptor_AsDescriptor(PyObject *obj)
static PyObject * GetFile(PyBaseDescriptor *self, void *closure)
static PyObject * GetServicesByName(PyFileDescriptor *self, void *closure)
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
PyTypeObject PyOneofDescriptor_Type
PyObject_HEAD DescriptorPool * pool
bool _CalledFromGeneratedFile(int stacklevel)
static PyObject * GetOneofsByName(PyBaseDescriptor *self, void *closure)
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyObject * GetHasOptions(PyBaseDescriptor *self, void *closure)
static int SetHasOptions(PyFileDescriptor *self, PyObject *value, void *closure)
bool Reparse(PyMessageFactory *message_factory, const Message &from, Message *to)
static PyObject * GetSyntax(PyBaseDescriptor *self, void *closure)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
static PyObject * GetContainingService(PyBaseDescriptor *self, void *closure)
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
uint64 default_value_uint64() const
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyMethodDef Methods[]
static PyObject * GetMethods(PyBaseDescriptor *self, void *closure)
static const FieldDescriptor * _GetDescriptor(PyBaseDescriptor *self)
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
static void visit(const upb_refcounted *r, upb_refcounted_visit *v, void *closure)
const Descriptor * message_type() const
static PyGetSetDef Getters[]
static PyObject * GetDependencies(PyFileDescriptor *self, void *closure)
static void Dealloc(PyFileDescriptor *self)
static PyObject * HasDefaultValue(PyBaseDescriptor *self, void *closure)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * Label_descriptor()
static int SetOptions(PyFileDescriptor *self, PyObject *value, void *closure)
const OneofDescriptor * containing_oneof() const
static PyObject * GetPackage(PyFileDescriptor *self, void *closure)
const EnumDescriptor * FindEnumTypeByName(const std::string &name) const
static PyObject * CopyToProto(PyBaseDescriptor *self, PyObject *target)
static PyObject * GetCDescriptor(PyObject *self, void *closure)
static int GcTraverse(PyObject *pself, visitproc visit, void *arg)
static PyGetSetDef Getters[]
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
GLsizei const GLfloat * value
static PyMethodDef Methods[]
PyObject * NewFileServicesByName(const FileDescriptor *descriptor)
PyTypeObject PyMethodDescriptor_Type
static PyObject * GetOptions(PyBaseDescriptor *self)
static PyObject * CopyToProto(PyFileDescriptor *self, PyObject *target)
static PyObject * GetFullName(PyBaseDescriptor *self, void *closure)
PyObject * NewMessageEnumsSeq(ParentDescriptor descriptor)
static int SetOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyMethodDef Methods[]
static int SetHasOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
static PyObject * CopyToProto(PyBaseDescriptor *self, PyObject *target)
PyObject * NewMessageNestedTypesSeq(ParentDescriptor descriptor)
static int SetHasOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
PyObject * NewMessageExtensionsSeq(ParentDescriptor descriptor)
static int SetHasOptions(PyBaseDescriptor *self, PyObject *value, void *closure)
const Descriptor * containing_type() const
static PyObject * GetName(PyBaseDescriptor *self, void *closure)
CMessageClass * GetMessageClass(PyMessageFactory *self, const Descriptor *message_descriptor)
GLenum GLuint GLenum GLsizei const GLchar * message
#define ADD_FIELDDESC_CONSTANT(NAME)
static PyObject * GetDefaultValue(PyBaseDescriptor *self, void *closure)
static PyObject * GetFile(PyBaseDescriptor *self, void *closure)
FieldDescriptor::CppType cpp_type(FieldType type)
static PyObject * GetIndex(PyBaseDescriptor *self, void *closure)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:49