On Mon, 2011-05-09 at 13:32 -0400, MacDonald, Stuart wrote:
> From: On Behalf Of Martin Zibricky
> > Sent: May 9, 2011 4:53 AM
> > MacDonald, Stuart píše v Ne 08. 05. 2011 v 23:32 -0400:
> > > - Add hooks for processing each file as it is found by the
> > > ImportTracker, although I think this is an mf.py item
> >
> > by 'hooks' you mean import hooks?
>
> No, I meant regular old hooks; a general example is pre- and
> post-install hooks in installation scripts.
>
> > Is there a ticket for that or are you referencing any bug or discussion?
>
> No and no.
>
> > Could you please provide more details?
>
> Okay. I do this (manually, in my own script):
>
> ============================================================
> ver_table = StringTable('040904b0')
> # The replace makes versionInfo not choke on embedded single quotes
> later on
> ver_table.kids.append(StringStruct('Python',
> sys.version_info.__str__().replace("'", '"')))
> ver_table.kids.append(StringStruct('PyInstaller', pyinstaller_version))
>
> svn = pysvn.Client()
>
> finder = mf.ImportTracker()
> finder.analyze_script(script_name)
>
> keys = finder.modules.keys()
> keys.sort()
> for key in keys:
> m = finder.modules[key]
> if m and m.__file__:
> file = m.__file__
> # mf only keeps the compiled source name; this
> unmangling is based on the operation of mf.pyco()
> if file.endswith(('.pyc', '.pyo')):
> file = file[:-1]
> try:
> entry = svn.info(file)
> except:
> entry = None
> if not entry is None:
> basefile = os.path.basename(file)
> ver_table.kids.append(StringStruct(basefile,
> "%d, %d" % (entry.revision.number, entry.commit_revision.number)))
> if basefile == script_name:
> script_revision = entry.revision.number
> script_commit =
> entry.commit_revision.number
> [later in the script...]
> # invoke pyinstaller
> os.system('python ' + os.path.join(pyinstaller_path, 'Configure.py'))
> os.system('python ' + os.path.join(pyinstaller_path, 'Makespec.py') + '
> --version=' + version_out + ' --out=' + script_nym + ' ' + script_name)
> os.system('python ' + os.path.join(pyinstaller_path, 'Build.py') + ' -y
> ' + os.path.join(script_nym, script_nym + '.spec'))
> ============================================================
>
> So I've manually invoked ImportTracker, retrieved the svn revisions of
> files under source control, output that to a versionInfo file, and
> then invoked PyInstaller. So import tracking is run twice.
>
> What I wanted to do is define a function for outputting svn revisions,
> pass that function to ImportTracker and have ImportTracker run my
> function on every file it finds, the same way I do above. The
> difference is this method is one pass of import tracking, not two.
Can you please explain why can't you simply use a custom .spec file?
BTW what you are doing above can probably be achieved more easily by
spawning "svnversion -c".
--
Giovanni Bajo :: [email protected]
Develer S.r.l. :: http://www.develer.com
My Blog: http://giovanni.bajo.it
Last post: Compile-time Function Execution in D
--
You received this message because you are subscribed to the Google Groups
"PyInstaller" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/pyinstaller?hl=en.