Files
@ 3dabbbc9da89
Branch filter:
Location: kallithea/setup.py - annotation
3dabbbc9da89
4.7 KiB
text/x-python
setup: use importlib instead of pkg_resources
Address warnings like:
UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Address warnings like:
UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | aa6f17a53b49 266a3cbc0302 9382e88eae22 0a277465fddf f3fab7b124f2 65c27fd21769 0a277465fddf 0a277465fddf 0a277465fddf 0a277465fddf 0a277465fddf 9382e88eae22 3adaa1a90420 3adaa1a90420 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 5725fa4cfecd 5725fa4cfecd 5725fa4cfecd 5725fa4cfecd 9382e88eae22 a553bc3a3d0e 9382e88eae22 9382e88eae22 9382e88eae22 5725fa4cfecd 5725fa4cfecd 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 9382e88eae22 3a1cf70e0f42 2d7a94f3eaae 9382e88eae22 342c42bc10d9 8e0efe7b3b10 edcd5eafc890 b72e8b7c33ae 55fc0bcce916 7a953fc22c99 55fc0bcce916 390b99920d02 edcd5eafc890 4d0f38715146 ed59d8a2588f edcd5eafc890 ed59d8a2588f 1d1f5598702d 7a953fc22c99 342c42bc10d9 edcd5eafc890 4d0f38715146 4d0f38715146 7a953fc22c99 edcd5eafc890 7a953fc22c99 7a953fc22c99 7a953fc22c99 edcd5eafc890 ed59d8a2588f 7a953fc22c99 f254dd2f9dcb 7433775cc53b 7433775cc53b 7a953fc22c99 ff6c3e285166 81e6b5e62a2c 9382e88eae22 9382e88eae22 880a39e5d8df 880a39e5d8df 880a39e5d8df fc6063e6630b cc48c1541c7e fc6063e6630b fc6063e6630b fc6063e6630b fc6063e6630b fc6063e6630b 3adaa1a90420 cc48c1541c7e fc6063e6630b a60cd29ba7e2 b0e2c949c34b 2afa6b8c2ade 2afa6b8c2ade 65c27fd21769 65c27fd21769 24c0d584ba86 326a9336fbe5 faad9dd06b58 266a3cbc0302 266a3cbc0302 7e5f8c12a3fc 266a3cbc0302 266a3cbc0302 266a3cbc0302 266a3cbc0302 2afa6b8c2ade 266a3cbc0302 65c27fd21769 7c732f2047f8 d69aa464f373 266a3cbc0302 27c4ad3e584f 27c4ad3e584f 266a3cbc0302 ad2e97c6f17f 2642f128ad46 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 c79e4f89bfd3 a922e91a4f02 564e40829f80 a922e91a4f02 24c0d584ba86 9382e88eae22 ad2e97c6f17f 2642f128ad46 2d7a94f3eaae f4807acf643d 9382e88eae22 3315e9263a53 880a39e5d8df 9382e88eae22 2642f128ad46 a60cd29ba7e2 2642f128ad46 65c27fd21769 20dc7a5eb748 7e5f8c12a3fc 564e40829f80 564e40829f80 0e6035a85980 564e40829f80 20dc7a5eb748 20dc7a5eb748 7ac09514a178 9793473d74be 9793473d74be e4b9a1d1fea1 7ac09514a178 564e40829f80 3a02b678b5e7 564e40829f80 564e40829f80 | #!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import platform
import re
import sys
import setuptools
# monkey patch setuptools to use distutils owner/group functionality
from setuptools.command import sdist
if sys.version_info < (3, 9):
raise Exception('Kallithea requires Python 3.9 or later')
here = os.path.abspath(os.path.dirname(__file__))
def _get_meta_var(name, data, callback_handler=None):
matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
if matches:
s = eval(matches.groups()[0])
if callable(callback_handler):
return callback_handler(s)
return s
_meta = open(os.path.join(here, 'kallithea', '__init__.py'), 'r')
_metadata = _meta.read()
_meta.close()
def callback(V):
return '.'.join(map(str, V[:3])) + '.'.join(V[3:])
__version__ = _get_meta_var('VERSION', _metadata, callback)
__license__ = _get_meta_var('__license__', _metadata)
__author__ = _get_meta_var('__author__', _metadata)
__url__ = _get_meta_var('__url__', _metadata)
# defines current platform
__platform__ = platform.system()
is_windows = __platform__ in ['Windows']
requirements = [
"alembic >= 1.0.10, < 1.15",
"gearbox >= 0.1.0, < 1",
"waitress >= 0.8.8, < 3.1",
"WebOb >= 1.8, < 1.9",
"backlash >= 0.1.2, < 1",
"TurboGears2 >= 2.4, < 2.6",
"tgext.routes >= 0.2.0, < 1",
"Beaker >= 1.10.1, < 2",
"WebHelpers2 >= 2.0, < 2.2",
"FormEncode >= 2.0, < 2.2",
"SQLAlchemy >= 1.2.9, < 1.4", # TODO: Upgrade to 1.4 or 2 and fix code
"Mako >= 0.9.1, < 1.4",
"Pygments >= 2.2.0, < 2.8", # TODO: Upgrade and update tests
"Whoosh >= 2.7.1, < 2.8",
"celery >= 5, < 5.6",
"Babel >= 1.3, < 2.18",
"python-dateutil >= 2.1.0, < 2.10",
"Markdown >= 3.0, < 3.2", # TODO: Upgrade and update tests
"docutils >= 0.12, < 0.22",
"URLObject >= 2.3.4, < 3.1",
"Routes >= 2.0, < 2.6",
"dulwich >= 0.19.0, < 0.25",
"mercurial >= 5.2, < 7.2",
"decorator >= 4.2.1, < 5.3",
"Paste >= 2.0.3, < 3.11",
"bleach >= 3.2, < 5", # TODO: Upgrade and fix TypeError: clean() got an unexpected keyword argument 'styles'
"Click >= 7.0, < 8.4",
"ipaddr >= 2.2.0, < 2.3",
"paginate >= 0.5, < 0.6",
"paginate_sqlalchemy >= 0.3.0, < 0.4",
"bcrypt >= 3.1.0, < 5.1",
"pip >= 20.0, < 24.1",
"chardet >= 3",
]
dependency_links = [
]
classifiers = [
'Development Status :: 4 - Beta',
'Environment :: Web Environment',
'Framework :: Pylons',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU General Public License (GPL)',
'Operating System :: OS Independent',
'Programming Language :: Python :: 3.13',
'Topic :: Software Development :: Version Control',
]
# additional files from project that goes somewhere in the filesystem
# relative to sys.prefix
data_files = []
description = ('Kallithea is a fast and powerful management tool '
'for Mercurial and Git with a built in push/pull server, '
'full text search and code-review.')
keywords = ' '.join([
'kallithea', 'mercurial', 'git', 'code review',
'repo groups', 'ldap', 'repository management', 'hgweb replacement',
'hgwebdir', 'gitweb replacement', 'serving hgweb',
])
# long description
README_FILE = 'README.rst'
try:
long_description = open(README_FILE).read()
except IOError as err:
sys.stderr.write(
"[WARNING] Cannot find file specified as long_description (%s): %s\n"
% (README_FILE, err)
)
long_description = description
sdist_org = sdist.sdist
class sdist_new(sdist_org):
def initialize_options(self):
sdist_org.initialize_options(self)
self.owner = self.group = 'root'
sdist.sdist = sdist_new
packages = setuptools.find_packages(exclude=['ez_setup'])
setuptools.setup(
name='Kallithea',
version=__version__,
description=description,
long_description=long_description,
keywords=keywords,
license=__license__,
author=__author__,
author_email='kallithea@sfconservancy.org',
dependency_links=dependency_links,
url=__url__,
install_requires=requirements,
classifiers=classifiers,
data_files=data_files,
packages=packages,
include_package_data=True,
message_extractors={'kallithea': [
('**.py', 'python', None),
('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
('public/**', 'ignore', None)]},
zip_safe=False,
entry_points="""
[console_scripts]
kallithea-api = kallithea.bin.kallithea_api:main
kallithea-gist = kallithea.bin.kallithea_gist:main
kallithea-cli = kallithea.bin.kallithea_cli:cli
[paste.app_factory]
main = kallithea.config.application:make_app
""",
)
|