##// END OF EJS Templates
%store for macros works again
vivainio -
Show More
@@ -39,6 +39,6 b' class Macro(IPyAutocall):'
39 self._ip.user_ns['_margv'] = args
39 self._ip.user_ns['_margv'] = args
40 self._ip.runlines(self.value)
40 self._ip.runlines(self.value)
41
41
42 def getstate(self):
42 def __getstate__(self):
43 """ needed for safe pickling via %store """
43 """ needed for safe pickling via %store """
44 return {'value': self.value} No newline at end of file
44 return {'value': self.value}
@@ -16,73 +16,17 b' requires utilities, which are not available under Windows."""'
16 # Stdlib imports
16 # Stdlib imports
17 import os
17 import os
18 import sys
18 import sys
19
19 import py2exe
20 from glob import glob
20 from glob import glob
21 from setupext import install_data_ext
21 from setupext import install_data_ext
22
22
23 from distutils.core import setup
24
23 # A few handy globals
25 # A few handy globals
24 isfile = os.path.isfile
26 isfile = os.path.isfile
25 pjoin = os.path.join
27 pjoin = os.path.join
26
28
27 # BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
29 # BEFORE importing distutils, remove MANIFEST. distutils doesn't properly
28 # update it when the contents of directories change.
29 if os.path.exists('MANIFEST'): os.remove('MANIFEST')
30
31 if os.name == 'posix':
32 os_name = 'posix'
33 elif os.name in ['nt','dos']:
34 os_name = 'windows'
35 else:
36 print 'Unsupported operating system:',os.name
37 sys.exit(1)
38
39 # Under Windows, 'sdist' is not supported, since it requires lyxport (and
40 # hence lyx,perl,latex,pdflatex,latex2html,sh,...)
41 if os_name == 'windows' and 'sdist' in sys.argv:
42 print 'The sdist command is not available under Windows. Exiting.'
43 sys.exit(1)
44
45 from distutils.core import setup
46
47 # update the manuals when building a source dist
48 if len(sys.argv) >= 2 and sys.argv[1] in ('sdist','bdist_rpm'):
49 from IPython.genutils import target_update
50 # list of things to be updated. Each entry is a triplet of args for
51 # target_update()
52 to_update = [('doc/magic.tex',
53 ['IPython/Magic.py'],
54 "cd doc && ./update_magic.sh" ),
55
56 ('doc/manual.lyx',
57 ['IPython/Release.py','doc/manual_base.lyx'],
58 "cd doc && ./update_version.sh" ),
59
60 ('doc/manual/manual.html',
61 ['doc/manual.lyx',
62 'doc/magic.tex',
63 'doc/examples/example-gnuplot.py',
64 'doc/examples/example-embed.py',
65 'doc/examples/example-embed-short.py',
66 'IPython/UserConfig/ipythonrc',
67 ],
68 "cd doc && "
69 "lyxport -tt --leave --pdf "
70 "--html -o '-noinfo -split +1 -local_icons' manual.lyx"),
71
72 ('doc/new_design.pdf',
73 ['doc/new_design.lyx'],
74 "cd doc && lyxport -tt --pdf new_design.lyx"),
75
76 ('doc/ipython.1.gz',
77 ['doc/ipython.1'],
78 "cd doc && gzip -9c ipython.1 > ipython.1.gz"),
79
80 ('doc/pycolor.1.gz',
81 ['doc/pycolor.1'],
82 "cd doc && gzip -9c pycolor.1 > pycolor.1.gz"),
83 ]
84 for target in to_update:
85 target_update(*target)
86
30
87 # Release.py contains version, authors, license, url, keywords, etc.
31 # Release.py contains version, authors, license, url, keywords, etc.
88 execfile(pjoin('IPython','Release.py'))
32 execfile(pjoin('IPython','Release.py'))
@@ -99,80 +43,12 b' def file_doesnt_endwith(test,endings):'
99 return False
43 return False
100 return True
44 return True
101
45
102 # I can't find how to make distutils create a nested dir. structure, so
103 # in the meantime do it manually. Butt ugly.
104 # Note that http://www.redbrick.dcu.ie/~noel/distutils.html, ex. 2/3, contain
105 # information on how to do this more cleanly once python 2.4 can be assumed.
106 # Thanks to Noel for the tip.
107 docdirbase = 'share/doc/ipython-%s' % version
108 manpagebase = 'share/man/man1'
109
110 # We only need to exclude from this things NOT already excluded in the
111 # MANIFEST.in file.
112 exclude = ('.sh','.1.gz')
113 docfiles = filter(lambda f:file_doesnt_endwith(f,exclude),glob('doc/*'))
114
115 examfiles = filter(isfile, glob('doc/examples/*.py'))
116 manfiles = filter(isfile, glob('doc/manual/*.html')) + \
117 filter(isfile, glob('doc/manual/*.css')) + \
118 filter(isfile, glob('doc/manual/*.png'))
119 manpages = filter(isfile, glob('doc/*.1.gz'))
120 cfgfiles = filter(isfile, glob('IPython/UserConfig/*'))
121 scriptfiles = filter(isfile, ['scripts/ipython','scripts/pycolor',
122 'scripts/irunner'])
123 igridhelpfiles = filter(isfile, glob('IPython/Extensions/igrid_help.*'))
124
125 # Script to be run by the windows binary installer after the default setup
126 # routine, to add shortcuts and similar windows-only things. Windows
127 # post-install scripts MUST reside in the scripts/ dir, otherwise distutils
128 # doesn't find them.
129 if 'bdist_wininst' in sys.argv:
130 if len(sys.argv) > 2 and ('sdist' in sys.argv or 'bdist_rpm' in sys.argv):
131 print >> sys.stderr,"ERROR: bdist_wininst must be run alone. Exiting."
132 sys.exit(1)
133 scriptfiles.append('scripts/ipython_win_post_install.py')
134
135 datafiles = [('data', docdirbase, docfiles),
136 ('data', pjoin(docdirbase, 'examples'),examfiles),
137 ('data', pjoin(docdirbase, 'manual'),manfiles),
138 ('data', manpagebase, manpages),
139 ('lib', 'IPython/UserConfig', cfgfiles),
140 ('data',pjoin(docdirbase, 'extensions'),igridhelpfiles),
141 ]
142
143 if 'setuptools' in sys.modules:
144 # setuptools config for egg building
145 egg_extra_kwds = {
146 'entry_points': {
147 'console_scripts': [
148 'ipython = IPython.ipapi:launch_new_instance',
149 'pycolor = IPython.PyColorize:main'
150 ]}
151 }
152 scriptfiles = []
153 # eggs will lack docs, examples XXX not anymore
154 #datafiles = [('lib', 'IPython/UserConfig', cfgfiles)]
155 else:
156 egg_extra_kwds = {}
157
158
46
159 # Call the setup() routine which does most of the work
47 # Call the setup() routine which does most of the work
160 setup(name = name,
48 setup(name = name,
161 version = version,
49 version = version,
162 description = description,
163 long_description = long_description,
164 author = authors['Fernando'][0],
165 author_email = authors['Fernando'][1],
166 url = url,
167 download_url = download_url,
168 license = license,
169 platforms = platforms,
170 keywords = keywords,
171 packages = ['IPython', 'IPython.Extensions', 'IPython.external'],
50 packages = ['IPython', 'IPython.Extensions', 'IPython.external'],
172 scripts = scriptfiles,
51 console = ['ipython.py'],
173
52 scripts = ['ipython.py'],
174 cmdclass = {'install_data': install_data_ext},
175 data_files = datafiles,
176 # extra params needed for eggs
53 # extra params needed for eggs
177 **egg_extra_kwds
178 )
54 )
General Comments 0
You need to be logged in to leave comments. Login now