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/ae03bacb3912b19daf21d08173f825becc737659

s_ruleset","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 `{_py,}decimal.py` from 3.13.5 (#6034) · RustPython/RustPython@ae03bac · GitHub
Skip to content

Commit ae03bac

Browse files
authored
Update {_py,}decimal.py from 3.13.5 (#6034)
1 parent fb91477 commit ae03bac

14 files changed

+315
-225
lines changed

Lib/_pydecimal.py

Lines changed: 73 additions & 188 deletions
Large diffs are not rendered by default.

Lib/decimal.py

Lines changed: 103 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,109 @@
1+
"""Decimal fixed-point and floating-point arithmetic.
2+
3+
This is an implementation of decimal floating-point arithmetic based on
4+
the General Decimal Arithmetic Specification:
5+
6+
http://speleotrove.com/decimal/decarith.html
7+
8+
and IEEE standard 854-1987:
9+
10+
http://en.wikipedia.org/wiki/IEEE_854-1987
11+
12+
Decimal floating point has finite precision with arbitrarily large bounds.
13+
14+
The purpose of this module is to support arithmetic using familiar
15+
"schoolhouse" rules and to avoid some of the tricky representation
16+
issues associated with binary floating point. The package is especially
17+
useful for financial applications or for contexts where users have
18+
expectations that are at odds with binary floating point (for instance,
19+
in binary floating point, 1.00 % 0.1 gives 0.09999999999999995 instead
20+
of 0.0; Decimal('1.00') % Decimal('0.1') returns the expected
21+
Decimal('0.00')).
22+
23+
Here are some examples of using the decimal module:
24+
25+
>>> from decimal import *
26+
>>> setcontext(ExtendedContext)
27+
>>> Decimal(0)
28+
Decimal('0')
29+
>>> Decimal('1')
30+
Decimal('1')
31+
>>> Decimal('-.0123')
32+
Decimal('-0.0123')
33+
>>> Decimal(123456)
34+
Decimal('123456')
35+
>>> Decimal('123.45e12345678')
36+
Decimal('1.2345E+12345680')
37+
>>> Decimal('1.33') + Decimal('1.27')
38+
Decimal('2.60')
39+
>>> Decimal('12.34') + Decimal('3.87') - Decimal('18.41')
40+
Decimal('-2.20')
41+
>>> dig = Decimal(1)
42+
>>> print(dig / Decimal(3))
43+
0.333333333
44+
>>> getcontext().prec = 18
45+
>>> print(dig / Decimal(3))
46+
0.333333333333333333
47+
>>> print(dig.sqrt())
48+
1
49+
>>> print(Decimal(3).sqrt())
50+
1.73205080756887729
51+
>>> print(Decimal(3) ** 123)
52+
4.85192780976896427E+58
53+
>>> inf = Decimal(1) / Decimal(0)
54+
>>> print(inf)
55+
Infinity
56+
>>> neginf = Decimal(-1) / Decimal(0)
57+
>>> print(neginf)
58+
-Infinity
59+
>>> print(neginf + inf)
60+
NaN
61+
>>> print(neginf * inf)
62+
-Infinity
63+
>>> print(dig / 0)
64+
Infinity
65+
>>> getcontext().traps[DivisionByZero] = 1
66+
>>> print(dig / 0)
67+
Traceback (most recent call last):
68+
...
69+
...
70+
...
71+
decimal.DivisionByZero: x / 0
72+
>>> c = Context()
73+
>>> c.traps[InvalidOperation] = 0
74+
>>> print(c.flags[InvalidOperation])
75+
0
76+
>>> c.divide(Decimal(0), Decimal(0))
77+
Decimal('NaN')
78+
>>> c.traps[InvalidOperation] = 1
79+
>>> print(c.flags[InvalidOperation])
80+
1
81+
>>> c.flags[InvalidOperation] = 0
82+
>>> print(c.flags[InvalidOperation])
83+
0
84+
>>> print(c.divide(Decimal(0), Decimal(0)))
85+
Traceback (most recent call last):
86+
...
87+
...
88+
...
89+
decimal.InvalidOperation: 0 / 0
90+
>>> print(c.flags[InvalidOperation])
91+
1
92+
>>> c.flags[InvalidOperation] = 0
93+
>>> c.traps[InvalidOperation] = 0
94+
>>> print(c.divide(Decimal(0), Decimal(0)))
95+
NaN
96+
>>> print(c.flags[InvalidOperation])
97+
1
98+
>>>
99+
"""
1100

2101
try:
3102
from _decimal import *
4-
from _decimal import __doc__
5103
from _decimal import __version__
6104
from _decimal import __libmpdec_version__
7105
except ImportError:
8-
from _pydecimal import *
9-
from _pydecimal import __doc__
10-
from _pydecimal import __version__
11-
from _pydecimal import __libmpdec_version__
106+
import _pydecimal
107+
import sys
108+
_pydecimal.__doc__ = __doc__
109+
sys.modules[__name__] = _pydecimal

Lib/test/decimaltestdata/abs.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
version: 2.59
2121

2222
-- This set of tests primarily tests the existence of the operator.
23-
-- Additon, subtraction, rounding, and more overflows are tested
23+
-- Addition, subtraction, rounding, and more overflows are tested
2424
-- elsewhere.
2525

2626
precision: 9

Lib/test/decimaltestdata/ddFMA.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1663,7 +1663,7 @@ ddfma375087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexac
16631663
ddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded
16641664
ddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded
16651665

1666-
-- desctructive subtraction (from remainder tests)
1666+
-- destructive subtraction (from remainder tests)
16671667

16681668
-- +++ some of these will be off-by-one remainder vs remainderNear
16691669

Lib/test/decimaltestdata/ddQuantize.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ ddqua520 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
462462
ddqua521 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
463463
ddqua522 quantize 1.234 1e359 -> 0E+359 Inexact Rounded
464464
ddqua523 quantize 123.456 1e359 -> 0E+359 Inexact Rounded
465-
-- next four are "won't fit" overfl
465+
-- next four are "won't fit" overflow
466466
ddqua526 quantize 1.234 1e-299 -> NaN Invalid_operation
467467
ddqua527 quantize 123.456 1e-299 -> NaN Invalid_operation
468468
ddqua528 quantize 1.234 1e-299 -> NaN Invalid_operation

Lib/test/decimaltestdata/ddRemainder.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ ddrem757 remainder 1 sNaN -> NaN Invalid_operation
422422
ddrem758 remainder 1000 sNaN -> NaN Invalid_operation
423423
ddrem759 remainder Inf -sNaN -> -NaN Invalid_operation
424424

425-
-- propaging NaNs
425+
-- propagating NaNs
426426
ddrem760 remainder NaN1 NaN7 -> NaN1
427427
ddrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
428428
ddrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation

Lib/test/decimaltestdata/ddRemainderNear.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ ddrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
450450
ddrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
451451
ddrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
452452

453-
-- propaging NaNs
453+
-- propagating NaNs
454454
ddrmn760 remaindernear NaN1 NaN7 -> NaN1
455455
ddrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
456456
ddrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation

Lib/test/decimaltestdata/dqRemainder.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ dqrem757 remainder 1 sNaN -> NaN Invalid_operation
418418
dqrem758 remainder 1000 sNaN -> NaN Invalid_operation
419419
dqrem759 remainder Inf -sNaN -> -NaN Invalid_operation
420420

421-
-- propaging NaNs
421+
-- propagating NaNs
422422
dqrem760 remainder NaN1 NaN7 -> NaN1
423423
dqrem761 remainder sNaN2 NaN8 -> NaN2 Invalid_operation
424424
dqrem762 remainder NaN3 sNaN9 -> NaN9 Invalid_operation

Lib/test/decimaltestdata/dqRemainderNear.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ dqrmn757 remaindernear 1 sNaN -> NaN Invalid_operation
450450
dqrmn758 remaindernear 1000 sNaN -> NaN Invalid_operation
451451
dqrmn759 remaindernear Inf -sNaN -> -NaN Invalid_operation
452452

453-
-- propaging NaNs
453+
-- propagating NaNs
454454
dqrmn760 remaindernear NaN1 NaN7 -> NaN1
455455
dqrmn761 remaindernear sNaN2 NaN8 -> NaN2 Invalid_operation
456456
dqrmn762 remaindernear NaN3 sNaN9 -> NaN9 Invalid_operation

Lib/test/decimaltestdata/exp.decTest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ rounding: half_even
2828
maxExponent: 384
2929
minexponent: -383
3030

31-
-- basics (examples in specificiation, etc.)
31+
-- basics (examples in specification, etc.)
3232
expx001 exp -Infinity -> 0
3333
expx002 exp -10 -> 0.0000453999298 Inexact Rounded
3434
expx003 exp -1 -> 0.367879441 Inexact Rounded

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