Oh jeez, SOAP and WSDL, blast from the past.
Between php and Python, definitely Python.
See this library: https://github.com/rayrapetyan/flask-spyne
Looking at the spec, in addition to main function and a server class, with some flask decorators, you’ll need some classes to hold the request/reply structures with fields relevant to you, and methods to do marshalling/unmarshalling to/from xml… that library will help, it even has some tiny examples.
Grab vscode, git for windows, python for windows, windows terminal, some kind of Linux command line environment like wsl; (unless you’re already using Linux in which case this is easier, grab what you’re missing). And get cracking.
Usual setup would be to start with a virtual environment for a project, that’s self contained in a directory/folder, and where you could pull in your dependencies without requiring admin/root privileges, or having to install them system wide and pollute the system you’re working on. python -m venv
will bootstrap this folder for you. Then you “activate” that environment in your shell you’re working from, or where you’ll later run vscode in, and you can pip install whatever dependencies you need right there into your project dir (deps like that library above) and then just keep iterating (change code, run, change code, run, …).
You can save that directory in git for sharing, and later reuse. Speaking of git, typically you’d get something like precommit to run the black code formatter, and run reuse which will check your file headers for proper spdx license headers, and can also optionally run other linters and even invoke tests once you have them. All this to help you not check in broken code.
Once you have something that works, you can redistribute using git, or using pip. It’s also fairly easy to build tiny/small docker/oci images from pip requirements.
Any configuration you have (backends, port numbers), you can keep in a json file that you just load into a global variable on startup (easier than dealing with flags).
At some point you’ll want to write some automated test code, with fake IPP servers and fake ws-print clients. Come back if/when you’re ready to share code and have questions on testing.