変更点—Werkzeugのドキュメント

提供:Dev Guides
Werkzeug/docs/2.0.x/changes
移動先:案内検索

変更点

バージョン2.0.2

2021年10月5日リリース

  • WebSocketリクエストをルーティングするときに、Connectionヘッダーで複数のトークンを処理します。 :issue: `2131`
  • https上でデバッガーのPINCookieセキュアフラグを設定します。 :pr: `2150`
  • MultiDict.updateの型注釈を修正して、反復可能な値を受け入れるようにしました:pr: `2142`
  • Rule.matchmerge_slash=Trueの場合、リダイレクトURLの二重エンコードを防止します。 :issue: `2157`
  • CombinedMultiDict.to_dictflat=Falseは、値リストを作成するときにすべてのコンポーネントの指示を考慮します。 :issue: `2189`
  • send_fileは、ブラウザが解凍された.tar.gzファイルを保存しないように、as_attachmentが無効になっている場合にのみ、検出されたContent-Encodingを設定します。 :issue: `2149`
  • defaulttypeの両方がNoneでない場合に、TypeConversionDict.getの型注釈がOptional値を返さないように修正しました。 :issue: `2169`
  • rulesパラメーターにIterable[Rule]ではなくIterable[RuleFactory]を受け入れるように、ルーティングルールファクトリの型注釈を修正しました。 :issue: `2183`
  • FileStorage.__getattr__ :issue: `2155` に欠落している型注釈を追加します
  • デバッガーのPINCookieは、最新のブラウザーセキュリティと互換性を持たせるために、NoneではなくSameSiteStrictに設定して設定されています。 :issue: `2156`
  • 型注釈は、BinaryIOおよびTextIOの代わりにIO[bytes]およびIO[str]を使用して、より広い型の互換性を実現します。 :issue: `2130`
  • アドホックTLS証明書は、CNに一致するSANを使用して生成されます。 :issue: `2158`
  • Python3.6または0.4.17より前のグリーンレットバージョンを使用している場合のローカルのメモリ使用量を修正しました。 :pr: `2212`
  • バインドされたTypeVarを使用していないため、CallbackDictの型注釈を修正しました。 :issue: `2235`
  • 応答のCSPヘッダーオプションの設定を修正しました。 :pr: `2237`
  • 非常に長いトレースバックでクリックしても行が展開されないインタラクティブデバッガーの問題を修正します。 :pr: `2239`
  • 対話型デバッガーは、ProcessPoolExecutorなどのトレースバックのない例外の表示を処理します。 :issue: `2217`


バージョン2.0.1

2021年5月17日リリース

  • send_file max_age呼び出し可能の型注釈を修正しました。 pathlib.Pathmax_ageに渡さないでください。 :issue: `2119`
  • タイプチェックがユーザープロジェクトのインポートを理解できるように、トップレベルの名前をエクスポート済みとしてマークします。 :issue: `2122`
  • Python3.6.0で利用できなかったいくつかのタイプを修正します。 :issue: `2123`
  • cached_propertyはその戻り型に対して一般的であり、それで装飾されたプロパティは正しい型を報告します。 :issue: `2113`
  • 境界に特別な正規表現文字が含まれている場合のマルチパート解析のバグを修正しました。 :issue: `2125`
  • タイプチェックは、文字列のデフォルトでheaders.getを呼び出すと、常に文字列が返されることを理解しています。 :issue: `2128`
  • HTTPException.descriptionが文字列でない場合、get_descriptionはそれを文字列に変換します。 :issue: `2115`


バージョン2.0.0

2021年5月11日リリース

  • Python2および3.5のサポートを終了します。 :pr: `1693`
  • utils.format_string()を廃止し、代わりにstring.Templateを使用してください。 :issue: `1756`
  • utils.bind_arguments()utils.validate_arguments()を廃止し、代わりにSignature.bind()inspect.signature()を使用してください。 :issue: `1757`
  • utils.HTMLBuilderを非推奨にします。 :issue: `1761`
  • utils.escape()およびutils.unescape()を廃止し、代わりにMarkupSafeを使用してください。 :issue: `1758`
  • 文書化されていないpython -m werkzeug.serving CLIは非推奨です。 :issue: `1834`
  • 開発サーバーの実行時に使用できるenviron["werkzeug.server.shutdown"]関数は非推奨になります。 :issue: `1752`
  • useragentsモジュールと組み込みのユーザーエージェントパーサーは非推奨です。 代わりに、user_agent.UserAgentをサブクラス化し、Request.user_agent_classを設定して、専用のパーサーライブラリを使用してください。 :issue: `2078`
  • 未使用の内部posixemulationモジュールを取り外します。 :issue: `1759`
  • すべてのdatetime値は、tzinfo=timezone.utcでタイムゾーンに対応しています。 これは、http.parse_dateを使用するすべてのものに適用されます:Request.date.if_modified_since.if_unmodified_since; Response.date.expires.last_modified.retry_after; parse_if_range_header、およびIfRange.date。 値を比較するときは、他の値も認識している必要があります。そうでない場合は、これらの値を単純にする必要があります。 パラメータを渡したり属性を設定したりする場合でも、ナイーブな値はUTCであると見なされます。 :pr: `2040`
  • すべてのリクエストとレスポンスのラッパーミックスインコードを単一のRequestクラスとResponseクラスにマージします。 ミックスインクラスを使用する必要がなくなり、非推奨の警告が表示されます。 isinstanceまたはissubclassBaseRequestおよびBaseResponseに対してチェックすると、非推奨の警告が表示され、代わりにRequestまたはResponseに対してチェックされます。 。 :issue: `1963`
  • JSONサポートは、インストールされている場合、simplejsonを使用しなくなりました。 別のJSONモジュールを使用するには、Request.json_moduleResponse.json_moduleをオーバーライドします。 :pr: `1766`
  • Response.get_json()は結果をキャッシュしなくなり、cacheパラメーターは削除されました。 :issue: `1698`
  • Response.freeze()は、ETagヘッダーが設定されていない場合、ヘッダーを生成します。 no_etagパラメーター(通常はとにかく表示されませんでした)は使用されなくなりました。 :issue: `1963`
  • url_scheme引数をbuild()に追加して、バインドされたスキームをオーバーライドします。 :pr: `1721`
  • 空のリストをクエリ文字列パラメータとしてbuild()に渡しても、不要な?は追加されません。 また、リスト内のNoneアイテムをいくつでもドロップします。 :issue: `1992`
  • HeadersオブジェクトをテストクライアントメソッドまたはEnvironBuilderに渡す場合、キーの複数の値が1つのコンマ区切り値に結合されます。 これは、複数値ヘッダーのHTTP仕様と一致します。 :issue: `1655`
  • Response.statusstatus_codeの設定では、同じ解析とエラーチェックが使用されます。 :issue: `1658`:pr:` 1728`
  • MethodNotAllowedRequestedRangeNotSatisfiableは、他のHTTPエラーと一致して、response kwargを取ります。 :pr: `1748`
  • Unauthorizedによって生成される応答は、ブラウザーや他のクライアントとの相互運用性を向上させるために、www_authenticateの値ごとに1つのWWW-Authenticateヘッダーを生成します。 :pr: `1755`
  • parse_authorization_headerがヘッダー値をデコードできない場合、UnicodeDecodeErrorを上げる代わりに、Noneを返します。 :issue: `1816`
  • デバッガーはjQueryを使用しなくなりました。 :issue: `1807`
  • テストクライアントには、REQUEST_URIおよびRAW_URIにクエリ文字列が含まれています。 :issue: `1781`
  • default_stream_factoryのパラメーターの順序を、呼び出し時に使用される順序と一致するように切り替えます。 :pr: `1085`
  • send_file関数を追加して、ファイルを提供する応答を生成します。 Flaskの実装から適応。 :issue: `265`:pr:` 1850`
  • send_from_directory関数を追加して、信頼できるディレクトリ内の信頼できないパスを安全に提供します。 Flaskの実装から適応。 :issue: `1880`
  • send_filedownload_nameを取ります。これは、Content-Disposition: inlineを使用してas_attachment=Falseであっても渡されます。 download_nameは、Flaskのattachment_filenameを置き換えます。 :issue: `1869`
  • send_fileは、デフォルトでconditional=Truemax_age=Noneを設定します。 Cache-Controlmax_ageが設定されていない場合はno-cacheに設定され、それ以外の場合はpublicに設定されます。 これは、時限キャッシュを使用する代わりに条件付きリクエストを検証するようにブラウザに指示します。 max_age=Noneは、Flaskのcache_timeout=43200を置き換えます。 :issue: `1882`
  • send_fileetag="string"と一緒に呼び出すと、カスタムETagを生成する代わりに設定できます。 etagは、Flaskのadd_etagsを置き換えます。 :issue: `1868`
  • send_fileは、download_nameからmimetypeを推測するときにエンコードが返される場合、Content-Encodingヘッダーを設定します。 :pr: `3896`
  • generate_password_hashで使用されるデフォルトを更新します。 PBKDF2の反復を150000から260000に増やします。 塩の長さを8から16に増やします。 secretsモジュールを使用してソルトを生成します。 :pr: `1935`
  • sys.stdinがなんらかの理由でNoneの場合、リローダーはクラッシュしません。 :pr: `1915`
  • delete_cookieに引数を追加して、set_cookieと最新のブラウザーが期待する属性に一致させます。 :pr: `1889`
  • utils.cookie_dateは非推奨です。代わりにutils.http_dateを使用してください。 Set-Cookie expiresの値は「-」で区切られなくなりました。 :pr: `2040`
  • request.environの代わりにrequest.headersを使用して、ヘッダー属性を検索します。 :pr: `1808`
  • テストClientリクエストメソッド(client.getなど)は、常にTestResponseのインスタンスを返します。 Responseの通常の動作に加えて、このクラスはrequestに応答を生成した要求を提供し、historyfollow_redirectsが中古。 :issue: `763、1894`
  • テストClientリクエストメソッドは、authパラメーターを使用してAuthorizationヘッダーを追加します。 AuthorizationオブジェクトまたはBasic認証用の(username, password)タプルにすることができます。 :pr: `1809`
  • テストClientからの応答でresponse.close()を呼び出すと、要求入力ストリームが閉じられます。 これはファイルの動作と一致し、場合によってはResourceWarningを防ぐことができます。 :issue: `1785`
  • EnvironBuilder.from_environは、WSGI用にエンコードされた値をデコードして、新しい値の二重エンコードを回避します。 :pr: `1959`
  • デフォルトの統計リローダーは、システム/仮想環境以外のsys.pathエントリの下にあるPythonファイルを監視します。これにはほとんどのユーザーコードが含まれているはずです。 また、extra_filesで指定されたディレクトリの下にあるすべてのPythonファイルを監視します。 :pr: `1945`
  • リローダーは__pycache__ディレクトリを再び無視します。 :pr: `1945`
  • run_simpleは、リローダーによってスキャンされないfnmatchパターンのリストexclude_patternsを取ります。 :issue: `1333`
  • Cookie名が引用符で囲まれなくなりました。 これは RFC 6265 に反しており、__Secureプレフィックス付きCookieの設定を許可する可能性がありました。 :pr: `1965`
  • 単語が部分文字列になる可能性がある場合に、ユーザーエージェントプラットフォームのいくつかの単語の一致を修正します。 :issue: `1923`
  • 開発サーバーのログはSSLエラーを無視しました。 :pr: `1967`
  • フォームデータの一時ファイルは、一部のライブラリとの互換性を高めるために、wb+モードではなくrb+で開かれます。 :issue: `1961`
  • ETagとデバッガーピンの生成、および一部のテストでは、MD5の代わりにSHA-1を使用します。 MD5は、FIPS140などの一部の環境では使用できません。 ETagが異なるため、これにより一部のキャッシュが無効になる場合があります。 :issue: `1897`
  • Cross-Origin-Opener-PolicyおよびCross-Origin-Embedder-Policy応答ヘッダープロパティを追加します。 :pr: `2008`
  • run_simpleは、0.0.0.0または::ではなく、すべてのアドレスにバインドするときに有効なIPアドレスを表示しようとします。 この場合、本番環境で開発サーバーを実行しないことについても警告します。 :issue: `1964`
  • ColoramaがWindowsにインストールされている場合、開発サーバーログの色が表示されます。 すべてのプラットフォームで、スタイルのサポートにClickは不要になりました。 :issue: `1832`
  • 空のファイル(または長さが0の他のデータ)の範囲要求は、416エラーではなく、空のファイルで200応答を返します。 :issue: `1937`
  • RequestおよびResponseの新しいsans-IO基本クラスが抽出され、WSGIまたはIOに依存しないすべての動作が含まれるようになりました。 これらはパブリックAPIではなく、ASGIフレームワークがWerkzeugを使用できるようにするための継続的なリファクタリングの一部です。 :pr: `2005`
  • multipart/form-dataの解析は、sans-ioパターンを使用するようにリファクタリングされました。 これにより、大きなバイナリファイルのアップロードを含むフォームの解析も大幅に高速化されます。 :issue: `1788、875`
  • LocalProxyは、すべてのr-ops、インプレースops、非同期など、現在のPythonデータモデルの特別なメソッドと一致します。 __class__はプロキシされるため、isinstanceなど、多くの場合、プロキシはオブジェクトのように見えます。 issubclass(type(obj), LocalProxy)を使用して、オブジェクトが実際にプロキシであるかどうかを確認します。 :issue: `1754`
  • Localは、Python3.7以降でthreading.localの代わりにContextVarを使用します。 :pr: `1778`
  • request.valuesには、GET要求のformは含まれません(GET本体が定義されていない場合でも)。 これにより、不正なキャッシュプロキシがクエリ文字列ではなくフォームデータをキャッシュするのを防ぎます。 :pr: `2037`
  • 開発サーバーは、基盤となるソケットをenvironwerkzeug.socketとして追加します。 これは非標準であり、開発サーバーに固有です。他のサーバーが独自のキーでこれを公開する場合があります。 これは、WebSocketのアップグレード要求を処理するのに役立ちます。 :issue: `2052`
  • URLマッチングは、WebSocketアップグレード要求に対してwebsocket=Trueモードを想定しています。 :issue: `2052`
  • より多くのケースを処理するようにUserAgentParserを更新しました。 :issue: `1971`
  • werzeug.DechunkedInput.readintoは、バッファーのサイズを超えて読み取ることはありません。 :issue: `2021`
  • 最大コンテンツサイズを超えた場合の接続リセットを修正しました。 :pr: `2051`
  • pbkdf2_hexpbkdf2_bin、およびsafe_str_cmpは非推奨になりました。 hashlibhmacは同等のものを提供します。 :pr: `2083`
  • invalidate_cached_propertyは非推奨です。 代わりにdel obj.nameを使用してください。 :pr: `2084`
  • Hrefは非推奨です。 代わりにwerkzeug.routingを使用してください。 :pr: `2085`
  • Request.disable_data_descriptorは非推奨です。 代わりにshallow=Trueを使用してリクエストを作成してください。 :pr: `2085`
  • HTTPException.wrapは非推奨です。 代わりに、手動でサブクラスを作成してください。 :pr: `2085`


バージョン1.0.1

2020-03-31リリース

  • RequestRedirect.get_responseへの引数をオプションにします。 :issue: `1718`
  • 単一のアクセス制御のみを許可し、起点値を許可します。 :pr: `1723`
  • 存在しないコンテンツセキュリティポリシーヘッダーを解析しようとしたときのクラッシュを修正しました。 :pr: `1731`
  • http_dateゼロは1000未満の年を埋め、常に4桁を出力します。 :issue: `1739`
  • インタラクティブデバッガコンソールで欠落しているローカル変数を修正します。 :issue: `1746`
  • io.BytesIOのようなファイルのようなオブジェクトをFileStorage.saveに渡す問題を修正しました。 :issue: `1733`


バージョン1.0.0

2020-02-06リリース

  • Python3.4のサポートを終了します。 (:issue: `1478`
  • バージョン0.15で非推奨の警告を発行したコードを削除します。 (:issue: `1477`
  • werkzeugモジュールによって提供されるほとんどの最上位属性を削除して、直接インポートを優先します。 たとえば、import werkzeug; werkzeug.url_quoteの代わりに、from werkzeug.urls import url_quoteを実行します。 最初にバージョン0.16をインストールして、アップグレード中に非推奨の警告を確認してください。 :issue: `2`:pr:` 1640`
  • キャッシュされたプロパティを無効にするためにutils.invalidate_cached_property()を追加しました。 (:pr: `1474`
  • Set-Cookie応答ヘッダーのディレクティブキーは、Cookie要求ヘッダーを解析するときに無視されません。 これにより、「expires」や「version」などの名前のCookieが許可されます。 (:issue: `1495`
  • リクエストCookieはMultiDictに解析され、同じキーを持つCookieのすべての値をキャプチャします。 cookies[key]は、最後の値ではなく最初の値を返します。 cookies.getlist(key)を使用して、すべての値を取得します。 parse_cookieもデフォルトでMultiDictになります。 :issue: `1562`:pr:` 1458`
  • charset=utf-8をHTTP例外応答のCONTENT_TYPEヘッダーに追加します。 (:pr: `1526`
  • インタラクティブデバッガーは、ラムダや内包表記などのネストされたスコープ内の外部変数を処理します。 :issue: `913`:issue:` 1037`:pr: `1532`
  • Mac上のOpera60のユーザーエージェントは、「chrome」ではなく「opera」として正しく報告されます。 :issue: `1556`
  • Android上のCrosswalkのプラットフォームは、「chromeos」ではなく「android」として正しく報告されます。 (:pr: `1572`
  • 現在のサーバー名が構成済みのサーバー名と一致しない場合に警告を発行します。 :issue: `760`
  • スキームのデフォルトポートを使用して構成されたサーバー名は、現在のスキームが一致する場合、ポートなしの現在のサーバー名と一致します。 :pr: `1584`
  • InternalServerErrorには、フレームワークがエラーの元の原因を追跡するために使用できるoriginal_exception属性があります。 :pr: `1590`
  • X-Foox-fooと同じになるように、ヘッダーはヘッダーキーのケースとは無関係に等しいかどうかテストされます。 :pr: `1605`
  • http.dump_cookie()は、samesiteの値として'None'を受け入れます。 :issue: `1549`
  • set_cookie()samesite引数を受け入れます。 :pr: `1705`
  • Response.content_security_policy データ構造を介してコンテンツセキュリティポリシーヘッダーをサポートします。 :pr: `1617`
  • LanguageAcceptは、「en-US」の「en」または「en」の「en-US」の一致にフォールバックして、プライマリ言語タグでのみ一致するクライアントまたは翻訳をより適切にサポートします。 :issue: `450`:pr:` 1507`
  • MIMEAcceptは、照合時に特異性のためにMIMEパラメーターを使用します。 :issue: `458`:pr:` 1574`
  • クライアント証明書を検証するように構成されたSSLContextで開発サーバーを起動した場合、PEM形式の証明書はenviron["SSL_CLIENT_CERT"]として使用できます。 :pr: `1469`
  • is_resource_modifiedは、常にFalseを返すのではなく、GETおよびHEAD以外のメソッドに対して実行されます。 :issue: `409`
  • SharedDataMiddlewareは、パッケージローダーでファイルではなくディレクトリにアクセスしようとすると、500ではなく404を返します。 setuptoolsとpkg_resourcesへの依存関係が削除されました。 :issue: `1599`
  • response.cache_control.immutableフラグを追加します。 このCache-Controlヘッダーオプションのブラウザサポートはまだ実験段階であり、実装されていない可能性があることに注意してください。 :issue: `1185`
  • 開発サーバーでのオプションの要求ログの強調表示は、termcolorではなくClickによって処理されます。 :issue: `1235`
  • 開発サーバーのオプションのアドホックTLSサポートは、pyOpenSSLではなく暗号化によって処理されます。 :pr: `1555`
  • FileStorage.save()は、pathlibおよび PEP 519 PathLikeオブジェクトをサポートします。 :issue: `1653`
  • デバッガーのセキュリティピンは、Podmanが管理するコンテナー内で一意です。 :issue: `1661`
  • host_matchingが有効になっているときにURLを作成すると、異なるホストを持つ重複するエンドポイントがある場合に現在のホストが考慮されます。 :issue: `488`
  • 429 TooManyRequestsおよび503 ServiceUnavailable HTTP例外は、retry_afterパラメーターを使用してRetry-Afterヘッダーを設定します。 :issue: `1657`
  • MapRuleには、動作するHTTPサーバーの数と同様に、複数のスラッシュを1つに折りたたむmerge_slashesオプションがあります。 これはデフォルトで有効になっています。 :pr: `1286、1694`
  • HTTP 103、208、306、425、506、508、および511をステータスコードのリストに追加します。 :pr: `1678`
  • updatesetlist、およびsetlistdefaultメソッドをHeadersデータ構造に追加します。 extendメソッドは、MultiDictとkwargsを取ることができます。 :pr: `1687、1697`
  • 開発サーバーは、最初のパスセグメントを削除するのではなく、2つのスラッシュで始まるパスを受け入れます。 :issue: `491`
  • RequestおよびResponseラッパーにアクセス制御(クロスオリジンリクエストシェアリング、CORS)ヘッダープロパティを追加します。 :pr: `1699`
  • Acceptの値は、同等の品質のタグに対してアルファベット順に並べられなくなりました。 代わりに、最初の順序が保持されます。 :issue: `1686`
  • 代替実装用にMap.lock_class属性を追加しました。 :pr: `1702`
  • 非同期フレームワークで使用するために、ルーティングシステムでのWebSocketルールのマッチングと構築をサポートします。 :pr: `1709`
  • ファイル全体にまたがる範囲要求は、 RFC 7233 に準拠するために、200ではなく206で応答します。 これは、古いブラウザにメディアを提供するのに役立つ場合があります。 :issue: `410、1704`
  • SharedDataMiddlewareのデフォルトfallback_mimetypeapplication/octet-streamです。 ファイル名がテキストのmimetypeのように見える場合は、utf-8文字セットが追加されます。 これは、BaseResponseおよびFlaskのsend_file()の動作と一致します。 :issue: `1689`


バージョン0.16.1

2020-01-27リリース

  • サブパッケージの非推奨メッセージのインポート場所を修正しました。 :issue: `1663`
  • 開発サーバーがコンテンツなしで応答する場合のPython3.5のSSLエラーを修正します。 :issue: `1659`


バージョン0.16.0

2019年9月19日リリース

  • werkzeugモジュールによって提供されるほとんどのトップレベル属性を廃止し、直接インポートを優先します。 非推奨のインポートはバージョン1.0で削除されます。

    たとえば、import werkzeug; werkzeug.url_quoteの代わりに、from werkzeug.urls import url_quoteを実行します。 非推奨の警告は、使用する正しいインポートを示します。 werkzeug.exceptionsおよびwerkzeug.routingも、アクセスする代わりにインポートする必要がありますが、技術的な理由により、警告を表示することはできません。

    :issue: `2`:pr:` 1640`


バージョン0.15.6

2019-09-04リリース

  • スクリプトがエントリポイントである場合にWindowsでリローダーが失敗する原因となったpipのバグを回避します。 これにより、Flaskの flask run コマンドが「Scriptsflaskという名前のモジュールがありません」で失敗する問題が修正されます。 :issue: `1614`
  • ProxyFixは、デフォルトでX-Forwarded-Protoヘッダーを信頼します。 :issue: `1630`
  • ProxyFixの非推奨のnum_proxies引数は、x_forx_proto、およびx_hostを0.14の動作に一致するように設定します。 これは、中間アップグレードの中断を少なくすることを目的としていますが、1.0でも引数は削除されます。 :issue: `1630`


バージョン0.15.5

2019年7月17日リリース

  • Python3.8でast.Moduleに変更されたため、TypeErrorを修正しました。 :issue: `1551`
  • 一部のPython2.7リリースのデバッグビルドでのCアサーションの失敗を修正しました。 :issue: `1553`
  • BadRequestKeyErrorは、e.show_exceptionTrueに設定されている場合、KeyErrorメッセージを説明に追加します。 これは、元の0.15.0の動作よりも安全なデフォルトであり、情報を失うことなく制御しやすくなります。 :pr: `1592`
  • デバッガーをjQuery3.4.1にアップグレードします。 :issue: `1581`
  • リローダーが失敗する原因となった一部の外部デバッガーの問題を回避します。 :issue: `1607`
  • リローダーがeggとしてインストールされたsetuptoolsスクリプトをイントロスペクトできない問題を回避します。 :issue: `1600`
  • スクリプトが実行可能としてマークされている場合でも、リローダーはsys.executableを使用し、0.15で導入されたNixOS向けの動作を元に戻します。 リローダーによってOSError: [Errno 8] Exec format errorが発生しなくなりました。 :issue: `1482`:issue:` 1580`
  • SharedDataMiddlewareは、Windowsドライブ名のパスを安全に処理します。 :issue: `1589`


バージョン0.15.4

2019年5月14日リリース


バージョン0.15.3

2019年5月14日リリース

  • Python2.7の開発サーバーで複数行のヘッダーフォールディングを適切に処理します。 (:issue: `1080`
  • response引数をUnauthorizedに戻します。 (:pr: `1527`
  • www_authenticateが指定されていない場合、UnauthorizedWWW-Authenticateヘッダーを追加しません。 (:issue: `1516`
  • デフォルトのURLコンバーターは、バイトをbで表すのではなく、バイトを文字列に正しくエンコードします。 (:issue: `1502`
  • ProfilerMiddlewareのファイル名フォーマット文字列を修正して、float値を正しく処理するようにしました。 (:issue: `1511`
  • LintMiddlewareをPython3で動作するように更新します。 (:issue: `1510`
  • デバッガーは連鎖例外のサイクルを検出し、その場合はタイムアウトしません。 (:issue: `1536`
  • Dockerで開発サーバーを実行する場合、デバッガーのセキュリティピンはコンテナーごとに一意になります。


バージョン0.15.2

2019年4月2日リリース

  • Ruleコード生成では、カバレッジが無視するファイル名を使用します。 以前の値「生成された」は、カバレッジの失敗を引き起こしていました。 (:issue: `1487`
  • 永続化されたCookieがない場合、テストクライアントはCookieヘッダーを削除します。 これにより、0.15.0で導入された、元のリクエストのCookieがリダイレクトに使用され、ログアウトなどの機能が失敗する問題が修正されます。 (:issue: `1491`
  • テストクライアントは、アプリに渡す前に環境をコピーして、インプレースの変更がリダイレクトリクエストに影響を与えないようにします。 (:issue: `1498`
  • "werkzeug"ロガーは、ロギングチェーンのレベルにハンドラーが構成されていない場合にのみハンドラーを追加します。 これにより、他のコードが最初にロギングを構成する場合に、二重ロギングが回避されます。 (:issue: `1492`


バージョン0.15.1

2019年3月21日リリース

  • Unauthorizedは、最初の引数としてdescriptionを取り、以前の動作を復元します。 新しいwww_authenticate引数が2番目にリストされています。 (:issue: `1483`


バージョン0.15.0

2019年3月19日リリース

  • URLの構築は約7倍高速です。 各Ruleは、それ自体を構築するために最適化された関数をコンパイルします。 (:pr: `1281`
  • MapAdapter.build()MultiDictを渡して、キーの複数の値を表すことができます。 リスト値を使用してdictを渡すときに、これはすでに実行されています。 (:pr: `724`
  • path_infoは、Map.bind()のデフォルトで'/'になります。 (:issue: `740`:pr:` 768`:pr: `1316`
  • RequestRedirectコードを301から308に変更し、リダイレクト中に動詞とリクエスト本文(フォームデータ)を保持します。 (:pr: `1342`
  • URLルールのintおよびfloatコンバーターは、signed=Trueパラメーターが渡された場合、負の値を処理します。 たとえば、/jump/<int(signed=True):count>です。 (:pr: `1355`
  • LocationResponse.get_wsgi_headers()の自動修正は、ルートパスではなく、現在のパスを基準にしています。 (:issue: `693`:pr:` 718`:pr: `1315`
  • 412の応答には、本文にエンティティヘッダーとエラーメッセージが含まれています。 If-Match:pr: `1233` )を実装する際に元々省略されていましたが、仕様では許可されていないようです。 (:issue: `1231`:pr:` 1255`
  • Content-Lengthヘッダーは、1xxおよび204応答では削除されます。 これにより、本文は送信されないがヘッダーは引き続き存在するという以前の変更が修正されます。 新しい動作はRFC7230と一致します。 (:pr: `1294`
  • Unauthorizedは、www_authenticateパラメーターを使用して、応答のWWW-Authenticateヘッダーを設定します。これは、有効な401応答に技術的に必要です。 (:issue: `772`:pr:` 795`
  • ステータスコード424 FailedDependencyのサポートを追加します。 (:pr: `1358`
  • http.parse_cookie()は、キーまたは値のないCookieを生成するのではなく、空のセグメントを無視します。 (:issue: `1245`:pr:` 1301`
  • parse_authorization_header()(およびAuthorizationauthorization)は、認証ヘッダーをUTF-8として扱います。 Python 2では、基本認証のユーザー名とパスワードはunicodeです。 (:pr: `1325`
  • parse_options_header()は、 RFC 2231 パラメーターの継続を理解します。 (:pr: `1417`
  • uri_to_iri()は、スペースなどの予約されていないクラスのASCII文字を引用符で囲まず、デコード時に無効なバイトを引用符で囲みます。 iri_to_uri()は予約文字を引用しません。 これらの文字クラスについては、 RFC 3987 を参照してください。 (:pr: `1433`
  • get_content_typeは、application/で始まるものだけでなく、+xmlで終わるすべてのmimetypeの文字セットを追加します。 application/javascriptなどの既知のテキストタイプにも文字セットが与えられます。 (:pr: `1439`
  • werkzeug.securityモジュールをクリーンアップし、古いhashlibサポートを削除します。 (:pr: `1282`
  • generate_password_hash()では、PBKDF2はデフォルトで150000回の反復を使用し、50000から増加しています。 (:pr: `1377`
  • ClosingIteratorは、内部イテレータではなく、ラップされた iterablecloseを呼び出します。 これは、__iter__selfを返したオブジェクトには影響しません。 他のオブジェクトの場合、メソッドは以前に呼び出されませんでした。 (:issue: `1259`:pr:` 1260`
  • バイトはHeadersのキーとして使用でき、Latin-1のような値としてデコードされます。 (:pr: `1346`
  • Rangeは、渡された範囲タプルのリストが有効なRangeヘッダーを生成することを検証します。 (:pr: `1412`
  • FileStorageは、stream._fileに属性が存在しない場合、属性を検索し、tempfile.SpooledTemporaryFile()io.IOBasehttps://github.com/python/cpython/pull/3249を参照してください。:pr: `1409`
  • CombinedMultiDict.copy()は、浅い可変コピーをMultiDictとして返します。 コピーは、結合されたdictへの変更を反映しなくなりましたが、より一般的には役立ちます。 (:pr: `1420`
  • デバッガーで使用されるjQueryのバージョンが3.3.1に更新されます。 (:pr: `1390`
  • デバッガーは、長いmarkupsafe.Markupインスタンスを正しくレンダリングします。 (:pr: `1393`
  • Werkzeugがzipファイルとしてインストールされている場合、デバッガーはリソースを提供できます。 DebuggedApplication.get_resourcepkgutil.get_dataを使用します。 (:pr: `1401`
  • デバッガーとサーバーログは、Python3の連鎖例外をサポートします。 (:pr: `1396`
  • インタラクティブデバッガーは、ユーザーコードからのフレームを強調表示して、長いスタックトレースで簡単に選択できるようにします。 envがvenvではなくvirtualenvで作成された場合、デバッガーが一部のフレームを誤って分類する可能性があることに注意してください。 (:pr: `1421`
  • 対話型デバッガーの上部にあるエラーメッセージをクリックすると、トレースバックの下部にジャンプします。 (:pr: `1422`
  • PINを生成するとき、デバッガーは、現在のUIDにユーザー名が関連付けられていない場合に発生するKeyErrorを無視します。これは、Dockerで発生する可能性があります。 (:issue: `1471`
  • BadRequestKeyErrorは、説明にKeyErrorメッセージを追加して、400エラーの原因を明確にします。 Flaskのようなフレームワークは、e.args = ()を設定することにより、本番環境でこの情報を省略できます。 (:pr: `1395`
  • ネストされたImportErrorimport_string()から発生した場合、トレースバックはネストされたインポートについて言及します。 「親によってまだセットアップされていないモジュール」を処理するためのテストされていないコードパスを削除します。 (:pr: `735`
  • PDBなどのツールの使用中にリロードをトリガーしても、入力が非表示になりません。 (:pr: `1318`
  • Pythonファイルが実行可能とマークされている場合、リローダーはPython実行可能ファイルをコマンドラインの前に追加しません。 これにより、リローダーがNixOSで動作できるようになります。 (:pr: `1242`
  • python -m appで実行すると、リロード間でsys.pathが変わる問題を修正します。 リローダーは、モジュールが「-m」で実行されたことを検出し、リロード時にsys.argvのファイルパスの代わりにそれを再構築します。 (:pr: `1416`
  • 開発サーバーは、unix://app.socketのようなホスト名を渡すことでUnixソケットにバインドできます。 (:pr: `209`:pr:` 1019`
  • サーバーは、Jythonの互換性のために、SOL_TCPの代わりにIPPROTO_TCP定数を使用します。 (:pr: `1375`
  • run_simple()でアドホックSSL証明書を使用する場合、証明書は無効な機関によって署名されているのではなく、自己署名として表示されます。 (:pr: `1430`
  • 開発サーバーは、未加工の要求行ではなく引用符で囲まれていないIRIをログに記録し、開発中の要求パスでUnicodeを簡単に操作できるようにします。 (:issue: `1115`
  • 開発サーバーは、Python3上のConnectionErrorを認識してクライアントの切断を抑制し、アプリケーション内で発生した可能性のある他のOSErrorsを抑制しません。 (:pr: `1418`
  • 環境キーREQUEST_URIおよびRAW_URIには、パーセントデコードされる前の生のパスが含まれています。 これは非標準ですが、多くのWSGIサーバーがそれらを追加します。 ミドルウェアは、PATH_INFOをこれに置き換えて、生の値に基づいてルーティングすることができます。 (:pr: `1419`
  • EnvironBuilderは、CONTENT_TYPEまたはCONTENT_LENGTHが設定されていない場合、それらを環境に設定しません。 以前は、設定されていない場合、これらはデフォルト値を使用していました。 空の値と未設定の値を区別できるようになりました。 (:pr: `1308`
  • クエリ文字列引数がパス内のクエリ文字列を上書きする場合、テストクライアントはValueErrorを発生させます。 (:pr: `1338`
  • test.EnvironBuildertest.Clientは、datacontent_typeを手動で渡す代わりに、json引数を取ります。 これは、test.EnvironBuilder.json_dumps()メソッドを使用してシリアル化されます。 (:pr: `1404`
  • test.Clientリダイレクト処理が書き直されました。 (:pr: `1402`
    • リダイレクト環境は、最初のリクエスト環境からコピーされます。
    • ルートの下のパスにリダイレクトするとき、スクリプトのルートとパスは正しく区別されます。
    • HEADメソッドはGETに変更されていません。
    • 307および308コードは、メソッドと本体を保持します。 他のすべては、本文と関連するヘッダーを無視します。
    • ヘッダーは、ブラウザーの動作に従って、すべてのコードの新しいリクエストに渡されます。
    • test.EnvironBuilderは、WSGIキーに加えて、コンテンツタイプと長さのヘッダーをデータから検出するときに設定します。
    • イテレータミドルウェアがクリーンアップコードを安全に実行できるようにするために、buffered=Falseの場合でも、中間応答ボディが繰り返されます。 最後の応答のみがバッファリングされません。 (:pr: `988`
  • EnvironBuilderFileStorage、およびwsgi.get_input_stream()は、グローバル_empty_streamインスタンスを共有しなくなりました。 これにより、1つのリクエストでストリームを閉じることが他の使用法に影響を与えるケースを防ぐことで、テストの分離が向上します。 (:pr: `1340`
  • 1.0では、デフォルトのSecureCookie.serialization_methodpickleからjsonに変更されます。 既存のトークンをアップグレードするには、jsonが失敗した場合に、unquote()をオーバーライドしてpickleを試行します。 (:pr: `1413`
  • CGIRootFixは、Lighttpdの非常に古いバージョンのPATH_INFOを変更しなくなりました。 LighttpdCGIRootFixは、0.9でCGIRootFixに名前が変更されました。 どちらも非推奨であり、バージョン1.0で削除される予定です。 (:pr: `1141`
  • werkzeug.wrappers.json.JSONMixinはFlaskの実装に置き換えられました。 完全なAPIについてはドキュメントを確認してください。 (:pr: `1445`
  • contribモジュールは非推奨であり、werkzeugコアに移動されるか、バージョン1.0で完全に削除されます。 すでに非推奨の警告を発行している一部のモジュールは削除されました。 python -W default::DeprecationWarningを使用してコードを実行またはテストして、使用している非推奨のコードをキャッチしてください。 (:issue: `4`
    • LintMiddlewarewerkzeug.middleware.lintに移動しました。
    • ProfilerMiddlewarewerkzeug.middleware.profilerに移動しました。
    • ProxyFixwerkzeug.middleware.proxy_fixに移動しました。
    • JSONRequestMixinwerkzeug.wrappers.jsonに移動しました。
    • cacheは、別のプロジェクト cachelib に抽出されました。 Werkzeugのバージョンは非推奨です。
    • securecookiesessionsは、別のプロジェクト secure-cookie に抽出されました。 Werkzeugのバージョンは非推奨です。
    • ProxyFixを除く、fixersのすべてが非推奨になりました。
    • JSONMixinを除く、wrappersのすべてが非推奨になりました。
    • atomは非推奨です。 これはWerkzeugの他の部分には適合せず、コミュニティ内の専用ライブラリによってより適切に提供されます。
    • jsroutingが削除されました。 代わりに、テンプレートまたはJSON応答をレンダリングするときにURLを設定します。
    • limiterが削除されました。 その特定の使用はWerkzeugによって直接処理されますが、ストリーム制限は一般にWSGIサーバーによってより適切に処理されます。
    • testtoolsが削除されました。 デフォルトのテストクライアントに比べて大きなメリットはありませんでした。
    • iterioは非推奨です。
  • wsgi.get_host()X-Forwarded-Forを参照しなくなりました。 ProxyFixを使用してそれを処理します。 (:issue: `609`:pr:` 1303`
  • ProxyFixは、より多くのヘッダー、複数の値、およびより安全な構成をサポートするようにリファクタリングされています。
    • 各ヘッダーは複数の値をサポートします。 プロキシの信頼できる数は、ヘッダーごとに個別に構成されます。 num_proxies引数は非推奨です。 (:pr: `1314`
    • X-Forwarded-Hostに基づいてSERVER_NAMESERVER_PORTを設定します。 (:pr: `1314`
    • SERVER_PORTを設定し、X-Forwarded-Portに基づいてHTTP_HOSTを変更します。 (:issue: `1023`:pr:` 1304`
    • X-Forwarded-Prefixに基づいてSCRIPT_NAMEを設定します。 (:issue: `1237`
    • 元のWSGI環境値は、werkzeug.proxy_fix.origキー(dict)に保存されます。 個々のキーwerkzeug.proxy_fix.orig_remote_addrwerkzeug.proxy_fix.orig_wsgi_url_scheme、およびwerkzeug.proxy_fix.orig_http_hostは非推奨になりました。
  • werkzeug.wsgiのミドルウェアは、werkzeug.contribから移動したミドルウェアとともに、werkzeug.middlewareの下の個別のモジュールに移動しました。 古いwerkzeug.wsgiインポートは非推奨であり、バージョン1.0で削除されます。 (:pr: `1452`
    • werkzeug.wsgi.DispatcherMiddlewarewerkzeug.middleware.dispatcher.DispatcherMiddlewareに移動しました。
    • werkzeug.wsgi.ProxyMiddlewarewerkzeug.middleware.http_proxy.ProxyMiddlewareに移動しました。
    • werkzeug.wsgi.SharedDataMiddlewarewerkzeug.middleware.shared_data.SharedDataMiddlewareに移動しました。
  • ProxyMiddlewareはクエリ文字列をプロキシします。 (:pr: `1252`
  • ProfilerMiddlewareによって生成されるファイル名はカスタマイズできます。 (:issue: `1283`
  • werkzeug.wrappersモジュールはパッケージに変換され、そのさまざまなクラスが個別のモジュールに編成されています。 既存のパブリックAPIであると理解されている、以前に文書化されたクラスは、引き続きwerkzeug.wrappersからインポート可能であるか、特定のモジュールからインポートされる可能性があります。 (:pr: `1456`


バージョン0.14.1

2017年12月31日にリリース

  • 統合開発サーバーでのステータスコード処理によるリグレッションを解決しました。


バージョン0.14

2017年12月31日にリリース

  • HTTP例外は、Request.applicationによって自動的にキャッチされるようになりました。
  • ブラウザとしてのエッジのサポートが追加されました。
  • SpooledTemporaryFileがないプラットフォームのサポートが追加されました。
  • if-matchによるetag処理のサポートを追加します
  • SameSitecookie属性のサポートが追加されました。
  • werkzeug.wsgi.ProxyMiddlewareを追加しました
  • NullCachehasを実装
  • キャッシュクライアントのget_multiは、常にリストを返すようになりました。
  • 古いPythonバージョンの終了時にリローダーがクラッシュしないようにウォッチドッグオブザーバーのシャットダウンを改善しました。
  • RFC2231に従ってfilename*ファイル名属性のサポートが追加されました
  • リローダーPINのマシンIDがWindowsで正確に読み取られない問題を解決しました。
  • リローダーのinitファイルの構文エラーの回避策を追加しました。
  • Windowsのコンソールスクリプトでリローダーを使用するためのサポートが追加されました。
  • 組み込みのHTTPサーバーは、HTTPボディが予期されていない場合(204、204、HEADリクエストなど)に接続を閉じなくなりました。
  • EnvironHeadersオブジェクトは、偽の値に設定されている場合、空のコンテンツタイプと長さをスキップするようになりました。
  • Werkzeugは、1xxまたは204/304応答でcontent-lengthヘッダーを送信しなくなりました。
  • Cookieの値に、引用符を付けずにスラッシュと等号を含めることも許可されるようになりました。
  • ルーティングコンバータ引数の正規表現を緩和しました。
  • Cookieが値なしで送信された場合、Cookieは空の値であると見なされ、パーサーはこれを受け入れます。 以前は、これにより、値に続くCookieが破損する可能性がありました。
  • テストClientおよびEnvironBuilderは、リクエストオブジェクトと同様にmimetypeをサポートするようになりました。
  • URLルールの静的ウェイトのサポートが追加されました。
  • sys.pathにディレクトリ以外のパスが含まれている、より複雑なリローダーのシナリオをより適切に処理します。
  • EnvironHeadersは、文字列以外のキーが渡された場合に奇妙なエラーを発生させなくなりました。


バージョン0.13

2017年12月7日にリリース

  • Python2.6および3.3のサポートを廃止します。 CIテストはこれらのバージョンでは実行されず、サポートは次のバージョンで完全に削除されます。 (:issue: `pallets / meta#24`
  • ポートが整数でない場合は、TypeErrorを上げます。 (:pr: `1088`
  • werkzeug.scriptは完全に非推奨です。 代わりにクリックを使用してください。 (:pr: `1090`
  • response.agetimedeltaとして解析されます。 以前は、datetimeとして誤って扱われていました。 ヘッダー値は整数の秒数であり、日付文字列ではありません。 (:pr: `414`
  • TypeConversionDictで、コンバーターの使用時にエラーが伝播されないバグを修正しました。 (:issue: `1102`
  • Authorization.qopは、RFC 2617に準拠するために、セットではなく文字列です。 (:pr: `984`
  • エンコードされたCookieがデフォルトで4093バイトより大きい場合、例外が発生します。 ブラウザは、これより大きいCookieを黙って無視する場合があります。 BaseResponseには新しい属性max_cookie_sizeがあり、dump_cookieにはこれを構成するための新しい引数max_sizeがあります。 (:pr: `780`:pr:` 1109`
  • werkzeug.contrib.lint.GuardedIterator.closeのTypeErrorを修正しました。 (:pr: `1116`
  • BaseResponse.calculate_content_lengthは、Python3のUnicode応答で正しく機能するようになりました。 最初にiter_encodedを使用してエンコードします。 (:issue: `705`
  • 安全なCookieの貢献は、Python3の文字列秘密鍵で機能します。 (:pr: `1205`
  • 共有データミドルウェアは、ルックアップの順序を維持するために、静的な場所のdictではなくリストを受け入れます。 (:pr: `1197`
  • エンコードなしのHTTPヘッダー値には、一重引用符を含めることができます。 (:pr: `1208`
  • 組み込みの開発サーバーは、チャンク転送エンコーディングを使用したリクエストの受信をサポートしています。 (:pr: `1198`


バージョン0.12.2

2017年5月16日にリリース

  • リグレッションの修正:プルリクエスト#892により、 ProxyFix を使用している場合でも、Werkzeugがリバースプロキシの背後にあるリモートクライアントのIPを正しくログに記録できませんでした。
  • Windowsの safe_join のバグを修正しました。


バージョン0.12.1

2017年3月15日リリース

  • Windowsでのリローダー(デバッグモードで使用)のクラッシュを修正しました。 ( OSError:[WinError 10038] )。 プルリクエスト#1081を参照してください
  • 変更を Headers のクラス階層に部分的に戻します。 #1084を参照してください。


バージョン0.12

2017年3月10日リリース

  • werkzeug.scriptの大きな非推奨の警告を吐き出します
  • inspect.getargspec が3.6でなくなったため、使用可能な場合は inspect.getfullargspec を内部的に使用します
  • ステータスコード451および423のサポートが追加されました
  • ビルドエラーの提案を改善しました。 特に、誰かがエラーを文字列化した場合にのみ、提案が計算されます。
  • uWSGIのキャッシングバックエンドのサポートが追加されました。
  • FileStorage を反復処理すると無限ループが発生するバグを修正します。
  • データ構造は、stdlibの collections モジュールの関連する基本クラスから継承するようになりました。 #794を参照してください。
  • ユーザーエージェント文字列でNetBSD、OpenBSD、FreeBSD、DragonFlyBSDプラットフォームを認識するためのサポートを追加します。
  • SeaMonkeyブラウザの名前とバージョンを正しく認識します
  • Baiduspiderとbingbotのユーザーエージェントを認識する
  • LocalProxy のラップされたオブジェクトが関数である場合は、__ wrapped__属性で参照してください。
  • generate_password_hashのデフォルトがより安全なものに変更されました。プルリクエスト#753を参照してください。
  • オプションヘッダー解析でのエンコードのサポートを追加します。プルリクエスト#933を参照してください。
  • test.Clientは、相対URLを使用してLocationヘッダーを適切に処理するようになりました。プルリクエスト#879を参照してください。
  • HTTPException が発生すると、デバッグを容易にするために説明が出力されるようになりました。
  • Werkzeugのdictのようなデータ構造には、Python2でのviewメソッドが含まれるようになりました。プルリクエスト#968を参照してください。
  • 初期化中にstream_factoryが提供されなかった場合のMultiPartParserのバグを修正します。プルリクエスト#973を参照してください。
  • デバッガミドルウェアのPythonプロンプトでオートコレクトとスペルチェッカーを無効にします。プルリクエスト#994を参照してください。
  • メソッドが一致しない場合はスラッシュルートにリダイレクトしないでください。プルリクエスト#907を参照してください。
  • 凍結パッケージでSharedDataMiddlewareを使用する場合のバグを修正します。プルリクエスト#959を参照してください。
  • Range ヘッダー解析関数が無効な値#974に対して修正されました。
  • バイト範囲要求のサポートを追加します。プル要求#978を参照してください。
  • 開発サーバー#1004で最新の暗号化デフォルトを使用します。
  • テストクライアントのpost()メソッドは、dataパラメーターを介してファイルオブジェクトを受け入れるようになりました。
  • HTTPコード#1013に基づいてrun_simpleの端末出力に色を付けます。
  • デバッガコンソールでself-XSSを修正します。#1031を参照してください。
  • IPython5.xシェルのサポートを修正します。#1033を参照してください。
  • Acceptデータ構造を変更して、最初に特異性で並べ替えます。これにより、mimeタイプにbest_matchを使用する場合(requests.accept_mimetypes.best_matchなど)により正確な結果が得られます。


バージョン0.11.16

  • werkzeug.serving:クライアントから提供された場合のみCONTENT_TYPE / CONTENT_LENGTHを設定します
  • werkzeug.serving: python -m werkzeug.serving を使用した場合のリローダーのクラッシュを修正しました。


バージョン0.11.15

2016年12月30日にリリースされました。

  • 以前のリリースのバグ修正のバグ修正。


バージョン0.11.14

2016年12月30日にリリースされました。

  • プラットフォームがForkingMixInをインポートする前にフォークできるかどうかを確認し、そのようなプラットフォームでForkingWSGIServerを作成するときに例外を発生させます。PR#999を参照してください。


バージョン0.11.13

2016年12月26日にリリースされました。

  • 特定のWindowsインストールでのリローダー発行者の正しい修正。


バージョン0.11.12

2016年12月26日にリリースされました。

  • 空のリストに関するmultidictのその他のバグを修正します。 #1000を参照してください。
  • 以前は意図せずに欠落していたいくつかの EnvironBuilder プロパティにいくつかのdocstringを追加します。
  • Windowsのリローダーの回避策を追加しました。


バージョン0.11.11

2016年8月31日にリリースされました。

  • Python3のJSONRequestMixinを修正しました。 #731を参照
  • 整数を渡すときのテストクライアントでの壊れた文字列の処理を修正しました。 #852を参照
  • parse_options_headerのバグを修正します。コンマまたはセミコロンで始まる無効なコンテンツタイプでは、無効な戻り値が返されます。問題#995を参照してください。
  • 空のリストを値として渡すときのmultidictsのバグを修正します。問題#979を参照してください。
  • WerkzeugデバッガーでXSSを許可するセキュリティの問題を修正します。 #1001を参照してください。


バージョン0.11.10

2016年5月24日にリリースされました。

  • Python 2.6で実行し、壊れたロケールを使用しているときに発生するバグを修正しました。 プルリクエスト#912を参照してください。
  • Google AppEngineでデバッガーを実行するとクラッシュする問題を修正しました。 問題#925を参照してください。
  • メモリの枯渇を引き起こす可能性のあるマルチパート解析の問題を修正しました。


バージョン0.11.9

2016年4月24日にリリースされました。

  • デバッガーがPOSIXシステムでマシンGUIDを使用しない原因となっていた問題を修正しました。
  • デバッガーのPINの使用に関するPython3のUnicodeエラーを修正しました。
  • ピンデバッグコードのタイムスタンプ検証を修正しました。 この修正がないと、ピンが長時間記憶されていました。


バージョン0.11.8

2016年4月15日にリリースされました。

  • Python3のOSXでのマシンGUID検出コードの問題を修正しました。


バージョン0.11.7

2016年4月14日にリリースされました。

  • デバッガーのPython3でのリグレッションを修正しました。


バージョン0.11.6

2016年4月14日にリリースされました。

  • werkzeug.serving:不正なリクエストでもクライアントアドレスを表示します。
  • デバッガーのPINベースの保護を改善し、Cookieの試行によるブルートフォース攻撃を困難にしました。 デバッガーは実稼働環境での実行を目的としていないことに注意してください。
  • ピンのタイムアウトを1週間に増やして、ユーザーの煩わしさを軽減し、ユーザーがピンチェックを完全に無効にする可能性を減らしました。
  • werkzeug.serving:パスがダブルスラッシュで始まる場合の壊れたHTTP_HOSTを修正しました。


バージョン0.11.5

2016年3月22日にリリースされました。

  • werkzeug.serving:HTTPサーバーへのSSL接続を試行したときのクラッシュを修正しました。


バージョン0.11.4

2016年2月14日にリリースされました。

  • -mフラグからwerkzeug.servingが機能しない問題を修正しました。
  • 誤った弱いetag処理を修正しました。


バージョン0.11.3

2015年12月20日にリリースされました。

  • プロキシに対してコピー操作が機能しない問題を修正しました。
  • 開発サーバーのログ操作を変更して、すべての状況でサーバーが実行されている場所を再び正しくログに記録するようにしました。
  • 0.11.2の修正と同様のSSLラッピングによる別のリグレッションを修正しましたが、コードパスが異なります。


バージョン0.11.2

2015年11月12日にリリースされました。

  • Python3上のWindowsで継承可能なソケットを修正しました。
  • フォークサーバーが起動しなくなる問題を修正しました。
  • ファイル記述子によるソケットのオープンをサポートするプラットフォームでのSSLラッピングを修正しました。
  • ウォッチドッグリローダーからログを記録しなくなりました。
  • ホストのUnicodeエラーは、より適切にキャッチされるか、不正な要求エラーに変換されるようになりました。


バージョン0.11.1

2015年11月10日にリリースされました。

  • デバッガーでのPython3のリグレッションを修正しました。


バージョン0.11

2015年11月8日にリリースされた、コードネームGleisbaumaschine。

  • run_simpleおよびwerkzeug.servingの他の機能にreloader_pathsオプションを追加しました。 これにより、ユーザーはカスタムパスを使用してWerkzeugのPythonモジュール監視を完全にオーバーライドできます。
  • Werkzeugのクラスの多くのカスタムキャッシュプロパティは、Pythonのpropertyタイプのサブクラスになりました(問題#616)。
  • bind_to_environは、HTTP_HOST(プルリクエスト#204)の暗黙的なデフォルトポート番号と明示的なデフォルトポート番号を区別しないようになりました。
  • BuildErrorsがより有益になりました。 エラーメッセージとして完全な文が付属し、提案も提供します(プルリクエスト#691)。
  • バージョンではなくSafariのビルド番号が抽出されるユーザーエージェントパーサーのバグを修正しました(プルリクエスト#703)。
  • デフォルトのMULTIコマンド(プルリクエスト#702)をサポートしないtwemproxyのRedisCacheset_manyが壊れていた問題を修正しました。
  • リクエストクラスとレスポンスクラスのmimetypeパラメータが常に小文字に変換されるようになりました。
  • タイムアウトが0の場合にキャッシュが期限切れにならないようにキャッシュを変更しました。 これにより、redis setexの問題も修正されます(問題#550
  • Werkzeugは、PythonがASCIIとして検出した場合、UTF-8をUnix上のファイルシステムエンコーディングと見なすようになりました。
  • キャッシュに新しいオプションの has メソッドがあります。
  • parse_options_header のさまざまなバグを修正しました(プルリクエスト#643)。
  • リローダーが有効になっている場合、可能であれば、サーバーは親プロセスでソケットを開きます。 これは、リローダーがクライアントからの接続を開始すると、切断するのではなく待機することを意味します。 これは、すべてのPythonバージョンで機能するわけではありません。
  • デバッガーにPINベースの認証を実装しました。 これはオプションで無効にすることができますが、お勧めしません。 実稼働環境でデバッガーを実行する人が多すぎることが判明したため、この変更が必要でした。
  • Devserverでは、SSLモジュールをインストールする必要がなくなりました。


バージョン0.10.5

(バグ修正リリース、リリース日は未定)

  • リローダー:一時ファイルを元のファイルに移動することによって行われたファイルの変更を正しく検出します。 PyCharmの場合(プルリクエスト#722)。
  • Python3でのwerkzeug.datastructures.ETagsのブール動作を修正しました(問題#744)。


バージョン0.10.4

(バグ修正リリース、2015年3月26日にリリース)

  • パッケージアーティファクトを手動で削除した0.10.3の再リリース。


バージョン0.10.3

(バグ修正リリース、2015年3月26日にリリース)

  • パッケージアーティファクトなしで0.10.2の再リリース。


バージョン0.10.2

(バグ修正リリース、2015年3月26日にリリース)

  • emptyがキーワード引数に依存するサードパーティライブラリを壊す可能性がある問題を修正しました(プルリクエスト#675
  • `get_empty_kwargsを提供することにより、Rule.emptyを改善し、emptyメソッド全体をオーバーライドせずにカスタムkwargsを設定できるようにしました。 (プルリクエスト#675
  • サーバーパラメーターに含まれている場合にスタートアップがクラッシュしないようにリローダーの`extra_files`パラメーターを修正しました
  • URLの構築時に MultiDict を使用することはサポートされなくなりました。 この動作により、いくつかの回帰が発生しました。
  • stat-reloaderのパフォーマンスの問題を修正しました(プルリクエスト#715)。


バージョン0.10.1

(バグ修正リリース、2015年2月3日にリリース)

  • URLの複数のクエリ値によるリグレッションを修正しました(プルリクエスト#667)。
  • イベントレットのモンキーパッチと組み込みサーバーの問題を修正しました(プルリクエスト#663)。


バージョン0.10

2015年1月30日にリリースされた、コードネームBagger。

  • contrib.cacheのキャッシュのエラー処理を変更し、テストスイートを改善しました。
  • sys.maxint が定義されていないため、アドホックsslコンテキストを作成する際のPython3のバグを修正しました。
  • make_ssl_devcert()が例外で失敗する原因となっていたPython3のバグを修正しました。
  • 504および505の例外を追加しました。
  • ChromeOS検出のサポートが追加されました。
  • ルーティングシステムにUUIDコンバーターを追加しました。
  • サーバーを終了する方法を説明するメッセージを追加しました。
  • werkzeug.datastructures.CombinedMultiDictlenがクラッシュするPython2のバグを修正しました。
  • 互換性のあるダイジェストが見つかった場合のstdlibpbkdf2hmacのサポートが追加されました。
  • py.testを使用するために移植されたテストスイート。
  • さまざまなミドルウェアのマイナーな最適化(プルリクエスト#496および#571)。
  • 組み込みサーバーには、OpenSSLの代わりにstdlib sslモジュールを使用してください(問題#434)。 これは、OpenSSLコンテキストがサポートされなくなったことを意味しますが、代わりにstdlibからssl.SSLContextがサポートされます。
  • 外部URLを作成するときにプロトコル相対URLを許可します。
  • tz対応の日時オブジェクトのタイムゾーンオフセットを出力するようにAtomシンジケーションを修正しました(プルリクエスト#254)。
  • 追加されたファイルを追跡し、パッケージの構文エラーで壊れたsys.modulesセットアップから回復するためのリローダーの改善。
  • cache.RedisCacheは、redisオブジェクトに対して任意の**kwargsをサポートするようになりました。
  • werkzeug.test.Clientは、307のリダイレクトを解決するときに元の要求メソッドを使用するようになりました(プル要求#556)。
  • werkzeug.datastructures.MIMEAcceptは、mimetypeパラメーターを適切に処理するようになりました(プルリクエスト#205)。
  • werkzeug.datastructures.Acceptは、RFC 2616(プルリクエスト#536)に従って、0の品質を許容できないものとして処理するようになりました。
  • werkzeug.urls.url_fixは、idnaエンコーディングでホスト名を正しくエンコードするようになりました(#559を発行)。 また、不正な形式のURLでもクラッシュしなくなりました(問題#582)。
  • werkzeug.routing.MapAdapter.matchは、パス/と空のパスの違いを認識するようになりました(問題#360)。
  • 対話型デバッガーは、ASCII以外のファイル名をデコードしようとします(#469を発行)。
  • 生成されたSSL証明書のデフォルトのキーサイズを1024ビットに増やしました(#611を発行)。
  • redirect()を呼び出すときに使用するResponseサブクラスを指定するためのサポートが追加されました。
  • werkzeug.test.EnvironBuilderは、コンテンツタイプを推測するためにリクエストメソッドを使用しなくなり、formfiles、およびinput_streamプロパティに完全に依存します(問題[ X158X] )。
  • Symbianをユーザーエージェントプラットフォームリストに追加しました。
  • automatically_set_content_lengthを尊重するようにmake_conditionalを修正しました
  • response.streamへの書き込み時にContent-Lengthの設定を解除します(問題#451
  • wrappers.Request.methodは常に大文字になり、WSGI環境の不整合が解消されました(問題647)。
  • routing.Rule.emptyは、Ruleのサブクラスで正しく機能するようになりました(プルリクエスト#645)。
  • 同時更新を考慮して、マップの更新を安全にしました。
  • URL構築の同じフィールドに複数の値を許可します(問題#658)。


バージョン0.9.7

(バグ修正リリース、リリース日は未定)

  • werkzeug.debug.tbtoolsのUnicodeの問題を修正しました。
  • werkzeug.posixemulationのPython3互換性の問題を修正しました。
  • ImmutableListの致命的なタイプミスのバックポート修正(問題#492)。
  • FileSystemCacheアトミックのキャッシュディレクトリを作成します(#468を発行)。
  • Python 3クライアントで動作するようにmemcachedキーにネイティブ文字列を使用します(問題#539)。
  • werkzeug.debug.tbtools.Frameオブジェクトの文字セット検出を修正しました(#547および#532の問題)。
  • werkzeug.utils.import_stringAttributeErrorマスキングを修正しました(#182を発行)。
  • サーバーを明示的にシャットダウンします(問題#519)。
  • werkzeug.contrib.cache.MemcachedCacheでUNIXタイムスタンプとして誤って解釈される2592000を超えるタイムアウトを修正しました(問題#533)。
  • werkzeug.exceptions.abortが期待されるクラスの任意のサブクラスを発生させるバグを修正しました(問題#422)。
  • 壊れたjsroutingを修正(werkzeug.templatesの削除による)
  • werkzeug.urls.url_fixは、不正な形式のURLでクラッシュしなくなりましたが、変更されずに返されます。 これは#582の安価な回避策であり、適切な修正がバージョン0.10に含まれています。
  • werkzeug.wrappers.Requestのreprは、非ASCII値でクラッシュしなくなりました(プルリクエスト#466)。
  • redis.StrictRedisオブジェクトと組み合わせた場合のcache.RedisCacheのバグを修正しました(プルリクエスト#583)。
  • WWW-Authenticateヘッダーのqopパラメーターは、RFC 2617(#633の問題)で要求されているように、常に引用符で囲まれるようになりました。
  • Python3でのwerkzeug.contrib.cache.SimpleCacheのバグを修正しました。キャッシュから古いエントリをプルーニングするときに、add / setが例外をスローする場合があります(プルリクエスト#651)。


バージョン0.9.6

(バグ修正リリース、2014年6月7日にリリース)

  • IRIからURIへの変換の安全な変換を追加し、それを内部的に使用して、itms-serviceなどのプロトコルの仕様違反に関する問題を回避します。


バージョン0.9.7

  • uri_to_iri()がクエリ文字列パラメーターのハッシュを再エンコードしない問題を修正しました。


バージョン0.9.5

(バグ修正リリース、2014年6月7日にリリース)

  • リクエストオブジェクトからenvironビルダーにcharset引数を転送します。
  • マルチパートデータで欠落している境界のエラー処理を修正しました。
  • os.urandom()のないシステムでのセッション作成を修正しました。
  • 辞書キーのプラスが適切にURLエンコードされない問題を修正しました。
  • マルチディクトでディープコピーが機能しない問題を修正しました。
  • リダイレクトの二重引用符の問題を修正しました。
  • 2.xのヘッダーにユニコードキーが表示される問題を修正しました。
  • テストビルダーのUnicode文字列のバグを修正しました。
  • WSGIプロファイラーのPython3のUnicodeバグを修正しました。
  • Python2.7.7およびPython3.4での安全な文字列比較関数の問題を修正しました。


バージョン0.9.4

(バグ修正リリース、2013年8月26日にリリース)

  • Python3.3の問題とCookie解析のエッジケースを修正しました。
  • WSGIデコードダンスで正しく処理されないデコードエラーを修正しました。
  • URIからIRIへの変換がパーセント記号を誤ってデコードする問題を修正しました。


バージョン0.9.3

(バグ修正リリース、2013年7月25日にリリース)

  • リクエストクラスのdata記述子の動作を0.9より前の動作に復元しました。 これは、.data.get_data()の動作が異なることも意味します。 新しいコードでは、常に.get_data()を使用する必要があります。

    それに加えて、フォームデータの解析で何が起こるかを制御する.get_data()メソッドのフラグがあり、フォームパーサーはキャッシュされたデータを尊重します。 これにより、カスタムフォームデータの処理の一貫性が高まります。


バージョン0.9.2

(バグ修正リリース、2013年7月18日にリリース)

  • 安全でないパラメータをurl_quote()に追加しました。
  • url_quote_plus()が '+' を正しく引用しない問題を修正しました。
  • RedisCacheの残りの部分をPython3.3に移植しました。
  • MemcachedCacheの残りの部分をPython3.3に移植しました
  • contribアトムモジュールの非推奨警告を修正しました。
  • コンテンツタイプパラメータの代わりにヘッダーディクショナリを介してコンテンツタイプを設定する際のリグレッションを修正しました。
  • stdlibセキュア文字列比較関数には正しい名前を使用してください。
  • release_local()のdocstringの誤った参照を修正しました。
  • werkzeug.wrappers.BaseResponse.is_streamed属性にアクセスするときに時々発生する AttributeError を修正しました。


バージョン0.9.1

(バグ修正リリース、2013年6月14日にリリース)

  • ルーティングシステムまたはURL引用関数の特定の部分で整数が受け入れられなくなった問題を修正しました。
  • url_quote が1桁のコードポイントに対して正しいエスケープコードを生成しない問題を修正しました。
  • SharedDataMiddlewareがパスを正しく読み取らず、場合によってはetag生成で壊れてしまう問題を修正しました。
  • Expect:100-continue を開発サーバーで適切に処理して、curlの問題を解決します。
  • 要求が閉じると、入力ストリームを自動的に使い果たします。 これにより、リクエストファイルに触れないとタイムアウトになる問題が修正されます。
  • 制限されていないストリームがマルチパートパーサーに渡された場合に何も実行されないストリームの枯渇を修正しました。
  • マルチパートパーサーのバッファーサイズを増やしました。


バージョン0.9

2013年6月13日にリリースされたコードネームPlanierraupe。

  • 制限付きストリームでtell()のサポートが追加されました。
  • ETagsは、弱いものを含め、あらゆる種類のetagが少なくとも1つ含まれている場合、ゼロ以外になります。
  • SSLサーバーのstdlibにバグの回避策を追加しました。
  • devserverのSSLインターフェイスが改善され、証明書を簡単に生成してファイルからロードできるようになりました。
  • リダイレクトのためにクラスのopenメソッドを呼び出すようにテストクライアントをリファクタリングしました。 これにより、サブクラス化がより強力になります。
  • werkzeug.wsgi.make_chunk_iter()およびwerkzeug.wsgi.make_line_iter()は、イテレーターとストリームの処理をサポートするようになりました。
  • ルーティングシステムによるURL生成で、+が引用されなくなりました。
  • URL修正により、特定の予約文字が引用されなくなりました。
  • werkzeug.security.generate_password_hash()およびcheck関数は、hashlibアルゴリズムのいずれかをサポートするようになりました。
  • wsgi.get_current_url は、クエリ文字列で非ASCIIデータを送信するブラウザに対してASCIIセーフになりました。
  • werkzeug.http.parse_options_header()の解析動作が改善されました
  • ローカルプロキシにオペレーターを追加しました。
  • ルーティングシステムのデフォルトコンバーターをオーバーライドするフックを追加しました。
  • HTTP例外の説明フィールドが常にエスケープされるようになりました。 マークアップオブジェクトを使用してそれを無効にします。
  • プロキシ修正にプロキシ引数の数を追加して、一般的なプロキシ設定ですぐに使用できるようにしました。 デフォルトでは、以前ほどx-forwarded-forヘッダーを信頼しなくなります。
  • URI / IRI関数でのフラグメント処理のサポートが追加されました。
  • werkzeug.http.parse_dict_header()のカスタムクラスサポートが追加されました。
  • LighttpdCGIRootFix の名前を CGIRootFix に変更しました。
  • URLを修正するときは、人々がURLの誤用を好むため、常に + を安全なものとして扱ってください。
  • contribプロファイラーのディレクトリへのプロファイリングのサポートが追加されました。
  • エスケープ関数は、デフォルトで引用符をエスケープするようになりました。
  • 例外のreprを魔法が少なくなるように変更しました。
  • 応答オブジェクトを受信するために環境を渡す必要がなくなるように、例外インターフェイスが簡素化されました。
  • IterIOオブジェクトにセンチネル引数を追加しました。
  • セキュリティモジュールのpbkdf2サポートが追加されました。
  • ストリームのみを残すようにすべてのフォーム解析を無効にするプレーンリクエストタイプが追加されました。
  • 非推奨の fix_headers のサポートを削除しました。
  • 非推奨の header_list のサポートを削除しました。
  • iter_encoded の非推奨パラメーターのサポートを削除しました。
  • 制限付きストリームオブジェクトの非推奨の非サイレント使用のサポートを削除しました。
  • キャッシュされたプロパティの以前のダミー writable パラメーターのサポートを削除しました。
  • 関連するリソースを閉じるためにリクエストオブジェクトを明示的に閉じるためのサポートが追加されました。
  • 条件付きリクエストの処理またはレスポンスのデータプロパティへのアクセスは、ダイレクトパススルーモードを無視しなくなりました。
  • werkzeug.templatesとwerkzeug.contrib.kickstartを削除しました。
  • 転送されたホストのホストルックアップロジックを変更して、ホストのリストを許可します。この場合、最初のホストのみが取得されます。
  • wsgi.get_query_string 、 wsgi.get_path_info 、 wsgi.get_script_name を追加し、 wsgi.pop_path_info と wsgi.peek_path_info [ X168X]関数はユニコードデコードを実行します。 これは、Python3でWSGIエンコーディングダンスを公開する必要がないようにするために必要でした。
  • content_encoding と content_md5 をリクエストオブジェクトの共通リクエスト記述子ミックスインに追加しました。
  • オプションとトレースをテストクライアントに追加しました。
  • 入力ストリームの使用率を見直して、使いやすく、拡張しやすくしました。 入力側でのコンテンツペイロードの検出は、リクエストメソッドの代わりにコンテンツタイプヘッダーを検出することで、HTTPに準拠するようになりました。 これは、解析が失敗したときだけでなく、リクエストクラスのストリームプロパティが常に利用可能であることも意味します。
  • withステートメントでwerkzeug.wrappers.BaseResponseを使用するためのサポートが追加されました。
  • get_app_iter を変更して、応答を早期にフェッチし、反復可能な応答をラップするときに失敗しないようにしました。 これにより、フィルタリングが容易になります。
  • 応答用の get_data および set_data メソッドが導入されました。
  • リクエストに get_data を導入しました。
  • ソフトは、要求オブジェクトと応答オブジェクトの data 記述子を非推奨にしました。
  • 一部のヘッダーに as_bytes 操作を追加して、Cookieなどの操作を簡素化しました。
  • デバッガーがトレースバックをプライベートペーストとしてgithubのgistサービスに貼り付けるようにしました。


バージョン0.8.4

(バグ修正リリース、リリース日は発表予定)

  • デバッガーにファビコンを追加しました。これにより、GoogleChromeの/favicon.icoへのリクエストによって状態変更がトリガーされる問題が修正されます。 これにより、スタック上のコンテキストローカルオブジェクトを使用し、エラー時にコンテキストを保持するFlaskやその他のフレームワークに関するいくつかの問題が修正されるはずです。
  • デバッガーで上にスクロールする際の問題を修正しました。
  • URLルートとは異なるURLで実行されているデバッガーの問題を修正しました。
  • プロキシがめったに使用されない特別なメソッドを適切に転送しない問題を修正しました。
  • ChromeからのXSS保護がデバッガーを壊さないようにする回避策を追加しました。
  • redisが実行されていない場合は、redisテストをスキップします。
  • コンテンツタイプが正しく取得されない原因となっていたマルチパートパーサーのタイプミスを修正しました。


バージョン0.8.3

(バグ修正リリース、2012年2月5日にリリース)

  • werkzeug.wsgi.make_line_iter()で、バッファサイズより長い行が適切に処理されなかった別の問題を修正しました。
  • デバッガーをGAEでより適切に使用できるように、デバッグコンソールの実行が終了した後にstdoutを復元します。
  • intサブクラスのredisキャッシュのバグを修正しました(boolキャッシュに影響します)。
  • 信頼できないソースからのリダイレクトターゲットに関するXSSの問題を修正しました。
  • Redisキャッシュバックエンドがパスワード認証をサポートするようになりました。


バージョン0.8.2

(バグ修正リリース、2011年12月16日にリリース)

  • 組み込みサーバーのリクエスト処理がソケットエラーに正しく応答しない問題を修正しました。
  • ルーティング要求リダイレクト例外のコード属性が正しく使用されるようになりました。
  • Windowsでのシャットダウンに関するバグを修正しました。
  • 非ASCII文字がURLルールにハードコードされているいくつかのUnicodeの問題を修正しました。
  • __doc__ではなくfdelに割り当てられている2つのプロパティdocstringを修正しました。
  • CRLF行末が行反復関数によって2つに分割され、マルチパートファイルのアップロードで問題が発生する可能性がある問題を修正しました。


バージョン0.8.1

(バグ修正リリース、2011年9月30日にリリース)

  • memcacheが正しく機能しない問題を修正しました。
  • copy.copy()でmultidictのコピーを壊していたPython2.7.1以降の問題を修正しました。
  • 代替Python実装の潜在的な問題について、不変の順序付けされたマルチディクトのハッシュ方法を変更しました。


バージョン0.8

2011年9月29日にリリース、コードネームLötkolben

  • 汎用BadRequestKeyErrorのデータ構造固有のKeyErrorsを削除しました。
  • 文書化されたwerkzeug.wrappers.BaseRequest._load_form_data()
  • ルーティングシステムは、リダイレクトのために文字列を渡すだけなので、 query_args パラメーターの辞書の代わりに文字列も受け入れるようになりました。
  • Werkzeugは、効率と単純さの理由から、data属性が設定されるとすぐに、コンテンツの長さを自動的に設定するようになりました。
  • ルーティングシステムは、サーバー名を小文字に正規化するようになりました。
  • サーバー名の構成が正しくない場合でも、ルーティングシステムでValueErrorsが発生することはなくなりました。 これにより、その要素を無視できるようになるため、展開がはるかに簡単になります。
  • HTTPダイジェストヘッダーの解析に関するバグを修正しました。 ncパラメーターとnonceパラメーターが欠落しているヘッダーを拒否しました。
  • プロキシ修正により、X-Forwarded-Protoに基づいてwsgi.url_schemeも更新されるようになりました。
  • redisキャッシュにキープレフィックスのサポートが追加されました。
  • 応答オブジェクトの autocorrect_location_header および automatically_set_content_length を介して制御されるようになったラッパーの一部の自動修正を抑制する機能が追加されました。
  • Werkzeugは新しい方法を使用して、受信データの長さが完全であることを確認し、サーバーがこれを怠った場合、それ自体でIOエラーを発生させます。
  • make_line_iter()では、ストリームが提供できる長さを超えない制限が必要になりました。
  • フォームの解析をフォームパーサークラスにリファクタリングしました。これにより、デバッグと拡張のために解析プロセスの個々の部分にフックすることができます。
  • 条件付き応答の場合、コンテンツの長さは、すでに存在している場合は設定されなくなり、欠落している場合は追加されます。
  • 不変のデータ構造がハッシュ可能になりました。
  • ヘッダーデータ構造では、ヘッダーインジェクション攻撃を回避するために値に改行を使用できなくなりました。
  • サブクラス化により、プロキシ修正で別のリモートアドレスを選択できるようになりました。
  • ストリームベースのURLデコードが追加されました。 これにより、Werkzeugがすべての未解析データをメモリにロードしなくなるため、URLデコードされた大きな送信フォームデータのメモリ使用量が削減されます。
  • Memcacheクライアントは、バグのあるcmemcacheモジュールを使用しなくなり、pylibmcをサポートするようになりました。 GAEは自動的に試行されず、専用クラスは不要になります。
  • Redisキャッシュがデータを適切にシリアル化するようになりました。
  • Python2.4のサポートを削除しました


バージョン0.7.2

(バグ修正リリース、2011年9月30日にリリース)

  • デバッガーのCSRFの問題を修正しました。
  • デバッガーは現在、lodgeitにプライベートペーストを生成しています。
  • URLマップが環境にバインドされている場合、クエリ引数はリダイレクトのために適切にデコードされます。


バージョン0.7.1

(バグ修正リリース、2011年7月26日にリリース)

  • 新しいバージョンのIPythonの問題を修正しました。
  • 確実に機能しないpyinotifyベースのリローダーを無効にしました。


バージョン0.7

2011年7月24日にリリース、コードネームSchraubschlüssel

  • python-libmemcachedのサポートをWerkzeugキャッシュ抽象化レイヤーに追加します。
  • url_decode()およびurl_encode()のパフォーマンスが向上しました。
  • SharedDataMiddlewareが、pkg_resourcesを介してロードするときに、奇妙なパスで内部サーバーエラーを引き起こす可能性がある問題を修正しました。
  • 生成されたコンポーネントにコロンが含まれている場合にURLが無効になるURL生成のバグを修正しました。
  • werkzeug.import_string()は、部分的にセットアップされたパッケージで正しく機能するようになりました。
  • 問題が発生したため、開発サーバーでIPv6の自動ソケット切り替えを無効にしました。
  • Werkzeugは、条件付きHTTP応答を作成するときにDateヘッダーをオーバーライドしなくなりました。
  • ルーティングシステムは、特定のパスに一致するメソッドを取得するためのメソッドを提供します。
  • ルーティングシステムは、エンコーディングエラーの動作を変更するためのパラメータを受け入れるようになりました。
  • ローカルマネージャーは、ラップされたローカルオブジェクトに転送されるコンストラクター内のカスタムID関数を受け入れることができるようになりました。
  • url_unquote_plusは、Unicode文字列を再び受け入れるようになりました。
  • ファイルシステムセッションサポートのプルーニング機能と同時使用に関する問題を修正しました。
  • ポートを破棄する外部URL生成の問題を修正しました。
  • Werkzeugキャッシュ抽象化レイヤーにpylibmcのサポートが追加されました。
  • 改行がたまたまチャンク制限にあったときに発生した新しいマルチパートパーサーの問題を修正しました。
  • ポートが使用されている場合、Cookieが正しく設定されるようになりました。 ドットのないドメインにCookieを設定しようとすると、ランタイムエラーが発生します。
  • Template.from_fileがファイル記述子に対して機能しない問題を修正しました。
  • リローダーはinotifyを使用してリロードを追跡できるようになりました。 これには、pyinotifyライブラリがインストールされている必要があります。
  • Werkzeugデバッガーは、カスタムロッジインストールにサブミットできるようになりました。
  • リダイレクト関数のステータスコードアサーションにより、201をリダイレクトコードとして使用できるようになりました。 これは実際のリダイレクトではありませんが、関数が引き続き役立つようにリダイレクトと十分に共有しています。
  • pypyのsecurecookieを修正しました。
  • 無効なユーザーデータが指定された場合に、 MIMEAccept オブジェクトで best_match を呼び出すと ValueErrors が発生する問題を修正しました。
  • 非推奨の werkzeug.contrib.kickstart および werkzeug.contrib.testtools
  • URLルーティングにURL引数を渡して、リダイレクト用に保持できるようになりました。 将来的には、URL引数の照合も可能になる可能性があります。
  • Python 3へのポートをサポートするために、ヘッダーエンコーディングがutf-8からlatin1に変更されました。 オブジェクトに渡されたバイト文字列は変更されないままであるため、utf-8Cookieを使用できます。 これは、Python 3バージョンが後で変更され、常にlatin1値で動作する部分です。
  • マルチパートデータの特定の値が使用されている場合に最後の文字が削除される原因となっていたフォームパーサーのバグを修正しました。
  • マルチパートパーサーは、グローバル文字セットをオーバーライドするために、part-individualコンテンツタイプヘッダーを確認するようになりました。
  • ファイルストレージオブジェクトにmimetypeおよびmimetype_params属性が導入されました。
  • FileStorageファイル名フォールバックロジックを変更して、Pythonがstdinなどの特別なファイルをマークするために使用する特別なファイル名をスキップするようにしました。
  • より多くのHTTP例外クラスが導入されました。
  • call_on_close をデコレータとして使用できるようになりました。
  • キャッシュバックエンドとしてのredisのサポート。
  • BaseRequest.scheme を追加しました。
  • RFC 5789PATCHメソッドのサポート。
  • 新しいカスタムルーティングパーサーとより良い順序付け。
  • is_behind_proxy のサポートを削除しました。 代わりに、セットアップに応じて REMOTE_ADDR を書き換えるWSGIミドルウェアを使用してください。 ドロップインの交換については、werkzeug.contrib.fixers.ProxyFixも参照してください。
  • テストクライアントにCookie偽造のサポートを追加しました。
  • ルーティングシステムでのホストベースのマッチングのサポートが追加されました。
  • デフォルトの「無視」からより適切な「置換」ユニコードエラー処理モードに切り替えました。
  • 組み込みサーバーは、「werkzeug.server.shutdown」という名前の関数をWSGI環境に追加して、シャットダウンを開始するようになりました。 これは現在、Python2.6以降でのみ機能します。
  • サポートが開始されると、Python 3との互換性を高めるために、ヘッダーはlatin1と見なされるようになりました。
  • werkzeug.security.safe_join()を追加しました。
  • werkzeug.datastructures.MIMEAcceptに accept_html に類似した accept_json プロパティを追加しました。
  • werkzeug.utils.import_string()が失敗し、問題を特定するはるかに優れたエラーメッセージが表示されるようになりました。
  • If-Range ヘッダー(werkzeug.http.parse_if_range_header()およびwerkzeug.datastructures.IfRange)の解析のサポートが追加されました。
  • Range ヘッダー(werkzeug.http.parse_range_header()およびwerkzeug.datastructures.Range)の解析のサポートが追加されました。
  • 応答の Content-Range ヘッダーの解析のサポートが追加され、それにアクセサーオブジェクトが提供されました(werkzeug.http.parse_content_range_header()およびwerkzeug.datastructures.ContentRange)。


バージョン0.6.2

(バグ修正リリース、2010年4月23日にリリース)

  • リクエストオブジェクトの属性 implicit_seqence_conversion 属性の名前を implicit_sequence_conversion に変更しました。


バージョン0.6.1

(バグ修正リリース、2010年4月13日にリリース)

  • 大幅に改善されたローカルオブジェクト。 今すぐスタンドアロンのグリーンレットビルドを取得し、無料の呼び出し可能オブジェクトへのプロキシもサポートする必要があります。 スタックされたローカルもあり、現在の要求/応答をスタックの一番上にプッシュすることで、同じアプリケーションをそれ自体の内部から呼び出すことができます。
  • メソッドが提供されていない場合、ルーティングビルドメソッドはデフォルト以外のメソッドルールも適切にビルドします。
  • 組み込みサーバーに適切なIPv6サポートを追加しました。
  • Windows固有のファイルシステムセッションストアの修正。 (高い同時実行性の下でより安定するはずです)
  • セッションシステムの NameError を修正しました。
  • werkzeug.scriptシステムの空の引数のバグを修正しました。
  • アプリケーションがlogging.basicConfig()を使用するとログ行が重複するバグを修正しました(#499)
  • 安全なパスワードハッシュおよびチェック機能を追加しました。
  • GET が存在する場合、 HEAD がルーティングシステムのメソッドとして暗黙的に追加されるようになりました。 多くの場合、コードはこれが当てはまると想定しており、 HEAD を GET に正規化しないウェブサーバーでは、 HEAD リクエストが破損する可能性があるため、これを行わないとバグと見なされました。 。
  • スクリプトサポートはSSLサーバーを起動できるようになりました。


バージョン0.6

2010年2月19日にリリースされたコードネームHammer。

  • 保留中の非推奨を削除
  • sys.pathがtestappから出力されるようになりました。
  • RFC2068とCookie値の引用との非互換性を修正しました。
  • FileStorageは、マルチパートヘッダーへのアクセスを提供するようになりました。
  • cached_property.writeable は非推奨になりました。
  • MapAdapter.match()は、エンドポイントだけでなく、一致した Rule を返す return_rule キーワード引数を受け入れるようになりました。
  • routing.Map.bind_to_environ()は、マップが無効なWSGI環境にバインドされている場合に、より正確なエラーメッセージを表示するようになりました。
  • 組み込みの開発サーバーにSSLのサポートを追加しました。
  • 応答オブジェクトは、WSGIアプリケーションとして評価されるときに、その場で変更されなくなりました。 下位互換性のために、 fix_headers 関数は、オーバーライドされた場合に引き続き呼び出されます。 ただし、下位互換性のサポートは将来のバージョンで廃止されるため、応答を送信する前にヘッダーの変更が必要な場合は、 get_wsgi_headers を使用するようにアプリケーションを変更する必要があります。
  • append_slash_redirect()では、QUERY_STRINGがWSGI環境にある必要がなくなりました。
  • DynamicCharsetResponseMixinを追加しました
  • DynamicCharsetRequestMixinを追加しました
  • BaseRequest.url_charsetを追加しました
  • リクエストオブジェクトとレスポンスオブジェクトのデフォルトは __ repr __ になりました。
  • 組み込みのデータ構造をピクルスできるようになりました。
  • フォームデータパーサーは、コンテンツタイプではなくファイル名を調べて、アップロードを通常のフォームデータまたはファイルアップロードとして処理する必要があるかどうかを判断します。 これにより、GoogleChromeのバグが修正されます。
  • make_line_iter およびバイナリアップロード用のマルチパートパーサーのパフォーマンスが向上しました。
  • 修正済みis_streamed
  • EnvironBuilder のパス引用バグを修正しました。これにより、PATH_INFOとSCRIPT_NAMEが引用されていない環境で終了していました。
  • werkzeug.BaseResponse.freeze()がコンテンツの長さを設定するようになりました。
  • 不明なHTTPメソッドの場合、リクエストストリームは空ではなく、常に制限されるようになりました。 これにより、Werkzeugの上にDAVやその他のプロトコルを簡単に実装できます。
  • werkzeug.MIMEAccept.best_match()を追加しました
  • 標準ディクショナリからの複数値テストクライアントの投稿がサポートされるようになりました。 以前は、マルチディクトを使用する必要がありました。
  • ルールテンプレートは、サブマウント、サブドメイン、その他のルールファクトリで適切に機能するようになりました。
  • werkzeug.LimitedStreamの非推奨の非サイレント使用。
  • Werkzeugの多くの部分にIRI処理のサポートを追加しました。
  • 開発サーバーは、werkzeugロガーに正しくログインするようになりました。
  • werkzeug.extract_path_info()を追加しました
  • url_fix()のクエリ文字列引用のバグを修正しました
  • fallback_mimetype をwerkzeug.SharedDataMiddlewareに追加しました。
  • 非推奨のBaseResponse.iter_encoded()の文字セットパラメータ。
  • BaseResponse.make_sequence()BaseResponse.is_sequenceBaseResponse._ensure_sequence()を追加しました。
  • werkzeug.Mapのより良い__repr__を追加しました
  • import_string はユニコード文字列も受け入れるようになりました。
  • 開発サーバーは、ホスト名の後の二重スラッシュで壊れません。
  • werkzeug.exceptions.HTTPExceptionの __ repr __ および __ str __ の改善
  • テストクライアントが複数のCookieで正しく機能するようになりました。
  • werkzeug.routing.Mapには、デフォルトのコンバーターマッピングを持つクラス属性が含まれるようになりました。 これは、サブクラスがコンストラクターに渡さずにコンバーターをオーバーライドするのに役立ちます。
  • 実装OrderedMultiDict
  • ファイルシステムに保存するセッションをより効率的にするためのセッションサポートを改善しました。 また、ファイルシステムセッションストアに現在保存されているセッションの一覧表示のサポートも追加されました。
  • werkzeugは、解析にPythonタイムモジュールを使用しなくなりました。つまり、より広い範囲の日付を解析できます。
  • ラッパーには、使用するdictとリストのタイプを交換できるクラス属性がありません。
  • これで、werkzeugデバッガーがappengine開発サーバーで動作するはずです。
  • URLビルダーは、予期しない引数の削除をサポートするようになりました。 以前は、クエリ文字列として常にURLに追加されていました。
  • プロファイラーが正しいストリームに書き込むようになりました。


バージョン0.5.1

(2009年7月9日にリリースされた0.5のバグ修正リリース)

  • FileStorageのブールチェックを修正しました
  • URLルーティングシステムは、UnicodeURLルールを適切にサポートするようになりました。
  • ファイルアップロードストリームは、truncate()メソッドを提供する必要がなくなりました。
  • BaseRequest._form_parsing_failed()を実装しました。
  • 修正#394
  • ImmutableDict.copy()ImmutableMultiDict.copy()、およびImmutableTypeConversionDict.copy()は、変更可能な浅いコピーを返します。
  • make_runserver スクリプトアクションのバグを修正しました。
  • MultiDict.items()MutiDict.iteritems()は、各キーの値ごとにペアを返す引数を受け入れるようになりました。
  • マルチパートパーサーは、余分な改行が追加された手作りのマルチパートリクエストでより適切に機能します。 これにより、setuptoolsのアップロードが適切に処理されないバグが修正されます(#390)
  • アトムフィードジェネレーターのいくつかのマイナーなバグを修正しました。
  • クライアントのCookieヘッダーの解析で大文字と小文字が区別されるバグを修正しました。
  • 動作しない非推奨の警告を修正しました。
  • SharedDataMiddlewareのパッケージの読み込みを修正しました。
  • UTCに設定されていない現地時間のサーバーでサーバー側の有効期限が発生するセキュリティで保護されたCookieのバグを修正しました。
  • インタラクティブデバッガーのコンソールを修正しました。


バージョン0.5

4月24日にリリースされたコードネームSchlagbohrer。

  • 今Python2.4が必要です
  • IterIOのバグを修正しました
  • MIMEAcceptCharsetAcceptを追加しました。これらは、通常のAcceptと同じように機能しますが、mimetypeとcharsetの特別な正規化と、特別な便利なメソッドがあります。
  • サービングシステムをwsgirefから自作のものに切り替えました。
  • ClientがCookieをサポートするようになりました。
  • fixersモジュールを追加し、ウェブサーバーのバグとホスティングセットアップの副作用に対するさまざまな修正を加えました。
  • werkzeug.contrib.wrappersを追加しました
  • is_hop_by_hop_header()を追加しました
  • is_entity_header()を追加しました
  • remove_hop_by_hop_headers()を追加しました
  • pop_path_info()を追加しました
  • peek_path_info()を追加しました
  • wrap_file()FileWrapperを追加しました
  • LimitedStream をcontribパッケージから通常のwerkzeugパッケージに移動し、デフォルトの動作を変更して、警告なしに停止するのではなく、例外を発生させました。 古いクラスは0.6までモジュールに残ります。
  • 古いCGIハックを置き換える実験的なマルチパートパーサーを実装しました。
  • dump_options_header()parse_options_header()を追加しました
  • quote_header_value()unquote_header_value()を追加しました
  • url_encode()url_decode()セパレータ引数を受け入れて切り替えるようになりました & と ; ペアセパレーターとして。 マジックスイッチはもう設置されていません。
  • すべてのフォームデータ解析関数とBaseRequestオブジェクトには、着信バイト数を制限するためのパラメーター(または属性)があります(全体またはフィールドごと)。
  • LanguageAcceptを追加しました
  • リクエストオブジェクトは、すべてのコレクションに対して読み取り専用になるように強制されるようになりました。
  • 多くの新しいコレクションクラス、一般的にリファクタリングされたコレクションを追加しました。
  • テストサポートがリファクタリングされ、半文書化されていない werkzeug.test.File がwerkzeug.FileStorageに置き換えられました。
  • EnvironBuilderが追加され、以前の個別のcreate_environ()Client、およびBaseRequest.from_values()が統合されました。 それらはすべて同じように機能するようになり、混乱が少なくなりました。
  • 内部モジュールからのインポートは、未定義の動作として公式に文書化されています。 これらのモジュールは、パブリックインターフェイスとして公開されることはありませんでした。
  • FileStorage .__ len __ を削除しました。これは、以前はすべてのブラウザーが送信するコンテンツの長さを送信しないブラウザーのオブジェクトを偽造していました。
  • SharedDataMiddlewareは wrap_file を使用するようになり、設定可能なキャッシュタイムアウトがあります。
  • CommonRequestDescriptorsMixinを追加しました
  • CommonResponseDescriptorsMixin.mimetype_paramsを追加しました
  • werkzeug.contrib.lintを追加しました
  • passthrough_errors を run_simple に追加しました。
  • secure_filename を追加しました
  • make_line_iter()を追加しました
  • MultiDictは、 getlist の呼び出し元に内部リストを公開する代わりに、リストを返す反復関数をコピーするようになりました。
  • Clientopen()follow_redirectを追加しました。
  • make_runserver()に extra_files のサポートが追加されました


バージョン0.4.1

(バグ修正リリース、2009年1月11日にリリース)

  • werkzeug.contrib.cache.Memcached は、サーバーアドレスを持つ文字列のリストの代わりに、memcache.Clientインターフェイスを実装するオブジェクトを受け入れるようになりました。 また、GoogleAppEngineキャッシュに接続する GAEMemcachedCache もあります。
  • Python 2.6では変換されなくなったため、秘密鍵をバイト文字列に明示的に変換するようになりました。
  • url_encode とそれを呼び出すすべてのインターフェースは、オプションの順序付けをサポートするようになりましたが、デフォルトでは無効になっています。
  • 開発サーバーはクライアントのアドレスを解決しなくなりました。
  • ファイルを壊した werkzeug.test のタイプミスを修正しました。
  • Map.bind_to_environ は、可能な場合、 Host ヘッダーを使用するようになりました。
  • BaseCache.get_dict (#345)を修正しました
  • werkzeug.test.Client は、バッファリングされたアプリケーションを実行できるようになりました。この場合、アプリケーションは自動的に適切に閉じられます。
  • Headers.set (#354)を修正しました。 以前にヘッダーの重複が発生しました。
  • Headers.pop (#349)を修正しました。 デフォルトのパラメータが適切に処理されませんでした。
  • create_environ のUnboundLocalErrorを修正しました(#351)
  • Headers はwsgirefとの互換性が向上しました。
  • Template.render はmultidictsを受け入れるようになりました。
  • Python2.3のサポートを終了しました


バージョン0.4

2008年11月23日にリリースされたコードネームSchraubenzieher。

  • Client は空の data 引数をサポートするようになりました。
  • Response.application のバグを修正し、メソッドデコレータとして使用できなくなった。
  • セッションシステムは今すぐappengineで動作するはずです
  • セキュアCookieは、さまざまなCPUアーキテクチャを備えた負荷分散環境で適切に機能するようになりました。
  • CacheControl.no_cache および CacheControl.private の動作は、HTTPRFCの可能性を反映するように変更されました。 これらの属性を None または True に設定すると、値が「空の値」に設定されるようになりました。 詳細については、ドキュメントをご覧ください。
  • werkzeug.contrib.atom.AtomFeed .__ call __ を修正しました。 (#338)
  • BaseResponse.make_conditional は常に self を返すようになりました。 以前は、投稿リクエストなどは対象外でした。
  • html および xhtml のブール属性処理のバグを修正しました。
  • デバッガーのペーストビン機能に適切なエラー処理を追加しました。
  • ヘッダーにインターフェイスのようなリストを追加しました(スライスとインデックス作成が機能するようになりました)
  • Headers の __ setitem __ メソッドで、置換時にすべてのキーが正しく削除されなかったバグを修正しました。
  • remove_entity_headers を追加しました。これにより、ヘッダーのリスト(または Headers オブジェクト)からすべてのエンティティヘッダーが削除されます。
  • ステータスコードが304の場合、応答は自動的に remove_entity_headers を呼び出すようになりました。
  • Href クエリパラメータ処理のバグを修正しました。 以前は、 Href への呼び出しの最後の項目は、それがdictである場合、適切に処理されませんでした。
  • ヘッダーが pop 操作をサポートするようになり、environプロパティをより適切に処理できるようになりました。


バージョン0.3.1

(バグ修正リリース、2008年6月24日にリリース)

  • werkzeug.contrib.SecureCookie のセキュリティ問題を修正しました。


バージョン0.3

2008年6月14日にリリースされ、コードネームEUR325CAT6。

  • URLルーティングでのリダイレクトのサポートが追加されました。
  • Authorization と AuthorizationMixin を追加しました
  • WWWAuthenticate と WWWAuthenticateMixin を追加しました
  • parse_list_header を追加しました
  • parse_dict_header を追加しました
  • parse_authorization_header を追加しました
  • parse_www_authenticate_header を追加しました
  • _get_current_object メソッドを LocalProxy オブジェクトに追加しました
  • parse_form_data を追加しました
  • MultiDict 、 CombinedMultiDict 、 Headers 、および EnvironmentHeaders は、 BadRequest のサブクラスである特別なキーエラーを発生させるため、あなたはそれらを捕まえません、彼らは意味のあるHTTP応答を与えます。
  • 代替エンコーディングエラー処理のサポートが追加され、新しい HTTPUnicodeError は(キャッチされない場合) BadRequest のように動作します。
  • BadRequest.wrap を追加しました。
  • SharedDataMiddlewareにETagサポートを追加し、キャッシュを無効にするオプションを追加しました。
  • リクエストオブジェクトの is_xhr を修正しました。
  • URLアダプタの dispatch メソッドのエラー処理を修正しました。 (#318)
  • SharedDataMiddleware のバグを修正しました。
  • Accept.values を修正しました。
  • EnvironmentHeaders にcontent-typeとcontent-lengthが含まれるようになりました
  • url_encode は、渡されたdictのリストとタプルを同じキーの複数の値として扱うため、 MultiDict を関数に渡す必要はありません。
  • validate_arguments を追加しました
  • BaseRequest.application を追加しました
  • 改善されたPython2.3サポート
  • run_simple は、スクリプトモジュールの make_runserver ファクトリ関数のように、 use_debugger および use_evalex パラメーターを受け入れるようになりました。
  • environ_property はデフォルトで読み取り専用になりました
  • リクエストを「浅い」リクエストとして初期化できるようになりました。これにより、リクエストオブジェクトが入力ストリームを消費しようとするとランタイムエラーが発生します。


バージョン0.2

2008年2月14日、コードネームFaustkeilでリリースされました。

  • AnyConverter をルーティングシステムに追加しました。
  • werkzeug.contrib.securecookie を追加しました
  • 例外には、応答オブジェクトを返すget_response()メソッドがあります
  • パスの順序付けのバグを修正しました(#293)、ThomasJohanssonに感謝します
  • BaseReporterStream は、werkzeugcontribモジュールの一部になりました。 Werkzeug 0.3以降では、そこからインポートする必要があります。
  • DispatcherMiddleware を追加しました。
  • RequestRedirect は HTTPException のサブクラスになり、302ではなく301ステータスコードを使用します。
  • url_encode と url_decode は、オプションでキーをユニコード文字列として扱うこともできるようになりました。
  • werkzeug.script では、ブール引数の呼び出し元の形式が異なります。
  • lazy_property の名前を cached_property に変更しました。
  • import_string を追加しました。
  • オブジェクトを要求するためにis_ *プロパティを追加しました。
  • empty()メソッドをルーティングルールに追加しました。
  • werkzeug.contrib.profiler を追加しました。
  • extends を Headers に追加しました。
  • dump_cookie と parse_cookie を追加しました。
  • as_tuple をクライアントに追加しました。
  • werkzeug.contrib.testtools を追加しました。
  • werkzeug.unescape を追加しました
  • BaseResponse.freeze を追加しました
  • werkzeug.contrib.atom を追加しました
  • HTTPExceptionsは、デフォルトの説明をオーバーライドする引数 description を受け入れるようになりました。
  • MapAdapter にパス情報のデフォルトが追加されました。 bind_to_environ を使用する場合、後でパスを渡す必要はありません。
  • werkzeugが開発サーバーに使用するwsgirefサブクラスは、直接のsys.stderrロギングを使用せず、「werkzeug」と呼ばれるロガーを使用します。
  • Href を実装しました。
  • 実装された find_modules
  • 要求オブジェクトと応答オブジェクトをベースオブジェクト、ミックスイン、およびすべてのミックスインを実装するフル機能のサブクラスにリファクタリングしました。
  • シンプルなユーザーエージェントパーサーを追加
  • werkzeugのルーティングは、ルールに一致するが別のメソッドの場合、 MethodNotAllowed を発生させるようになりました。
  • 多くの修正と小さな改善


バージョン0.1

2007年12月9日にリリースされ、コードネームWictorinoxger。

  • 初回リリース