From 61a6b39ec5f4d33cdbbea8953dcb12e0821f55bf 2007-05-23 11:59:41 From: vivainio Date: 2007-05-23 11:59:41 Subject: [PATCH] %store for macros works again --- diff --git a/IPython/macro.py b/IPython/macro.py index 63fde45..e28ffae 100644 --- a/IPython/macro.py +++ b/IPython/macro.py @@ -39,6 +39,6 @@ class Macro(IPyAutocall): self._ip.user_ns['_margv'] = args self._ip.runlines(self.value) - def getstate(self): + def __getstate__(self): """ needed for safe pickling via %store """ return {'value': self.value} \ No newline at end of file diff --git a/setup.py b/setup.py index 0ed0035..d5b841b 100755 --- a/setup.py +++ b/setup.py @@ -16,73 +16,17 @@ requires utilities, which are not available under Windows.""" # Stdlib imports import os import sys - +import py2exe from glob import glob from setupext import install_data_ext +from distutils.core import setup + # A few handy globals isfile = os.path.isfile pjoin = os.path.join # BEFORE importing distutils, remove MANIFEST. distutils doesn't properly -# update it when the contents of directories change. -if os.path.exists('MANIFEST'): os.remove('MANIFEST') - -if os.name == 'posix': - os_name = 'posix' -elif os.name in ['nt','dos']: - os_name = 'windows' -else: - print 'Unsupported operating system:',os.name - sys.exit(1) - -# Under Windows, 'sdist' is not supported, since it requires lyxport (and -# hence lyx,perl,latex,pdflatex,latex2html,sh,...) -if os_name == 'windows' and 'sdist' in sys.argv: - print 'The sdist command is not available under Windows. Exiting.' - sys.exit(1) - -from distutils.core import setup - -# update the manuals when building a source dist -if len(sys.argv) >= 2 and sys.argv[1] in ('sdist','bdist_rpm'): - from IPython.genutils import target_update - # list of things to be updated. Each entry is a triplet of args for - # target_update() - to_update = [('doc/magic.tex', - ['IPython/Magic.py'], - "cd doc && ./update_magic.sh" ), - - ('doc/manual.lyx', - ['IPython/Release.py','doc/manual_base.lyx'], - "cd doc && ./update_version.sh" ), - - ('doc/manual/manual.html', - ['doc/manual.lyx', - 'doc/magic.tex', - 'doc/examples/example-gnuplot.py', - 'doc/examples/example-embed.py', - 'doc/examples/example-embed-short.py', - 'IPython/UserConfig/ipythonrc', - ], - "cd doc && " - "lyxport -tt --leave --pdf " - "--html -o '-noinfo -split +1 -local_icons' manual.lyx"), - - ('doc/new_design.pdf', - ['doc/new_design.lyx'], - "cd doc && lyxport -tt --pdf new_design.lyx"), - - ('doc/ipython.1.gz', - ['doc/ipython.1'], - "cd doc && gzip -9c ipython.1 > ipython.1.gz"), - - ('doc/pycolor.1.gz', - ['doc/pycolor.1'], - "cd doc && gzip -9c pycolor.1 > pycolor.1.gz"), - ] - for target in to_update: - target_update(*target) # Release.py contains version, authors, license, url, keywords, etc. execfile(pjoin('IPython','Release.py')) @@ -99,80 +43,12 @@ def file_doesnt_endwith(test,endings): return False return True -# I can't find how to make distutils create a nested dir. structure, so -# in the meantime do it manually. Butt ugly. -# Note that http://www.redbrick.dcu.ie/~noel/distutils.html, ex. 2/3, contain -# information on how to do this more cleanly once python 2.4 can be assumed. -# Thanks to Noel for the tip. -docdirbase = 'share/doc/ipython-%s' % version -manpagebase = 'share/man/man1' - -# We only need to exclude from this things NOT already excluded in the -# MANIFEST.in file. -exclude = ('.sh','.1.gz') -docfiles = filter(lambda f:file_doesnt_endwith(f,exclude),glob('doc/*')) - -examfiles = filter(isfile, glob('doc/examples/*.py')) -manfiles = filter(isfile, glob('doc/manual/*.html')) + \ - filter(isfile, glob('doc/manual/*.css')) + \ - filter(isfile, glob('doc/manual/*.png')) -manpages = filter(isfile, glob('doc/*.1.gz')) -cfgfiles = filter(isfile, glob('IPython/UserConfig/*')) -scriptfiles = filter(isfile, ['scripts/ipython','scripts/pycolor', - 'scripts/irunner']) -igridhelpfiles = filter(isfile, glob('IPython/Extensions/igrid_help.*')) - -# Script to be run by the windows binary installer after the default setup -# routine, to add shortcuts and similar windows-only things. Windows -# post-install scripts MUST reside in the scripts/ dir, otherwise distutils -# doesn't find them. -if 'bdist_wininst' in sys.argv: - if len(sys.argv) > 2 and ('sdist' in sys.argv or 'bdist_rpm' in sys.argv): - print >> sys.stderr,"ERROR: bdist_wininst must be run alone. Exiting." - sys.exit(1) - scriptfiles.append('scripts/ipython_win_post_install.py') - -datafiles = [('data', docdirbase, docfiles), - ('data', pjoin(docdirbase, 'examples'),examfiles), - ('data', pjoin(docdirbase, 'manual'),manfiles), - ('data', manpagebase, manpages), - ('lib', 'IPython/UserConfig', cfgfiles), - ('data',pjoin(docdirbase, 'extensions'),igridhelpfiles), - ] - -if 'setuptools' in sys.modules: - # setuptools config for egg building - egg_extra_kwds = { - 'entry_points': { - 'console_scripts': [ - 'ipython = IPython.ipapi:launch_new_instance', - 'pycolor = IPython.PyColorize:main' - ]} - } - scriptfiles = [] - # eggs will lack docs, examples XXX not anymore - #datafiles = [('lib', 'IPython/UserConfig', cfgfiles)] -else: - egg_extra_kwds = {} - # Call the setup() routine which does most of the work setup(name = name, version = version, - description = description, - long_description = long_description, - author = authors['Fernando'][0], - author_email = authors['Fernando'][1], - url = url, - download_url = download_url, - license = license, - platforms = platforms, - keywords = keywords, packages = ['IPython', 'IPython.Extensions', 'IPython.external'], - scripts = scriptfiles, - - cmdclass = {'install_data': install_data_ext}, - data_files = datafiles, + console = ['ipython.py'], + scripts = ['ipython.py'], # extra params needed for eggs - **egg_extra_kwds )