-
-
Notifications
You must be signed in to change notification settings - Fork 631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Let data_key and attribute default to field name #1897
Open
lafrech
wants to merge
7
commits into
dev
Choose a base branch
from
default_data_key_attribute_to_field_name
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
747f364
Let data_key default to field name
lafrech f61370c
typing.cast field_obj.data_key
lafrech 43b0bc7
Add data_key to Field.__repr__
lafrech 1feec81
Let attribute default to field name
lafrech a53475a
typing.cast field_obj.attribute
lafrech 0d12e42
Rename local variables in Schema methods
lafrech a300e1c
Set field names on Schema creation
lafrech File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that
Fields.__init__
assigned aOptional[str]
type todata_key
._bind_to_schema
guarantees thatfield_obj.data_key
is astr
, but the type checker doesn't know that_deserialize
is guaranteed to run after_bind_to_schema
. I guess theget
type annotation enforces this argument, but AFAICT,None
doesn't actually error. 🤷It wants you to ensure
data_key
is neverNone
. The only thing I can think of is to makedata_key
a@property
that raises an exception if the field is unbound.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we agree on the reason behind the error.
It would be a shame to "complicate" the code, even slightly, to please the linter.
I suppose we could add comments to skip test on each failing line, but I'd rather find a way to centralize that by somehow forcing the type of
self.data_key
once and for all.We could use a cast:
but doing this in
__init__
before field binding would be wrong.Or we do it just before the type check error:
Still not ideal because:
I just pushed a commit doing that.