diff --git a/.github/workflows/python-tests-compatibility.yml b/.github/workflows/python-tests-compatibility.yml index 364257b..2b49243 100644 --- a/.github/workflows/python-tests-compatibility.yml +++ b/.github/workflows/python-tests-compatibility.yml @@ -18,21 +18,15 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] - lxml-version: ["4.2.6", "4.3.5", "4.4.3", "4.5.2", "4.6.5", "4.7.1", "4.8.0", "4.9.1", "4.9.4", "5.0.1", "5.1.0"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + lxml-version: ["4.3.5", "4.4.3", "4.5.2", "4.6.5", "4.7.1", "4.8.0", "4.9.4", "5.0.1", "5.1.1", "5.2.2", "5.3.2", "5.4.0", "6.0.2"] exclude: - - python-version: 3.9 - lxml-version: 4.2.6 - - python-version: 3.10 - lxml-version: 4.2.6 - python-version: 3.10 lxml-version: 4.3.5 - python-version: 3.10 lxml-version: 4.4.3 - python-version: 3.10 lxml-version: 4.5.2 - - python-version: 3.11 - lxml-version: 4.2.6 - python-version: 3.11 lxml-version: 4.3.5 - python-version: 3.11 @@ -45,8 +39,6 @@ jobs: lxml-version: 4.7.1 - python-version: 3.11 lxml-version: 4.8.0 - - python-version: 3.12 - lxml-version: 4.2.6 - python-version: 3.12 lxml-version: 4.3.5 - python-version: 3.12 @@ -62,8 +54,39 @@ jobs: - python-version: 3.12 lxml-version: 4.8.0 - python-version: 3.12 - lxml-version: 4.9.1 - + lxml-version: 4.9.4 + - python-version: 3.13 + lxml-version: 4.3.5 + - python-version: 3.13 + lxml-version: 4.4.3 + - python-version: 3.13 + lxml-version: 4.4.3 + - python-version: 3.13 + lxml-version: 4.5.2 + - python-version: 3.13 + lxml-version: 4.6.5 + - python-version: 3.13 + lxml-version: 4.7.1 + - python-version: 3.13 + lxml-version: 4.8.0 + - python-version: 3.13 + lxml-version: 4.9.4 + - python-version: 3.14 + lxml-version: 4.3.5 + - python-version: 3.14 + lxml-version: 4.4.3 + - python-version: 3.14 + lxml-version: 4.4.3 + - python-version: 3.14 + lxml-version: 4.5.2 + - python-version: 3.14 + lxml-version: 4.6.5 + - python-version: 3.14 + lxml-version: 4.7.1 + - python-version: 3.14 + lxml-version: 4.8.0 + - python-version: 3.14 + lxml-version: 4.9.4 steps: - uses: actions/checkout@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 443f70f..d5f0b7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [1.11.2] + +### Fixed +- service: fix space in application/http for batch - bpreissler +- model: adding two missing possibilities for ValueListParameter - Jon Friesen ### Removed -- Python 3.7 (long after its EOL) is no longer supported by pyodata. Python 3.8 is now minimal supported version. - Petr Hanak +- Python 3.8 and Python 3.7 are no longer supported by pyodata. Python 3.9 is now minimal supported version. - Petr Hanak ## [1.11.1] @@ -191,6 +196,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## 1.1.1 - First PIP package release [Unreleased]: https://github.com/SAP/python-pyodata/compare/1.11.1...HEAD +[1.11.1]: https://github.com/SAP/python-pyodata/compare/1.11.1...1.11.2 [1.11.1]: https://github.com/SAP/python-pyodata/compare/1.11.0...1.11.1 [1.11.0]: https://github.com/SAP/python-pyodata/compare/1.10.1...1.11.0 [1.10.1]: https://github.com/SAP/python-pyodata/compare/1.10.0...1.10.1 diff --git a/README.md b/README.md index 3a2ddd5..0c368d5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ details. ## Requirements -- [Python >= 3.8](https://www.python.org/downloads/) +- [Python >= 3.9](https://www.python.org/downloads/) ## Download and Installation @@ -90,6 +90,6 @@ Your username is `yourname` and you're submitting a basic bugfix or feature. ## License -Copyright (c) 2023 SAP SE or an SAP affiliate company. All rights reserved. +Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in [the LICENSE file](LICENSE) diff --git a/VERSION b/VERSION index 720c738..ca71766 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.1 +1.11.2 diff --git a/pyodata/v2/model.py b/pyodata/v2/model.py index 7214d8c..be47da6 100644 --- a/pyodata/v2/model.py +++ b/pyodata/v2/model.py @@ -2491,7 +2491,7 @@ def from_etree(target, annotation_node): class ValueHelperParameter: - Direction = Enum('Direction', 'In InOut Out DisplayOnly FilterOnly') + Direction = Enum('Direction', 'In InOut Out DisplayOnly FilterOnly Constant Constants') def __init__(self, direction, local_property_name, list_property_name): super(ValueHelperParameter, self).__init__() @@ -2697,7 +2697,9 @@ def sap_attribute_get_bool(node, attr, default): 'com.sap.vocabularies.Common.v1.ValueListParameterInOut': ValueHelperParameter.Direction.InOut, 'com.sap.vocabularies.Common.v1.ValueListParameterOut': ValueHelperParameter.Direction.Out, 'com.sap.vocabularies.Common.v1.ValueListParameterDisplayOnly': ValueHelperParameter.Direction.DisplayOnly, - 'com.sap.vocabularies.Common.v1.ValueListParameterFilterOnly': ValueHelperParameter.Direction.FilterOnly + 'com.sap.vocabularies.Common.v1.ValueListParameterFilterOnly': ValueHelperParameter.Direction.FilterOnly, + 'com.sap.vocabularies.Common.v1.ValueListParameterConstant': ValueHelperParameter.Direction.Constant, + 'com.sap.vocabularies.Common.v1.ValueListParameterConstants': ValueHelperParameter.Direction.Constants } diff --git a/pyodata/v2/service.py b/pyodata/v2/service.py index 0ed7741..6c1aa3f 100644 --- a/pyodata/v2/service.py +++ b/pyodata/v2/service.py @@ -43,7 +43,7 @@ def encode_multipart(boundary, http_requests): lines.append(f'--{boundary}') if not isinstance(req, MultipartRequest): - lines.extend(('Content-Type: application/http ', 'Content-Transfer-Encoding:binary')) + lines.extend(('Content-Type: application/http', 'Content-Transfer-Encoding:binary')) lines.append('') diff --git a/setup.py b/setup.py index f7edb1b..0d99c5f 100644 --- a/setup.py +++ b/setup.py @@ -59,11 +59,12 @@ def _read(name): 'Intended Audience :: Developers', 'License :: OSI Approved :: Apache Software License', 'Operating System :: OS Independent', - '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', + 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Software Development', 'Topic :: Software Development :: Libraries :: Python Modules',