How to use percent method in localstack

Best Python code snippet using localstack_python

test_tax.py

Source:test_tax.py Github

copy

Full Screen

...195 # ---------------------------------------------------196 ],197 res198 )199 def test_tax_group_percent(self):200 res = self.group_tax_percent.with_context({'force_price_include':True}).compute_all(100.0)201 self._check_compute_all_results(202 100, # 'total_included'203 83.33, # 'total_excluded'204 [205 # base , amount | seq | amount | incl | incl_base206 # ---------------------------------------------------207 (83.33, 8.33), # | 1 | 10% | |208 (83.33, 8.34), # | 2 | 10% | |209 # ---------------------------------------------------210 ],211 res212 )213 def test_tax_percent_division(self):...

Full Screen

Full Screen

progress.js

Source:progress.js Github

copy

Full Screen

1/**2 * Progress.js v0.1.03 * https://github.com/usablica/progress.js4 * MIT licensed5 *6 * Copyright (C) 2013 usabli.ca - Afshin Mehrabani (@afshinmeh)7 */8(function (root, factory) {9 if (typeof exports === 'object') {10 // CommonJS11 factory(exports);12 } else if (typeof define === 'function' && define.amd) {13 // AMD. Register as an anonymous module.14 define(['exports'], factory);15 } else {16 // Browser globals17 factory(root);18 }19} (this, function (exports) {20 //Default config/variables21 var VERSION = '0.1.0';22 /**23 * ProgressJs main class24 *25 * @class ProgressJs26 */27 function ProgressJs(obj) {28 if (typeof obj.length != 'undefined') {29 this._targetElement = obj; 30 } else {31 this._targetElement = [obj];32 }33 if (typeof window._progressjsId === 'undefined')34 window._progressjsId = 1;35 if (typeof window._progressjsIntervals === 'undefined') 36 window._progressjsIntervals = {};37 this._options = {38 //progress bar theme39 theme: 'blue',40 //overlay mode makes an overlay layer in the target element41 overlayMode: false,42 //to consider CSS3 transitions in events43 considerTransition: true44 };45 }46 /**47 * Start progress for specific element(s)48 *49 * @api private50 * @method _createContainer 51 */52 function _startProgress() {53 //call onBeforeStart callback54 if (typeof this._onBeforeStartCallback != 'undefined') {55 this._onBeforeStartCallback.call(this);56 }57 //create the container for progress bar58 _createContainer.call(this);59 for (var i = 0, elmsLength = this._targetElement.length; i < elmsLength; i++) {60 _setProgress.call(this, this._targetElement[i]);61 }62 }63 /**64 * Set progress bar for specific element65 *66 * @api private67 * @method _setProgress68 * @param {Object} targetElement69 */70 function _setProgress(targetElement) {71 72 //if the target element already as `data-progressjs`, ignore the init73 if (targetElement.hasAttribute("data-progressjs"))74 return;75 //get target element position76 var targetElementOffset = _getOffset.call(this, targetElement);77 targetElement.setAttribute("data-progressjs", window._progressjsId);78 79 var progressElementContainer = document.createElement('div');80 progressElementContainer.className = 'progressjs-progress progressjs-theme-' + this._options.theme;81 //set the position percent elements, it depends on targetElement tag82 if (targetElement.tagName.toLowerCase() === 'body') {83 progressElementContainer.style.position = 'fixed';84 } else {85 progressElementContainer.style.position = 'absolute';86 }87 progressElementContainer.setAttribute("data-progressjs", window._progressjsId);88 var progressElement = document.createElement("div");89 progressElement.className = "progressjs-inner";90 //create an element for current percent of progress bar91 var progressPercentElement = document.createElement('div');92 progressPercentElement.className = "progressjs-percent";93 progressPercentElement.innerHTML = "1%";94 progressElement.appendChild(progressPercentElement);95 96 if (this._options.overlayMode && targetElement.tagName.toLowerCase() === 'body') {97 //if we have `body` for target element and also overlay mode is enable, we should use a different98 //position for progress bar container element99 progressElementContainer.style.left = 0;100 progressElementContainer.style.right = 0;101 progressElementContainer.style.top = 0;102 progressElementContainer.style.bottom = 0;103 } else {104 //set progress bar container size and offset105 progressElementContainer.style.left = targetElementOffset.left + 'px';106 progressElementContainer.style.top = targetElementOffset.top + 'px';107 progressElementContainer.style.width = targetElementOffset.width + 'px';108 if (this._options.overlayMode) {109 progressElementContainer.style.height = targetElementOffset.height + 'px';110 }111 }112 progressElementContainer.appendChild(progressElement);113 //append the element to container114 var container = document.querySelector('.progressjs-container');115 container.appendChild(progressElementContainer);116 _setPercentFor(targetElement, 1);117 //and increase the progressId118 ++window._progressjsId;119 }120 /**121 * Set percent for all elements122 *123 * @api private124 * @method _setPercent125 * @param {Number} percent126 */127 function _setPercent(percent) {128 for (var i = 0, elmsLength = this._targetElement.length; i < elmsLength; i++) {129 _setPercentFor.call(this, this._targetElement[i], percent);130 }131 }132 /**133 * Set percent for specific element134 *135 * @api private136 * @method _setPercentFor137 * @param {Object} targetElement138 * @param {Number} percent139 */140 function _setPercentFor(targetElement, percent) {141 var self = this;142 143 //prevent overflow!144 if (percent >= 100)145 percent = 100;146 if (targetElement.hasAttribute("data-progressjs")) {147 //setTimeout for better CSS3 animation applying in some cases148 setTimeout(function() {149 //call the onprogress callback150 if (typeof self._onProgressCallback != 'undefined') {151 self._onProgressCallback.call(self, targetElement, percent);152 }153 var percentElement = _getPercentElement(targetElement);154 percentElement.style.width = parseInt(percent) + '%';155 var percentElement = percentElement.querySelector(".progressjs-percent");156 var existingPercent = parseInt(percentElement.innerHTML.replace('%', ''));157 //start increase/decrease the percent element with animation158 (function(percentElement, existingPercent, currentPercent) {159 var increasement = true;160 if (existingPercent > currentPercent) {161 increasement = false;162 }163 164 var intervalIn = 10;165 function changePercentTimer(percentElement, existingPercent, currentPercent) {166 //calculate the distance between two percents167 var distance = Math.abs(existingPercent - currentPercent);168 if (distance < 3) {169 intervalIn = 30;170 } else if (distance < 20) {171 intervalIn = 20;172 } else {173 intervanIn = 1;174 }175 if ((existingPercent - currentPercent) != 0) {176 //set the percent177 percentElement.innerHTML = (increasement ? (++existingPercent) : (--existingPercent)) + '%';178 setTimeout(function() { changePercentTimer(percentElement, existingPercent, currentPercent); }, intervalIn);179 }180 }181 182 changePercentTimer(percentElement, existingPercent, currentPercent);183 184 })(percentElement, existingPercent, parseInt(percent));185 186 }, 50);187 }188 }189 /**190 * Get the progress bar element 191 *192 * @api private193 * @method _getPercentElement194 * @param {Object} targetElement195 */196 function _getPercentElement(targetElement) {197 var progressjsId = parseInt(targetElement.getAttribute('data-progressjs'));198 return document.querySelector('.progressjs-container > .progressjs-progress[data-progressjs="' + progressjsId + '"] > .progressjs-inner'); 199 }200 /**201 * Auto increase the progress bar every X milliseconds202 *203 * @api private204 * @method _autoIncrease205 * @param {Number} size206 * @param {Number} millisecond207 */208 function _autoIncrease(size, millisecond) {209 var self = this;210 211 var progressjsId = parseInt(this._targetElement[0].getAttribute('data-progressjs'));212 213 if (typeof window._progressjsIntervals[progressjsId] != 'undefined') {214 clearInterval(window._progressjsIntervals[progressjsId]);215 }216 window._progressjsIntervals[progressjsId] = setInterval(function() {217 _increasePercent.call(self, size);218 }, millisecond);219 }220 /**221 * Increase the size of progress bar222 *223 * @api private224 * @method _increasePercent225 * @param {Number} size226 */227 function _increasePercent(size) {228 for (var i = 0, elmsLength = this._targetElement.length; i < elmsLength; i++) {229 var currentElement = this._targetElement[i];230 if (currentElement.hasAttribute('data-progressjs')) {231 var percentElement = _getPercentElement(currentElement);232 var existingPercent = parseInt(percentElement.style.width.replace('%', ''));233 if (existingPercent) {234 _setPercentFor.call(this, currentElement, existingPercent + (size || 1));235 }236 }237 }238 }239 /**240 * Close and remove progress bar 241 *242 * @api private243 * @method _end244 */245 function _end() {246 //call onBeforeEnd callback247 if (typeof this._onBeforeEndCallback != 'undefined') {248 if (this._options.considerTransition === true) {249 //we can safety assume that all layers would be the same, so `this._targetElement[0]` is the same as `this._targetElement[1]`250 _getPercentElement(this._targetElement[0]).addEventListener(whichTransitionEvent(), this._onBeforeEndCallback, false);251 } else {252 this._onBeforeEndCallback.call(this);253 }254 } 255 var progressjsId = parseInt(this._targetElement[0].getAttribute('data-progressjs'));256 257 for (var i = 0, elmsLength = this._targetElement.length; i < elmsLength; i++) {258 var currentElement = this._targetElement[i];259 var percentElement = _getPercentElement(currentElement);260 if (!percentElement)261 return;262 var existingPercent = parseInt(percentElement.style.width.replace('%', ''));263 264 var timeoutSec = 1;265 if (existingPercent < 100) {266 _setPercentFor.call(this, currentElement, 100);267 timeoutSec = 500;268 }269 //I believe I should handle this situation with eventListener and `transitionend` event but I'm not sure270 //about compatibility with IEs. Should be fixed in further versions.271 (function(percentElement, currentElement) {272 setTimeout(function() {273 percentElement.parentNode.className += " progressjs-end";274 setTimeout(function() {275 //remove the percent element from page276 percentElement.parentNode.parentNode.removeChild(percentElement.parentNode);277 //and remove the attribute278 currentElement.removeAttribute("data-progressjs");279 }, 1000);280 }, timeoutSec);281 })(percentElement, currentElement);282 }283 //clean the setInterval for autoIncrease function284 if (window._progressjsIntervals[progressjsId]) {285 //`delete` keyword has some problems in IE286 try {287 clearInterval(window._progressjsIntervals[progressjsId]);288 window._progressjsIntervals[progressjsId] = null;289 delete window._progressjsIntervals[progressjsId];290 } catch(ex) { }291 }292 }293 /**294 * Create the progress bar container295 *296 * @api private297 * @method _createContainer298 */299 function _createContainer() {300 //first check if we have an container already, we don't need to create it again301 if (!document.querySelector(".progressjs-container")) {302 var containerElement = document.createElement("div");303 containerElement.className = "progressjs-container";304 document.body.appendChild(containerElement);305 }306 }307 /**308 * Get an element position on the page309 * Thanks to `meouw`: http://stackoverflow.com/a/442474/375966310 *311 * @api private312 * @method _getOffset313 * @param {Object} element314 * @returns Element's position info315 */316 function _getOffset(element) {317 var elementPosition = {};318 if (element.tagName.toLowerCase() === 'body') {319 //set width320 elementPosition.width = element.clientWidth;321 //set height322 elementPosition.height = element.clientHeight;323 } else {324 //set width325 elementPosition.width = element.offsetWidth;326 //set height327 elementPosition.height = element.offsetHeight;328 }329 //calculate element top and left330 var _x = 0;331 var _y = 0;332 while (element && !isNaN(element.offsetLeft) && !isNaN(element.offsetTop)) {333 _x += element.offsetLeft;334 _y += element.offsetTop;335 element = element.offsetParent;336 }337 //set top338 elementPosition.top = _y;339 //set left340 elementPosition.left = _x;341 return elementPosition;342 }343 /**344 * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1345 * via: http://stackoverflow.com/questions/171251/how-can-i-merge-properties-of-two-javascript-objects-dynamically346 *347 * @param obj1348 * @param obj2349 * @returns obj3 a new object based on obj1 and obj2350 */351 function _mergeOptions(obj1, obj2) {352 var obj3 = {};353 for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }354 for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }355 return obj3;356 }357 var progressJs = function (targetElm) {358 if (typeof (targetElm) === 'object') {359 //Ok, create a new instance360 return new ProgressJs(targetElm);361 } else if (typeof (targetElm) === 'string') {362 //select the target element with query selector363 var targetElement = document.querySelectorAll(targetElm);364 365 if (targetElement) {366 return new ProgressJs(targetElement);367 } else {368 throw new Error('There is no element with given selector.');369 }370 } else {371 return new ProgressJs(document.body);372 }373 };374 /**375 * Get correct transition callback376 * Thanks @webinista: http://stackoverflow.com/a/9090128/375966377 *378 * @returns transition name379 */380 function whichTransitionEvent() {381 var t;382 var el = document.createElement('fakeelement');383 var transitions = {384 'transition': 'transitionend',385 'OTransition': 'oTransitionEnd',386 'MozTransition': 'transitionend',387 'WebkitTransition': 'webkitTransitionEnd'388 }389 for (t in transitions) {390 if (el.style[t] !== undefined) {391 return transitions[t];392 }393 }394 }395 /**396 * Current ProgressJs version397 *398 * @property version399 * @type String400 */401 progressJs.version = VERSION;402 //Prototype403 progressJs.fn = ProgressJs.prototype = {404 clone: function () {405 return new ProgressJs(this);406 },407 setOption: function(option, value) {408 this._options[option] = value;409 return this;410 },411 setOptions: function(options) {412 this._options = _mergeOptions(this._options, options);413 return this;414 },415 start: function() {416 _startProgress.call(this);417 return this;418 },419 set: function(percent) {420 _setPercent.call(this, percent);421 return this;422 },423 increase: function(size) {424 _increasePercent.call(this, size);425 return this;426 },427 autoIncrease: function(size, millisecond) {428 _autoIncrease.call(this, size, millisecond);429 return this;430 },431 end: function() {432 _end.call(this);433 return this;434 },435 onbeforeend: function(providedCallback) {436 if (typeof (providedCallback) === 'function') {437 this._onBeforeEndCallback = providedCallback;438 } else {439 throw new Error('Provided callback for onbeforeend was not a function');440 }441 return this;442 },443 onbeforestart: function(providedCallback) {444 if (typeof (providedCallback) === 'function') {445 this._onBeforeStartCallback = providedCallback;446 } else {447 throw new Error('Provided callback for onbeforestart was not a function');448 }449 return this;450 },451 onprogress: function(providedCallback) {452 if (typeof (providedCallback) === 'function') {453 this._onProgressCallback = providedCallback;454 } else {455 throw new Error('Provided callback for onprogress was not a function');456 }457 return this;458 }459 };460 exports.progressJs = progressJs;461 return progressJs;...

Full Screen

Full Screen

half.py

Source:half.py Github

copy

Full Screen

1#!/usr/bin/env python32from configruation import *3from threading import Thread4def align():5 sleep(.25)6 print("align")7 tank.stop()8 tank.on_for_degrees(SpeedPercent(-20), SpeedPercent(-20),140)9 leftBlack = True10 rightBlack = True11 tankDegrees = 012 leftMotor.reset()13 rightMotor.reset()14 while color2.reflected_light_intensity >20:15 tank.on(SpeedPercent(-10), SpeedPercent(10))16 tankDegrees = leftMotor.degrees17 if abs(tankDegrees) > 40:18 leftBlack = False19 tank.stop()20 break21 tank.stop()22 print(leftBlack)23 print ("back to straight")24 tankDegrees = tankDegrees * -125 print(tankDegrees)26 leftMotor.reset()27 rightMotor.reset()28 29 if leftBlack:30 tank.on_for_degrees(SpeedPercent(-10),SpeedPercent(-10),tankDegrees*2)31 tank.on_for_degrees(SpeedPercent(10),SpeedPercent(-10),tankDegrees/1)32 tankDegrees=033 tank.stop()34 else:35 tank.on_for_degrees(SpeedPercent(10),SpeedPercent(-10),tankDegrees/1)36 tankDegrees = 037 leftMotor.reset()38 rightMotor.reset()39 while color2.reflected_light_intensity > 20:40 print(color2.color_name)41 tank.on(SpeedPercent(10), SpeedPercent(-10))42 tankDegrees = rightMotor.degrees43 if abs(tankDegrees) > 40:44 rightBlack = False45 tank.stop()46 break47 tank.stop()48 print(rightBlack)49 if (rightBlack):50 tankDegrees = tankDegrees * -151 leftMotor.reset()52 rightMotor.reset()53 print(tankDegrees)54 tank.on_for_degrees(SpeedPercent(-10),SpeedPercent(-10),tankDegrees*2)55 tank.on_for_degrees(SpeedPercent(-10),SpeedPercent(10),tankDegrees)56 tank.stop()57def do_step_tracker():58 # print('lift arm')59 # med.on_for_rotations(100, 2.5, brake=True, block=True)60 print ("going forward out of home")61 l=3062 r=3063 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 0.95)64 print ("reach stepper and push")65 l=2866 r=3067 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 4)68def go_back_from_step_tracker():69 x=-2570 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .2)71 light_intensity = color1.reflected_light_intensity72 while light_intensity < 80:73 tank.on(SpeedPercent(x), SpeedPercent(x))74 light_intensity = color1.reflected_light_intensity75 print(light_intensity)76 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .2)77 light_intensity = color1.reflected_light_intensity78 while light_intensity < 80:79 tank.on(SpeedPercent(x), SpeedPercent(x))80 light_intensity = color1.reflected_light_intensity81 print(light_intensity)82 tank.stop()83 84 print ("reach stepper and push")85 l=-1086 r=2087 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), .2)88 x = -1089 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .25)90 x = 1091 #tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .25)92 93 print ("reach stepper")94 l=2095 r=2396 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 0.9)97 print ("push stepper")98 l=3599 r=24100 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 2.5)101def ready_treadmill():102 #align()103 print ("align with wall")104 l=20105 r=20106 tank.on_for_seconds(SpeedPercent(l), SpeedPercent(r), 1)107 print ("turning back to face treadmillh")108 l=-20109 r=-20110 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 0.6)111 l=-20112 r=20113 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 0.3)114 print ("turning")115 l=0116 r=20117 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 0.3) 118 print ("getting on treadmill")119 l=20120 r=20121 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), 1.1)122def do_treadmill():123 sleep(0.5)124 print('running on treadmill spin one wheel')125 l=0126 r=40127 tank.on_for_seconds(SpeedPercent(l), SpeedPercent(r), 2.75)128def doRowerWithArm():129 print('running on treadmill')130 #go forward131 tank.on_for_seconds(SpeedPercent(20),SpeedPercent(20),1.5)132 #Go Forward133 t = Thread(target=medMotor.on_for_seconds, args=(SpeedPercent(-10),1,))134 t.start()135 tank.on_for_degrees(SpeedPercent(-20),SpeedPercent(-20),260)136 #bring the arm down137 medMotor2.on_for_seconds(SpeedPercent(-10),1)138 #move in to make sure it gets locked139 tank.on_for_degrees(SpeedPercent(5),SpeedPercent(-5),10)140 #move out to make sure it gets locked141 tank.on_for_degrees(SpeedPercent(-5),SpeedPercent(5),10)142def moveRowerArm():143 #move in to the circle144 tank.on_for_degrees(SpeedPercent(0),SpeedPercent(6),140)145 medMotor2.on_for_degrees(SpeedPercent(10),200)146 tank.on_for_degrees(SpeedPercent(2),SpeedPercent(-2),15)147def moveArmDown():148 medMotor.on_for_seconds(SpeedPercent(-100),1.5)149def doPerson():150 medMotor.on_for_seconds(SpeedPercent(-100),1.5)151 #tank.on_for_degrees(SpeedPercent(2),SpeedPercent(-2),30)152def moveArmUp():153 medMotor.on_for_seconds(SpeedPercent(100),3.5)154def goToPullUp():155 sleep(.5)156 #*Turn till white line157 while (color3.reflected_light_intensity < 40):158 tank.on(SpeedPercent(-10),SpeedPercent(10))159 tank.stop()160 #*turn till black line161 while (color3.reflected_light_intensity > 18):162 tank.on(SpeedPercent(-10),SpeedPercent(10))163 tank.stop()164 #sleep(.25)165 tank.cs = ColorSensor(INPUT_3)166 tank.follow_line(167 kp=1.8, ki=0.009, kd=0,168 speed=SpeedPercent(-19),169 follow_for=follow_for_ms,170 ms=2300,171 follow_left_edge=False,172 target_light_intensity=17173 )174 while (color2.reflected_light_intensity < 40):175 tank.on(SpeedPercent(-10),SpeedPercent(-10))176 tank.stop()177 tank.on_for_degrees(SpeedPercent(-10),SpeedPercent(-10),200)178 while (color2.reflected_light_intensity < 40):179 tank.on(SpeedPercent(10),SpeedPercent(-10))180 tank.stop()181 while (color2.reflected_light_intensity > 20):182 tank.on(SpeedPercent(5),SpeedPercent(-5))183 tank.stop() 184 while (color2.reflected_light_intensity < 40):185 tank.on(SpeedPercent(5),SpeedPercent(-5))186 tank.stop()187 while (color2.reflected_light_intensity > 18):188 tank.on(SpeedPercent(-5),SpeedPercent(5))189 tank.stop()190def goUnderPullUp():191 tank.cs = ColorSensor(INPUT_2)192 tank.follow_line(193 kp=1.8, ki=0.009, kd=0,194 speed=SpeedPercent(-15),195 follow_for=follow_for_ms,196 ms=1900,197 follow_left_edge=False,198 target_light_intensity=17199 ) 200 tank.follow_line(201 kp=1.8, ki=0.009, kd=0,202 speed=SpeedPercent(-20),203 follow_for=follow_for_ms,204 ms=900,205 follow_left_edge=False,206 target_light_intensity=17207 )208 tank.on_for_degrees(SpeedPercent(-30),SpeedPercent(30),70) 209 tank.on_for_degrees(SpeedPercent(-35),SpeedPercent(-35),450)210def doDanceNew():211 counter = 1212 while (counter < 12):213 counter = counter + 1214 tank.on_for_degrees(SpeedPercent(-15),SpeedPercent(15),100) 215 tank.on_for_degrees(SpeedPercent(15),SpeedPercent(-15),100) 216def test():217 sound.speak("v4 Victory is I")218 sound.speak("excalibots are fly")219 sound.play_song((220 ('D4', 'e3'), # intro anacrouse221 ('D4', 'e3'),222 ('D4', 'e3'),223 ('G4', 'h'), # meas 1224 ('D5', 'h'),225 ('C5', 'e3'), # meas 2226 ('B4', 'e3'),227 ('A4', 'e3'),228 ('G5', 'h'),229 ('D5', 'q')))230def back_from_treadmill():231 232 print('getting down from treadmilll')233 l=0234 r=-20235 tank.on_for_seconds(SpeedPercent(l), SpeedPercent(r), 0.3)236 x=-20237 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x),0.75)238 # print(color1.color_name)239 # while color1.color_name !="Black":240 # tank.on(SpeedPercent(x), SpeedPercent(x))241 # tank.stop()242 tank.on_for_degrees(SpeedPercent(20), SpeedPercent(-20),110)243 tank.on_for_degrees(SpeedPercent(20), SpeedPercent(20),400)244def do_rower():245 # align()246 tank.on_for_seconds(SpeedPercent(20),SpeedPercent(20),2.5)247 #nirav's version of doing the rower248 print("go forward")249 tank.on_for_degrees(SpeedPercent(-20), SpeedPercent(-15),500)250 tank.on_for_degrees(SpeedPercent(5), SpeedPercent(-25),94)251 tank.on_for_degrees(SpeedPercent(5), SpeedPercent(-20),85)252 print("turn to the rower")253 tank.on_for_degrees(SpeedPercent(20), SpeedPercent(-20),90)254 tank.on_for_seconds(SpeedPercent(-10), SpeedPercent(-10),1.7)255 tank.on_for_seconds(SpeedPercent(10), SpeedPercent(10),2.1)256 tank.on_for_degrees(SpeedPercent(-18), SpeedPercent(5),30)257 tank.on_for_degrees(SpeedPercent(10), SpeedPercent(0),10)258 tank.on_for_degrees(SpeedPercent(30), SpeedPercent(30),60)259 tank.on_for_degrees(SpeedPercent(10), SpeedPercent(15),30)260 tank.on_for_degrees(SpeedPercent(-10), SpeedPercent(10),50)261 tank.on_for_degrees(SpeedPercent(-10), SpeedPercent(-10),10)262 #end nirav's version of doing the rower263def Going_Weight():264 print('going to Weight Machine')265 tank.on_for_degrees(SpeedPercent(-20), SpeedPercent(20),80)266 tank.on_for_degrees(SpeedPercent(-20), SpeedPercent(-20),390)267 tank.on_for_degrees(SpeedPercent(-20), SpeedPercent(20),165)268 tank.on_for_seconds(SpeedPercent(20), SpeedPercent(20),3)269 #tank.on_for_seconds(SpeedPercent(-20), SpeedPercent(-5),2)270def forklift():271 medMotor.on_for_degrees(SpeedPercent(100),250)272 medMotor.stop()273def forklift_down():274 medMotor.on_for_degrees(SpeedPercent(-100),250)275 medMotor.stop()276def go_back_from_step_tracker2():277 x=-25278 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .2)279 light_intensity = color1.reflected_light_intensity280 while light_intensity < 80:281 tank.on(SpeedPercent(x), SpeedPercent(x))282 light_intensity = color1.reflected_light_intensity283 print(light_intensity)284 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .2)285 light_intensity = color1.reflected_light_intensity286 while light_intensity < 80:287 tank.on(SpeedPercent(x), SpeedPercent(x))288 light_intensity = color1.reflected_light_intensity289 print(light_intensity)290 tank.stop()291 sleep(.5)292 print ("reach stepper and push")293 l=-10294 r=20295 tank.on_for_rotations(SpeedPercent(l), SpeedPercent(r), .2)296 x = -10297 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), .25)298 x = 10299 tank.on_for_rotations(SpeedPercent(x), SpeedPercent(x), 1.25)...

Full Screen

Full Screen

main_crypto-price-app.py

Source:main_crypto-price-app.py Github

copy

Full Screen

1# This app is for educational purpose only. Insights gained is not financial advice. Use at your own risk!2import streamlit as st3from PIL import Image4import pandas as pd5import base646import matplotlib.pyplot as plt7from bs4 import BeautifulSoup8import requests9import json10import time11# ---------------------------------#12# New feature (make sure to upgrade your streamlit library)13# pip install --upgrade streamlit14# ---------------------------------#15# Page layout16# Page expands to full width17st.set_page_config(layout="wide")18# ---------------------------------#19# Title20image = Image.open("logo.jpg")21st.image(image, width=500)22st.title("Crypto Price App")23st.markdown(24 """25This app retrieves cryptocurrency prices for the top 100 cryptocurrency from the **CoinMarketCap**!26"""27)28# ---------------------------------#29# About30expander_bar = st.expander("About")31expander_bar.markdown(32 """33* **Python libraries:** base64, pandas, streamlit, numpy, matplotlib, seaborn, BeautifulSoup, requests, json, time34* **Data source:** [CoinMarketCap](http://coinmarketcap.com).35* **Credit:** Web scraper adapted from the Medium article *[Web Scraping Crypto Prices With Python](https://towardsdatascience.com/web-scraping-crypto-prices-with-python-41072ea5b5bf)* written by [Bryan Feng](https://medium.com/@bryanf).36"""37)38# ---------------------------------#39# Page layout (continued)40# Divide page to 3 columns (col1 = sidebar, col2 and col3 = page contents)41col1 = st.sidebar42col2, col3 = st.columns((2, 1))43# ---------------------------------#44# Sidebar + Main panel45col1.header("Input Options")46# Sidebar - Currency price unit47currency_price_unit = col1.selectbox("Select currency for price", ("USD", "BTC", "ETH"))48# Web scraping of CoinMarketCap data49@st.cache50def load_data():51 cmc = requests.get("https://coinmarketcap.com")52 soup = BeautifulSoup(cmc.content, "html.parser")53 data = soup.find("script", id="__NEXT_DATA__", type="application/json")54 coins = {}55 coin_data = json.loads(data.contents[0])56 listings = coin_data["props"]["initialState"]["cryptocurrency"]["listingLatest"][57 "data"58 ]59 attributes = listings[0]["keysArr"]60 index_of_id = attributes.index("id")61 index_of_slug = attributes.index("slug")62 for i in listings[1:]:63 coins[str(i[index_of_id])] = i[index_of_slug]64 coin_name = []65 coin_symbol = []66 market_cap = []67 percent_change_1h = []68 percent_change_24h = []69 percent_change_7d = []70 price = []71 volume_24h = []72 index_of_slug = attributes.index("slug")73 index_of_symbol = attributes.index("symbol")74 index_of_quote_currency_price = attributes.index(75 f"quote.{currency_price_unit}.price"76 )77 index_of_quote_currency_percent_change_1h = attributes.index(78 f"quote.{currency_price_unit}.percentChange1h"79 )80 index_of_quote_currency_percent_change_24h = attributes.index(81 f"quote.{currency_price_unit}.percentChange24h"82 )83 index_of_quote_currency_percent_change_7d = attributes.index(84 f"quote.{currency_price_unit}.percentChange7d"85 )86 index_of_quote_currency_market_cap = attributes.index(87 f"quote.{currency_price_unit}.marketCap"88 )89 index_of_quote_currency_volume_24h = attributes.index(90 f"quote.{currency_price_unit}.volume24h"91 )92 for i in listings[1:]:93 coin_name.append(i[index_of_slug])94 coin_symbol.append(i[index_of_symbol])95 price.append(i[index_of_quote_currency_price])96 percent_change_1h.append(i[index_of_quote_currency_percent_change_1h])97 percent_change_24h.append(i[index_of_quote_currency_percent_change_24h])98 percent_change_7d.append(i[index_of_quote_currency_percent_change_7d])99 market_cap.append(i[index_of_quote_currency_market_cap])100 volume_24h.append(i[index_of_quote_currency_volume_24h])101 df = pd.DataFrame(102 columns=[103 "coin_name",104 "coin_symbol",105 "market_cap",106 "percent_change_1h",107 "percent_change_24h",108 "percent_change_7d",109 "price",110 "volume_24h",111 ]112 )113 df["coin_name"] = coin_name114 df["coin_symbol"] = coin_symbol115 df["price"] = price116 df["percent_change_1h"] = percent_change_1h117 df["percent_change_24h"] = percent_change_24h118 df["percent_change_7d"] = percent_change_7d119 df["market_cap"] = market_cap120 df["volume_24h"] = volume_24h121 return df122df = load_data()123# Sidebar - Cryptocurrency selections124sorted_coin = sorted(df["coin_symbol"])125selected_coin = col1.multiselect("Cryptocurrency", sorted_coin, sorted_coin)126df_selected_coin = df[(df["coin_symbol"].isin(selected_coin))] # Filtering data127# Sidebar - Number of coins to display128num_coin = col1.slider("Display Top N Coins", 1, 100, 100)129df_coins = df_selected_coin[:num_coin]130# Sidebar - Percent change timeframe131percent_timeframe = col1.selectbox("Percent change time frame", ["7d", "24h", "1h"])132percent_dict = {133 "7d": "percent_change_7d",134 "24h": "percent_change_24h",135 "1h": "percent_change_1h",136}137selected_percent_timeframe = percent_dict[percent_timeframe]138# Sidebar - Sorting values139sort_values = col1.selectbox("Sort values?", ["Yes", "No"])140col2.subheader("Price Data of Selected Cryptocurrency")141col2.write(142 "Data Dimension: "143 + str(df_selected_coin.shape[0])144 + " rows and "145 + str(df_selected_coin.shape[1])146 + " columns."147)148col2.dataframe(df_coins)149# Download CSV data150# https://discuss.streamlit.io/t/how-to-download-file-in-streamlit/1806151def filedownload(df):152 csv = df.to_csv(index=False)153 b64 = base64.b64encode(csv.encode()).decode() # strings <-> bytes conversions154 href = f'<a href="data:file/csv;base64,{b64}" download="crypto.csv">Download CSV File</a>'155 return href156col2.markdown(filedownload(df_selected_coin), unsafe_allow_html=True)157# ---------------------------------#158# Preparing data for Bar plot of % Price change159col2.subheader("Table of % Price Change")160df_change = pd.concat(161 [162 df_coins.coin_symbol,163 df_coins.percent_change_1h,164 df_coins.percent_change_24h,165 df_coins.percent_change_7d,166 ],167 axis=1,168)169df_change = df_change.set_index("coin_symbol")170df_change["positive_percent_change_1h"] = df_change["percent_change_1h"] > 0171df_change["positive_percent_change_24h"] = df_change["percent_change_24h"] > 0172df_change["positive_percent_change_7d"] = df_change["percent_change_7d"] > 0173col2.dataframe(df_change)174# Conditional creation of Bar plot (time frame)175col3.subheader("Bar plot of % Price Change")176if percent_timeframe == "7d":177 if sort_values == "Yes":178 df_change = df_change.sort_values(by=["percent_change_7d"])179 col3.write("*7 days period*")180 plt.figure(figsize=(5, 25))181 plt.subplots_adjust(top=1, bottom=0)182 df_change["percent_change_7d"].plot(183 kind="barh",184 color=df_change.positive_percent_change_7d.map({True: "g", False: "r"}),185 )186 col3.pyplot(plt)187elif percent_timeframe == "24h":188 if sort_values == "Yes":189 df_change = df_change.sort_values(by=["percent_change_24h"])190 col3.write("*24 hour period*")191 plt.figure(figsize=(5, 25))192 plt.subplots_adjust(top=1, bottom=0)193 df_change["percent_change_24h"].plot(194 kind="barh",195 color=df_change.positive_percent_change_24h.map({True: "g", False: "r"}),196 )197 col3.pyplot(plt)198else:199 if sort_values == "Yes":200 df_change = df_change.sort_values(by=["percent_change_1h"])201 col3.write("*1 hour period*")202 plt.figure(figsize=(5, 25))203 plt.subplots_adjust(top=1, bottom=0)204 df_change["percent_change_1h"].plot(205 kind="barh",206 color=df_change.positive_percent_change_1h.map({True: "g", False: "r"}),207 )...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful