-
Notifications
You must be signed in to change notification settings - Fork 2
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
Attempt to fix issue #43 #44
Open
erocarrera
wants to merge
1
commit into
smarie:master
Choose a base branch
from
erocarrera:master
base: master
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 all commits
Commits
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
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.
This removal makes the python 2 test fail since this if/else statement is specifically for python 2. We should not modify this branch but rather try to understand why the main path fails lines 234-239
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.
Thanks for pointing me in the right direction.
Under Python3.9, the code:
cls.__bases__ = new_bases
throwsTypeError: __bases__ assignment: 'Mapping' deallocator differs from 'object'
which I'm guessing might be the exception you're trying to catch.The
cls.__bases__ = with_metaclass(type(cls), *new_bases)
throwsTypeError: can only assign tuple to Experiment.__bases__, not metaclass
(Experiment
is the name of my class where I'm using autoclass)I naively tried to make it a tuple as
cls.__bases__ = (with_metaclass(type(cls), *new_bases),)
and I get the exceptionTypeError: __bases__ assignment: 'temporary_class' deallocator differs from 'object'
I don't know what to try next, but maybe this gives you some information?
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.
Thanks a lot for providing this ! Well this does not look good. I understand why you ended up fixing the last part of the try/except.
Not sure that I can fix this very soon. I'll have a look in the upcoming weeks.
If you wish to have a stab at it in between, you can try to
PY38 = sys.version_info >= (3, 8)
).im_func
.Also note that a more recent lib that I consider better than
autoclass
for my personal use is https://smarie.github.io/python-pyfields/ . It also provides an@autoclass
decorator. Instead of fiddling with the class bases, this decorator addsto_dict
andfrom_dict
methods.Still of course I try to maintain both when possible
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.
Hi Sylvain, I've moved to
pyfields
as you suggested, that solved the issue for me. I will not grapple with trying to address the issue inautoclass
. Feel free to close the PR if you want.