pulumi/tests/integration/python/pylint
Justin Van Patten 9b0169be35
Fix pylint(no-member) when accessing resource.id (#4813)
Pylint currently reports `E1101: Instance of 'Bucket' has no 'id' member (no-member)` on lines in Pulumi Python programs like:

```python
pulumi.export('bucket_name', bucket.id)
```

Here's a description of this message from http://pylint-messages.wikidot.com/messages:e1101:

> Used when an object (variable, function, …) is accessed for a non-existent member.
>
> False positives: This message may report object members that are created dynamically, but exist at the time they are accessed.

This appears to be a false positive case: `id` isn't set in the constructor (it's set later in `register_resource`) and Pylint isn't able to figure this out statically. `urn` has the same problem. (Oddly, Pylint doesn't complain when accessing other resource output properties).

This change refactors `register_resource` so that `id` and `urn` can be assigned in the resource's constructor, so that Pylint can see it being assigned. The change also does the same with `read_resource`.
2020-06-12 12:41:56 -07:00
..
.gitignore Fix pylint(no-member) when accessing resource.id (#4813) 2020-06-12 12:41:56 -07:00
Pulumi.yaml Fix pylint(no-member) when accessing resource.id (#4813) 2020-06-12 12:41:56 -07:00
__main__.py Fix pylint(no-member) when accessing resource.id (#4813) 2020-06-12 12:41:56 -07:00
requirements.txt Fix pylint(no-member) when accessing resource.id (#4813) 2020-06-12 12:41:56 -07:00