mirror of
https://github.com/ocogeclub/ocoge.git
synced 2024-11-22 15:49:48 +00:00
108 lines
40 KiB
JavaScript
108 lines
40 KiB
JavaScript
// Do not edit this file; automatically generated.
|
|
|
|
/* eslint-disable */
|
|
;(function(root, factory) {
|
|
if (typeof define === 'function' && define.amd) { // AMD
|
|
define(["./blockly_compressed.js"], factory);
|
|
} else if (typeof exports === 'object') { // Node.js
|
|
module.exports = factory(require("./blockly_compressed.js"));
|
|
} else { // Browser
|
|
var factoryExports = factory(root.Blockly);
|
|
root.Blockly.Python = factoryExports;
|
|
}
|
|
}(this, function(__parent__) {
|
|
var $=__parent__.__namespace__;
|
|
var module$contents$Blockly$Python_Python=new $.module$exports$Blockly$Generator.Generator("Python");module$contents$Blockly$Python_Python.addReservedWords("False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,print,raise,return,try,while,with,yield,NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,ArithmeticError,AssertionError,AttributeError,BaseException,BlockingIOError,BrokenPipeError,BufferError,BytesWarning,ChildProcessError,ConnectionAbortedError,ConnectionError,ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,ImportWarning,IndentationError,IndexError,InterruptedError,IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,PermissionError,ProcessLookupError,RecursionError,ReferenceError,ResourceWarning,RuntimeError,RuntimeWarning,StandardError,StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,sum,super,tuple,type,unichr,unicode,vars,xrange,zip");
|
|
module$contents$Blockly$Python_Python.ORDER_ATOMIC=0;module$contents$Blockly$Python_Python.ORDER_COLLECTION=1;module$contents$Blockly$Python_Python.ORDER_STRING_CONVERSION=1;module$contents$Blockly$Python_Python.ORDER_MEMBER=2.1;module$contents$Blockly$Python_Python.ORDER_FUNCTION_CALL=2.2;module$contents$Blockly$Python_Python.ORDER_EXPONENTIATION=3;module$contents$Blockly$Python_Python.ORDER_UNARY_SIGN=4;module$contents$Blockly$Python_Python.ORDER_BITWISE_NOT=4;
|
|
module$contents$Blockly$Python_Python.ORDER_MULTIPLICATIVE=5;module$contents$Blockly$Python_Python.ORDER_ADDITIVE=6;module$contents$Blockly$Python_Python.ORDER_BITWISE_SHIFT=7;module$contents$Blockly$Python_Python.ORDER_BITWISE_AND=8;module$contents$Blockly$Python_Python.ORDER_BITWISE_XOR=9;module$contents$Blockly$Python_Python.ORDER_BITWISE_OR=10;module$contents$Blockly$Python_Python.ORDER_RELATIONAL=11;module$contents$Blockly$Python_Python.ORDER_LOGICAL_NOT=12;
|
|
module$contents$Blockly$Python_Python.ORDER_LOGICAL_AND=13;module$contents$Blockly$Python_Python.ORDER_LOGICAL_OR=14;module$contents$Blockly$Python_Python.ORDER_CONDITIONAL=15;module$contents$Blockly$Python_Python.ORDER_LAMBDA=16;module$contents$Blockly$Python_Python.ORDER_NONE=99;
|
|
module$contents$Blockly$Python_Python.ORDER_OVERRIDES=[[module$contents$Blockly$Python_Python.ORDER_FUNCTION_CALL,module$contents$Blockly$Python_Python.ORDER_MEMBER],[module$contents$Blockly$Python_Python.ORDER_FUNCTION_CALL,module$contents$Blockly$Python_Python.ORDER_FUNCTION_CALL],[module$contents$Blockly$Python_Python.ORDER_MEMBER,module$contents$Blockly$Python_Python.ORDER_MEMBER],[module$contents$Blockly$Python_Python.ORDER_MEMBER,module$contents$Blockly$Python_Python.ORDER_FUNCTION_CALL],[module$contents$Blockly$Python_Python.ORDER_LOGICAL_NOT,
|
|
module$contents$Blockly$Python_Python.ORDER_LOGICAL_NOT],[module$contents$Blockly$Python_Python.ORDER_LOGICAL_AND,module$contents$Blockly$Python_Python.ORDER_LOGICAL_AND],[module$contents$Blockly$Python_Python.ORDER_LOGICAL_OR,module$contents$Blockly$Python_Python.ORDER_LOGICAL_OR]];module$contents$Blockly$Python_Python.isInitialized=!1;
|
|
module$contents$Blockly$Python_Python.init=function(a){Object.getPrototypeOf(this).init.call(this);this.PASS=this.INDENT+"pass\n";this.nameDB_?this.nameDB_.reset():this.nameDB_=new $.module$exports$Blockly$Names.Names(this.RESERVED_WORDS_);this.nameDB_.setVariableMap(a.getVariableMap());this.nameDB_.populateVariables(a);this.nameDB_.populateProcedures(a);for(var b=[],c=(0,$.module$exports$Blockly$Variables.allDeveloperVariables)(a),d=0;d<c.length;d++)b.push(this.nameDB_.getName(c[d],$.module$exports$Blockly$Names.Names.DEVELOPER_VARIABLE_TYPE)+
|
|
" = None");a=(0,$.module$exports$Blockly$Variables.allUsedVarModels)(a);for(c=0;c<a.length;c++)b.push(this.nameDB_.getName(a[c].getId(),$.module$exports$Blockly$Names.NameType.VARIABLE)+" = None");this.definitions_.variables=b.join("\n");this.isInitialized=!0};
|
|
module$contents$Blockly$Python_Python.finish=function(a){var b=[],c=[],d;for(d in this.definitions_){var e=this.definitions_[d];e.match(/^(from\s+\S+\s+)?import\s+\S+/)?b.push(e):c.push(e)}a=Object.getPrototypeOf(this).finish.call(this,a);this.isInitialized=!1;this.nameDB_.reset();return(b.join("\n")+"\n\n"+c.join("\n\n")).replace(/\n\n+/g,"\n\n").replace(/\n*$/,"\n\n\n")+a};module$contents$Blockly$Python_Python.scrubNakedValue=function(a){return a+"\n"};
|
|
module$contents$Blockly$Python_Python.quote_=function(a){a=a.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n");var b="'";-1!==a.indexOf("'")&&(-1===a.indexOf('"')?b='"':a=a.replace(/'/g,"\\'"));return b+a+b};module$contents$Blockly$Python_Python.multiline_quote_=function(a){return a.split(/\n/g).map(this.quote_).join(" + '\\n' + \n")};
|
|
module$contents$Blockly$Python_Python.scrub_=function(a,b,c){var d="";if(!a.outputConnection||!a.outputConnection.targetConnection){var e=a.getCommentText();e&&(e=(0,$.module$exports$Blockly$utils$string.wrap)(e,this.COMMENT_WRAP-3),d+=this.prefixLines(e+"\n","# "));for(var f=0;f<a.inputList.length;f++)a.inputList[f].type===$.module$exports$Blockly$inputTypes.inputTypes.VALUE&&(e=a.inputList[f].connection.targetBlock())&&(e=this.allNestedComments(e))&&(d+=this.prefixLines(e,"# "))}a=a.nextConnection&&
|
|
a.nextConnection.targetBlock();c=c?"":this.blockToCode(a);return d+b+c};module$contents$Blockly$Python_Python.getAdjustedInt=function(a,b,c,d){c=c||0;a.workspace.options.oneBasedIndex&&c--;var e=a.workspace.options.oneBasedIndex?"1":"0";a=this.valueToCode(a,b,c?this.ORDER_ADDITIVE:this.ORDER_NONE)||e;(0,$.module$exports$Blockly$utils$string.isNumber)(a)?(a=parseInt(a,10)+c,d&&(a=-a)):(a=0<c?"int("+a+" + "+c+")":0>c?"int("+a+" - "+-c+")":"int("+a+")",d&&(a="-"+a));return a};$.Blockly.Python=module$contents$Blockly$Python_Python;var module$exports$Blockly$Python$variables={};$.Blockly.Python.variables_get=function(a){return[$.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE),$.Blockly.Python.ORDER_ATOMIC]};$.Blockly.Python.variables_set=function(a){var b=$.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"0";return $.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE)+" = "+b+"\n"};var module$exports$Blockly$Python$variablesDynamic={};$.Blockly.Python.variables_get_dynamic=$.Blockly.Python.variables_get;$.Blockly.Python.variables_set_dynamic=$.Blockly.Python.variables_set;var module$exports$Blockly$Python$texts={};$.Blockly.Python.text=function(a){return[$.Blockly.Python.quote_(a.getFieldValue("TEXT")),$.Blockly.Python.ORDER_ATOMIC]};$.Blockly.Python.text_multiline=function(a){a=$.Blockly.Python.multiline_quote_(a.getFieldValue("TEXT"));var b=-1!==a.indexOf("+")?$.Blockly.Python.ORDER_ADDITIVE:$.Blockly.Python.ORDER_ATOMIC;return[a,b]};
|
|
var module$contents$Blockly$Python$texts_strRegExp=/^\s*'([^']|\\')*'\s*$/,module$contents$Blockly$Python$texts_forceString=function(a){return module$contents$Blockly$Python$texts_strRegExp.test(a)?[a,$.Blockly.Python.ORDER_ATOMIC]:["str("+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_join=function(a){switch(a.itemCount_){case 0:return["''",$.Blockly.Python.ORDER_ATOMIC];case 1:return a=$.Blockly.Python.valueToCode(a,"ADD0",$.Blockly.Python.ORDER_NONE)||"''",module$contents$Blockly$Python$texts_forceString(a);case 2:var b=$.Blockly.Python.valueToCode(a,"ADD0",$.Blockly.Python.ORDER_NONE)||"''";a=$.Blockly.Python.valueToCode(a,"ADD1",$.Blockly.Python.ORDER_NONE)||"''";return[module$contents$Blockly$Python$texts_forceString(b)[0]+" + "+module$contents$Blockly$Python$texts_forceString(a)[0],
|
|
$.Blockly.Python.ORDER_ADDITIVE];default:b=[];for(var c=0;c<a.itemCount_;c++)b[c]=$.Blockly.Python.valueToCode(a,"ADD"+c,$.Blockly.Python.ORDER_NONE)||"''";a=$.Blockly.Python.nameDB_.getDistinctName("x",$.module$exports$Blockly$Names.NameType.VARIABLE);return["''.join([str("+a+") for "+a+" in ["+b.join(", ")+"]])",$.Blockly.Python.ORDER_FUNCTION_CALL]}};
|
|
$.Blockly.Python.text_append=function(a){var b=$.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE);a=$.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_NONE)||"''";return b+" = str("+b+") + "+module$contents$Blockly$Python$texts_forceString(a)[0]+"\n"};$.Blockly.Python.text_length=function(a){return["len("+($.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"''")+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_isEmpty=function(a){return["not len("+($.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"''")+")",$.Blockly.Python.ORDER_LOGICAL_NOT]};
|
|
$.Blockly.Python.text_indexOf=function(a){var b="FIRST"===a.getFieldValue("END")?"find":"rfind",c=$.Blockly.Python.valueToCode(a,"FIND",$.Blockly.Python.ORDER_NONE)||"''";b=($.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_MEMBER)||"''")+"."+b+"("+c+")";return a.workspace.options.oneBasedIndex?[b+" + 1",$.Blockly.Python.ORDER_ADDITIVE]:[b,$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_charAt=function(a){var b=a.getFieldValue("WHERE")||"FROM_START",c=$.Blockly.Python.valueToCode(a,"VALUE","RANDOM"===b?$.Blockly.Python.ORDER_NONE:$.Blockly.Python.ORDER_MEMBER)||"''";switch(b){case "FIRST":return[c+"[0]",$.Blockly.Python.ORDER_MEMBER];case "LAST":return[c+"[-1]",$.Blockly.Python.ORDER_MEMBER];case "FROM_START":return a=$.Blockly.Python.getAdjustedInt(a,"AT"),[c+"["+a+"]",$.Blockly.Python.ORDER_MEMBER];case "FROM_END":return a=$.Blockly.Python.getAdjustedInt(a,
|
|
"AT",1,!0),[c+"["+a+"]",$.Blockly.Python.ORDER_MEMBER];case "RANDOM":return $.Blockly.Python.definitions_.import_random="import random",[$.Blockly.Python.provideFunction_("text_random_letter","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(text):\n x = int(random.random() * len(text))\n return text[x]\n")+"("+c+")",$.Blockly.Python.ORDER_FUNCTION_CALL]}throw Error("Unhandled option (text_charAt).");};
|
|
$.Blockly.Python.text_getSubstring=function(a){var b=a.getFieldValue("WHERE1"),c=a.getFieldValue("WHERE2"),d=$.Blockly.Python.valueToCode(a,"STRING",$.Blockly.Python.ORDER_MEMBER)||"''";switch(b){case "FROM_START":b=$.Blockly.Python.getAdjustedInt(a,"AT1");0===b&&(b="");break;case "FROM_END":b=$.Blockly.Python.getAdjustedInt(a,"AT1",1,!0);break;case "FIRST":b="";break;default:throw Error("Unhandled option (text_getSubstring)");}switch(c){case "FROM_START":a=$.Blockly.Python.getAdjustedInt(a,"AT2",
|
|
1);break;case "FROM_END":a=$.Blockly.Python.getAdjustedInt(a,"AT2",0,!0);(0,$.module$exports$Blockly$utils$string.isNumber)(String(a))?0===a&&(a=""):($.Blockly.Python.definitions_.import_sys="import sys",a+=" or sys.maxsize");break;case "LAST":a="";break;default:throw Error("Unhandled option (text_getSubstring)");}return[d+"["+b+" : "+a+"]",$.Blockly.Python.ORDER_MEMBER]};
|
|
$.Blockly.Python.text_changeCase=function(a){var b={UPPERCASE:".upper()",LOWERCASE:".lower()",TITLECASE:".title()"}[a.getFieldValue("CASE")];return[($.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_MEMBER)||"''")+b,$.Blockly.Python.ORDER_FUNCTION_CALL]};$.Blockly.Python.text_trim=function(a){var b={LEFT:".lstrip()",RIGHT:".rstrip()",BOTH:".strip()"}[a.getFieldValue("MODE")];return[($.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_MEMBER)||"''")+b,$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_print=function(a){return"print("+($.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_NONE)||"''")+")\n"};
|
|
$.Blockly.Python.text_prompt_ext=function(a){var b=$.Blockly.Python.provideFunction_("text_prompt","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(msg):\n try:\n return raw_input(msg)\n except NameError:\n return input(msg)\n");var c=a.getField("TEXT")?$.Blockly.Python.quote_(a.getFieldValue("TEXT")):$.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_NONE)||"''";b=b+"("+c+")";"NUMBER"===a.getFieldValue("TYPE")&&(b="float("+b+")");return[b,$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_prompt=$.Blockly.Python.text_prompt_ext;$.Blockly.Python.text_count=function(a){var b=$.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_MEMBER)||"''";a=$.Blockly.Python.valueToCode(a,"SUB",$.Blockly.Python.ORDER_NONE)||"''";return[b+".count("+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.text_replace=function(a){var b=$.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_MEMBER)||"''",c=$.Blockly.Python.valueToCode(a,"FROM",$.Blockly.Python.ORDER_NONE)||"''";a=$.Blockly.Python.valueToCode(a,"TO",$.Blockly.Python.ORDER_NONE)||"''";return[b+".replace("+c+", "+a+")",$.Blockly.Python.ORDER_MEMBER]};$.Blockly.Python.text_reverse=function(a){return[($.Blockly.Python.valueToCode(a,"TEXT",$.Blockly.Python.ORDER_MEMBER)||"''")+"[::-1]",$.Blockly.Python.ORDER_MEMBER]};var module$exports$Blockly$Python$procedures={};
|
|
$.Blockly.Python.procedures_defreturn=function(a){for(var b=[],c=a.workspace,d=(0,$.module$exports$Blockly$Variables.allUsedVarModels)(c)||[],e=0,f;f=d[e];e++)f=f.name,-1===a.getVars().indexOf(f)&&b.push($.Blockly.Python.nameDB_.getName(f,$.module$exports$Blockly$Names.NameType.VARIABLE));c=(0,$.module$exports$Blockly$Variables.allDeveloperVariables)(c);for(d=0;d<c.length;d++)b.push($.Blockly.Python.nameDB_.getName(c[d],$.module$exports$Blockly$Names.NameType.DEVELOPER_VARIABLE));c=b.length?$.Blockly.Python.INDENT+
|
|
"global "+b.join(", ")+"\n":"";b=$.Blockly.Python.nameDB_.getName(a.getFieldValue("NAME"),$.module$exports$Blockly$Names.NameType.PROCEDURE);d="";$.Blockly.Python.STATEMENT_PREFIX&&(d+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_PREFIX,a));$.Blockly.Python.STATEMENT_SUFFIX&&(d+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_SUFFIX,a));d&&(d=$.Blockly.Python.prefixLines(d,$.Blockly.Python.INDENT));e="";$.Blockly.Python.INFINITE_LOOP_TRAP&&(e=$.Blockly.Python.prefixLines($.Blockly.Python.injectId($.Blockly.Python.INFINITE_LOOP_TRAP,
|
|
a),$.Blockly.Python.INDENT));f=$.Blockly.Python.statementToCode(a,"STACK");var g=$.Blockly.Python.valueToCode(a,"RETURN",$.Blockly.Python.ORDER_NONE)||"",h="";f&&g&&(h=d);g?g=$.Blockly.Python.INDENT+"return "+g+"\n":f||(f=$.Blockly.Python.PASS);for(var k=[],l=a.getVars(),m=0;m<l.length;m++)k[m]=$.Blockly.Python.nameDB_.getName(l[m],$.module$exports$Blockly$Names.NameType.VARIABLE);c="def "+b+"("+k.join(", ")+"):\n"+c+d+e+f+h+g;c=$.Blockly.Python.scrub_(a,c);$.Blockly.Python.definitions_["%"+b]=c;
|
|
return null};$.Blockly.Python.procedures_defnoreturn=$.Blockly.Python.procedures_defreturn;$.Blockly.Python.procedures_callreturn=function(a){for(var b=$.Blockly.Python.nameDB_.getName(a.getFieldValue("NAME"),$.module$exports$Blockly$Names.NameType.PROCEDURE),c=[],d=a.getVars(),e=0;e<d.length;e++)c[e]=$.Blockly.Python.valueToCode(a,"ARG"+e,$.Blockly.Python.ORDER_NONE)||"None";return[b+"("+c.join(", ")+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.procedures_callnoreturn=function(a){return $.Blockly.Python.procedures_callreturn(a)[0]+"\n"};
|
|
$.Blockly.Python.procedures_ifreturn=function(a){var b="if "+($.Blockly.Python.valueToCode(a,"CONDITION",$.Blockly.Python.ORDER_NONE)||"False")+":\n";$.Blockly.Python.STATEMENT_SUFFIX&&(b+=$.Blockly.Python.prefixLines($.Blockly.Python.injectId($.Blockly.Python.STATEMENT_SUFFIX,a),$.Blockly.Python.INDENT));a.hasReturnValue_?(a=$.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"None",b+=$.Blockly.Python.INDENT+"return "+a+"\n"):b+=$.Blockly.Python.INDENT+"return\n";return b};var module$exports$Blockly$Python$math={};$.Blockly.Python.addReservedWords("math,random,Number");$.Blockly.Python.math_number=function(a){a=Number(a.getFieldValue("NUM"));if(Infinity===a){a='float("inf")';var b=$.Blockly.Python.ORDER_FUNCTION_CALL}else-Infinity===a?(a='-float("inf")',b=$.Blockly.Python.ORDER_UNARY_SIGN):b=0>a?$.Blockly.Python.ORDER_UNARY_SIGN:$.Blockly.Python.ORDER_ATOMIC;return[a,b]};
|
|
$.Blockly.Python.math_arithmetic=function(a){var b={ADD:[" + ",$.Blockly.Python.ORDER_ADDITIVE],MINUS:[" - ",$.Blockly.Python.ORDER_ADDITIVE],MULTIPLY:[" * ",$.Blockly.Python.ORDER_MULTIPLICATIVE],DIVIDE:[" / ",$.Blockly.Python.ORDER_MULTIPLICATIVE],POWER:[" ** ",$.Blockly.Python.ORDER_EXPONENTIATION]}[a.getFieldValue("OP")],c=b[0];b=b[1];var d=$.Blockly.Python.valueToCode(a,"A",b)||"0";a=$.Blockly.Python.valueToCode(a,"B",b)||"0";return[d+c+a,b]};
|
|
$.Blockly.Python.math_single=function(a){var b=a.getFieldValue("OP");if("NEG"===b){var c=$.Blockly.Python.valueToCode(a,"NUM",$.Blockly.Python.ORDER_UNARY_SIGN)||"0";return["-"+c,$.Blockly.Python.ORDER_UNARY_SIGN]}$.Blockly.Python.definitions_.import_math="import math";a="SIN"===b||"COS"===b||"TAN"===b?$.Blockly.Python.valueToCode(a,"NUM",$.Blockly.Python.ORDER_MULTIPLICATIVE)||"0":$.Blockly.Python.valueToCode(a,"NUM",$.Blockly.Python.ORDER_NONE)||"0";switch(b){case "ABS":c="math.fabs("+a+")";break;
|
|
case "ROOT":c="math.sqrt("+a+")";break;case "LN":c="math.log("+a+")";break;case "LOG10":c="math.log10("+a+")";break;case "EXP":c="math.exp("+a+")";break;case "POW10":c="math.pow(10,"+a+")";break;case "ROUND":c="round("+a+")";break;case "ROUNDUP":c="math.ceil("+a+")";break;case "ROUNDDOWN":c="math.floor("+a+")";break;case "SIN":c="math.sin("+a+" / 180.0 * math.pi)";break;case "COS":c="math.cos("+a+" / 180.0 * math.pi)";break;case "TAN":c="math.tan("+a+" / 180.0 * math.pi)"}if(c)return[c,$.Blockly.Python.ORDER_FUNCTION_CALL];
|
|
switch(b){case "ASIN":c="math.asin("+a+") / math.pi * 180";break;case "ACOS":c="math.acos("+a+") / math.pi * 180";break;case "ATAN":c="math.atan("+a+") / math.pi * 180";break;default:throw Error("Unknown math operator: "+b);}return[c,$.Blockly.Python.ORDER_MULTIPLICATIVE]};
|
|
$.Blockly.Python.math_constant=function(a){var b={PI:["math.pi",$.Blockly.Python.ORDER_MEMBER],E:["math.e",$.Blockly.Python.ORDER_MEMBER],GOLDEN_RATIO:["(1 + math.sqrt(5)) / 2",$.Blockly.Python.ORDER_MULTIPLICATIVE],SQRT2:["math.sqrt(2)",$.Blockly.Python.ORDER_MEMBER],SQRT1_2:["math.sqrt(1.0 / 2)",$.Blockly.Python.ORDER_MEMBER],INFINITY:["float('inf')",$.Blockly.Python.ORDER_ATOMIC]};a=a.getFieldValue("CONSTANT");"INFINITY"!==a&&($.Blockly.Python.definitions_.import_math="import math");return b[a]};
|
|
$.Blockly.Python.math_number_property=function(a){var b={EVEN:[" % 2 == 0",$.Blockly.Python.ORDER_MULTIPLICATIVE,$.Blockly.Python.ORDER_RELATIONAL],ODD:[" % 2 == 1",$.Blockly.Python.ORDER_MULTIPLICATIVE,$.Blockly.Python.ORDER_RELATIONAL],WHOLE:[" % 1 == 0",$.Blockly.Python.ORDER_MULTIPLICATIVE,$.Blockly.Python.ORDER_RELATIONAL],POSITIVE:[" > 0",$.Blockly.Python.ORDER_RELATIONAL,$.Blockly.Python.ORDER_RELATIONAL],NEGATIVE:[" < 0",$.Blockly.Python.ORDER_RELATIONAL,$.Blockly.Python.ORDER_RELATIONAL],
|
|
DIVISIBLE_BY:[null,$.Blockly.Python.ORDER_MULTIPLICATIVE,$.Blockly.Python.ORDER_RELATIONAL],PRIME:[null,$.Blockly.Python.ORDER_NONE,$.Blockly.Python.ORDER_FUNCTION_CALL]},c=a.getFieldValue("PROPERTY");b=$.$jscomp.makeIterator(b[c]);var d=b.next().value,e=b.next().value;b=b.next().value;e=$.Blockly.Python.valueToCode(a,"NUMBER_TO_CHECK",e)||"0";if("PRIME"===c)$.Blockly.Python.definitions_.import_math="import math",$.Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number",
|
|
a=$.Blockly.Python.provideFunction_("math_isPrime","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(n):\n # https://en.wikipedia.org/wiki/Primality_test#Naive_methods\n # If n is not a number but a string, try parsing it.\n if not isinstance(n, Number):\n try:\n n = float(n)\n except:\n return False\n if n == 2 or n == 3:\n return True\n # False if n is negative, is 1, or not whole, or if n is divisible by 2 or 3.\n if n <= 1 or n % 1 != 0 or n % 2 == 0 or n % 3 == 0:\n return False\n # Check all the numbers of form 6k +/- 1, up to sqrt(n).\n for x in range(6, int(math.sqrt(n)) + 2, 6):\n if n % (x - 1) == 0 or n % (x + 1) == 0:\n return False\n return True\n")+
|
|
"("+e+")";else if("DIVISIBLE_BY"===c){a=$.Blockly.Python.valueToCode(a,"DIVISOR",$.Blockly.Python.ORDER_MULTIPLICATIVE)||"0";if("0"===a)return["False",$.Blockly.Python.ORDER_ATOMIC];a=e+" % "+a+" == 0"}else a=e+d;return[a,b]};
|
|
$.Blockly.Python.math_change=function(a){$.Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";var b=$.Blockly.Python.valueToCode(a,"DELTA",$.Blockly.Python.ORDER_ADDITIVE)||"0";a=$.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE);return a+" = ("+a+" if isinstance("+a+", Number) else 0) + "+b+"\n"};$.Blockly.Python.math_round=$.Blockly.Python.math_single;$.Blockly.Python.math_trig=$.Blockly.Python.math_single;
|
|
$.Blockly.Python.math_on_list=function(a){var b=a.getFieldValue("OP");a=$.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_NONE)||"[]";switch(b){case "SUM":b="sum("+a+")";break;case "MIN":b="min("+a+")";break;case "MAX":b="max("+a+")";break;case "AVERAGE":$.Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";b=$.Blockly.Python.provideFunction_("math_mean","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(myList):\n localList = [e for e in myList if isinstance(e, Number)]\n if not localList: return\n return float(sum(localList)) / len(localList)\n")+
|
|
"("+a+")";break;case "MEDIAN":$.Blockly.Python.definitions_.from_numbers_import_Number="from numbers import Number";b=$.Blockly.Python.provideFunction_("math_median","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(myList):\n localList = sorted([e for e in myList if isinstance(e, Number)])\n if not localList: return\n if len(localList) % 2 == 0:\n return (localList[len(localList) // 2 - 1] + localList[len(localList) // 2]) / 2.0\n else:\n return localList[(len(localList) - 1) // 2]\n")+
|
|
"("+a+")";break;case "MODE":b=$.Blockly.Python.provideFunction_("math_modes","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+'(some_list):\n modes = []\n # Using a lists of [item, count] to keep count rather than dict\n # to avoid "unhashable" errors when the counted item is itself a list or dict.\n counts = []\n maxCount = 1\n for item in some_list:\n found = False\n for count in counts:\n if count[0] == item:\n count[1] += 1\n maxCount = max(maxCount, count[1])\n found = True\n if not found:\n counts.append([item, 1])\n for counted_item, item_count in counts:\n if item_count == maxCount:\n modes.append(counted_item)\n return modes\n')+
|
|
"("+a+")";break;case "STD_DEV":$.Blockly.Python.definitions_.import_math="import math";b=$.Blockly.Python.provideFunction_("math_standard_deviation","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(numbers):\n n = len(numbers)\n if n == 0: return\n mean = float(sum(numbers)) / n\n variance = sum((x - mean) ** 2 for x in numbers) / n\n return math.sqrt(variance)\n")+"("+a+")";break;case "RANDOM":$.Blockly.Python.definitions_.import_random="import random";b="random.choice("+a+")";break;default:throw Error("Unknown operator: "+
|
|
b);}return[b,$.Blockly.Python.ORDER_FUNCTION_CALL]};$.Blockly.Python.math_modulo=function(a){var b=$.Blockly.Python.valueToCode(a,"DIVIDEND",$.Blockly.Python.ORDER_MULTIPLICATIVE)||"0";a=$.Blockly.Python.valueToCode(a,"DIVISOR",$.Blockly.Python.ORDER_MULTIPLICATIVE)||"0";return[b+" % "+a,$.Blockly.Python.ORDER_MULTIPLICATIVE]};
|
|
$.Blockly.Python.math_constrain=function(a){var b=$.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"0",c=$.Blockly.Python.valueToCode(a,"LOW",$.Blockly.Python.ORDER_NONE)||"0";a=$.Blockly.Python.valueToCode(a,"HIGH",$.Blockly.Python.ORDER_NONE)||"float('inf')";return["min(max("+b+", "+c+"), "+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.math_random_int=function(a){$.Blockly.Python.definitions_.import_random="import random";var b=$.Blockly.Python.valueToCode(a,"FROM",$.Blockly.Python.ORDER_NONE)||"0";a=$.Blockly.Python.valueToCode(a,"TO",$.Blockly.Python.ORDER_NONE)||"0";return["random.randint("+b+", "+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};$.Blockly.Python.math_random_float=function(a){$.Blockly.Python.definitions_.import_random="import random";return["random.random()",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.math_atan2=function(a){$.Blockly.Python.definitions_.import_math="import math";var b=$.Blockly.Python.valueToCode(a,"X",$.Blockly.Python.ORDER_NONE)||"0";return["math.atan2("+($.Blockly.Python.valueToCode(a,"Y",$.Blockly.Python.ORDER_NONE)||"0")+", "+b+") / math.pi * 180",$.Blockly.Python.ORDER_MULTIPLICATIVE]};var module$exports$Blockly$Python$loops={};
|
|
$.Blockly.Python.controls_repeat_ext=function(a){var b=a.getField("TIMES")?String(parseInt(a.getFieldValue("TIMES"),10)):$.Blockly.Python.valueToCode(a,"TIMES",$.Blockly.Python.ORDER_NONE)||"0";b=(0,$.module$exports$Blockly$utils$string.isNumber)(b)?parseInt(b,10):"int("+b+")";var c=$.Blockly.Python.statementToCode(a,"DO");c=$.Blockly.Python.addLoopTrap(c,a)||$.Blockly.Python.PASS;return"for "+$.Blockly.Python.nameDB_.getDistinctName("count",$.module$exports$Blockly$Names.NameType.VARIABLE)+" in range("+
|
|
b+"):\n"+c};$.Blockly.Python.controls_repeat=$.Blockly.Python.controls_repeat_ext;$.Blockly.Python.controls_whileUntil=function(a){var b="UNTIL"===a.getFieldValue("MODE"),c=$.Blockly.Python.valueToCode(a,"BOOL",b?$.Blockly.Python.ORDER_LOGICAL_NOT:$.Blockly.Python.ORDER_NONE)||"False",d=$.Blockly.Python.statementToCode(a,"DO");d=$.Blockly.Python.addLoopTrap(d,a)||$.Blockly.Python.PASS;b&&(c="not "+c);return"while "+c+":\n"+d};
|
|
$.Blockly.Python.controls_for=function(a){var b=$.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE),c=$.Blockly.Python.valueToCode(a,"FROM",$.Blockly.Python.ORDER_NONE)||"0",d=$.Blockly.Python.valueToCode(a,"TO",$.Blockly.Python.ORDER_NONE)||"0",e=$.Blockly.Python.valueToCode(a,"BY",$.Blockly.Python.ORDER_NONE)||"1",f=$.Blockly.Python.statementToCode(a,"DO");f=$.Blockly.Python.addLoopTrap(f,a)||$.Blockly.Python.PASS;var g="";a=function(){return $.Blockly.Python.provideFunction_("upRange",
|
|
"\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(start, stop, step):\n while start <= stop:\n yield start\n start += abs(step)\n")};var h=function(){return $.Blockly.Python.provideFunction_("downRange","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(start, stop, step):\n while start >= stop:\n yield start\n start -= abs(step)\n")};if((0,$.module$exports$Blockly$utils$string.isNumber)(c)&&(0,$.module$exports$Blockly$utils$string.isNumber)(d)&&(0,$.module$exports$Blockly$utils$string.isNumber)(e))c=
|
|
Number(c),d=Number(d),e=Math.abs(Number(e)),0===c%1&&0===d%1&&0===e%1?(c<=d?(d++,a=0===c&&1===e?d:c+", "+d,1!==e&&(a+=", "+e)):(d--,a=c+", "+d+", -"+e),a="range("+a+")"):(a=c<d?a():h(),a+="("+c+", "+d+", "+e+")");else{var k=function(l,m){(0,$.module$exports$Blockly$utils$string.isNumber)(l)?l=Number(l):l.match(/^\w+$/)?l="float("+l+")":(m=$.Blockly.Python.nameDB_.getDistinctName(b+m,$.module$exports$Blockly$Names.NameType.VARIABLE),g+=m+" = float("+l+")\n",l=m);return l};c=k(c,"_start");d=k(d,"_end");
|
|
e=k(e,"_inc");"number"===typeof c&&"number"===typeof d?(a=c<d?a():h(),a+="("+c+", "+d+", "+e+")"):a="("+c+" <= "+d+") and "+a()+"("+c+", "+d+", "+e+") or "+h()+"("+c+", "+d+", "+e+")"}return g+="for "+b+" in "+a+":\n"+f};
|
|
$.Blockly.Python.controls_forEach=function(a){var b=$.Blockly.Python.nameDB_.getName(a.getFieldValue("VAR"),$.module$exports$Blockly$Names.NameType.VARIABLE),c=$.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_RELATIONAL)||"[]",d=$.Blockly.Python.statementToCode(a,"DO");d=$.Blockly.Python.addLoopTrap(d,a)||$.Blockly.Python.PASS;return"for "+b+" in "+c+":\n"+d};
|
|
$.Blockly.Python.controls_flow_statements=function(a){var b="";$.Blockly.Python.STATEMENT_PREFIX&&(b+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_PREFIX,a));$.Blockly.Python.STATEMENT_SUFFIX&&(b+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_SUFFIX,a));if($.Blockly.Python.STATEMENT_PREFIX){var c=a.getSurroundLoop();c&&!c.suppressPrefixSuffix&&(b+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_PREFIX,c))}switch(a.getFieldValue("FLOW")){case "BREAK":return b+"break\n";case "CONTINUE":return b+
|
|
"continue\n"}throw Error("Unknown flow statement.");};var module$exports$Blockly$Python$logic={};
|
|
$.Blockly.Python.controls_if=function(a){var b=0,c="";$.Blockly.Python.STATEMENT_PREFIX&&(c+=$.Blockly.Python.injectId($.Blockly.Python.STATEMENT_PREFIX,a));do{var d=$.Blockly.Python.valueToCode(a,"IF"+b,$.Blockly.Python.ORDER_NONE)||"False";var e=$.Blockly.Python.statementToCode(a,"DO"+b)||$.Blockly.Python.PASS;$.Blockly.Python.STATEMENT_SUFFIX&&(e=$.Blockly.Python.prefixLines($.Blockly.Python.injectId($.Blockly.Python.STATEMENT_SUFFIX,a),$.Blockly.Python.INDENT)+e);c+=(0===b?"if ":"elif ")+d+":\n"+
|
|
e;b++}while(a.getInput("IF"+b));if(a.getInput("ELSE")||$.Blockly.Python.STATEMENT_SUFFIX)e=$.Blockly.Python.statementToCode(a,"ELSE")||$.Blockly.Python.PASS,$.Blockly.Python.STATEMENT_SUFFIX&&(e=$.Blockly.Python.prefixLines($.Blockly.Python.injectId($.Blockly.Python.STATEMENT_SUFFIX,a),$.Blockly.Python.INDENT)+e),c+="else:\n"+e;return c};$.Blockly.Python.controls_ifelse=$.Blockly.Python.controls_if;
|
|
$.Blockly.Python.logic_compare=function(a){var b={EQ:"==",NEQ:"!=",LT:"<",LTE:"<=",GT:">",GTE:">="}[a.getFieldValue("OP")],c=$.Blockly.Python.ORDER_RELATIONAL,d=$.Blockly.Python.valueToCode(a,"A",c)||"0";a=$.Blockly.Python.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]};
|
|
$.Blockly.Python.logic_operation=function(a){var b="AND"===a.getFieldValue("OP")?"and":"or",c="and"===b?$.Blockly.Python.ORDER_LOGICAL_AND:$.Blockly.Python.ORDER_LOGICAL_OR,d=$.Blockly.Python.valueToCode(a,"A",c);a=$.Blockly.Python.valueToCode(a,"B",c);if(d||a){var e="and"===b?"True":"False";d||(d=e);a||(a=e)}else a=d="False";return[d+" "+b+" "+a,c]};$.Blockly.Python.logic_negate=function(a){return["not "+($.Blockly.Python.valueToCode(a,"BOOL",$.Blockly.Python.ORDER_LOGICAL_NOT)||"True"),$.Blockly.Python.ORDER_LOGICAL_NOT]};
|
|
$.Blockly.Python.logic_boolean=function(a){return["TRUE"===a.getFieldValue("BOOL")?"True":"False",$.Blockly.Python.ORDER_ATOMIC]};$.Blockly.Python.logic_null=function(a){return["None",$.Blockly.Python.ORDER_ATOMIC]};
|
|
$.Blockly.Python.logic_ternary=function(a){var b=$.Blockly.Python.valueToCode(a,"IF",$.Blockly.Python.ORDER_CONDITIONAL)||"False",c=$.Blockly.Python.valueToCode(a,"THEN",$.Blockly.Python.ORDER_CONDITIONAL)||"None";a=$.Blockly.Python.valueToCode(a,"ELSE",$.Blockly.Python.ORDER_CONDITIONAL)||"None";return[c+" if "+b+" else "+a,$.Blockly.Python.ORDER_CONDITIONAL]};var module$exports$Blockly$Python$lists={};$.Blockly.Python.lists_create_empty=function(a){return["[]",$.Blockly.Python.ORDER_ATOMIC]};$.Blockly.Python.lists_create_with=function(a){for(var b=Array(a.itemCount_),c=0;c<a.itemCount_;c++)b[c]=$.Blockly.Python.valueToCode(a,"ADD"+c,$.Blockly.Python.ORDER_NONE)||"None";return["["+b.join(", ")+"]",$.Blockly.Python.ORDER_ATOMIC]};
|
|
$.Blockly.Python.lists_repeat=function(a){var b=$.Blockly.Python.valueToCode(a,"ITEM",$.Blockly.Python.ORDER_NONE)||"None";a=$.Blockly.Python.valueToCode(a,"NUM",$.Blockly.Python.ORDER_MULTIPLICATIVE)||"0";return["["+b+"] * "+a,$.Blockly.Python.ORDER_MULTIPLICATIVE]};$.Blockly.Python.lists_length=function(a){return["len("+($.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"[]")+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.lists_isEmpty=function(a){return["not len("+($.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"[]")+")",$.Blockly.Python.ORDER_LOGICAL_NOT]};
|
|
$.Blockly.Python.lists_indexOf=function(a){var b=$.Blockly.Python.valueToCode(a,"FIND",$.Blockly.Python.ORDER_NONE)||"[]",c=$.Blockly.Python.valueToCode(a,"VALUE",$.Blockly.Python.ORDER_NONE)||"''",d=" -1",e="",f=" - 1";a.workspace.options.oneBasedIndex&&(d=" 0",e=" + 1",f="");return[("FIRST"===a.getFieldValue("END")?$.Blockly.Python.provideFunction_("first_index","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(my_list, elem):\n try: index = my_list.index(elem)"+e+"\n except: index ="+d+
|
|
"\n return index\n"):$.Blockly.Python.provideFunction_("last_index","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(my_list, elem):\n try: index = len(my_list) - my_list[::-1].index(elem)"+f+"\n except: index ="+d+"\n return index\n"))+"("+c+", "+b+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.lists_getIndex=function(a){var b=a.getFieldValue("MODE")||"GET",c=a.getFieldValue("WHERE")||"FROM_START",d=$.Blockly.Python.valueToCode(a,"VALUE","RANDOM"===c?$.Blockly.Python.ORDER_NONE:$.Blockly.Python.ORDER_MEMBER)||"[]";switch(c){case "FIRST":if("GET"===b)return[d+"[0]",$.Blockly.Python.ORDER_MEMBER];if("GET_REMOVE"===b)return[d+".pop(0)",$.Blockly.Python.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop(0)\n";break;case "LAST":if("GET"===b)return[d+"[-1]",$.Blockly.Python.ORDER_MEMBER];
|
|
if("GET_REMOVE"===b)return[d+".pop()",$.Blockly.Python.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop()\n";break;case "FROM_START":a=$.Blockly.Python.getAdjustedInt(a,"AT");if("GET"===b)return[d+"["+a+"]",$.Blockly.Python.ORDER_MEMBER];if("GET_REMOVE"===b)return[d+".pop("+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop("+a+")\n";break;case "FROM_END":a=$.Blockly.Python.getAdjustedInt(a,"AT",1,!0);if("GET"===b)return[d+"["+a+"]",$.Blockly.Python.ORDER_MEMBER];if("GET_REMOVE"===
|
|
b)return[d+".pop("+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+".pop("+a+")\n";break;case "RANDOM":$.Blockly.Python.definitions_.import_random="import random";if("GET"===b)return["random.choice("+d+")",$.Blockly.Python.ORDER_FUNCTION_CALL];d=$.Blockly.Python.provideFunction_("lists_remove_random_item","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(myList):\n x = int(random.random() * len(myList))\n return myList.pop(x)\n")+"("+d+")";if("GET_REMOVE"===b)return[d,
|
|
$.Blockly.Python.ORDER_FUNCTION_CALL];if("REMOVE"===b)return d+"\n"}throw Error("Unhandled combination (lists_getIndex).");};
|
|
$.Blockly.Python.lists_setIndex=function(a){var b=$.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_MEMBER)||"[]",c=a.getFieldValue("MODE")||"GET",d=a.getFieldValue("WHERE")||"FROM_START",e=$.Blockly.Python.valueToCode(a,"TO",$.Blockly.Python.ORDER_NONE)||"None";switch(d){case "FIRST":if("SET"===c)return b+"[0] = "+e+"\n";if("INSERT"===c)return b+".insert(0, "+e+")\n";break;case "LAST":if("SET"===c)return b+"[-1] = "+e+"\n";if("INSERT"===c)return b+".append("+e+")\n";break;case "FROM_START":a=
|
|
$.Blockly.Python.getAdjustedInt(a,"AT");if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+e+")\n";break;case "FROM_END":a=$.Blockly.Python.getAdjustedInt(a,"AT",1,!0);if("SET"===c)return b+"["+a+"] = "+e+"\n";if("INSERT"===c)return b+".insert("+a+", "+e+")\n";break;case "RANDOM":$.Blockly.Python.definitions_.import_random="import random";b.match(/^\w+$/)?a="":(a=$.Blockly.Python.nameDB_.getDistinctName("tmp_list",$.module$exports$Blockly$Names.NameType.VARIABLE),
|
|
d=a+" = "+b+"\n",b=a,a=d);d=$.Blockly.Python.nameDB_.getDistinctName("tmp_x",$.module$exports$Blockly$Names.NameType.VARIABLE);a+=d+" = int(random.random() * len("+b+"))\n";if("SET"===c)return a+(b+"["+d+"] = "+e+"\n");if("INSERT"===c)return a+(b+".insert("+d+", "+e+")\n")}throw Error("Unhandled combination (lists_setIndex).");};
|
|
$.Blockly.Python.lists_getSublist=function(a){var b=$.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_MEMBER)||"[]",c=a.getFieldValue("WHERE1"),d=a.getFieldValue("WHERE2");switch(c){case "FROM_START":c=$.Blockly.Python.getAdjustedInt(a,"AT1");0===c&&(c="");break;case "FROM_END":c=$.Blockly.Python.getAdjustedInt(a,"AT1",1,!0);break;case "FIRST":c="";break;default:throw Error("Unhandled option (lists_getSublist)");}switch(d){case "FROM_START":a=$.Blockly.Python.getAdjustedInt(a,"AT2",1);
|
|
break;case "FROM_END":a=$.Blockly.Python.getAdjustedInt(a,"AT2",0,!0);(0,$.module$exports$Blockly$utils$string.isNumber)(String(a))?0===a&&(a=""):($.Blockly.Python.definitions_.import_sys="import sys",a+=" or sys.maxsize");break;case "LAST":a="";break;default:throw Error("Unhandled option (lists_getSublist)");}return[b+"["+c+" : "+a+"]",$.Blockly.Python.ORDER_MEMBER]};
|
|
$.Blockly.Python.lists_sort=function(a){var b=$.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_NONE)||"[]",c=a.getFieldValue("TYPE");a="1"===a.getFieldValue("DIRECTION")?"False":"True";return[$.Blockly.Python.provideFunction_("lists_sort","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+'(my_list, type, reverse):\n def try_float(s):\n try:\n return float(s)\n except:\n return 0\n key_funcs = {\n "NUMERIC": try_float,\n "TEXT": str,\n "IGNORE_CASE": lambda s: str(s).lower()\n }\n key_func = key_funcs[type]\n list_cpy = list(my_list)\n return sorted(list_cpy, key=key_func, reverse=reverse)\n')+
|
|
"("+b+', "'+c+'", '+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.lists_split=function(a){var b=a.getFieldValue("MODE");if("SPLIT"===b)b=$.Blockly.Python.valueToCode(a,"INPUT",$.Blockly.Python.ORDER_MEMBER)||"''",a=$.Blockly.Python.valueToCode(a,"DELIM",$.Blockly.Python.ORDER_NONE),a=b+".split("+a+")";else if("JOIN"===b)b=$.Blockly.Python.valueToCode(a,"INPUT",$.Blockly.Python.ORDER_NONE)||"[]",a=($.Blockly.Python.valueToCode(a,"DELIM",$.Blockly.Python.ORDER_MEMBER)||"''")+".join("+b+")";else throw Error("Unknown mode: "+b);return[a,$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.lists_reverse=function(a){return["list(reversed("+($.Blockly.Python.valueToCode(a,"LIST",$.Blockly.Python.ORDER_NONE)||"[]")+"))",$.Blockly.Python.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$colour={};$.Blockly.Python.colour_picker=function(a){return[$.Blockly.Python.quote_(a.getFieldValue("COLOUR")),$.Blockly.Python.ORDER_ATOMIC]};$.Blockly.Python.colour_random=function(a){$.Blockly.Python.definitions_.import_random="import random";return["'#%06x' % random.randint(0, 2**24 - 1)",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.colour_rgb=function(a){var b=$.Blockly.Python.provideFunction_("colour_rgb","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(r, g, b):\n r = round(min(100, max(0, r)) * 2.55)\n g = round(min(100, max(0, g)) * 2.55)\n b = round(min(100, max(0, b)) * 2.55)\n return '#%02x%02x%02x' % (r, g, b)\n"),c=$.Blockly.Python.valueToCode(a,"RED",$.Blockly.Python.ORDER_NONE)||0,d=$.Blockly.Python.valueToCode(a,"GREEN",$.Blockly.Python.ORDER_NONE)||0;a=$.Blockly.Python.valueToCode(a,"BLUE",
|
|
$.Blockly.Python.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};
|
|
$.Blockly.Python.colour_blend=function(a){var b=$.Blockly.Python.provideFunction_("colour_blend","\ndef "+$.Blockly.Python.FUNCTION_NAME_PLACEHOLDER_+"(colour1, colour2, ratio):\n r1, r2 = int(colour1[1:3], 16), int(colour2[1:3], 16)\n g1, g2 = int(colour1[3:5], 16), int(colour2[3:5], 16)\n b1, b2 = int(colour1[5:7], 16), int(colour2[5:7], 16)\n ratio = min(1, max(0, ratio))\n r = round(r1 * (1 - ratio) + r2 * ratio)\n g = round(g1 * (1 - ratio) + g2 * ratio)\n b = round(b1 * (1 - ratio) + b2 * ratio)\n return '#%02x%02x%02x' % (r, g, b)\n"),c=
|
|
$.Blockly.Python.valueToCode(a,"COLOUR1",$.Blockly.Python.ORDER_NONE)||"'#000000'",d=$.Blockly.Python.valueToCode(a,"COLOUR2",$.Blockly.Python.ORDER_NONE)||"'#000000'";a=$.Blockly.Python.valueToCode(a,"RATIO",$.Blockly.Python.ORDER_NONE)||0;return[b+"("+c+", "+d+", "+a+")",$.Blockly.Python.ORDER_FUNCTION_CALL]};var module$exports$Blockly$Python$all={};
|
|
$.Blockly.Python.__namespace__=$;
|
|
return $.Blockly.Python;
|
|
}));
|
|
|
|
|
|
//# sourceMappingURL=python_compressed.js.map
|