Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move packaging metadata into setup.cfg #7

Merged
merged 5 commits into from
Apr 7, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
dist
/build
/dist
/*.egg-info
/stack_data/version.py
*.pyc
*.pyo
__pycache__
12 changes: 9 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -13,12 +13,18 @@ env:
- STACK_DATA_SLOW_TESTS=1
- COVERALLS_PARALLEL=true

before_install:
- pip install --upgrade coveralls setuptools>=44 setuptools_scm>=3.4.3 pep517

install:
- pip install coveralls
- pip install .[tests]
- python3 -m pep517.build -b .
- ls -l
- export WHLNAME=./dist/stack_data-0.CI-py3-none-any.whl
- mv ./dist/*.whl $WHLNAME
- pip install --upgrade "$WHLNAME[tests]"

script:
- coverage run --include='stack_data/*' -m pytest
- coverage run --branch --include='stack_data/*' -m pytest --junitxml=./rspec.xml
- coverage report -m

after_success:
23 changes: 23 additions & 0 deletions make_release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -eux;

if [ -z "${1+x}" ]; then
set +x
echo Provide a version argument
echo "${0} <major>.<minor>.<patch>";
exit 1;
else
if [[ ${1} =~ ^v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?$ ]]; then
:;
else
echo "Not a valid release tag.";
exit 1;
fi;
fi;

export TAG="v${1}";
git tag "${TAG}";
git push origin master "${TAG}";
rm -rf ./build ./dist;
python3 -m pep517.build -b .;
twine upload ./dist/*.whl;
7 changes: 7 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[build-system]
requires = ["setuptools>=44", "wheel", "setuptools_scm[toml]>=3.4.3"]
build-backend = "setuptools.build_meta"

[tool.setuptools_scm]
write_to = "stack_data/version.py"
write_to_template = "__version__ = '{version}'\n"
28 changes: 28 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[metadata]
name = stack_data
author = Alex Hall
author_email = alex.mojaki@gmail.com
license = MIT
description = Extract data from python stack frames and tracebacks for informative displays
url = http://github.com/alexmojaki/stack_data
long_description = file: README.md
long_description_content_type = text/markdown
classifiers =
Intended Audience :: Developers
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
License :: OSI Approved :: MIT License
Operating System :: OS Independent
Topic :: Software Development :: Debuggers

[options]
packages = stack_data
install_requires = executing; asttokens; pure_eval
setup_requires = setuptools>=44; wheel; setuptools_scm[toml]>=3.4.3
include_package_data = True
tests_require = pytest; typeguard; pygments

[options.extras_require]
tests = pytest; typeguard; pygments; pep517; littleutils
63 changes: 2 additions & 61 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,63 +1,4 @@
import os
import re
from io import open

from setuptools import setup

package = 'stack_data'
dirname = os.path.dirname(__file__)


def file_to_string(*path):
with open(os.path.join(dirname, *path), encoding='utf8') as f:
return f.read()


# __version__ is defined inside the package, but we can't import
# it because it imports dependencies which may not be installed yet,
# so we extract it manually
contents = file_to_string(package, '__init__.py')
__version__ = re.search(r"__version__ = '([.\d]+)'", contents).group(1)

install_requires = [
'executing',
'asttokens',
'pure_eval',
]


tests_require = [
'pytest',
'typeguard',
'pygments',
'littleutils',
]

setup(
name=package,
version=__version__,
description="Extract data from python stack frames and tracebacks for informative displays",
# long_description=file_to_string('README.md'),
# long_description_content_type='text/markdown',
url='http://github.com/alexmojaki/' + package,
author='Alex Hall',
author_email='alex.mojaki@gmail.com',
license='MIT',
include_package_data=True,
packages=[package],
install_requires=install_requires,
tests_require=tests_require,
extras_require={
'tests': tests_require,
},
classifiers=[
'Intended Audience :: Developers',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Topic :: Software Development :: Debuggers',
],
)
if __name__ == "__main__":
setup()
11 changes: 8 additions & 3 deletions stack_data/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
__version__ = '0.0.6'

from .core import Source, FrameInfo, markers_from_ranges, Options, LINE_GAP, Line, Variable, RangeInLine, RepeatedFrames, MarkerInLine, style_with_executing_node
from .core import Source, FrameInfo, markers_from_ranges, Options, LINE_GAP, Line, Variable, RangeInLine, \
RepeatedFrames, MarkerInLine, style_with_executing_node
from .formatting import Formatter

try:
from .version import __version__
except ImportError:
# version.py is auto-generated with the git tag when building
__version__ = "???"