GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

QQuick

Transcrypt – Python 3.7からJavaScriptコンパイラへ – リーンで高速、オープン! –

投稿日:

Python 3.7からJavaScriptコンパイラへ – リーンで高速、オープン! http://www.transcrypt.org

Pythonはブラウザでコンパイルされ、速度はあらかじめコンパイルされています: http : //www.transcrypt.org

  • 高可読性、効率的なJavaScriptにプリコンパイルされ、MBよりむしろKBがダウンロードされます
  • 多重継承、オプションの演算子オーバーロード、メタクラス、非同期/待機、プロパティ、デコレータ、階層モジュールなど
  • デスクトップ指向のPythonスクリプトではなく、高品質のウェブ指向のJavaScriptライブラリとのシームレスな統合
  • 純粋なPython 3.7の構文、Pythonのネイティブパーサーを使用
  • Pythonのソースコードから、統合されたソースマップを通して直接デバッグする
  • 人のJavaScriptを生成します。行ごとにPythonソースに似ています。必要に応じてソース行番号で注釈が付けられます。
  • 高速なJavaScript 6コード:コールキャッシング、forループ最適化、インラインJavaScriptなど
  • コマンドラインスイッチの先端で統合された静的型検査と縮小
  • node.jsの上でも動作します
  • 多くのコード例を含む幅広いドキュメント
  • Apache 2.0ライセンス
  • ピップインストールして行ってください!

最新の安定版:ロンドン

>>>始めましょう!_

貢献した皆様に感謝します!

可読性

以下に示すように、PythonとJavaScriptコードの間には単純な並列性があります。 ソースマップの使用と組み合わせることで、効率的なデバッグが可能になります。 また、スタブを使用してコマンドプロンプトからコードをテストすることもできます。

JavaScriptで多重継承を持つクラシックオブジェクト指向

CPythonとの主な違い

  • Webバッテリー:既存のJavaScriptライブラリーへのシームレスなアクセスは、配布に多くのPythonライブラリーを含めるよりも好評です。 このルールにはいくつかの例外があります。たとえば、数学、cmath、ランダム、itertools、re、時間、日時計、カメなどがありますが、一般的にアクセントはブラウザに関連するライブラリです。
  • Pythonコードの評価と実行がありません。 これもまたコンセプトの一部です。 Transcryptコードは、高速のページ読み込みを行うために、事前にコンパイル、最適化、および縮小されています。 この点で、その設計目標は、ブラウザで即座にコンパイルされるツールとは根本的に異なります。 Transcryptは、JavaScript対応のものと同じ速さでロードして実行できる、プロフェッショナルで広範な現実世界のWebアプリケーションを構築することを目標にしていますが、Pythonできれいなモジュール構造とメンテナンス性を提供します。

ライセンス

Copyright 2014 – 2018 Jacques de Hooge、GEATECエンジニアリング、 www.geatec.com

Apache License、Version 2.0(以下「ライセンス」)の下でライセンスされています。 ライセンスに従わない限り、このファイルを使用することはできません。 あなたはライセンスのコピーを

http://www.apache.org/licenses/LICENSE-2.0

適用法または書面による合意が必要な場合を除き、本ライセンスに基づいて配布されるソフトウェアは、明示的または黙示的にいかなる種類の保証または条件もなく「現状有姿」で配布されます。 ライセンスに基づいて許可および制限を規定する特定の言語については、ライセンスを参照してください。

貢献する方法

TranscryptはJacques de Hoogeが所有する個人的なレポとして始まりました。 プロジェクトが巻き起こし、問題に貢献した人の数、アイデア、コードが増えたので、レポがQQuick組織に転送され、GitHubで開発チームを構成することができました。

これには明確なメッセージもありました。特にTranscryptは誰にも所有されていません。 それを使用しているか、それに貢献しているのは誰もが集団財産です。 同時に、特にコアのコード品質について非常に堅実な把握を維持する必要性が感じられました。

../transcrypt/modules/org/transcryptに加えて../transcrypt/__main__.pyというファイルはすべて、Transcryptのコアの一部とみなされます。 主要な設計目標は、コアを小型かつ高速に保つことです。 これは、CPythonのいくつかの機能が故意に省略されたり簡略化されたりしたことを意味します。 コア開発はまだ主にジャックによって行われていますが、多くの素晴らしいアイデアが問題として提出されています。 コアの中で何かを改善したいのであれば、最初に問題を開いておくのが最善です。 プルリクエストを直接開くと、失望する可能性がありますが、真剣に良いアイデアを得るために全力を尽くしています。

Transcryptの他のすべての部分は、末梢と呼ばれます。 周辺の良質の引き取り依頼は受け入れられる妥当なチャンスですが、事前に問題を開始し、調整を可能にし、労力を無駄にしないことが賢明です。

標準ライブラリを実装することで特別な場所が得られます。 Transcryptは主にブラウザ中心のJavaScriptライブラリに依存していますが、限られた数の標準ライブラリを利用できるため、Pythonプログラマの受け入れに役立ちます。 だからここに貢献することを歓迎します。 設計目標は、100%完全、遅い、かさばった、バグの90%以上の完成度、高速性、小型性、信頼性です。 もしあなたが図書館に寄稿しているのであれば、自動テスト(docs参照)とそれに関するドキュメントも寄稿してください。 サポートされているプラ​​ットフォームは、WindowsおよびLinux(およびそれに加えて、OsX)です。

あらゆる良いアイデアを尊重しながら、最終的には何が入ってくるのか、何が得られないのかは、ジャックにあります。 これは民主的なプロジェクトではなく独裁的なものです。 船乗り自身であるため、Jacquesは船に1人の船長を置くという考えを評価しています。 船長は船を所有していませんが、乗組員と相談して安定したコースを作って乗客にサービスします。

ライブラリをTranscryptに提供するもう1つの方法は、それらをPyPiに別々のパッケージとして提出することです。 その場合、人々があなたのパッケージを見つけることを可能にするためにキーワードTranscryptを必ず追加してください。 あなたのパッケージをpip-installableにすることも、それを捕らえるのに役立ちます。 もちろん、PyPi経由でパッケージを提供することは、開発者にとって完全な自由を意味します。

開発ビルドステータス

上のアイコンは、各コミット後にLinuxで行われる継続的な統合テストの結果を示しています。 このテストは、Transcryptのすべての機能を体系的にカバーする一連のテストレットを実行することから成ります。 各テストレットは、CPythonに対して自動バックツーバックテストを実行します。

テストレットの完全なセットはドキュメントに記述されており、配布されています。 分岐モデルは故意に単純に保たれているため、継続的な統合は一時的に壊れる可能性があります。 その場合、上記のアイコンをクリックして「Build History」をクリックすると、最新のバージョンを使用することができます。

一方、各リリースでは、少なくとも以下のテストが先行しています。

  • 上記の自動バックツーバックテストは、Linuxだけでなく、Windowsおよび関連する問題の場合はOsXでも可能です。
  • 手動テストの自動コンパイル、結果として得られたアプリケーションの人間のエクササイズ、および結果の視覚的チェック
  • デモの自動コンパイル、得られたアプリケーションの人間のエクササイズ、および結果の視覚的チェック。
  • ドキュメンテーションビルド、続いて視覚的なサンプルチェック。

最新のコミットの新機能

  • 組み込みのpow関数が追加されました
  • 状況管理者がテストケースを追加
  • Python 3.7データセンターに+テストケースが追加されました
  • インストールディレクトリではなく、__ target__ subdirで書かれたすべて
  • Pythonモジュールは今やES6モジュールとして普遍的に実装されており、1ページに複数のアプリケーション、ランタイムとライブラリを一度しか持たない
  • 文字列形式のミニ言語がオプションとして追加されました(-sf / –sformスイッチ)+自動テスト
  • 部門内部の改善と修正
  • Node.jsと組み合わせて使用​​するのに適したTimeモジュール
  • 単線プラグマ(issue 460)+ doc +自動テスト
  • 演算子のオーバーロードが有効になっている場合に許容される負のリストインデックス(問題460)
  • プラグマとスイッチを追加jscallとnojscall、30%の高速化、クラス内の絶縁されたメソッドにローカルでのみ使用
  • 呼び出し可能(なし)の修正(問題450)
  • / tutorials / baseline mini Pythonチュートリアルで始める
  • モジュールからのデコレータの修正(issue 448)
  • 日時、時間、およびドキュメントに追加された例
  • モジュールのdatetimeが追加されました(pr 435)
  • 現実の共役は正しくコンパイルされました
  • getterおよびsetterでサポートされているプロパティデコレータ
  • メタクラスとメソッドデコレータが正しい順序で実行されるようになりました(問題430)
  • 複素数は比較演算子とコンジュゲートをサポートするようになりました
  • 最大値と最小値がシーケンスを受け入れるようになりました(問題331)
  • エイリアスは、キーワードargsとgetattr、setattr、hasattr、delattr(issue 414)と組み合わせてより完全に処理されました。
  • コンパイラスイッチ-xt / –xtinyが追加され、演算子のオーバーロードが使用されない場合、ランタイムのサイズが大幅に削減されました。
  • コンパイラスイッチ-dn / –dnostripを追加して、__builtin__および__core__のコメントを削除しないようにしました。
  • __builtin__と__core__のコメントJavaScript-onlyモジュールはデフォルトでは削除されています
  • 追加されたバイトとバイトの初期サポート(issue 405 ao)
  • ドキュメントに追加された辞書キーのヒューリスティックな解釈についての解説(401号)
  • Fisher-Yatesシャッフルがランダムモジュールに追加されました
  • 例外タイプTypeErrorが追加されました。現在はTranscrypt自身で使用されていません(問題365)。
  • メインプログラムファイルの名前は今や.pyの拡張子はもう必要ありません…(issue 416、bugfix)
  • メインプログラムファイルの名前に.py拡張子は必要ありません(issue 416)
  • __module__のDRY実装で、-mc / –modclassスイッチを削除するのに十分な量の
  • -mc / –modclassスイッチはコードの膨張を防ぐために__module__の生成を制御するようになりました
  • Issue 397 ao、__module__属性がクラスに追加され、メインモジュールの__name__が ‘__main__’になりました。
  • 問題399の拡張:__pragma__( ‘keycheck’)+コマンドラインスイッチ+自動テスト
  • 問題398,412,413 +自動テストの修正
  • 外部ツールによる部分的な翻訳を容易にするために__pragma__( ‘xtrans’、…)が追加されました(実験的、404号、JSXなど)
  • より良いCPython互換性のためにValueErrorとKeyErrorのデフォルトメッセージが削除されました(pr 395)
  • 再モジュールの小さな修正(問題392)
  • boolからintへの変換が成功する(issue 391)
  • オーバーロード可能な演算子__truediv__と__floordiv__が追加されました(問題389)
  • クラスメソッド、静的メソッド、クラスデコレータ、メソッドデコレータ、静的メソッドデコレータ
  • オブジェクトが特定の文字列表現を持たない場合、関数reprとstrは???からではなく、<object of type:object>を返します。このケースはもはやエラーとして報告されません
  • 関数lenは__len__を呼び出します(pr 378)
  • -t(または–tconv)スイッチ(pr 367 ao)を使用した場合のPythonの真実
  • コマンドライン上のソースファイルのスペックをフルパスにすることができるようになりました(free afer pr#362)
  • zip関数は有限イテレータ(issue#369)+自動テスト
  • インポートされた名前を直接インポートするモジュールに限定するために-xc(または–confimp)スイッチが追加されました(インポートが推移しないように)
  • 生成されたファイルの一部をクリーンアップしました
  • 固定されたモジュール検索順序、再び連続的な統合機能
  • 正規表現autotest回避策がPython 3.6列挙型に追加されました
  • 非同期/追加待ち+手動テスト
  • Python 3.6をいくつかの場所でデフォルトにしました
  • 拡張モジュールの検索パスにプラグマとコマンドラインスイッチを追加
  • 自動テストスイートに追加された__getattr__と__setattr__の使用のより良い例
  • メソッドdict.values()が追加されました
  • カプセル化されたコンストラクタを持つthree.jsのデモが追加されました
  • ドキュメントリンクの修復
  • #317の修正:aList [‘aStringLiteral’]の誤った例外タイプ
  • #316の拡張:funcのフィルタはNoneをサポートしていません
  • #314の拡張:float( ”)は0を返します
  • #310の拡張:hasattr()は ‘Uncaught TypeError’を発生させます
  • #306の拡張:dict.popitem()追加+自動テスト
  • 最新のmypy APIと統合
  • 問題#304の修正:グローバルな–opovフラグを使用しているときに無効なJS
  • 問題#301の修正:文字列のzipが壊れた
  • コメントのようなプラグマ(issue#295)が追加されました:#__pragma__(<parameters>)
  • 問題#284(+ =問題)と自動テストケースの修正
  • mypy静的型検査器のバンドルされたバージョン0.4.4が、mypy(現在は0.4.7)に依存しています。
  • @ =、** =、%=、* =、/ =、+ =、 – =、<< =、>> =、| =、^ =のインプレースオーバーロードが追加されました。
  • 演算子** =追加、a = ** b = a ** bに変換
  • オペレータ@ =追加、M3 = M2をM3 = M3 @ M2に変換他の拡張割り当て操作と同じ
  • コンパイルエラーレポートに、詳細なインポートシーケンスが含まれるようになりました
  • 問題#281の拡張:辞書に使用できるタプルキー
  • 問題#26の拡張:単一の祖先メソッドへの一意のパスに対してsuper()が追加されました。
  • 問題#279の修正:TypeErrorはPythonとJavaScripの両方に存在し、エイリアスが必要です
  • 問題#277の修正:新しく必要なエイリアス
  • 問題#274の修正:厳格なモードで非修飾プロパティーを削除できない
  • 問題#268の修正:エラーメッセージにモジュールインポートトレースがありません
  • 正規表現モジュールの自動テストは、出荷テストとCIテストの一部となりました。 @ JdeHとマークされた部分はコメントアウトされています
  • マニュアルもオンラインで更新されました。
  • 問題#256の修正:括弧は翻訳されていません(返される前にドットの前に)
  • オプション-b(または–blind)を出荷テストに追加しました。 -c(または–clean)-b(または–blind)を指定して実行すると、何も表示されず、生成されたすべてのファイルを削除してレポをクリーンアップするだけです。 コミットする前の使用を意味します。
  • [リリースパリ(PyPi v3.6.4、GitHub#14):Python 3.6のサポート、div。 修正と強化]
  • モジュールの属性を動的に取得および設定する関数globals()が使用可能になりました。#251
  • cyclejsのデモも、出荷テストに追加されました
  • issue#247の拡張:1つのWebページで複数のTranscryptアプリケーションを保持できるようになりました
  • 正規表現モジュールが完成! (問題#98)
  • #254と#252の問題を修正しました。どちらも、sourcemapがelse節の1行だけオフになっていなければなりません
  • 教育用、テキストのみの同期コンソールI / Oのエミュレーション
  • 簡単な比較のために、自動テスト出力を表形式で出力しました。 ソース行nrs
  • 問題#178のためのフィックス:リストの理解/オペレータ優先順位のバグ
  • Div。 CIテストの強化と修正
  • issue#139の拡張: ‘yield from’がサポートされるようになりました。
  • issue#89と#149の拡張:__getattr__と__setattr__がサポートされ、-e 6スイッチが必要です。 テストレットの「プロキシ」が追加されました。
  • 名前の衝突を防ぐために新しいエイリアスが追加されました。 js_を前置することによって、信号名に常に到達することができます。 したがって、JSで ‘クリア’が必要な場合は、Pythonで ‘js_clear’を使用します。 エイリアスの完全なリストはドキュメントにあります。 エイリアスは、__pragma__( ‘noalias’、 ‘clear’など)などの下位互換性を維持するために未定義にすることができます。
  • 問題#169の拡張:float( ‘inf’)とfloat( ‘ – inf’)のサポートを追加

最新のコミットの既知のバグ

なし

あなたが好きかもしれない他のパッケージ







-QQuick
-, , , , ,

執筆者: