Distutils/Proposals/SetupClass

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

Setup as a Class not a procedure

—David Lyon

Let’s modernise setup and make it Object Oriented.

This will make it more user friendly and easier to learn and use.

To do this, we’ll need to:

1) Extend setup.cfg to hold more/all-of the metadata

2) Turn ‘setup’ into a class (rather than a procedure)

3) Provide member information:

  • destination directory (self.destination?).

  • self.os_name - Operating system.

  • self.window_manager - Window manager.

  • self.scripts - location of script directories.

  • self.data_dir - location of data directories.

  • self.doc_dir - location of docs directories.

  • self.desktop_shortcuts - an object for adding shortcuts.

  • self.program_shortcuts - an object for adding shortcuts.

  • self.packages -list of python packages already installed

  • self.web_environment - information about the web environment

4) self.pre_setup() - A method run before setup

  • This method can read member properties and do pre-setup

    • initialisation.

  • When the “self.”* properties are then all adjusted

    • the code can proceed to the ‘self.setup()’ method where the actual install can be done.

5) self.post_setup() - A method for post-install configuration

  • This then gives the application a chance to do post

    • setup initialisation.

  • Examples are modifying attributes, registering

    • libraries, generating documentation…