Metadata-Version: 2.4
Name: momotor-bundles
Version: 8.2.0
Summary: Momotor bundle reader, writer, tools
Author-email: Erik Scheffers <e.t.j.scheffers@tue.nl>
License: GNU Lesser General Public License v3 (LGPLv3)
Project-URL: Homepage, https://momotor.org
Project-URL: Documentation, https://momotor.org/doc/engine/momotor-bundles/
Project-URL: Repository, https://gitlab.tue.nl/momotor/engine-py3/momotor-bundles/
Project-URL: Tracker, https://gitlab.tue.nl/momotor/engine-py3/momotor-bundles/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: pathvalidate
Requires-Dist: xsdata<26.3,>=26.2
Requires-Dist: typing-extensions; python_version < "3.11"
Provides-Extra: lxml
Requires-Dist: xsdata[lxml]<26.3,>=26.2; extra == "lxml"
Provides-Extra: test
Requires-Dist: momotor-bundles[lxml]; extra == "test"
Requires-Dist: pytest<10,>=8.1; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-doctestplus; extra == "test"
Requires-Dist: xmljson; extra == "test"
Provides-Extra: docs
Requires-Dist: momotor-bundles[test]; extra == "docs"
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints!=1.14.0; extra == "docs"
Requires-Dist: furo; extra == "docs"
Provides-Extra: dev
Requires-Dist: momotor-bundles[docs,lxml]; extra == "dev"
Requires-Dist: docutils-stubs; extra == "dev"
Requires-Dist: xsdata[cli]<26.3,>=26.2; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: pyright; extra == "dev"
Provides-Extra: build
Requires-Dist: momotor-bundles[dev]; extra == "build"
Requires-Dist: setuptools; extra == "build"
Requires-Dist: setuptools-scm; extra == "build"
Requires-Dist: build[virtualenv]; extra == "build"
Requires-Dist: python-semantic-release~=10.0; extra == "build"
Dynamic: license-file

This package is a part of [Momotor](https://momotor.org/), a tool for automated processing of digital content. 

Momotor accepts digital content as a product bundle and generates a result bundle from this product under 
control of a recipe bundle. 

Momotor is like a continuous integration system, but broader in scope. The 
type of content that Momotor can process is not restricted; each recipe may impose its own constraints. 
One application of Momotor in an educational setting is the automatic generation of feedback on work submitted 
for programming assignments.

---

The `momotor-bundles` package contains the interfaces to read and write Momotor bundles.

A Momotor bundle is an XML document with optional attachments. Bundles without attachments can be pure XML
documents, bundles with attachments are contained in zip files.

Bundles are at the heart of a Momotor transformation, as a Momotor transformation
takes a recipe, config and product bundle as input and produces a result bundle
as output.

The recipe bundle describes the transformations that need to be performed, the config
bundle provides additional files and configuration to the recipe,
while the product bundle defines the job specific files and configuration.

In an educational setting, the recipe defines a generic way to process a student's
submission, while the config defines the assignment specific details like the
expected answers. The product contains the student's submission.
