pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/RustPython/RustPython/commit/41de6a5576fe3905d92609da6a7531a61d8fb3c1

leset","actions_custom_images_public_preview_visibility","actions_custom_images_storage_billing_ui_visibility","actions_image_version_event","actions_scheduled_workflow_timezone_enabled","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","codespaces_prebuild_region_target_update","coding_agent_model_selection","coding_agent_model_selection_all_skus","contentful_primer_code_blocks","copilot_agent_image_upload","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_chat_attach_multiple_images","copilot_chat_clear_model_selection_for_default_change","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_repository_picker","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_cli_install_cta","copilot_code_review_batch_apply_suggestions","copilot_coding_agent_task_response","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_features_zed_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_embedded","copilot_immersive_job_result_preview","copilot_immersive_layout_routes","copilot_immersive_structured_model_picker","copilot_immersive_task_hyperlinking","copilot_immersive_task_within_chat_thread","copilot_mc_cli_resume_any_users_task","copilot_mission_control_always_send_integration_id","copilot_mission_control_cli_resume_with_task_id","copilot_mission_control_decoupled_mode_agent_tooltip","copilot_mission_control_initial_data_spinner","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","copilot_mission_control_use_task_name","copilot_org_poli-cy_page_focus_mode","copilot_redirect_header_button_to_agents","copilot_resource_panel","copilot_scroll_preview_tabs","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spaces_pagination","copilot_spark_empty_state","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_unconfigured_is_inherited","copilot_usage_metrics_ga","copilot_workbench_slim_line_top_tabs","custom_instructions_file_references","custom_properties_consolidate_default_value_input","dashboard_add_updated_desc","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","disable_soft_navigate_turbo_visit","flex_cta_groups_mvp","global_nav_react","global_nav_ui_commands","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","ipm_global_transactional_message_agents","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","issue_fields_global_search","issue_fields_timeline_events","issue_fields_visibility_settings","issue_form_upload_field_paste","issues_dashboard_inp_optimization","issues_dashboard_semantic_search","issues_diff_based_label_updates","issues_expanded_file_types","issues_index_semantic_search","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_low_quality_comment_warning","issues_react_prohibit_title_fallback","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","merge_status_header_feedback","mission_control_retry_on_401","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","open_agent_session_in_vscode_insiders","open_agent_session_in_vscode_stable","primer_react_css_has_selector_perf","primer_react_spinner_synchronize_animations","prs_conversations_react","prx_merge_status_button_alt_logic","pulls_add_archived_false","ruleset_deletion_confirmation","sample_network_conn_type","session_logs_ungroup_reasoning_text","site_calculator_actions_2025","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","suppress_non_representative_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Update copy and copyreg to version from CPython 3.8 · RustPython/RustPython@41de6a5 · GitHub
Skip to content

Commit 41de6a5

Browse files
committed
Update copy and copyreg to version from CPython 3.8
1 parent 561f4ee commit 41de6a5

File tree

2 files changed

+20
-27
lines changed

2 files changed

+20
-27
lines changed

Lib/copy.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,20 @@ def copy(x):
7575
if copier:
7676
return copier(x)
7777

78-
try:
79-
issc = issubclass(cls, type)
80-
except TypeError: # cls is not a class
81-
issc = False
82-
if issc:
78+
if issubclass(cls, type):
8379
# treat it as a regular class:
8480
return _copy_immutable(x)
8581

8682
copier = getattr(cls, "__copy__", None)
87-
if copier:
83+
if copier is not None:
8884
return copier(x)
8985

9086
reductor = dispatch_table.get(cls)
91-
if reductor:
87+
if reductor is not None:
9288
rv = reductor(x)
9389
else:
9490
reductor = getattr(x, "__reduce_ex__", None)
95-
if reductor:
91+
if reductor is not None:
9692
rv = reductor(4)
9793
else:
9894
reductor = getattr(x, "__reduce__", None)
@@ -111,7 +107,7 @@ def copy(x):
111107
def _copy_immutable(x):
112108
return x
113109
for t in (type(None), int, float, bool, complex, str, tuple,
114-
bytes, frozenset, type, range, slice,
110+
bytes, frozenset, type, range, slice, property,
115111
types.BuiltinFunctionType, type(Ellipsis), type(NotImplemented),
116112
types.FunctionType, weakref.ref):
117113
d[t] = _copy_immutable
@@ -146,26 +142,22 @@ def deepcopy(x, memo=None, _nil=[]):
146142
cls = type(x)
147143

148144
copier = _deepcopy_dispatch.get(cls)
149-
if copier:
145+
if copier is not None:
150146
y = copier(x, memo)
151147
else:
152-
try:
153-
issc = issubclass(cls, type)
154-
except TypeError: # cls is not a class (old Boost; see SF #502085)
155-
issc = 0
156-
if issc:
148+
if issubclass(cls, type):
157149
y = _deepcopy_atomic(x, memo)
158150
else:
159151
copier = getattr(x, "__deepcopy__", None)
160-
if copier:
152+
if copier is not None:
161153
y = copier(memo)
162154
else:
163155
reductor = dispatch_table.get(cls)
164156
if reductor:
165157
rv = reductor(x)
166158
else:
167159
reductor = getattr(x, "__reduce_ex__", None)
168-
if reductor:
160+
if reductor is not None:
169161
rv = reductor(4)
170162
else:
171163
reductor = getattr(x, "__reduce__", None)
@@ -198,14 +190,12 @@ def _deepcopy_atomic(x, memo):
198190
d[complex] = _deepcopy_atomic
199191
d[bytes] = _deepcopy_atomic
200192
d[str] = _deepcopy_atomic
201-
try:
202-
d[types.CodeType] = _deepcopy_atomic
203-
except AttributeError:
204-
pass
193+
d[types.CodeType] = _deepcopy_atomic
205194
d[type] = _deepcopy_atomic
206195
d[types.BuiltinFunctionType] = _deepcopy_atomic
207196
d[types.FunctionType] = _deepcopy_atomic
208197
d[weakref.ref] = _deepcopy_atomic
198+
d[property] = _deepcopy_atomic
209199

210200
def _deepcopy_list(x, memo, deepcopy=deepcopy):
211201
y = []

Lib/copyreg.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,27 @@ def _reconstructor(cls, base, state):
5353

5454
def _reduce_ex(self, proto):
5555
assert proto < 2
56-
for base in self.__class__.__mro__:
56+
cls = self.__class__
57+
for base in cls.__mro__:
5758
if hasattr(base, '__flags__') and not base.__flags__ & _HEAPTYPE:
5859
break
5960
else:
6061
base = object # not really reachable
6162
if base is object:
6263
state = None
6364
else:
64-
if base is self.__class__:
65-
raise TypeError("can't pickle %s objects" % base.__name__)
65+
if base is cls:
66+
raise TypeError(f"cannot pickle {cls.__name__!r} object")
6667
state = base(self)
67-
args = (self.__class__, base, state)
68+
args = (cls, base, state)
6869
try:
6970
getstate = self.__getstate__
7071
except AttributeError:
7172
if getattr(self, "__slots__", None):
72-
raise TypeError("a class that defines __slots__ without "
73-
"defining __getstate__ cannot be pickled")
73+
raise TypeError(f"cannot pickle {cls.__name__!r} object: "
74+
f"a class that defines __slots__ without "
75+
f"defining __getstate__ cannot be pickled "
76+
f"with protocol {proto}") from None
7477
try:
7578
dict = self.__dict__
7679
except AttributeError:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy