Metadata-Version: 2.1
Name: hpl-rv-gen
Version: 0.1.4
Summary: Runtime monitor generator based on HPL properties
Home-page: https://github.com/git-afsantos/hpl-rv-gen
Author: André Santos
Author-email: andre.f.santos@inesctec.pt
License: MIT
Keywords: haros ros runtime-verification runtime-monitoring
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: future
Requires-Dist: hpl-specs (<1.0.0)
Requires-Dist: Jinja2 (>=2.10.0)

# HPL Runtime Monitor Generator

This package provides a runtime monitor generator for [HPL properties](https://github.com/git-afsantos/hpl-specs/).

## Installing

Installing a pre-packaged release:

```bash
pip install hpl-rv-gen
```

Installing from source:

```bash
git clone https://github.com/git-afsantos/hpl-rv-gen.git
cd hpl-rv-gen
pip install -e .
```

## Usage

When used as a library, you can generate Python code for a runtime monitor class with a few simple steps.
For example:

```python
from hpl.parser import property_parser
from hplrv.rendering import TemplateRenderer

p = property_parser()
r = TemplateRenderer()
input_property = 'globally: no (/a or /b)'
hpl_property = p.parse(input_property)
code = r.render_monitor(hpl_property)
print(code)
```

## Bugs, Questions and Support

Please use the [issue tracker](https://github.com/git-afsantos/hpl-rv-gen/issues).

## Contributing

See [CONTRIBUTING](./CONTRIBUTING.md).

## Acknowledgment

Until March 2021, this work was financed by the ERDF – European Regional Development Fund through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 Programme and by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia within project PTDC/CCI-INF/29583/2017 (POCI-01-0145-FEDER-029583).



