From 12a5dd35cd9e40fc9a772bf77a608f5b3b20e983 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Fri, 12 Feb 2021 13:37:20 +0100 Subject: [PATCH] Remove dephell and replace it with poetry --- .github/workflows/check_setup_py.yaml | 13 ++++++----- .github/workflows/pytest.yaml | 2 +- githooks/update_setup_py.sh | 33 +++++++++++++++++++++++---- pyproject.toml | 8 ------- setup.py | 30 ++++++++++++++++++++++++ 5 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 setup.py diff --git a/.github/workflows/check_setup_py.yaml b/.github/workflows/check_setup_py.yaml index 0b5a9731..b512a1b5 100644 --- a/.github/workflows/check_setup_py.yaml +++ b/.github/workflows/check_setup_py.yaml @@ -7,7 +7,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [3.6, 3.7] + python-version: [3.6] runs-on: ubuntu-latest steps: @@ -15,14 +15,15 @@ jobs: - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - - name: Run convert - uses: dephell/dephell_action@master - with: - dephell-env: convert + - uses: abatilo/actions-poetry@v2.0.0 + - name: Run packaging update + run: bash githooks/update_setup_py.sh - name: Show changes on working copy run: git status --porcelain=v1 -uno - name: Show diff on working copy run: git diff - name: Check if setup.py changed run: | - [ -z "$(git status --porcelain=v1 -uno 2>/dev/null)" ] + [ -z "$(git status --porcelain=v1 -uno 2>/dev/null)" ] + - name: Check if setup.py works + run: pip install . diff --git a/.github/workflows/pytest.yaml b/.github/workflows/pytest.yaml index ffb2d7a0..b26fc374 100644 --- a/.github/workflows/pytest.yaml +++ b/.github/workflows/pytest.yaml @@ -29,4 +29,4 @@ jobs: working-directory: ../integration-test-docker-environment - name: Poetry run pytest integration tests - run: poetry run pytest tests \ No newline at end of file + run: poetry run pytest tests diff --git a/githooks/update_setup_py.sh b/githooks/update_setup_py.sh index d3ac28e2..58d8182b 100755 --- a/githooks/update_setup_py.sh +++ b/githooks/update_setup_py.sh @@ -8,15 +8,38 @@ green='\033[0;32m' no_color='\033[0m' grey='\033[0;90m' -echo -e "Update setup.py with dephell convert ${grey}(pre-commit hook)${no_color} " - # Jump to the current project's root directory (the one containing # .git/) -ROOT_DIR=$(git rev-parse --show-cdup) +ROOT_DIR=$(git rev-parse --show-toplevel || echo) +NO_GIT=FALSE +if [ -z "$ROOT_DIR" ] +then + echo "Did not found git repository, using '$PWD' as ROOT_DIR" + NO_GIT=TRUE + ROOT_DIR=$PWD +fi + pushd "$ROOT_DIR" > /dev/null -dephell venv run --env convert -git add setup.py README.rst +echo -e "Generate setup.py ${grey}(pre-commit hook)${no_color}" +if [ -d "dist" ] +then + rm -r "dist" +fi +poetry build > /dev/null +pushd dist > /dev/null +tar_file=$(ls *.tar.gz) +extracted_dir=${tar_file%.tar.gz} +tar -xf $tar_file +cp "$extracted_dir/setup.py" ../setup.py +rm -r "$extracted_dir" +popd > /dev/null + +if [ "$NO_GIT" == "FALSE" ] +then + echo -e "Add generated files ${grey}(pre-commit hook)${no_color}" + git add setup.py +fi popd > /dev/null diff --git a/pyproject.toml b/pyproject.toml index 095236e5..7a40e031 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,11 +24,3 @@ requests = "^2.24.0" [tool.poetry.dev-dependencies] pytest = "^6.1.1" pytest-cov = "^2.10.1" - -[tool.dephell.main] -from = { format = "poetry", path = "pyproject.toml" } -to = { format = "setuppy", path = "setup.py" } - -[tool.dephell.convert] -from = { format = "poetry", path = "pyproject.toml" } -command = "dephell deps convert" \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..6a9bc01d --- /dev/null +++ b/setup.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +from setuptools import setup + +packages = \ +['exasol_bucketfs_utils_python'] + +package_data = \ +{'': ['*']} + +install_requires = \ +['requests>=2.24.0,<3.0.0'] + +setup_kwargs = { + 'name': 'exasol-bucketfs-utils-python', + 'version': '0.1.0', + 'description': 'BucketFS utilities for the Python programming language', + 'long_description': '# BucketFS Utils Python\n\nThis project provides a python library for the Exasol BucketFS system.\n\nFeatures:\n\n* [Uploading a GitHub release to a bucket](#uploading-github-release-to-bucket)\n\n## How to Use It\n\nInstall the package from Github via `pip`:\n \n```\npip install -e git://github.com/exasol/bucketfs-utils-python.git@{ tag name }#egg=exasol-bucketfs-utils-python\n```\n\n## Uploading GitHub Release to Bucket\n\nExample:\n\n```python\nfrom exasol_bucketfs_utils_python.github_release_file_bucketfs_uploader import GithubReleaseFileBucketFSUploader\n\nrelease_uploader = \\\n GithubReleaseFileBucketFSUploader(file_to_download_name="file",\n github_user="user",\n repository_name="repository",\n release_name="latest",\n path_inside_bucket="some/path/")\nrelease_uploader.upload("http://://", "user", "password")\n```\n\n### Run Time Dependencies\n\n| Dependency | Purpose | License |\n|-------------------------------|----------------------------------|--------------------|\n| [Python 3][python] | Python version 3.6.1 and above | PSF |\n| [Requests][requests] | Allows to send HTTP/1.1 requests | Apache License 2.0 |\n\n\n### Test Dependencies\n\n| Dependency | Purpose | License |\n|-------------------------------|-----------------------------------|-------------------|\n| [Pytest][pytest] | Testing framework | MIT |\n| [Pytest Coverage][pytest-cov] | Tests coverage | MIT |\n\n\n\n[python]: https://docs.python.org\n[requests]: https://pypi.org/project/requests/\n\n[pytest]: https://docs.pytest.org/en/stable/\n[pytest-cov]: https://pypi.org/project/pytest-cov/\n', + 'author': 'Torsten Kilias', + 'author_email': 'torsten.kilias@exasol.com', + 'maintainer': None, + 'maintainer_email': None, + 'url': 'https://github.com/exasol/bucketfs-utils-python', + 'packages': packages, + 'package_data': package_data, + 'install_requires': install_requires, + 'python_requires': '>=3.6.1', +} + + +setup(**setup_kwargs)