annotate setup.py @ 189:8054e925d9c7

client: kill the server on unrecoverable communication errors (issue5516) Once an unrecoverable communication error occurs between the client and server, it's no longer safe to send further commands to the same server. On Windows, attempting to do so is known to cause lockups and memory leaks. Close the client and kill the server when an such an error occurs. This way, any further commands will fail gracefully with ValueError until the client is reopened.
author Gábor Stefanik <gabor.stefanik@nng.com>
date Mon, 21 Aug 2017 17:02:14 +0200
parents d06b48001662
children ae6427d1c8f7
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',
186
d06b48001662 package: update package url
Boris Feld <boris.feld@octobus.net>
parents: 162
diff changeset
39 url='https://www.mercurial-scm.org/wiki/PythonHglibs',
66
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'])