File: setup.py

package info (click to toggle)
wxwidgets2.8 2.8.7.1-1.1%2Blenny1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 226,072 kB
  • ctags: 277,896
  • sloc: cpp: 1,769,805; xml: 396,717; python: 234,264; ansic: 126,047; makefile: 49,752; sh: 14,235; asm: 284; sql: 263; lex: 194; perl: 139; yacc: 128; pascal: 95; php: 23; haskell: 20; ruby: 20; java: 18; erlang: 17; lisp: 13; tcl: 10; csh: 9; ml: 9; ada: 5
file content (58 lines) | stat: -rw-r--r-- 2,588 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import distutils.command.install_lib
import distutils.command.install_data
import distutils.command.install
import os, string
from distutils.core import setup
from user import home # this gives us the user's home dir on all platforms

class wxaddon_install_lib(distutils.command.install_lib.install_lib):
    """need to change self.install_dir to the actual library dir"""
    def run(self):
        install_cmd = self.get_finalized_command('install')
        self.install_dir = os.path.join(getattr(install_cmd, 'install_purelib'), "wxaddons")
        return distutils.command.install_lib.install_lib.run(self)
        
class wxaddon_install_data(distutils.command.install_data.install_data):
    def run(self):
        self.install_dir = os.path.join(home, ".wxaddons_data", self.distribution.get_name())
        if not os.path.exists(self.install_dir):
            os.makedirs(self.install_dir)
        return distutils.command.install_data.install_data.run(self)

class wxaddon_install(distutils.command.install.install):
    def run(self):
        result = distutils.command.install.install.run(self)
                
        import wx
        config = wx.Config("wxaddons-receipts")
        config.SetPath(self.distribution.get_name())
        config.Write("Version", str(self.distribution.get_version()))
        config.Write("Summary", self.distribution.get_description())
        config.Write("Home-page", self.distribution.get_url())
        
        # NB: Although self.distribution has get_author() and get_author_email()
        # methods, get_contact* returns either author or maintainer, and I think
        # either is suitable for our purposes.
        config.Write("Author", self.distribution.get_contact())
        config.Write("Author-email", self.distribution.get_contact_email())
        config.Write("License", self.distribution.get_license())
        
        keywords = string.join( self.distribution.get_keywords(), ';')
        if keywords:
            config.Write('Keywords', keywords)

        platforms = string.join( self.distribution.get_platforms(), ';')
        if platforms:
            config.Write('Platforms', platforms )

        classifiers = string.join( self.distribution.get_classifiers(), ';')
        if classifiers:
            config.Write('Classifiers', classifiers )

        return result     
        
def wxaddon(**kwargs):
    kwargs['cmdclass'] =  {'install_lib' :    wxaddon_install_lib, 
                           'install' :  wxaddon_install,
                           'install_data' : wxaddon_install_data }
    setup(**kwargs)