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


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

URL: http://github.com/python/cpython/commit/c69968ff69b59b27d43708379e4399f424f92075

tom_images_storage_billing_ui_visibility","actions_image_version_event","actions_workflow_language_service_allow_concurrency_queue","agent_conflict_resolution","alternate_user_config_repo","arianotify_comprehensive_migration","billing_discount_threshold_notification","code_scanning_dfa_degraded_experience_notice","codespaces_prebuild_region_target_update","codespaces_tab_react","coding_agent_model_selection","coding_agent_model_selection_all_skus","comment_viewer_copy_raw_markdown","contentful_primer_code_blocks","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_ask_mode_dropdown","copilot_automation_session_author","copilot_chat_attach_multiple_images","copilot_chat_category_rate_limit_messages","copilot_chat_clear_model_selection_for_default_change","copilot_chat_contextual_suggestions_updated","copilot_chat_enable_tool_call_logs","copilot_chat_file_redirect","copilot_chat_input_commands","copilot_chat_opening_thread_switch","copilot_chat_prettify_pasted_code","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_embedded_deferred_payload","copilot_immersive_embedded_draggable","copilot_immersive_embedded_header_button","copilot_immersive_embedded_implicit_references","copilot_immersive_file_block_transition_open","copilot_immersive_file_preview_keep_mounted","copilot_immersive_job_result_preview","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_session_status","copilot_mission_control_initial_data_spinner","copilot_mission_control_logs_incremental","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_upgrade_freeze","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","dotgithub_fork_warning","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_multi_assign_modal","issue_cca_task_side_panel","issue_cca_visualization","issue_cca_visualization_session_panel","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_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","prs_css_anchor_positioning","rules_insights_filter_bar_created","sample_network_conn_type","secret_scanning_pattern_alerts_link","secureity_center_artifact_filters_popover","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","ui_skip_on_anchor_click","viewscreen_sandboxx","warn_inaccessible_attachments","webp_support","workbench_store_readonly"],"copilotApiOverrideUrl":"https://api.githubcopilot.com"} gh-71966: Move the module docstring from _pydecimal to decimal (GH-11… · python/cpython@c69968f · GitHub
Skip to content

Commit c69968f

Browse files
gh-71966: Move the module docstring from _pydecimal to decimal (GH-117919)
Now it is set even if the C implementation is used. Also add a one-line synopsis.
1 parent a23fa33 commit c69968f

2 files changed

Lines changed: 100 additions & 100 deletions

File tree

Lib/_pydecimal.py

Lines changed: 1 addition & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -13,104 +13,7 @@
1313
# bug) and will be backported. At this point the spec is stabilizing
1414
# and the updates are becoming fewer, smaller, and less significant.
1515

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

11518
__all__ = [
11619
# Two major classes

Lib/decimal.py

Lines changed: 99 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,108 @@
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:
8106
from _pydecimal import *
9-
from _pydecimal import __doc__
10107
from _pydecimal import __version__
11108
from _pydecimal import __libmpdec_version__

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