pytho****@googl*****
pytho****@googl*****
2011年 2月 22日 (火) 02:48:10 JST
2 new revisions: Revision: 8262371e9a Author: INADA Naoki <inada****@klab*****> Date: Mon Feb 21 08:14:33 2011 Log: Update to 2.6.6: library/hmac.rst http://code.google.com/p/python-doc-ja/source/detail?r=8262371e9a Revision: 40025285e1 Author: INADA Naoki <inada****@klab*****> Date: Mon Feb 21 09:46:54 2011 Log: Update to 2.6.6: library/math.rst http://code.google.com/p/python-doc-ja/source/detail?r=40025285e1 ============================================================================== Revision: 8262371e9a Author: INADA Naoki <inada****@klab*****> Date: Mon Feb 21 08:14:33 2011 Log: Update to 2.6.6: library/hmac.rst http://code.google.com/p/python-doc-ja/source/detail?r=8262371e9a Modified: /library/hmac.rst ======================================= --- /library/hmac.rst Fri Apr 23 07:54:56 2010 +++ /library/hmac.rst Mon Feb 21 08:14:33 2011 @@ -3,27 +3,30 @@ ====================================================== .. module:: hmac - :synopsis: Python で実装された、メッセージ認証のための鍵付きハッシュ化 (HMAC: Keyed-Hashing for Message - Authentication) アルゴリズム。 + :synopsis: メッセージ認証のための鍵付きハッシュ化 (HMAC: Keyed-Hashing for Message + Authentication) アルゴリズムの Python 用実装 .. moduleauthor:: Gerhard Häring <ghaer****@users*****> .. sectionauthor:: Gerhard Häring <ghaer****@users*****> .. versionadded:: 2.2 -このモジュールでは :rfc:`2104` で記述されている HMAC アルゴリズムを実装して います。 +このモジュールでは :rfc:`2104` で記述されている HMAC アルゴリズムを実装して +います。 .. function:: new(key[, msg[, digestmod]]) 新たな hmac オブジェクトを返します。 - *msg* が存在すれば、メソッド呼び出し ``updatemsg`` を行います。 - *digestmod* は HMAC オブジェクトが使うダイジェストコンストラクタあるいは モジュールです。 + *msg* が存在すれば、メソッド呼び出し ``update(msg)`` を行います。 + *digestmod* は HMAC オブジェクトが使うダイジェストコンストラクタあるいは + モジュールです。 標準では :func:`hashlib.md5` コンストラクタになっています。 .. note:: - md5ハッシュには既知の脆弱性がありますが、後方互換性を考慮してデフォル トのままにしています。 + md5ハッシュには既知の脆弱性がありますが、後方互換性を考慮してデフォル トの + ままにしています。 使用するアプリケーションにあわせてよりよいものを選択してください。 HMAC オブジェクトは以下のメソッドを持っています: @@ -32,14 +35,16 @@ .. method:: hmac.update(msg) hmac オブジェクトを文字列 *msg* で更新します。 - 繰り返し呼び出しを行うと、それらの引数を全て結合した引数で単一の呼び出し をした際と同じに等価になります: + このメソッドの呼出の繰り返しは、それらの引数を全て結合した引数で単一の呼 び出しを + した際と同じになります。 すなわち ``m.update(a); m.update(b)`` は ``m.update(a + b)`` と等価で す。 .. method:: hmac.digest() これまで :meth:`update` メソッドに渡された文字列のダイジェスト値を返しま す。 - これは :attr:`digest_size` バイトの文字列で、NULL バイトを含む非 ASCII 文字が含まれることがあります。 + これは :attr:`digest_size` バイトの文字列で、 NUL バイトを含む非 ASCII + 文字が含まれることがあります。 .. method:: hmac.hexdigest() @@ -50,10 +55,11 @@ .. method:: hmac.copy() - hmac オブジェクトのコピー ("クローン") を返します。このコピーは最初の部 分文字列が共通になっている文字列のダイジェスト値を効率よく計算するために使う ことができます。 + hmac オブジェクトのコピー ("クローン") を返します。このコピーは最初の部 分文字列が + 共通になっている文字列のダイジェスト値を効率よく計算するために使うことが できます。 .. seealso:: Module :mod:`hashlib` - セキュアハッシュ関数を提供するpythonモジュールです。 + セキュアハッシュ関数を提供する Python モジュールです。 ============================================================================== Revision: 40025285e1 Author: INADA Naoki <inada****@klab*****> Date: Mon Feb 21 09:46:54 2011 Log: Update to 2.6.6: library/math.rst http://code.google.com/p/python-doc-ja/source/detail?r=40025285e1 Modified: /library/diff/math.rst.diff /library/math.rst ======================================= --- /library/diff/math.rst.diff Sun Feb 20 00:55:00 2011 +++ /library/diff/math.rst.diff Mon Feb 21 09:46:54 2011 @@ -218,7 +218,9 @@ The :mod:`math` module consists mostly of thin wrappers around the platform C - math library functions. Behavior in exceptional cases is loosely specified ++ math library functions. Behavior in exceptional cases follows Annex F of - by the C standards, and Python inherits much of its math-function ++ the C99 standard where appropriate. The current implementation will raise - error-reporting behavior from the platform C implementation. As a result, - the specific exceptions raised in error cases (and even whether some - arguments are considered to be exceptional at all) are not defined in any @@ -231,8 +233,6 @@ - Signaling *NaN*\s raise an exception. The exception type still depends on the - platform and libm implementation. It's usually :exc:`ValueError` for *EDOM* - and :exc:`OverflowError` for errno *ERANGE*. -+ math library functions. Behavior in exceptional cases follows Annex F of -+ the C99 standard where appropriate. The current implementation will raise + :exc:`ValueError` for invalid operations like ``sqrt(-1.0)`` or ``log(0.0)`` + (where C99 Annex F recommends signaling invalid operation or divide-by-zero), + and :exc:`OverflowError` for results that overflow (for example, ======================================= --- /library/math.rst Sat Nov 27 10:59:46 2010 +++ /library/math.rst Mon Feb 21 09:46:54 2011 @@ -28,8 +28,8 @@ .. function:: copysign(x, y) - *x* に *y* の符号を付けて返します。 ``copysign`` は IEEE 754 float の - 符号ビットをコピーします。たとえば ``copysign(1, -0.0)`` は *-1.0* にな ります。 + *x* に *y* の符号を付けて返します。符号付きのゼロをサポートしている + プラットフォームでは、 ``copysign(1.0, -0.0)`` は *-1.0* を返します。 .. versionadded:: 2.6 @@ -51,9 +51,6 @@ *x* の床値 (floor)、すなわち *x* 以下の最も大きい整数を float型で返しま す。 - .. versionchanged:: 2.6 - :meth:`__floor__` への委譲が追加されました。 - .. function:: fmod(x, y) @@ -113,9 +110,7 @@ .. function:: isnan(x) 浮動小数点数 *x* が NaN (not a number) であるかチェックします。 - NaN は IEEE 754 標準の一部です。 ``inf * 0`` 、 ``inf / inf`` - のような演算(に限りませんが)や NaN を含む演算、たとえば - ``nan * 1`` 、は NaN を返します。 + NaN についての詳しい情報は、 IEEE 754 標準を参照してください。 .. versionadded:: 2.6 @@ -134,7 +129,7 @@ .. function:: trunc(x) *x* の :class:`Integral` (たいてい長整数)へ切り捨てられた :class:`Real` - 値を返します。 ``x.__trunc__()`` に委譲されます。 + 値を返します。 ``__trunc__`` メソッドを利用します。 .. versionadded:: 2.6 @@ -158,8 +153,10 @@ .. function:: log(x[, base]) - *base* を底とした *x* の対数を返します。 - *base* を省略した場合 *x* の自然対数を返します。 + 引数が1つの場合、 *x* の (*e* を底とする)自然対数を返します。 + + 引数が2つの場合、 ``log(x)/log(base)`` として求められる *base* を底とし た *x* + の対数を返します。 .. versionchanged:: 2.3 *base* 引数が追加されました。 @@ -176,6 +173,7 @@ .. function:: log10(x) *x* の10を底とした対数(常用対数)を返します。 + この関数は通常、 ``log(x, 10)`` よりも高精度です。 .. function:: pow(x, y) @@ -221,7 +219,7 @@ 極座標平面において原点から ``(x, y)`` へのベクトルが X 軸の正の方向とな す角です。 :func:`atan2` のポイントは、入力 *x*, *y* の両方の符号が既知であるために、位相角の正しい象限を計算できることに あります。 - 例えば、 ``atan(1)`` と ``atan2(1,1)`` + 例えば、 ``atan(1)`` と ``atan2(1, 1)`` はいずれも ``pi/4`` ですが、 ``atan2(-1, -1)`` は ``-3*pi/4`` になりま す。 @@ -302,36 +300,36 @@ .. data:: pi - 定数 *π* (円周率)。 + 利用可能な精度の、数学定数 π = 3.141592... (円周率) .. data:: e - 定数 *e* (自然対数の底)。 + 利用可能な精度の、数学定数 *e* = 2.718281... (自然対数の底) -.. note:: +.. impl-detail:: :mod:`math` モジュールは、ほとんどが実行プラットフォームにおける C - 言語の数学ライブラリ関数に対する薄いラッパでできています。例外的な場合で の挙動は、 - C 言語標準ではおおさっぱにしか定義されておらず、さらに - Python は数学関数におけるエラー報告機能の挙動をプラットフォームの - C 実装から受け継いでいます。その結果として、エラーの際 - (およびなんらかの引数がとにかく例外的であると考えられる場合) - に送出される特定の例外については、 - プラットフォーム間やリリースバージョン間を通じて一貫性のある定義となって いません。 - 例えば、 ``math.log(0)`` が ``-Inf`` を返すか :exc:`ValueError` - または :exc:`OverflowError` を送出するかは不定であり、 - ``math.log(0)`` が :exc:`OverflowError` を送出する場合において - ``math.log(0L)`` が :exc:`ValueError` を送出するときもあります。 - - すべての関数は引数の少なくとも一つが *NaN* であれば黙って *NaN* を返しま す。 - *NaN* が発生すると例外が引き起こされます。例外の型は依然としてプラットフ ォームとその - libm 実装に依存しています。大抵は、 *EDOM* に対して は :exc:`ValueError` 、 - *ERANGE* に対しては :exc:`OverflowError` が対応します。 + 言語の数学ライブラリ関数に対する薄いラッパでできています。 + 例外的な場合での挙動は、適切である限り C99 標準の Annex F に従います。 + 現在の実装では、(C99 Annex F でゼロ除算か不正な演算やゼロ除算を通知する + ことが推奨されている) ``sqrt(-1.0)`` や ``log(0.0)`` といった不正な操作 + に対して :exc:`ValueError` を発生させ、(例えば ``exp(1000.0)`` のような) + 演算結果がオーバーフローする場合には :exc:`OverflowError` を発生させま す。 + 上記の関数群は、1つ以上の引数が NaN であった場合を除いて、 NaN を返しま せん。 + 引数に NaN が与えられた場合は、殆どの関数は NaN を返しますが、 (C99 Annex + F に従って) 別の動作をする場合があります。例えば、 ``pow(float('nan'), 0.0)`` + や ``hypot(float('nan'), float('inf'))`` といった場合です。 + + Python は signaling NaN と quiet NaN を区別せず、 signaling NaN に対する + 挙動は未定義とされていることに注意してください。典型的な挙動は、全ての NaN + を quiet NaN として扱うことです。 .. versionchanged:: 2.6 - 以前のバージョンの Python では入力に NaN を受け取ったときの演算結果が プラットフォームと libm 実装依存でした。 + + 特別なケースにおける挙動は、 C99 Annex F に従うことを意図するようにな りました。 + 以前のバージョンの Python では、特別なケースでの挙動は曖昧にしか定義 されていませんでした。 .. seealso::