Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!eternal-september.org!feeder.eternal-september.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'importing': 0.04; 'irc': 0.05; 'function,': 0.07; 'objects,': 0.07; 'subject:code': 0.07; 'python': 0.09; 'ast': 0.09; 'stdout': 0.09; 'subject:number': 0.09; 'advance': 0.10; 'gui': 0.11; 'subject:python': 0.11; 'subject:program': 0.16; 'url:assembla': 0.16; 'module,': 0.17; 'module': 0.19; 'code.': 0.20; 'to:name:python-list@python.org': 0.20; 'written': 0.20; 'import': 0.21; '(by': 0.22; 'trace': 0.22; 'help.': 0.22; 'example': 0.23; 'script': 0.24; 'question': 0.27; 'module.': 0.27; 'lines': 0.28; 'inspect': 0.29; 'prints': 0.29; 'received:98.138.87': 0.29; 'url:code': 0.29; 'class': 0.29; "i'm": 0.29; 'function': 0.30; 'code': 0.31; 'sources': 0.32; 'problem': 0.33; 'to:addr:python-list': 0.33; 'reply- to:addr:yahoo.com': 0.34; 'thanks': 0.34; 'process,': 0.35; 'object': 0.38; 'some': 0.38; 'to:addr:python.org': 0.39; 'takes': 0.39; 'little': 0.39; 'help': 0.40; 'your': 0.60; 'first': 0.61; 'side': 0.61; 'header:Reply-To:1': 0.68; 'online': 0.70; 'received:98.138.226': 0.91 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 927748.89125.bm@omp1005.mail.ne1.yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1357394154; bh=BlNDPaGWNCv03g+pTeWr+zEHyYe/gzn+CCi0RcW86kM=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=44mDC1KzsHgDsSRNeXcnDQEliYNKy8CKXnAnGir0AoAfZH7CfWN/4/WDNP0CuU2VJeurroxWFA7jNOeQ9/Ly2TrS8/N/rZKVnUBrSbqad+UxVOFk8/ksQwF9JSi1YZ9cxRbRjtWsaCBFsA3qDKxSeQruIQ3+jV+TPLXFSDCiz9A= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=g4T6rUfsMGDSh/+KZjMuU931YuZwIoiv6yyO21gWROOWkhLlcL1oHBzbhNNC+HAj5JTLEtyXCB4n209FU7RKlKQ9GZVWqIkU5gpgjGf4nzwY3uQge8J3SbzRev6SBFaLDK9ATfOrmiMMdhyiOCdDzZC5kqIAW/rw172lX/6T4vg=; X-YMail-OSG: 9KnX8SYVM1kQ3YqdjpqQb8wKc_oC5UF3yT_73XgrmKJb2wb rIOnhSQyFhs9KwSJ6usg54Ji9OUK57Zl_1G56Og6zoA742P_UJqZ7NSk_IgX bwl3gP45yCYyXCsuDpoPMZS0YxE1lQ507dwLLM7adR3w0YSevTbmWUd11has VkRQsyMhmYXUwzsv.4CJlhrHNxkjOMUCRIFaNlUkxVYLjnOD0ilgCi.V7NAu iUgc_mbMIsbHYV59w9lTTdXYQOpcqpagSIxrmsW_pUrQVr_f_zxFU10xvJQg QJemHLZ.VRoVlYYuQ6_HP1gh73._Vgen7asDuLY4ofDzfDtUL89BL3zohP03 zmuUEBe3R.btqZTMKdjnCIfepMP9.3k6LJCrQSXC3eQW52kkYRuW8afdzq3S wHtVTh81rF0Pcr_4ooPD3wBPxmVusRKd7hg1Oiwt8Hj8A6A4OqsuGMYHp51I qX1nfRefgJ3in5QoZJuLJSC_PLJJdoP0UIoJiFMOaIZejNnEv9gpeNQCTFDz jgULpZsXkcMwSXDGQAxcIZ858Tz3k.p.RFa7_D4NRnjxxDmPajNxvfJ24g6S .o141JyQimZ38KrBCcGRpCFHhDWGTOR2rogGhx9VwrqqGrojP9g-- X-Rocket-MIMEInfo: 001.001, ICAKSGVsbG8uCgpJJ3Ygd3JpdHRlbiBhIHNtYWxsIHNjcmlwdCB0aGF0IHByaW50cyB0aGUgbnVtYmVyIG9mIGxpbmVzCiBvZiBjb2RlIG9mIGEgcHl0aG9uIHByb2dyYW0gdG8gc3Rkb3V0IChieSBtb2R1bGUsIGZ1bmN0aW9uLCBjbGFzcyBhbmQgCm1ldGhvZCksIHRoZSBzb3VyY2VzIGFyZSBhdmFpbGFibGUgb25saW5lIGhlcmXCoCBodHRwczovL3d3dy5hc3NlbWJsYS5jb20vY29kZS90YWhhci9zdWJ2ZXJzaW9uL25vZGVzLiBUaGUgcmVhZG1lIGhhcyBhbiBleGFtcGxlIHVzYWdlIGFzIHdlbGwgYXMgYSABMAEBAQE- X-Mailer: YahooMailWebService/0.8.129.483 Date: Sat, 5 Jan 2013 05:55:54 -0800 (PST) From: chaouche yacine Subject: Couting the number of lines of code of a python program To: "python-list@python.org" MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: chaouche yacine List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 15 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1357394322 news.xs4all.nl 6913 [2001:888:2000:d::a6]:55072 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:36171 =0AHello.=0A=0AI'v written a small script that prints the number of lines= =0A of code of a python program to stdout (by module, function, class and = =0Amethod), the sources are available online here=A0 https://www.assembla.c= om/code/tahar/subversion/nodes. The readme has an example usage as well as = a trace of what the script prints.=0A=0AThe=0A problem is that I'm using th= e inspect module, because it provides a =0Anice function inspect.getsourcel= ines that takes a python object and =0Areturn its number of lines of code. = BUT, it works on live objects, that =0Ameans one has to first import the mo= dule he wants to process, and this =0Acan have side effects (example : GUI = programs).=0A=0ASo my question is=0A how can one count the number of lines = of code of a python program =0Awithout importing it (static code analysis) = ? =0A=0ASome people on IRC=0A advised me to look for the AST module. Can yo= u give me a little help on=0A how to use this module to count the number of= lines of code of a =0Afunction/method ?=0A=0AThanks in advance for your he= lp.