2017-07-26 8 views
0

エンドユーザーがユーザーインターフェイスからデータを処理する方法を探しています。 Excelに似た構文を持つスクリプトエンジン。Pythonのエンドユーザー向けのスクリプト言語のようなExcel

例:

入力は、(基本的にスクリプトの変数名)データが含まれており、ルールにstringdictあろう。

input = {'a':1, 'b':2, 'c':'add'}

rule_example_1 = "if(c == 'add',a+b,if(c=='sub',a-b,raise ERROR))"'

rule_example_2 = "if c == 'add' return a+b else if c == 'sub' return a-b else raise error()"

スクリプトは、独自の機能を備えた拡張可能でなければなりません。また、ユーザーが使用できるタイプの定義もあります。

ユースケース:

基本的にはユーザーが自分のアカウント内のいくつかの2次元データ(製品の詳細)を持っています。また、いくつかのスクリプトルールを使用して、製品データを変更するようにしたいと考えています。例えば

ユーザーが文字Xで始まるすべての製品を除外したい場合、彼らは規則作成します。

set('product_status', if(starts_with(product_title,'X'), 'skip', ''))

またはユーザーが製品価格ならば20%価格を引き上げるしたい場合は、あなたはより多くのユーザーフレンドリーな何かをしたい場合は、おそらくあなたはBlocklyを試みることができる

set('product_price', if(product_price < 10, product_price*1.20, product_price)

+3

... Pythonのか? –

+0

@ddofborg:いくつかの制約はありますか?基本的には、なぜエンド・ユーザーにPythonコードを書かせるのですか? –

+0

おそらく、アプリケーションが何であるか、スクリプトが何を想定しているのか、そしてどのようなユーザーがそれを使用するのかに関するいくつかの追加の詳細は、あなたをより良く助けるための良いアイデアを与えるはずです。 –

答えて

1

:10、次に低い https://developers.google.com/blockly/

あなたのアプリケーションに簡単に統合してカスタマイズすることができ、独自のブロックを作成してユーザーのニーズに対応できます。

あなたはまた、メッシュを見てみたいことがあります。単純 https://github.com/chrispsn/mesh

それとも何か: https://pypi.python.org/pypi/simpleeval

または、あなたがast.literal_eval()を使用することができますさらに簡単な(あまり安全な)。これは、Pythonの標準ライブラリの一部です: https://docs.python.org/3/library/ast.html#ast.literal_eval

また、この他の質問はあなたを助けるかもしれない:たぶん Safe expression parser in Python

+1

私はSimpleEval(https://github.com/danthedeckie/simpleeval)で作業すると思います! – ddofborg

関連する問題