Skip to content

Commit

Permalink
apacheGH-37929: [Python] begin moving static settings to pyproject.toml
Browse files Browse the repository at this point in the history
  • Loading branch information
anjakefala committed Apr 24, 2024
1 parent 72d20ad commit 40dd453
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 61 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ jobs:
shell: bash
run: |
gem install test-unit
pip install "cython>=0.29.31" setuptools six pytest jira
pip install "cython>=0.29.31" setuptools six pytest jira setuptools-scm
- name: Run Release Test
env:
ARROW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
50 changes: 48 additions & 2 deletions python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,53 @@ requires = [
# continue using oldest-support-numpy.
"oldest-supported-numpy>=0.14; python_version<'3.9'",
"numpy>=1.25; python_version>='3.9'",
"setuptools_scm",
"setuptools >= 40.1.0",
# configuring setuptools_scm in pyproject.toml requires
# versions released after 2022
"setuptools_scm[toml]>=8",
"setuptools>=64",
"wheel"
]
build-backend = "setuptools.build_meta"

[project]
name = "pyarrow"
dynamic = ["version"]
requires-python = ">=3.8"
description = "Python library for Apache Arrow"
readme = {file = "README.md", content-type = "text/markdown"}
license = {text = "Apache Software License"}
classifiers = [
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Langauge :: Python :: 3.12',
]
maintainers = [
{name = "Apache Arrow Developers", email = "dev@arrow.apache.org"}
]

[project.urls]
Homepage = "https://arrow.apache.org/"
Documentation = "https://arrow.apache.org/docs/python"
Repository = "https://github.com/apache/arrow"
Issues = "https://github.com/apache/arrow/issues"
Changelog = "https://github.com/apache/arrow/blob/main/CHANGELOG.md"

[tool.setuptools]
zip-safe=false
include-package-data=true

[tool.setuptools.packages.find]
where = ["."]

[tool.setuptools.package-data]
pyarrow = ["*.pxd", "*.pyx", "includes/*.pxd"]

[tool.setuptools_scm]
root = '..'
version_file = 'pyarrow/_generated_version.py'
version_scheme = 'guess-next-dev'
relative_to = "pyproject.toml"
git_describe_command = 'git describe --dirty --tags --long --match "apache-arrow-[0-9]*.*"'
58 changes: 0 additions & 58 deletions python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,31 +421,6 @@ def get_outputs(self):
default_version.replace('-SNAPSHOT', 'a0')


# See https://github.com/pypa/setuptools_scm#configuration-parameters
scm_version_write_to_prefix = os.environ.get(
'SETUPTOOLS_SCM_VERSION_WRITE_TO_PREFIX', setup_dir)


def parse_git(root, **kwargs):
"""
Parse function for setuptools_scm that ignores tags for non-C++
subprojects, e.g. apache-arrow-js-XXX tags.
"""
from setuptools_scm.git import parse
kwargs['describe_command'] =\
'git describe --dirty --tags --long --match "apache-arrow-[0-9]*.*"'
return parse(root, **kwargs)


def guess_next_dev_version(version):
if version.exact:
return version.format_with('{tag}')
else:
def guess_next_version(tag_version):
return default_version.replace('-SNAPSHOT', '')
return version.format_next_version(guess_next_version)


with open('README.md') as f:
long_description = f.read()

Expand Down Expand Up @@ -480,47 +455,14 @@ def has_ext_modules(foo):


setup(
name='pyarrow',
packages=packages,
zip_safe=False,
package_data={'pyarrow': ['*.pxd', '*.pyx', 'includes/*.pxd']},
include_package_data=True,
exclude_package_data=exclude_package_data,
distclass=BinaryDistribution,
# Dummy extension to trigger build_ext
ext_modules=[Extension('__dummy__', sources=[])],
cmdclass={
'build_ext': build_ext
},
use_scm_version={
'root': os.path.dirname(setup_dir),
'parse': parse_git,
'write_to': os.path.join(scm_version_write_to_prefix,
'pyarrow/_generated_version.py'),
'version_scheme': guess_next_dev_version
},
setup_requires=['setuptools_scm', 'cython >= 0.29.31'] + setup_requires,
install_requires=install_requires,
tests_require=['pytest', 'pandas', 'hypothesis'],
python_requires='>=3.8',
description='Python library for Apache Arrow',
long_description=long_description,
long_description_content_type='text/markdown',
classifiers=[
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
],
license='Apache License, Version 2.0',
maintainer='Apache Arrow Developers',
maintainer_email='dev@arrow.apache.org',
test_suite='pyarrow.tests',
url='https://arrow.apache.org/',
project_urls={
'Documentation': 'https://arrow.apache.org/docs/python',
'Source': 'https://github.com/apache/arrow',
},
)

0 comments on commit 40dd453

Please sign in to comment.