Mercurial > public > mercurial-scm > python-hglib
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 |
rev | line source |
---|---|
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
1 import os, time |
66 | 2 from distutils.core import setup |
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 | 34 setup( |
35 name='python-hglib', | |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
36 version=version, |
66 | 37 author='Idan Kamara', |
38 author_email='idankk86@gmail.com', | |
39 url='http://selenic.com/repo/python-hglib', | |
40 description='Mercurial Python library', | |
134 | 41 long_description=open(os.path.join(os.path.dirname(__file__), |
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 | 53 license='MIT', |
54 packages=['hglib']) |