diff --git a/.editorconfig b/.editorconfig index afbf061..b1493ad 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,5 +13,5 @@ indent_size = 4 [*.rst] indent_size = 3 -[.travis.yml] +[*.{yml,yaml,toml}] indent_size = 2 diff --git a/.github/workflows/build-20.04.yml b/.github/workflows/build-20.04.yml new file mode 100644 index 0000000..2d8a2bc --- /dev/null +++ b/.github/workflows/build-20.04.yml @@ -0,0 +1,49 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: CI Build - Python 3.5-3.7 + +on: + push: + branches: [ "master" ] + tags: '**' + pull_request: + branches: [ "master" ] + +jobs: + build: + timeout-minutes: 10 + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + python-version: ["3.5", "3.6", "3.7"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + env: + PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest coverage + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test + run: | + coverage run -m pytest + - name: Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + run: | + pip install coveralls + coveralls diff --git a/.github/workflows/build.yml b/.github/workflows/build-24.04.yml similarity index 76% rename from .github/workflows/build.yml rename to .github/workflows/build-24.04.yml index 826aa59..4c25cf3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build-24.04.yml @@ -1,28 +1,28 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: CI Build +name: CI Build - Python 3.8+ on: push: - branches: '**' + branches: [ "master" ] tags: '**' pull_request: - branches: '**' + branches: [ "master" ] jobs: build: timeout-minutes: 10 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: - python-version: ["2.7", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -34,8 +34,8 @@ jobs: run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=110 --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test run: | coverage run -m pytest diff --git a/.gitignore b/.gitignore index 3f42667..9711698 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.so # Packages +.eggs/ *.egg *.egg-info dist diff --git a/pyproject.toml b/pyproject.toml index a8f43fe..8789351 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,58 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["javaobj"] + +[project] +name = "javaobj-py3" +version = "0.4.4" +description = "Module for serializing and de-serializing Java objects." +readme = "README.md" +license = "Apache-2.0" +authors = [ + { name = "Volodymyr Buell", email = "vbuell@gmail.com" } +] +maintainers = [ + { name = "Thomas Calmant", email = "thomas.calmant@gmail.com" } +] +keywords = ["python", "java", "marshalling", "serialization"] +classifiers = [ + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3.4", + "Programming Language :: Python :: 3.5", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "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", + "Topic :: Software Development :: Libraries :: Python Modules" +] + +dependencies = [ + "enum34; python_version<='3.4'", + "typing; python_version<='3.4'" +] + +[project.optional-dependencies] +test = ["pytest"] + +[project.urls] +Homepage = "https://github.com/tcalmant/python-javaobj" +Issues = "http://github.com/tcalmant/python-javaobj/issues" +Source = "http://github.com/tcalmant/python-javaobj/" + +[tool.hatch.envs.test] +dependencies = ["pytest"] + +[tool.hatch.envs.test.scripts] +run = "pytest tests" + [tool.black] line-length = 79 diff --git a/setup.py b/setup.py index 8a2318b..cf93fb8 100644 --- a/setup.py +++ b/setup.py @@ -70,7 +70,7 @@ def read(fname): license_file="LICENSE", keywords="python java marshalling serialization", packages=["javaobj", "javaobj.v1", "javaobj.v2"], - test_suite="tests.tests", + test_suite="tests", install_requires=[ 'enum34;python_version<="3.4"', 'typing;python_version<="3.4"',