Skip to main content

A simple script language for event-based automation tasks.

Project description

EveScript is a simple script language for event-based automation tasks.

from evescript.compiler import EveScriptCompiler
from evescript.executor import EveScriptExecutor

script = '''
if ($lightSensor > 20) {
  say("It's daytime now!")
}
'''

def lightSensor():
    return read_light_sensor_port()

compiler = EveScriptCompiler()
compiled_script = compiler.compile(script)

executor = EveScriptExecutor({
    'actions': { 'say': lambda x: print(x) },
    'variables': { '$lightSensor': lightSensor },
})

executor.run_script(compiled_script)
# Out: It's daytime now!

EveScript allows you to write simple event-based scripts that evaluate various conditions and execute actions. The conditions and actions are highly customizable to maximize the flexibility. EveScript can be used in embedded systems (such as Raspberry Pi) to implement a flexible event-based system.

Installation

pip install evescript

Changelog

0.5.0 (2021-03-29)

  • Support if…else statement.

  • Support executing actions outside if statement.

  • Support nested if statement.

  • Support actions with no params.

0.4.0 (2021-03-27)

  • Added support for using true/false as conditions.

0.3.0 (2021-03-20)

  • Fixed typo (EveScriptExector => EveScriptExecutor)

0.2.1 (2021-03-20)

  • Added decompiler.

  • Compiler will not rename built-in operators.

0.1.1 (2021-03-19)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evescript-0.5.0.tar.gz (63.7 kB view details)

Uploaded Source

Built Distribution

evescript-0.5.0-py2.py3-none-any.whl (21.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file evescript-0.5.0.tar.gz.

File metadata

  • Download URL: evescript-0.5.0.tar.gz
  • Upload date:
  • Size: 63.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for evescript-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c6113a901e72d5c3e9e340a20fe54bf568b71f4021e9adc2d44605e968faf166
MD5 40b8dba38c0598bfbadac041af4affbd
BLAKE2b-256 520751f1fd7a3ab62e30add8a207d7a5a1400cef6695960239674610afb5ef3e

See more details on using hashes here.

File details

Details for the file evescript-0.5.0-py2.py3-none-any.whl.

File metadata

  • Download URL: evescript-0.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for evescript-0.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 43b1b7f27afdc6f0c81ea872ad6e88e45a1cbcc2734c45e2813cd8935fc92da0
MD5 5ff8fd424fea62f5ee92554b24e99df3
BLAKE2b-256 439d1ae86b16b22200c4b8553ea43f589bf726de4f5a0b131b948e00c02bef6a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page