Mercurial > public > mercurial-scm > python-hglib
annotate setup.py @ 227:484b56ac4aec default tip
hglib: cat accepts a template argument
author | Julien Cristau <jcristau@mozilla.com> |
---|---|
date | Mon, 17 Jun 2024 17:17:58 +0200 |
parents | 7b6ea46ea111 |
children |
rev | line source |
---|---|
226
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
1 import os, time, subprocess |
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'): |
226
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
7 cmd = ["hg", "id", "-i", "-t"] |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
8 l = subprocess.check_output(cmd, universal_newlines=True).split() |
80
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 |
226
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
16 cmd1 = ['hg', 'parents', '--template', '{latesttag}'] |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
17 cmd2 = ['hg', 'parents', '--template', '{latesttagdistance}'] |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
18 version = "%s.dev%s" % ( |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
19 subprocess.check_output(cmd1, universal_newlines=True), |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
20 subprocess.check_output(cmd2, universal_newlines=True) |
7b6ea46ea111
setup.py: clean up use of os.popen
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
223
diff
changeset
|
21 ) |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
22 if version.endswith('+'): |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
23 version += time.strftime('%Y%m%d') |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
24 elif os.path.exists('.hg_archival.txt'): |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
25 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
|
26 for l in open('.hg_archival.txt')]) |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
27 if 'tag' in kw: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
28 version = kw['tag'] |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
29 elif 'latesttag' in kw: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
30 version = '%(latesttag)s+%(latesttagdistance)s-%(node).12s' % kw |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
31 else: |
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
32 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
|
33 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
|
34 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
|
35 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
|
36 version = kw.get('Version', version) |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
37 |
66 | 38 setup( |
39 name='python-hglib', | |
80
009e7858a93b
setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents:
66
diff
changeset
|
40 version=version, |
66 | 41 author='Idan Kamara', |
42 author_email='idankk86@gmail.com', | |
186
d06b48001662
package: update package url
Boris Feld <boris.feld@octobus.net>
parents:
162
diff
changeset
|
43 url='https://www.mercurial-scm.org/wiki/PythonHglibs', |
66 | 44 description='Mercurial Python library', |
134 | 45 long_description=open(os.path.join(os.path.dirname(__file__), |
46 'README')).read(), | |
160
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
47 classifiers=[ |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
48 'Programming Language :: Python', |
223
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
49 'Programming Language :: Python :: 3.6', |
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
50 'Programming Language :: Python :: 3.7', |
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
51 'Programming Language :: Python :: 3.8', |
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
52 'Programming Language :: Python :: 3.9', |
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
53 'Programming Language :: Python :: 3.10', |
3f9dd44be8c2
hglib setup.py: clearly indicate supported Python versions
Mathias De Mare <mathias.de_mare@nokia.com>
parents:
220
diff
changeset
|
54 'Programming Language :: Python :: 3.11', |
160
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
55 |
91329df47df5
hglib: declare hglib's Python version support (issue4520)
Brett Cannon <brett@python.org>
parents:
134
diff
changeset
|
56 ], |
66 | 57 license='MIT', |
58 packages=['hglib']) |