Generates a cscope index of Python source trees
Project description
========
PyCscope
========
:Copyright: Copyright 2013 Peter Portante. See LICENSE for details.
:Author: Peter Portante
:Release: 1.2.1
:Date: 2013/03/16
Purpose
-------
A python script to generate a cscope index from a Python source
tree. `pycscope` uses Python's own parser and (C)oncrete (S)yntax
(T)ree to generate the index, so it is a bit more accurate than
plain cscope.
Usage
-----
::
pycscope.py [-D] [-R] [-S] [-V] [-f reffile] [-i srclistfile] [files ...]
-D Dump the (C)oncrete (S)yntax (T)ree generated by the parser for each file
-R Recurse directories for files
-S Interpret simple strings as symbols
-V Print version and exit
-f reffile Use 'reffile' as cross-ref file name instead of 'cscope.out'
-i srclistfile Use the contents of 'srclistfile' as the list of source files to scan
License
-------
Copyright 2013 Peter Portante
This program is free software; you can redistribute it and/or
modify it under the terms of version 2 of the GNU General
Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA
Install
-------
PyCscope uses Python's distutils package for installation.
Use the following command to install this package::
% python setup.py install
Features
--------
PyCscope has the following features:
- Supports both Python 2.7 and Python 3
- Command line interface
- Output can be used by the `CscopeFinder` plugin for jEdit
- Marks for all files ending in `.py`
- Marks for all `class` definitions
- Marks for all defined functions
- Marks for function calls (algorithm is not perfect)
- Marks for end-of-function (no search uses this mark yet)
- Marks for imported modules (use the search for #include)
- Marks for symbol assignment
A *mark* is an indicator to the cscope utility that something
of interest follows.
History
-------
pycscope 0.3a and later are written and copyright Peter Portante.
pycscope 0.1 - 0.3 were originally written and copyright Dean Hall.
Status
------
It works well enough to generate an index file that can be used
by the `CscopeFinder` plugin for jEdit. Other editors are not tested.
Release Notes
-------------
This is PyCscope release 1.2.1
========== ========= ====== ====================================================
Date Release Trac Changes
========== ========= ====== ====================================================
2013/03/16 1.2.1 N/A Fix strings-as-symbols support (really).
---------- --------- ------ ----------------------------------------------------
2013/03/16 1.2 N/A Fix strings-as-symbols support; fix end of function
marking; add the ability to only run the indexer;
remove the threading support that was broken.
---------- --------- ------ ----------------------------------------------------
2012/10/01 1.1 N/A Fix Python3 support; enhance unit tests to run using
nose, generating coverage by default; fix broken
unit tests that were not properly run before the
switch to nose; add contrib area containing the
pyxcscope integration for (X)Emacs.
---------- --------- ------ ----------------------------------------------------
2012/09/20 1.0 N/A Call it 1.0; update to use setuptools; drop .py from
installed script name; transition authorship from
Dean Hall to Peter Portante.
---------- --------- ------ ----------------------------------------------------
2012/09/19 0.3e-pajp N/A Fix issues #7 and #8: we now properly handle symbols
closest to the assignment itself (rather than the
first one), and replace the crazy comma counting
method with a more stable pattern recognition method
that explicitly records which tuples should receive
the assignment mark; fixed handling of import state-
ments of the form, "from . import moda"
---------- --------- ------ ----------------------------------------------------
2012/09/18 0.3d-pajp N/A Implement debugging help from Issue #9: dumpCst now
works on subtrees of tuples, not just lists.
---------- --------- ------ ----------------------------------------------------
2012/09/17 0.3c-pajp N/A First pass fix of Issue #6 removing errant assertion
thus allowing symbol assignment marking to work as
coded (if not correctly, see Issue #7).
---------- --------- ------ ----------------------------------------------------
2012/09/11 0.3b-pajp N/A Include changes from fspeech to get it working for
Python 3; add proper support for yield expression
following an augmented assignment; added support
for filename and line numbers when assertions fire;
fixed handling of commas on the left hand side of
assignment statements; gracefully handle errors
opening files.
GitHub issues: #5
---------- --------- ------ ----------------------------------------------------
2012/04/29 0.3a-pajp N/A (NOTE: Failed to update version!)
Fix handling of DOS style line endings.
GitHub issues: #4
---------- --------- ------ ----------------------------------------------------
2012/04/13 0.3a-pajp N/A (NOTE: Failed to update version!)
Fix handling of function definition decorators
GitHub issues: #2, #3
---------- --------- ------ ----------------------------------------------------
2012/03/11 0.3a-pajp N/A (NOTE: Failed to update version!)
Change references from abstract syntax tree to
concrete syntax tree; fix handling of trailing
commas.
---------- --------- ------ ----------------------------------------------------
2012/03/05 0.3a-pajp N/A Updated changes to support symbol assignment,
enhance unit test coverage, prepare code for PyCon
poster session.
---------- --------- ------ ----------------------------------------------------
2007/12/25 0.3 N/A Included changes submitted by K. Rader of Google:
- Added the `-i` argument to specify a file-list
file
- Fixups to the header and footer to make a valid
file that cscope can read
---------- --------- ------ ----------------------------------------------------
2006/08/12 0.2 #33 Create 0.2 release.
#34 Change all "pyscope" to "pycscope"
#29 Make error reports less vague.
#23 Create distutils files.
#20 Create unit tests.
---------- --------- ------ ----------------------------------------------------
2006/08/02 0.1 None Released to interested party by
email.
#19 Observe newlines even without
NEWLINE token.
#18 Newlines before MARK_FILE causes
exception.
#16 Work on "." default directory.
#10 Exception: TypeError in format.
#8 Class mark is incorrect.
#6 Create project space.
========== ========= ====== ====================================================
PyCscope
========
:Copyright: Copyright 2013 Peter Portante. See LICENSE for details.
:Author: Peter Portante
:Release: 1.2.1
:Date: 2013/03/16
Purpose
-------
A python script to generate a cscope index from a Python source
tree. `pycscope` uses Python's own parser and (C)oncrete (S)yntax
(T)ree to generate the index, so it is a bit more accurate than
plain cscope.
Usage
-----
::
pycscope.py [-D] [-R] [-S] [-V] [-f reffile] [-i srclistfile] [files ...]
-D Dump the (C)oncrete (S)yntax (T)ree generated by the parser for each file
-R Recurse directories for files
-S Interpret simple strings as symbols
-V Print version and exit
-f reffile Use 'reffile' as cross-ref file name instead of 'cscope.out'
-i srclistfile Use the contents of 'srclistfile' as the list of source files to scan
License
-------
Copyright 2013 Peter Portante
This program is free software; you can redistribute it and/or
modify it under the terms of version 2 of the GNU General
Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA
Install
-------
PyCscope uses Python's distutils package for installation.
Use the following command to install this package::
% python setup.py install
Features
--------
PyCscope has the following features:
- Supports both Python 2.7 and Python 3
- Command line interface
- Output can be used by the `CscopeFinder` plugin for jEdit
- Marks for all files ending in `.py`
- Marks for all `class` definitions
- Marks for all defined functions
- Marks for function calls (algorithm is not perfect)
- Marks for end-of-function (no search uses this mark yet)
- Marks for imported modules (use the search for #include)
- Marks for symbol assignment
A *mark* is an indicator to the cscope utility that something
of interest follows.
History
-------
pycscope 0.3a and later are written and copyright Peter Portante.
pycscope 0.1 - 0.3 were originally written and copyright Dean Hall.
Status
------
It works well enough to generate an index file that can be used
by the `CscopeFinder` plugin for jEdit. Other editors are not tested.
Release Notes
-------------
This is PyCscope release 1.2.1
========== ========= ====== ====================================================
Date Release Trac Changes
========== ========= ====== ====================================================
2013/03/16 1.2.1 N/A Fix strings-as-symbols support (really).
---------- --------- ------ ----------------------------------------------------
2013/03/16 1.2 N/A Fix strings-as-symbols support; fix end of function
marking; add the ability to only run the indexer;
remove the threading support that was broken.
---------- --------- ------ ----------------------------------------------------
2012/10/01 1.1 N/A Fix Python3 support; enhance unit tests to run using
nose, generating coverage by default; fix broken
unit tests that were not properly run before the
switch to nose; add contrib area containing the
pyxcscope integration for (X)Emacs.
---------- --------- ------ ----------------------------------------------------
2012/09/20 1.0 N/A Call it 1.0; update to use setuptools; drop .py from
installed script name; transition authorship from
Dean Hall to Peter Portante.
---------- --------- ------ ----------------------------------------------------
2012/09/19 0.3e-pajp N/A Fix issues #7 and #8: we now properly handle symbols
closest to the assignment itself (rather than the
first one), and replace the crazy comma counting
method with a more stable pattern recognition method
that explicitly records which tuples should receive
the assignment mark; fixed handling of import state-
ments of the form, "from . import moda"
---------- --------- ------ ----------------------------------------------------
2012/09/18 0.3d-pajp N/A Implement debugging help from Issue #9: dumpCst now
works on subtrees of tuples, not just lists.
---------- --------- ------ ----------------------------------------------------
2012/09/17 0.3c-pajp N/A First pass fix of Issue #6 removing errant assertion
thus allowing symbol assignment marking to work as
coded (if not correctly, see Issue #7).
---------- --------- ------ ----------------------------------------------------
2012/09/11 0.3b-pajp N/A Include changes from fspeech to get it working for
Python 3; add proper support for yield expression
following an augmented assignment; added support
for filename and line numbers when assertions fire;
fixed handling of commas on the left hand side of
assignment statements; gracefully handle errors
opening files.
GitHub issues: #5
---------- --------- ------ ----------------------------------------------------
2012/04/29 0.3a-pajp N/A (NOTE: Failed to update version!)
Fix handling of DOS style line endings.
GitHub issues: #4
---------- --------- ------ ----------------------------------------------------
2012/04/13 0.3a-pajp N/A (NOTE: Failed to update version!)
Fix handling of function definition decorators
GitHub issues: #2, #3
---------- --------- ------ ----------------------------------------------------
2012/03/11 0.3a-pajp N/A (NOTE: Failed to update version!)
Change references from abstract syntax tree to
concrete syntax tree; fix handling of trailing
commas.
---------- --------- ------ ----------------------------------------------------
2012/03/05 0.3a-pajp N/A Updated changes to support symbol assignment,
enhance unit test coverage, prepare code for PyCon
poster session.
---------- --------- ------ ----------------------------------------------------
2007/12/25 0.3 N/A Included changes submitted by K. Rader of Google:
- Added the `-i` argument to specify a file-list
file
- Fixups to the header and footer to make a valid
file that cscope can read
---------- --------- ------ ----------------------------------------------------
2006/08/12 0.2 #33 Create 0.2 release.
#34 Change all "pyscope" to "pycscope"
#29 Make error reports less vague.
#23 Create distutils files.
#20 Create unit tests.
---------- --------- ------ ----------------------------------------------------
2006/08/02 0.1 None Released to interested party by
email.
#19 Observe newlines even without
NEWLINE token.
#18 Newlines before MARK_FILE causes
exception.
#16 Work on "." default directory.
#10 Exception: TypeError in format.
#8 Class mark is incorrect.
#6 Create project space.
========== ========= ====== ====================================================
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pycscope-1.2.1.tar.gz
(55.7 kB
view details)
File details
Details for the file pycscope-1.2.1.tar.gz
.
File metadata
- Download URL: pycscope-1.2.1.tar.gz
- Upload date:
- Size: 55.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c6a08263be7a49e71bc8dc0b6c70b3667f6760f9220005a9d452dee8c524950 |
|
MD5 | 89f1e79dbd211d9f8d96881f2e92e1fc |
|
BLAKE2b-256 | 2c6afdda7d0b7c2ad0ad4e654ff47743aeff8827967f3dfe3c2edcec3632ee14 |