ANN: PyCscope 1.2.1 Available on PyPI and GitHub

Peter Portante peter.a.portante at gmail.com
Sat Mar 16 18:24:40 CET 2013


Hello,

Just release PyCscope 1.2.1 on PyPI
(http://pypi.python.org/pypi/pycscope/1.2.1<http://pypi.python.org/pypi/pycscope/1.1>).
The project is hosted on
GitHub at https://github.com/portante/pycscope.

Hope folks who like cscope find this useful for python code. We have fixed
the handling of assignment statements to catch and mark more instances, and
fixed the handling of "strings-as-symbols", where simple strings that have
the proper lexical syntax of symbols are indexed as well (helps one find
references to attributes).

Comments, suggestions welcome.

-peter


========
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.
==========  ========= ======
 ====================================================


More information about the Python-announce-list mailing list