annotate setup.py @ 179:c4c0efb37187

protocol: add the abilty to trace the protocol between the client and server This is useful when debugging issues with driving hg via hglib where output and error messages can be lost. Call setprotocoltrace with the name of a trace function or None. If the trace function is None no tracing is done. The trace function is called with the direction, the channel-identified and its data.
author Barry A. Scott <barry@barrys-emacs.org>
date Tue, 18 Oct 2016 17:45:17 +0100
parents e0678dfb7aec
children d06b48001662
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
80
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
1 import os, time
66
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
2 from distutils.core import setup
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
3
162
e0678dfb7aec setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents: 160
diff changeset
4 # query Mercurial for version number, or pull from PKG-INFO
80
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
5 version = 'unknown'
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
6 if os.path.isdir('.hg'):
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
7 cmd = "hg id -i -t"
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
8 l = os.popen(cmd).read().split()
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
9 while len(l) > 1 and l[-1][0].isalpha(): # remove non-numbered tags
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
10 l.pop()
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
11 if len(l) > 1: # tag found
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
12 version = l[-1]
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
13 if l[0].endswith('+'): # propagate the dirty status to the tag
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
14 version += '+'
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
15 elif len(l) == 1: # no tag found
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
16 cmd = 'hg parents --template "{latesttag}+{latesttagdistance}-"'
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
17 version = os.popen(cmd).read() + l[0]
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
18 if version.endswith('+'):
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
19 version += time.strftime('%Y%m%d')
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
20 elif os.path.exists('.hg_archival.txt'):
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
21 kw = dict([[t.strip() for t in l.split(':', 1)]
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
22 for l in open('.hg_archival.txt')])
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
23 if 'tag' in kw:
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
24 version = kw['tag']
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
25 elif 'latesttag' in kw:
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
26 version = '%(latesttag)s+%(latesttagdistance)s-%(node).12s' % kw
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
27 else:
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
28 version = kw.get('node', '')[:12]
162
e0678dfb7aec setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents: 160
diff changeset
29 elif os.path.exists('PKG-INFO'):
e0678dfb7aec setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents: 160
diff changeset
30 kw = dict([[t.strip() for t in l.split(':', 1)]
e0678dfb7aec setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents: 160
diff changeset
31 for l in open('PKG-INFO') if ':' in l])
e0678dfb7aec setup: parse PKG-INFO for version information (issue3924)
Peter Elmers <peter.elmers@yahoo.com>
parents: 160
diff changeset
32 version = kw.get('Version', version)
80
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
33
66
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
34 setup(
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
35 name='python-hglib',
80
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
36 version=version,
66
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
37 author='Idan Kamara',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
38 author_email='idankk86@gmail.com',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
39 url='http://selenic.com/repo/python-hglib',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
40 description='Mercurial Python library',
134
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 80
diff changeset
41 long_description=open(os.path.join(os.path.dirname(__file__),
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 80
diff changeset
42 'README')).read(),
160
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
43 classifiers=[
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
44 'Programming Language :: Python',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
45 'Programming Language :: Python :: 2.4',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
46 'Programming Language :: Python :: 2.5',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
47 'Programming Language :: Python :: 2.6',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
48 'Programming Language :: Python :: 2.7',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
49 'Programming Language :: Python :: 3',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
50 'Programming Language :: Python :: 3.4',
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
51
91329df47df5 hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents: 134
diff changeset
52 ],
66
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
53 license='MIT',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
54 packages=['hglib'])