Update the setup file:

1. Make it easier to change the package and script installation names.
2. Update the text files transferred to include the .def and new .txt
   files.
3. Update the description and long description, change email to
   python-dev, update the url to point at sourceforge.
4. Rename the build and install classes for clarity.
This commit is contained in:
Kurt B. Kaiser 2002-12-20 22:40:30 +00:00
parent e1d18f52c3
commit f39f59a5f2
1 changed files with 42 additions and 34 deletions

View File

@ -4,6 +4,8 @@
from distutils.command.install_lib import install_lib
import idlever
idle_name = "idle"
try:
pos = sys.argv.index("--check-tkinter")
except ValueError:
@ -17,17 +19,19 @@
raise SystemExit
try:
package_dir = os.path.join(os.environ["SRCDIR"], "Tools", "idle")
package_dir = os.path.join(os.environ["SRCDIR"], "Tools", idle_name)
except KeyError:
package_dir = "."
# name of idle package
idlelib = "idlelib"
# name of package to be installed in site-packages
pkgname = idle_name + "lib"
# the normal build_py would not incorporate the .txt files
txt_files = ['config-unix.txt','config-win.txt','config.txt', 'help.txt']
# the normal build_py would not incorporate the .txt or config files
txt_files = ['extend.txt', 'help.txt', 'CREDITS.txt', 'LICENSE.txt']
txt_files += ['config-extensions.def', 'config-highlight.def',
'config-keys.def', 'config-main.def']
Icons = glob.glob1("Icons","*.gif")
class idle_build_py(build_py):
class IDLE_Builder(build_py):
def get_plain_outfile(self, build_dir, package, file):
# like get_module_outfile, but does not append .py
outfile_path = [build_dir] + list(package) + [file]
@ -36,26 +40,26 @@ def get_plain_outfile(self, build_dir, package, file):
def run(self):
# Copies all .py files, then also copies the txt and gif files
build_py.run(self)
assert self.packages == [idlelib]
assert self.packages == [pkgname]
for name in txt_files:
outfile = self.get_plain_outfile(self.build_lib, [idlelib], name)
outfile = self.get_plain_outfile(self.build_lib, [pkgname], name)
dir = os.path.dirname(outfile)
self.mkpath(dir)
self.copy_file(os.path.join(package_dir, name), outfile,
preserve_mode = 0)
for name in Icons:
outfile = self.get_plain_outfile(self.build_lib,
[idlelib,"Icons"], name)
[pkgname, "Icons"], name)
dir = os.path.dirname(outfile)
self.mkpath(dir)
self.copy_file(os.path.join("Icons",name),
self.copy_file(os.path.join("Icons", name),
outfile, preserve_mode = 0)
def get_source_files(self):
# returns the .py files, the .txt files, and the icons
# returns the .py files, the .txt and .def files, and the icons
icons = [os.path.join(package_dir, "Icons",name) for name in Icons]
txts = [os.path.join(package_dir, name) for name in txt_files]
return build_py.get_source_files(self)+txt_files+icons
return build_py.get_source_files(self) + txt_files + icons
def get_outputs(self, include_bytecode=1):
# returns the built files
@ -64,42 +68,46 @@ def get_outputs(self, include_bytecode=1):
return outputs
for name in txt_files:
filename = self.get_plain_outfile(self.build_lib,
[idlelib], name)
[pkgname], name)
outputs.append(filename)
for name in Icons:
filename = self.get_plain_outfile(self.build_lib,
[idlelib,"Icons"], name)
[pkgname, "Icons"], name)
outputs.append(filename)
return outputs
# Arghhh. install_lib thinks that all files returned from build_py's
# get_outputs are bytecode files
class idle_install_lib(install_lib):
class IDLE_Installer(install_lib):
def _bytecode_filenames(self, files):
files = [n for n in files if n.endswith('.py')]
return install_lib._bytecode_filenames(self,files)
return install_lib._bytecode_filenames(self, files)
setup(name="IDLE",
setup(name="IDLEfork",
version = idlever.IDLE_VERSION,
description = "IDLE Fork, the Forked Python IDE",
author = "Guido van Rossum",
author_email = "guido@python.org",
#url =
description = "IDLEfork, the Developmental Python IDE",
author = "Guido van Rossum et. al.",
author_email = "idle-dev@python.org",
url = "https://sourceforge.net/projects/idlefork/",
long_description =
"""IDLE is a Tkinter based IDE for Python. It is written in 100% pure
Python and works both on Windows and Unix. It features a multi-window
text editor with multiple undo, Python colorizing, and many other things,
as well as a Python shell window and a debugger.
"""IDLE is a Tkinter based IDE for Python. It is written in 100% pure Python
and works both on Windows and Unix. It features a multi-window text editor with
multiple undo, Python colorizing, and many other things, as well as a Python
shell window and a debugger.
IDLE Fork is a separate line of development which was initiated by D. Scherer
at CMU as part of Visual Python. It features execution in a separate
process, with a fresh environment for each run. For further details,
refer to idlefork.sourceforge.net.""",
IDLEfork is a separate line of development which was initiated by D. Scherer
at CMU as part of Visual Python. It features execution in a separate process
which is newly initiated for each run. At version 0.9 the RPC was changed to
incorporate code by GvR, which supports the debugger. IDLEfork also
incorporates a GUI configuration utilility. For further details, refer to
idlefork.sourceforge.net.
cmdclass = {'build_py':idle_build_py,
'install_lib':idle_install_lib},
package_dir = {idlelib: package_dir},
packages = [idlelib],
scripts = [os.path.join(package_dir, 'idle')]
""",
cmdclass = {'build_py':IDLE_Builder,
'install_lib':IDLE_Installer},
package_dir = {pkgname: package_dir},
packages = [pkgname],
scripts = [os.path.join(package_dir, idle_name)]
)