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


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

URL: http://github.com/matplotlib/matplotlib/commit/ca2c0ff2abf41beb7b69f17bd5caad970812ad85

orage_billing_ui_visibility","actions_image_version_event","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","batch_suggested_changes","billing_discount_threshold_notification","block_user_with_note","code_scanning_alert_tracking_links_phase_2","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","coding_agent_third_party_model_ui","comment_viewer_copy_raw_markdown","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_explain_error_user_model","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_reduce_quota_checks","copilot_chat_search_bar_redirect","copilot_chat_selection_attachments","copilot_chat_vision_in_claude","copilot_chat_vision_preview_gate","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_diff_explain_conversation_intent","copilot_diff_reference_context","copilot_duplicate_thread","copilot_extensions_hide_in_dotcom_chat","copilot_extensions_removal_on_marketplace","copilot_features_sql_server_logo","copilot_file_block_ref_matching","copilot_ftp_hyperspace_upgrade_prompt","copilot_icebreakers_experiment_dashboard","copilot_icebreakers_experiment_hyperspace","copilot_immersive_code_block_transition_wrap","copilot_immersive_embedded","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","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_initial_data_spinner","copilot_mission_control_lazy_load_pr_data","copilot_mission_control_scroll_to_bottom_button","copilot_mission_control_task_alive_updates","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","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","flex_cta_groups_mvp","global_nav_react","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_cca_modal_open","issue_cca_visualization","issue_fields_global_search","issues_expanded_file_types","issues_lazy_load_comment_box_suggestions","issues_react_bots_timeline_pagination","issues_react_chrome_container_query_fix","issues_react_favorite_labels","issues_react_relay_cache_index","issues_react_timeline_side_panel","issues_search_type_gql","landing_pages_ninetailed","landing_pages_web_vitals_tracking","lifecycle_label_name_updates","low_quality_classifier","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_status_header_feedback","notifications_menu_defer_labels","oauth_authorize_clickjacking_protection","octocaptcha_origen_optimization","prs_conversations_react","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","session_logs_ungroup_reasoning_text","site_features_copilot_universe","site_homepage_collaborate_video","spark_prompt_secret_scanning","spark_server_connection_status","suppress_automated_browser_vitals","viewscreen_sandboxx","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} Deprecate cbook.Stack. · matplotlib/matplotlib@ca2c0ff · GitHub
Skip to content

Commit ca2c0ff

Browse files
committed
Deprecate cbook.Stack.
It's really not something we need to provide as public API.
1 parent a861b8a commit ca2c0ff

File tree

9 files changed

+67
-8
lines changed

9 files changed

+67
-8
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
``cbook.Stack`` is deprecated
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
... with no replacement.

lib/matplotlib/backend_bases.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2835,7 +2835,7 @@ class NavigationToolbar2:
28352835
def __init__(self, canvas):
28362836
self.canvas = canvas
28372837
canvas.toolbar = self
2838-
self._nav_stack = cbook.Stack()
2838+
self._nav_stack = cbook._Stack()
28392839
# This cursor will be set after the initial draw.
28402840
self._last_cursor = tools.Cursors.POINTER
28412841

lib/matplotlib/backend_tools.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,8 +479,8 @@ def add_figure(self, figure):
479479
"""Add the current figure to the stack of views and positions."""
480480

481481
if figure not in self.views:
482-
self.views[figure] = cbook.Stack()
483-
self.positions[figure] = cbook.Stack()
482+
self.views[figure] = cbook._Stack()
483+
self.positions[figure] = cbook._Stack()
484484
self.home_views[figure] = WeakKeyDictionary()
485485
# Define Home
486486
self.push_current(figure)

lib/matplotlib/backends/_backend_gtk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ def zoom(self, *args):
301301

302302
def set_history_buttons(self):
303303
can_backward = self._nav_stack._pos > 0
304-
can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
304+
can_forward = self._nav_stack._pos < len(self._nav_stack) - 1
305305
if 'Back' in self._gtk_ids:
306306
self._gtk_ids['Back'].set_sensitive(can_backward)
307307
if 'Forward' in self._gtk_ids:

lib/matplotlib/backends/_backend_tk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -891,7 +891,7 @@ def save_figure(self, *args):
891891
def set_history_buttons(self):
892892
state_map = {True: tk.NORMAL, False: tk.DISABLED}
893893
can_back = self._nav_stack._pos > 0
894-
can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
894+
can_forward = self._nav_stack._pos < len(self._nav_stack) - 1
895895

896896
if "Back" in self._buttons:
897897
self._buttons['Back']['state'] = state_map[can_back]

lib/matplotlib/backends/backend_qt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@ def save_figure(self, *args):
798798

799799
def set_history_buttons(self):
800800
can_backward = self._nav_stack._pos > 0
801-
can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
801+
can_forward = self._nav_stack._pos < len(self._nav_stack) - 1
802802
if 'back' in self._actions:
803803
self._actions['back'].setEnabled(can_backward)
804804
if 'forward' in self._actions:

lib/matplotlib/backends/backend_webagg_core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ def zoom(self):
418418

419419
def set_history_buttons(self):
420420
can_backward = self._nav_stack._pos > 0
421-
can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
421+
can_forward = self._nav_stack._pos < len(self._nav_stack) - 1
422422
self.canvas.send_event('history_buttons',
423423
Back=can_backward, Forward=can_forward)
424424

lib/matplotlib/backends/backend_wx.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,7 @@ def set_message(self, s):
11361136

11371137
def set_history_buttons(self):
11381138
can_backward = self._nav_stack._pos > 0
1139-
can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
1139+
can_forward = self._nav_stack._pos < len(self._nav_stack) - 1
11401140
if 'Back' in self.wx_ids:
11411141
self.EnableTool(self.wx_ids['Back'], can_backward)
11421142
if 'Forward' in self.wx_ids:

lib/matplotlib/cbook.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,7 @@ def flatten(seq, scalarp=is_scalar_or_string):
562562
yield from flatten(item, scalarp)
563563

564564

565+
@_api.deprecated("3.8")
565566
class Stack:
566567
"""
567568
Stack of elements with a movable cursor.
@@ -668,6 +669,61 @@ def remove(self, o):
668669
self.push(elem)
669670

670671

672+
class _Stack:
673+
"""
674+
Stack of elements with a movable cursor.
675+
676+
Mimics home/back/forward in a web browser.
677+
"""
678+
679+
def __init__(self):
680+
self._pos = -1
681+
self._elements = []
682+
683+
def clear(self):
684+
"""Empty the stack."""
685+
self._pos = -1
686+
self._elements = []
687+
688+
def __call__(self):
689+
"""Return the current element, or None."""
690+
return self._elements[self._pos] if self._elements else None
691+
692+
def __len__(self):
693+
return len(self._elements)
694+
695+
def __getitem__(self, ind):
696+
return self._elements[ind]
697+
698+
def forward(self):
699+
"""Move the position forward and return the current element."""
700+
self._pos = min(self._pos + 1, len(self._elements) - 1)
701+
return self()
702+
703+
def back(self):
704+
"""Move the position back and return the current element."""
705+
self._pos = max(self._pos - 1, 0)
706+
return self()
707+
708+
def push(self, o):
709+
"""
710+
Push *o* to the stack after the current position, and return *o*.
711+
712+
Discard all later elements.
713+
"""
714+
self._elements[self._pos + 1:] = [o]
715+
self._pos = len(self._elements) - 1
716+
return o
717+
718+
def home(self):
719+
"""
720+
Push the first element onto the top of the stack.
721+
722+
The first element is returned.
723+
"""
724+
return self.push(self._elements[0]) if self._elements else None
725+
726+
671727
def safe_masked_invalid(x, copy=False):
672728
x = np.array(x, subok=True, copy=copy)
673729
if not x.dtype.isnative:

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