Athena is a versatile sanity checking framework designed to simplify the process of creating and running validation procedures, known as Sanity-Check. These checks can be executed in any software environments with Python interpreters, especially in DCC (Digital Content Creation) software, or in standalone across all operating systems.
To quickly get started with Athena, follow these steps:
Ensure you have Python 3.8+ installed. Athena has no external dependencies.
You can install Athena using pip:
pip install athena-sanityOr download the latest release here.
You can load a Blueprint and run all it's processes, or query one single process to run:
When part of a Blueprint, a Process can have extra configuration to modify it's behavior or interaction with other
processes within the blueprint.
from athena import atCore
register = atCore.AtSession().register
register.load_blueprint_from_python_import_path('athena.examples.blueprint.exampleBlueprint')
blueprint = register.blueprint_by_name('exampleBlueprint')
# processor = blueprint.processor_by_name('exampleProcess') # To get a single `Processor` from the `Blueprint`.
for processor in blueprint.processors:
result = processor.check()
for container in result:
print(container, container.status)
for feedback in container:
print('\t' + str(feedback))Alternatively, you can skip the blueprint and just run a process with a default configuration or use your own by passing extra arguments to the Processor:
from athena import atCore
# The `Processor` takes full import path to the `Process` class. The same way you'd define it in the `Blueprint`.
processor = atCore.Processor('athena.examples.process.exampleProcess.AthenaExampleProcess')
result = processor.check()
for container in result:
print(container, container.status)
for feedback in container:
print('\t' + str(feedback))You can find examples on how to write a Process or Blueprint here
Full support for unit test will come later.
Athena follows the principles of Semantic Versioning (SemVer). Check the tags on this repository for available versions.
- Gregory Pijat - Author - GitHub
See the list of contributors who participated in this project.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
For an enhanced experience, check out the available UI on Gumroad. (Available soon)