SYMBOL INDEX (169 symbols across 36 files) FILE: Chapter01/price_log.py class PriceLog (line 6) | class PriceLog(object): method __init__ (line 8) | def __init__(self, timestamp, product_id, price): method __repr__ (line 13) | def __repr__(self): method parse (line 19) | def parse(cls, text_log): FILE: Chapter01/recipe_cli_step1.py function main (line 4) | def main(number): FILE: Chapter01/recipe_cli_step2.py function main (line 4) | def main(character, number): FILE: Chapter01/recipe_cli_step3.py function main (line 4) | def main(character, number): FILE: Chapter02/cron.py function main (line 7) | def main(number, other_number, output): FILE: Chapter02/email_task.py function main (line 8) | def main(to_email, server, port, from_email, password): FILE: Chapter02/prepare_task_step1.py function main (line 4) | def main(number, other_number): FILE: Chapter02/prepare_task_step2.py function main (line 5) | def main(number, other_number): FILE: Chapter02/prepare_task_step5.py function main (line 6) | def main(number, other_number, output): FILE: Chapter02/prepare_task_yaml.py function main (line 6) | def main(number, other_number, output): FILE: Chapter02/task_with_error_handling_step1.py function main (line 5) | def main(number, other_number, output): FILE: Chapter02/task_with_error_handling_step4.py function main (line 9) | def main(number, other_number, output): FILE: Chapter03/crawling_web_step1.py function process_link (line 13) | def process_link(source_link, text): function get_links (line 31) | def get_links(parsed_source, page): function search_text (line 59) | def search_text(source_link, page, text): function main (line 65) | def main(base_url, to_search): FILE: Chapter03/speed_up_step1.py function process_link (line 15) | def process_link(source_link, text): function get_links (line 33) | def get_links(parsed_source, page): function search_text (line 61) | def search_text(source_link, page, text): function main (line 67) | def main(base_url, to_search, workers): FILE: Chapter03/test_site/rw_common/themes/offroad/assets/javascript/html5shiv.js function n (line 1) | function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("hea... function r (line 1) | function r(){var e=y.elements;return"string"==typeof e?e.split(" "):e} function a (line 1) | function a(e,t){var n=y.elements;"string"!=typeof n&&(n=n.join(" ")),"st... function c (line 1) | function c(e){var t=E[e[p]];return t||(t={},v++,e[p]=v,E[v]=t),t} function o (line 1) | function o(e,n,r){if(n||(n=t),u)return n.createElement(e);r||(r=c(n));va... function i (line 1) | function i(e,n){if(e||(e=t),u)return e.createDocumentFragment();n=n||c(e... function l (line 1) | function l(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.crea... function m (line 1) | function m(e){e||(e=t);var r=c(e);return!y.shivCSS||s||r.hasCSS||(r.hasC... FILE: Chapter03/test_site/rw_common/themes/offroad/assets/javascript/respond.js function t (line 1) | function t(){E(!0)} FILE: Chapter03/test_site/rw_common/themes/offroad/javascript.js function n (line 1) | function n(e){var t="length"in e&&e.length,n=Z.type(e);return"function"=... function r (line 1) | function r(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,r){retur... function i (line 1) | function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e} function o (line 1) | function o(e){var t=he[e]={};return Z.each(e.match(de)||[],function(e,n)... function s (line 1) | function s(){J.removeEventListener("DOMContentLoaded",s,!1),e.removeEven... function a (line 1) | function a(){Object.defineProperty(this.cache={},0,{get:function(){retur... function u (line 1) | function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.rep... function l (line 1) | function l(){return!0} function $ (line 1) | function $(){return!1} function c (line 1) | function c(){try{return J.activeElement}catch(e){}} function f (line 1) | function f(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType... function p (line 1) | function p(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e} function d (line 1) | function d(e){var t=Fe.exec(e.type);return t?e.type=t[1]:e.removeAttribu... function h (line 1) | function h(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",... function g (line 1) | function g(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(ve.hasData(e)&... function m (line 1) | function m(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"... function v (line 1) | function v(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ne.test(e.ty... function y (line 1) | function y(t,n){var r,i=Z(n.createElement(t)).appendTo(n.body),o=e.getDe... function x (line 1) | function x(e){var t=J,n=Ie[e];return n||(n=y(e,t),"none"!==n&&n||(Re=(Re... function b (line 1) | function b(e,t,n){var r,i,o,s,a=e.style;return n=n||_e(e),n&&(s=n.getPro... function w (line 1) | function w(e,t){return{get:function(){return e()?void delete this.get:(t... function C (line 1) | function C(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(... function T (line 1) | function T(e,t,n){var r=Ue.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2... function N (line 1) | function N(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t... function k (line 1) | function k(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=... function E (line 1) | function E(e,t){for(var n,r,i,o=[],s=0,a=e.length;a>s;s++)r=e[s],r.style... function S (line 1) | function S(e,t,n,r,i){return new S.prototype.init(e,t,n,r,i)} function j (line 1) | function j(){return setTimeout(function(){Ge=void 0}),Ge=Z.now()} function D (line 1) | function D(e,t){var n,r=0,i={height:e};for(t=t?1:0;4>r;r+=2-t)n=Ce[r],i[... function A (line 1) | function A(e,t,n){for(var r,i=(nt[t]||[]).concat(nt["*"]),o=0,s=i.length... function L (line 1) | function L(e,t,n){var r,i,o,s,a,u,l,c,f=this,p={},d=e.style,h=e.nodeType... function H (line 1) | function H(e,t){var n,r,i,o,s;for(n in e)if(r=Z.camelCase(n),i=t[r],o=e[... function q (line 1) | function q(e,t,n){var r,i,o=0,s=tt.length,a=Z.Deferred().always(function... function O (line 1) | function O(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r... function P (line 1) | function P(e,t,n,r){function i(a){var u;return o[a]=!0,Z.each(e[a]||[],f... function F (line 1) | function F(e,t){var n,r,i=Z.ajaxSettings.flatOptions||{};for(n in t)void... function M (line 1) | function M(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];... function R (line 1) | function R(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for... function I (line 1) | function I(e,t,n,r){var i;if(Z.isArray(t))Z.each(t,function(t,i){n||Nt.t... function W (line 1) | function W(e){return Z.isWindow(e)?e:9===e.nodeType&&e.defaultView} function t (line 1) | function t(e,t,n,r){var i,o,s,a,u,l,f,d,h,g;if((t?t.ownerDocument||t:W)!... function n (line 1) | function n(){function e(n,r){return t.push(n+" ")>C.cacheLength&&delete ... function r (line 1) | function r(e){return e[I]=!0,e} function i (line 1) | function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){ret... function o (line 1) | function o(e,t){for(var n=e.split("|"),r=e.length;r--;)C.attrHandle[n[r]... function s (line 1) | function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour... function a (line 1) | function a(e){return function(t){var n=t.nodeName.toLowerCase();return"i... function u (line 1) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("... function l (line 1) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i... function c (line 1) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e} function f (line 1) | function f(){} function p (line 1) | function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r} function d (line 1) | function d(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=_++;return t.first... function h (line 1) | function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)... function g (line 1) | function g(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r} function m (line 1) | function m(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,l=null!=t;u>a;a++)(o... function v (line 1) | function v(e,t,n,i,o,s){return i&&!i[I]&&(i=v(i)),o&&!o[I]&&(o=v(o,s)),r... function y (line 1) | function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],s=o||C.re... function x (line 1) | function x(e,n){var i=n.length>0,o=e.length>0,s=function(r,s,a,u,l){var ... function t (line 1) | function t(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-siz... function n (line 1) | function n(e,t,n,s){var u,c,v,y,b,C=t;2!==x&&(x=2,a&&clearTimeout(a),r=v... function e (line 1) | function e(){if(document.getElementsByTagName)for(var e=document.getElem... FILE: Chapter03/test_site/simple_delay_server.py class DelayServer (line 14) | class DelayServer(http.server.SimpleHTTPRequestHandler): method do_GET (line 16) | def do_GET(self): FILE: Chapter04/gps_conversion.py function tuple_to_decimal (line 4) | def tuple_to_decimal(gps_tuple): function ddm_to_decimal (line 25) | def ddm_to_decimal(gps_ddm): function exif_to_decimal (line 45) | def exif_to_decimal(exif_info): function rdf_to_decimal (line 54) | def rdf_to_decimal(rdf_info): FILE: Chapter04/scan.py function search_txt (line 10) | def search_txt(filename, word): function search_csv (line 30) | def search_csv(filename, word): function search_pdf (line 43) | def search_pdf(filename, word): function search_docx (line 59) | def search_docx(filename, word): function main (line 79) | def main(word): FILE: Chapter05/structuring_pdf.py class StructuredPDF (line 7) | class StructuredPDF(fpdf.FPDF): method footer (line 11) | def footer(self): method chapter (line 19) | def chapter(self, title, paragraphs): method title_text (line 30) | def title_text(self, title): method get_full_line (line 42) | def get_full_line(self, head, tail, fill): method toc (line 57) | def toc(self, links): function main (line 84) | def main(): FILE: Chapter05/watermarking_pdf.py function encrypt (line 15) | def encrypt(out_pdf, password): function create_watermark (line 35) | def create_watermark(watermarked_by): function apply_watermark (line 54) | def apply_watermark(watermark, in_pdf, out_pdf): function main (line 72) | def main(in_pdf, out_pdf, watermarked_by, password): FILE: Chapter06/include_macro.py function main (line 8) | def main(spreadsheet, script): FILE: Chapter06/libreoffice_script.py function ObtainAggregated (line 3) | def ObtainAggregated(*args): FILE: Chapter08/app.py function homepage (line 16) | def homepage(): function sms_reply (line 21) | def sms_reply(): FILE: Chapter08/telegram_bot.py function get_help (line 11) | def get_help(): function get_offers (line 21) | def get_offers(): function get_events (line 30) | def get_events(): class MarketingBot (line 44) | class MarketingBot(telepot.helper.ChatHandler): method open (line 46) | def open(self, initial_msg, seed): method on_chat_message (line 51) | def on_chat_message(self, msg): method on_idle (line 70) | def on_idle(self, event): method on_close (line 73) | def on_close(self, event): FILE: Chapter08/telegram_bot_custom_keyboard.py function get_help (line 12) | def get_help(): function get_offers (line 22) | def get_offers(): function get_events (line 31) | def get_events(): class MarketingBot (line 49) | class MarketingBot(telepot.helper.ChatHandler): method open (line 51) | def open(self, initial_msg, seed): method on_chat_message (line 56) | def on_chat_message(self, msg): method on__idle (line 77) | def on__idle(self, event): FILE: Chapter09/create_personalised_coupons.py function random_code (line 11) | def random_code(digits): function checksum (line 18) | def checksum(code1, code2): function check_code (line 27) | def check_code(code): function generate_code (line 45) | def generate_code(): FILE: Chapter09/generate_sales_report.py function generate_summary (line 15) | def generate_summary(logs): function aggregate_by_day (line 60) | def aggregate_by_day(logs): function aggregate_by_shop (line 88) | def aggregate_by_shop(logs): function graph (line 106) | def graph(full_summary, products, temp_file, skip_labels=1): function create_summary_brief (line 184) | def create_summary_brief(summary, temp_file): function main (line 222) | def main(input_file, output_file): FILE: Chapter09/parse_sales_log.py function get_logs_from_file (line 7) | def get_logs_from_file(shop, log_filename): function main (line 19) | def main(log_dir, output_filename): FILE: Chapter09/sale_log.py class SaleLog (line 6) | class SaleLog(object): method __init__ (line 8) | def __init__(self, timestamp, product_id, price, name, discount, method __repr__ (line 17) | def __repr__(self): method row_header (line 23) | def row_header(cls): method row (line 28) | def row(self): method from_row (line 34) | def from_row(cls, row): method parse (line 46) | def parse(cls, shop, text_log): FILE: Chapter09/search_keywords.py function get_articles (line 34) | def get_articles(keywords, feeds): function compose_email_body (line 73) | def compose_email_body(articles, keywords, feed_list): function send_email (line 98) | def send_email(email_config, text_body, html_body): function main (line 120) | def main(keywords, feeds, email_config): FILE: Chapter09/search_opportunities.py function get_articles (line 37) | def get_articles(keywords, feeds): function compose_email_body (line 79) | def compose_email_body(articles, keywords, feed_list): function send_email (line 104) | def send_email(email_config, text_body, html_body): function main (line 126) | def main(keywords, feeds, email_config): FILE: Chapter09/send_notifications.py function send_phone_notification (line 10) | def send_phone_notification(entry, config): function send_email_notification (line 27) | def send_email_notification(entry, config): function send_notification (line 51) | def send_notification(entry, send, config): function save_file (line 71) | def save_file(notif_file, data): function main (line 88) | def main(data, codes, notif_file, config, send): FILE: Chapter10/debug_algorithm.py function valid (line 1) | def valid(candidate): FILE: Chapter10/debug_logging.py function bubble_sort (line 5) | def bubble_sort(alist):