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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
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'):
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
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
38 setup(
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
39 name='python-hglib',
80
009e7858a93b setup: add version number lookup
Matt Mackall <mpm@selenic.com>
parents: 66
diff changeset
40 version=version,
66
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
41 author='Idan Kamara',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
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
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
44 description='Mercurial Python library',
134
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 80
diff changeset
45 long_description=open(os.path.join(os.path.dirname(__file__),
1b47146a4a2c style: fix long lines
Matt Mackall <mpm@selenic.com>
parents: 80
diff changeset
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
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
57 license='MIT',
358fd5c84270 add a setup.py
Idan Kamara <idankk86@gmail.com>
parents:
diff changeset
58 packages=['hglib'])