diff --git a/README.md b/README.md new file mode 100644 index 00000000..c1aa9fa5 --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# Zeep: Python SOAP client +[![Documentation Status](https://readthedocs.org/projects/python-zeep/badge/?version=latest)](https://readthedocs.org/projects/python-zeep/) +[![Python Tests](https://github.com/mvantellingen/python-zeep/workflows/Python%20Tests/badge.svg)](https://github.com/mvantellingen/python-zeep/actions?query=workflow%3A%22Python+Tests%22) +[![Coverage Status](http://codecov.io/github/mvantellingen/python-zeep/coverage.svg?branch=master)](http://codecov.io/github/mvantellingen/python-zeep?branch=master) +[![PyPI version](https://img.shields.io/pypi/v/zeep.svg)](https://pypi.python.org/pypi/zeep/) + +A Python SOAP client + +## Highlights: +- Compatible with Python 3.9, 3.10, 3.11, 3.12, 3.13 and PyPy3 +- Built on top of lxml, requests, and httpx +- Support for Soap 1.1, Soap 1.2, and HTTP bindings +- Support for WS-Addressing headers +- Support for WSSE (UserNameToken / x.509 signing) +- Support for asyncio using the httpx module +- Experimental support for XOP messages + +Please see the [documentation](http://docs.python-zeep.org/) for more information. + +## Status + +> [!NOTE] +> I consider this library to be stable. Since no new developments happen around the SOAP specification, it won't be updated that much. Good PRs which fix bugs are always welcome, however. + + +## Installation + +```bash +pip install zeep +``` + +Zeep uses the lxml library for parsing XML. See [lxml installation requirements](https://lxml.de/installation.html). + +## Usage + +```python +from zeep import Client + +client = Client('tests/wsdl_files/example.rst') +client.service.ping() +``` + +To quickly inspect a WSDL file, use: + +```bash +python -m zeep +``` + +Please see the [documentation](http://docs.python-zeep.org) for more information. + +# Support + +If you want to report a bug, please first read [the bug reporting guidelines](http://docs.python-zeep.org/en/master/reporting_bugs.html). + +Please only report bugs, not support requests, to the GitHub issue tracker. diff --git a/README.rst b/README.rst deleted file mode 100644 index b045b66d..00000000 --- a/README.rst +++ /dev/null @@ -1,82 +0,0 @@ -======================== -Zeep: Python SOAP client -======================== - -A Python SOAP client - -Highlights: - * Compatible with Python 3.9, 3.10, 3.11, 3.12, 3.13 and PyPy3 - * Build on top of lxml, requests and httpx - * Support for Soap 1.1, Soap 1.2 and HTTP bindings - * Support for WS-Addressing headers - * Support for WSSE (UserNameToken / x.509 signing) - * Support for asyncio using the httpx module - * Experimental support for XOP messages - - -Please see for more information the documentation at -http://docs.python-zeep.org/ - - -.. start-no-pypi - -Status ------- - - -**I consider this library to be stable. Since no new developments happen around the SOAP specification it won't be updated that much. Good PR's which fix bugs are always welcome however.** - - -.. image:: https://readthedocs.org/projects/python-zeep/badge/?version=latest - :target: https://readthedocs.org/projects/python-zeep/ - -.. image:: https://github.com/mvantellingen/python-zeep/workflows/Python%20Tests/badge.svg - :target: https://github.com/mvantellingen/python-zeep/actions?query=workflow%3A%22Python+Tests%22 - -.. image:: http://codecov.io/github/mvantellingen/python-zeep/coverage.svg?branch=master - :target: http://codecov.io/github/mvantellingen/python-zeep?branch=master - -.. image:: https://img.shields.io/pypi/v/zeep.svg - :target: https://pypi.python.org/pypi/zeep/ - -.. end-no-pypi - -Installation ------------- - -.. code-block:: bash - - pip install zeep - -Note that the latest version to support Python 2.7, 3.3, 3.4 and 3.5 is Zeep -3.4, install via `pip install zeep==3.4.0` - -Zeep uses the lxml library for parsing xml. See -https://lxml.de/installation.html for the installation requirements. - -Usage ------ -.. code-block:: python - - from zeep import Client - - client = Client('tests/wsdl_files/example.rst') - client.service.ping() - - -To quickly inspect a WSDL file use:: - - python -m zeep - - -Please see the documentation at http://docs.python-zeep.org for more -information. - - -Support -======= - -If you want to report a bug then please first read -http://docs.python-zeep.org/en/master/reporting_bugs.html - -Please only report bugs and not support requests to the GitHub issue tracker. diff --git a/pyproject.toml b/pyproject.toml index 182de806..dc9a09e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,61 @@ +[project] +name = "zeep" +version = "4.2.1" +description = "A Python SOAP client" +readme = "README.md" +license = { text = "MIT" } +authors = [ + { name = "Michael van Tellingen", email = "michaelvantellingen@gmail.com" } +] +requires-python = ">=3.8" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "License :: OSI Approved :: MIT License", + "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 :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", +] +dependencies = [ + "attrs>=17.2.0", + "isodate>=0.5.4", + "lxml>=4.6.0", + "platformdirs>=1.4.0", + "requests>=2.7.0", + "requests-toolbelt>=0.7.1", + "requests-file>=1.5.1", + "pytz", +] + +[project.urls] +Repository = "https://github.com/mvantellingen/python-zeep" +Documentation = "https://docs.python-zeep.org" +Changelog = "https://github.com/mvantellingen/python-zeep/blob/main/CHANGES" + +[project.optional-dependencies] +docs = ["sphinx>=1.4.0"] +test = [ + "coverage[toml]==7.6.2", + "freezegun==1.5.1", + "pretend==1.0.9", + "pytest-cov==5.0.0", + "pytest-httpx", + "pytest-asyncio", + "pytest==8.3.3", + "requests_mock==1.12.1", + # Linting + "isort==5.13.2", + "flake8==7.1.1", + "flake8-blind-except==0.2.1", + "flake8-debugger==4.1.2", + "flake8-imports==0.1.1", +] +async = ["httpx>=0.15.0"] +xmlsec = ["xmlsec>=0.6.1"] + [build-system] requires = ["setuptools>=40.6.0", "wheel"] build-backend = "setuptools.build_meta" @@ -31,3 +89,6 @@ markers = [ "requests", "network: test case requires network connection", ] + +[tool.flake8] +max-line-length = 99 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 61d90815..00000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length = 99 diff --git a/setup.py b/setup.py deleted file mode 100755 index b0aa1e49..00000000 --- a/setup.py +++ /dev/null @@ -1,86 +0,0 @@ -import re - -from setuptools import setup - -install_requires = [ - "attrs>=17.2.0", - "isodate>=0.5.4", - "lxml>=4.6.0", - "platformdirs>=1.4.0", - "requests>=2.7.0", - "requests-toolbelt>=0.7.1", - "requests-file>=1.5.1", - "pytz", -] - -docs_require = [ - "sphinx>=1.4.0", -] - -async_require = ["httpx>=0.15.0"] - -xmlsec_require = [ - "xmlsec>=0.6.1", -] - -tests_require = [ - "coverage[toml]==7.6.2", - "freezegun==1.5.1", - "pretend==1.0.9", - "pytest-cov==5.0.0", - "pytest-httpx", - "pytest-asyncio", - "pytest==8.3.3", - "requests_mock==1.12.1", - # Linting - "isort==5.13.2", - "flake8==7.1.1", - "flake8-blind-except==0.2.1", - "flake8-debugger==4.1.2", - "flake8-imports==0.1.1", -] - - -with open("README.rst") as fh: - long_description = re.sub( - "^.. start-no-pypi.*^.. end-no-pypi", "", fh.read(), flags=re.M | re.S - ) - -setup( - name="zeep", - version="4.2.1", - description="A Python SOAP client", - long_description=long_description, - author="Michael van Tellingen", - author_email="michaelvantellingen@gmail.com", - url="https://docs.python-zeep.org", - project_urls={ - "Source": "https://github.com/mvantellingen/python-zeep", - }, - python_requires=">=3.9", - install_requires=install_requires, - tests_require=tests_require, - extras_require={ - "docs": docs_require, - "test": tests_require, - "async": async_require, - "xmlsec": xmlsec_require, - }, - entry_points={}, - package_dir={"": "src"}, - packages=["zeep"], - include_package_data=True, - license="MIT", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "License :: OSI Approved :: MIT License", - "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 :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - ], - zip_safe=False, -)