MCPcopy
hub / github.com/csev/py4e / format

Function format

tools/pythonauto/static/skulpt-004/skulpt.js:12381–12719  ·  view source on GitHub ↗
(kwa)

Source from the content-addressed store, hash-verified

12379 return new Sk.builtin.str(ret);
12380};
12381var format = function (kwa) {
12382 // following PEP 3101
12383
12384 var a, args, key, kwargs;
12385 var ret;
12386 var regex;
12387 var index;
12388 var replFunc;
12389 var arg_dict = {};
12390
12391 Sk.builtin.pyCheckArgs("format", arguments, 0, Infinity, true, true);
12392
12393
12394 args = new Sk.builtins["tuple"](Array.prototype.slice.call(arguments, 1)); /*vararg*/
12395 kwargs = new Sk.builtins["dict"](kwa);
12396
12397 if (arguments[1] === undefined) {
12398 return args.v;
12399 }
12400 index = 0;
12401 regex = /{(((?:\d+)|(?:\w+))?((?:\.(\w+))|(?:\[((?:\d+)|(?:\w+))\])?))?(?:\!([rs]))?(?:\:((?:(.)?([<\>\=\^]))?([\+\-\s])?(#)?(0)?(\d+)?(,)?(?:\.(\d+))?([bcdeEfFgGnosxX%])?))?}/g;
12402 // ex: {o.name!r:*^+#030,.9b}
12403 // Field 1, Field_name, o.name
12404 // Field 2, arg_name, o
12405 // Field 3, attribute_name/Element_index , .name
12406 // Field 4, Attribute name, name
12407 // Field 5, element_index, [0]
12408 // Field 6, conversion, r
12409 // Field 7, format_spec,*^+#030,.9b
12410 // Field 9, fill_character,*
12411 // Field 10, fill_align, ^
12412 // Field 11, sign, +
12413 // Field 12, 0x, #
12414 // Filed 13, sign-aware 0 padding, 0
12415 // Field 14, width, 30
12416 // Field 15, comma, ,
12417 // Field 16, precision, .9
12418 // Field 17, conversionType, b
12419
12420 // Detect empty/int/complex name
12421 // retrive field value
12422 // hand off format spec
12423 // return resulting spec to function
12424
12425
12426 if(kwargs.size !== 0){
12427
12428 var kwItems = Sk.misceval.callsim(Sk.builtin.dict.prototype["items"], kwargs);
12429
12430 for (var n in kwItems.v){
12431
12432 arg_dict[kwItems.v[n].v[0].v] = kwItems.v[n].v[1].v;
12433 }
12434 }
12435 for(var i in args.v){
12436 if(i !== "0") {
12437 arg_dict[i-1] = args.v[i].v;
12438 }

Callers

nothing calls this directly

Calls 1

splitMethod · 0.80

Tested by

no test coverage detected