A plugin for making Pylint aware of the fields of protobuf-generated classes
Project description
pylint-protobuf
pylint-protobuf
is a Pylint plugin for making Pylint aware of generated
fields from Protobuf types.
Usage
$ cat <<EOF >person.proto
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
}
EOF
$ cat <<EOF >example.py
from person_pb2 import Person
a = Person()
a.invalid_field = 123
EOF
$ protoc person.proto --python_out=.
$ pip install pylint-protobuf
$ pylint --load-plugins=pylint_protobuf example.py
************* Module example
E: 4, 0: Field 'invalid_field' does not appear in the declared fields of
protobuf-generated class 'Person' and will raise AttributeError on access
(protobuf-undefined-attribute)
------------------------------------
Your code has been rated at -6.67/10
Supported Python Versions
pylint-protobuf
supports Python 3.5 at a minimum.
Known Issues
pylint-protobuf
does not currently support the following concepts:
-
Externally defined messages, e.g.
import "external.proto";
-
Warnings of TypeError on field assignment, e.g.
msg.a_string_field = 123 # would raise TypeError
-
Warnings of attribute assignment to composite field, e.g.
msg.inner = msg.Inner(value=123) # would raise AttributeError
-
Warnings on undefined attributes on non-nested composite types, e.g.
msg.inner.should_warn = 123
Due to the way that types are checked, these are not currently correctly inferred and so will not raise any warnings.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pylint-protobuf-0.17.0.tar.gz
(21.5 kB
view hashes)
Built Distribution
Close
Hashes for pylint_protobuf-0.17.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1887154be8c5e3063fc763efb904f6d256d3543dc14180866ec4066d915e412 |
|
MD5 | e831fa725ecb28d86c272bcaa2cd4533 |
|
BLAKE2b-256 | 67e1808c553a703cbd7abf3456f1d35c85425a6f89e1a472233cd51f878f7c4a |