diff --git a/.travis.yml b/.travis.yml index dc46e06..6980edc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,13 @@ -language: - - python +language: python python: - - "2.7" - - "3.3" - - "3.4" - - "3.5" - - "3.6" - - "3.7-dev" - - "pypy" -# pytest does not support python 3.5 -# https://bitbucket.org/pytest-dev/pytest/pull-request/296/astcall-signature-changed-on-35 -# - "nightly" - -matrix: - allow_failures: - - python: - - "pypy" - - '3.7-dev' # Due to PyYAML (from `coveralls`) - - python: - - "nigthly" + - 2.7 + - 3.3 + - 3.4 + - 3.5 + - 3.6 + #- 3.7-dev + - pypy env: global: diff --git a/pycallgraph/__main__.py b/pycallgraph/__main__.py new file mode 100644 index 0000000..68a0ace --- /dev/null +++ b/pycallgraph/__main__.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +""" +pycallgraph +This script is the command line interface to the pycallgraph Python library. + +See http://pycallgraph.slowchop.com/ for more information. +""" + + +def main(): + import pycallgraph + + config = pycallgraph.Config() + config.parse_args() + config.strip_argv() + + globals()['__file__'] = config.command + + file_content = open(config.command).read() + + with pycallgraph.PyCallGraph(config=config): + exec(file_content) + + +if __name__ == '__main__': + # Pep366 must always be the 1st thing to run. + if not globals().get('__package__'): + __package__ = "polyversion" # noqa: A001 F841 @ReservedAssignment + + main() diff --git a/scripts/pycallgraph b/scripts/pycallgraph index 2577a64..0548e4c 100755 --- a/scripts/pycallgraph +++ b/scripts/pycallgraph @@ -4,6 +4,14 @@ pycallgraph This script is the command line interface to the pycallgraph Python library. See http://pycallgraph.slowchop.com/ for more information. + +.. deprecated:: > 1.0.1 + Code here moved to :func:`pycallgraph.__main__.main()` + and now using setuptools console-script entry-points, + to properly install on Windows. + + - See https://github.com/gak/pycallgraph/issues/119 + - See https://github.com/gak/pycallgraph/issues/155 """ import sys import os diff --git a/setup.py b/setup.py index 4641eb3..809dd83 100755 --- a/setup.py +++ b/setup.py @@ -5,6 +5,8 @@ from setuptools import setup from setuptools.command.test import test as TestCommand +## FIXME: importing my-package may fail if dependent projects +# from :mod:`./pycallgraph/__init__.py` are not installed yet at this stage! import pycallgraph @@ -41,7 +43,8 @@ def run_tests(self): license=open('LICENSE').read(), url=pycallgraph.__url__, packages=['pycallgraph', 'pycallgraph.output'], - scripts=['scripts/pycallgraph'], + entry_points={ + 'console_scripts': ['pycallgraph = pycallgraph.__main__:main']}, data_files=data_files, use_2to3=True,