Skip to content
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

Change typing of Context members #163

Closed
UuuNyaa opened this issue Dec 24, 2023 · 4 comments
Closed

Change typing of Context members #163

UuuNyaa opened this issue Dec 24, 2023 · 4 comments
Assignees
Labels

Comments

@UuuNyaa
Copy link
Contributor

UuuNyaa commented Dec 24, 2023

System Information

  • OS: Ubuntu 22.04
  • Blender version: 4.0.2
  • fake-bpy-module version: fake_bpy_module_latest-20231224-py3-none-any.whl

Expected behavior

Member Actual Expected
Context.active_object 'Object' typing.Optional['Object']
Context.selected_objects typing.Iterable['Object'] typing.List['Object']

Additional comments [Optional]

@nutti
Copy link
Owner

nutti commented May 12, 2024

@UuuNyaa

Can all type (not only selected_objects) be changed to typing.List[...] from typing.Iterable[...]?

@UuuNyaa
Copy link
Contributor Author

UuuNyaa commented May 13, 2024

Thank you for your efforts!
I looked up the Actual Types, now.

  • OS: Ubuntu 22.04
  • Blender version: 4.1.1
  • fake-bpy-module version: fake-bpy-module-latest-20240511
Member Expected fake-bpy-module-latest-20240511 No selection in Object Mode Armature selected in Edit Mode Armature selected in Pose Mode GeometryNodes selected in Edit Mode
selected_files ? typing.Iterable['FileSelectEntry'] = None object has no attribute object has no attribute object has no attribute object has no attribute
selected_assets ? typing.Iterable['AssetRepresentation'] = None object has no attribute object has no attribute object has no attribute object has no attribute
selected_ids ? typing.Iterable['ID'] = None object has no attribute object has no attribute object has no attribute object has no attribute
selected_nodes ? typing.Iterable['Node'] = None object has no attribute object has no attribute object has no attribute object has no attribute
visible_objects typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selectable_objects typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selected_objects typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
editable_objects typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selected_editable_objects typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
objects_in_mode typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
objects_in_mode_unique_data typing.List['Object'] typing.Iterable['Object'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
visible_bones typing.Optional[typing.List['EditBone']] typing.Iterable['EditBone'] = None <class 'NoneType'> <class 'list'> <class 'NoneType'> <class 'NoneType'>
editable_bones typing.Optional[typing.List['EditBone']] typing.Iterable['EditBone'] = None <class 'NoneType'> <class 'list'> <class 'NoneType'> <class 'NoneType'>
selected_bones typing.Optional[typing.List['EditBone']] typing.Iterable['EditBone'] = None <class 'NoneType'> <class 'list'> <class 'NoneType'> <class 'NoneType'>
selected_editable_bones typing.Optional[typing.List['EditBone']] typing.Iterable['EditBone'] = None <class 'NoneType'> <class 'list'> <class 'NoneType'> <class 'NoneType'>
visible_pose_bones typing.Optional[typing.List['PoseBone']] typing.Iterable['PoseBone'] = None <class 'NoneType'> <class 'NoneType'> <class 'list'> <class 'NoneType'>
selected_pose_bones typing.Optional[typing.List['PoseBone']] typing.Iterable['PoseBone'] = None <class 'NoneType'> <class 'NoneType'> <class 'list'> <class 'NoneType'>
selected_pose_bones_from_active_object typing.Optional[typing.List['PoseBone']] typing.Iterable['PoseBone'] = None <class 'NoneType'> <class 'NoneType'> <class 'list'> <class 'NoneType'>
sequences typing.List['Sequence'] typing.Iterable['Sequence'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selected_sequences typing.List['Sequence'] typing.Iterable['Sequence'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selected_editable_sequences typing.List['Sequence'] typing.Iterable['Sequence'] = None <class 'list'> <class 'list'> <class 'list'> <class 'list'>
selected_nla_strips ? typing.Iterable['NlaStrip'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_movieclip_tracks ? typing.Iterable['MovieTrackingTrack'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
visible_gpencil_layers ? typing.Iterable['GPencilLayer'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
editable_gpencil_layers ? typing.Iterable['GPencilLayer'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
editable_gpencil_strokes ? typing.Iterable['GPencilStroke'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
active_gpencil_layer ? typing.Iterable['GPencilLayer'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
active_gpencil_frame ? typing.Iterable['GreasePencilLayer'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_visible_actions ? typing.Iterable['Action'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_editable_actions ? typing.Iterable['Action'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
visible_fcurves ? typing.Iterable['FCurve'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
editable_fcurves ? typing.Iterable['FCurve'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_visible_fcurves ? typing.Iterable['FCurve'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_editable_fcurves ? typing.Iterable['FCurve'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>
selected_editable_keyframes ? typing.Iterable['Keyframe'] = None <class 'NoneType'> <class 'NoneType'> <class 'NoneType'> <class 'NoneType'>

Some properties are difficult to observe and some are Optional.

Check script

type(C.selected_files)
type(C.selected_assets)
type(C.selected_ids)
type(C.selected_nodes)
type(C.visible_objects)
type(C.selectable_objects)
type(C.selected_objects)
type(C.editable_objects)
type(C.selected_editable_objects)
type(C.objects_in_mode)
type(C.objects_in_mode_unique_data)
type(C.visible_bones)
type(C.editable_bones)
type(C.selected_bones)
type(C.selected_editable_bones)
type(C.visible_pose_bones)
type(C.selected_pose_bones)
type(C.selected_pose_bones_from_active_object)
type(C.sequences)
type(C.selected_sequences)
type(C.selected_editable_sequences)
type(C.selected_nla_strips)
type(C.selected_movieclip_tracks)
type(C.visible_gpencil_layers)
type(C.editable_gpencil_layers)
type(C.editable_gpencil_strokes)
type(C.active_gpencil_layer)
type(C.active_gpencil_frame)
type(C.selected_visible_actions)
type(C.selected_editable_actions)
type(C.visible_fcurves)
type(C.editable_fcurves)
type(C.selected_visible_fcurves)
type(C.selected_editable_fcurves)
type(C.selected_editable_keyframes)

@UuuNyaa
Copy link
Contributor Author

UuuNyaa commented May 16, 2024

Member Expected fake-bpy-module-latest 20240511
temp_override (self, window: Optional[bpy.types.Window] = None, area: Optional[bpy.types.Area] = None, region: Optional[bpy.types.Region] = None, **keywords) -> Generator[bpy.types.Context, None, None] (self, window: Optional['Window'], area: Optional['Area'], region: Optional['Region'], **keywords) -> 'bpy.context'

@nutti nutti self-assigned this May 31, 2024
@nutti nutti added the bug label May 31, 2024
@nutti
Copy link
Owner

nutti commented May 31, 2024

Fixed a part of this issue.
However, I could not find the way to check if the members (except for active_ members) are optional or not from the sphinx documentation.
If you have an idea, please let us know.

@nutti nutti closed this as completed May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants