Skip to content

Commit

Permalink
fix: Add name and version to setup.py for older version of pip (#109)
Browse files Browse the repository at this point in the history
  • Loading branch information
DenverCoder1 authored Aug 29, 2023
1 parent 92b90b4 commit c4ef719
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 5 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "table2ascii"
version = "1.1.1"
version = "1.1.2"
authors = [{name = "Jonah Lawrence", email = "[email protected]"}]
description = "Convert 2D Python lists into Unicode/ASCII tables"
readme = "README.md"
Expand Down
52 changes: 48 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,51 @@
# /usr/bin/env python
import re

from setuptools import setup

setup(
packages=["table2ascii"],
package_data={"table2ascii": ["py.typed"]},
)

def get_name():
name = ""
with open("pyproject.toml") as f:
name = re.search(r'^name = ["\']([^"\']*)["\']', f.read(), re.M)
if not name:
raise RuntimeError("name is not set")
return name.group(1)


def get_version():
version = ""
with open("pyproject.toml") as f:
version = re.search(r'^version = ["\']([^"\']*)["\']', f.read(), re.M)
if not version:
raise RuntimeError("version is not set")
return version.group(1)


def get_dependencies():
with open("pyproject.toml") as f:
dependency_match = re.search(r"^dependencies = \[([\s\S]*?)\]", f.read(), re.M)
if not dependency_match or not dependency_match.group(1):
return []
return [
dependency.strip().strip(",").strip('"')
for dependency in dependency_match.group(1).split("\n")
if dependency
]


try:
# check if pyproject.toml can be used to install dependencies and set the version
setup(
packages=[get_name()],
package_data={get_name(): ["py.typed"]},
)
except Exception:
# fallback for old versions of pip/setuptools
setup(
name=get_name(),
packages=[get_name()],
package_data={get_name(): ["py.typed"]},
version=get_version(),
install_requires=get_dependencies(),
)

0 comments on commit c4ef719

Please sign in to comment.