Skip to main content

Package that extends and wraps Ignition Scripting API

Project description

incendium

GitHub contributors Downloads PyPI GitHub last commit (code) time tracker Sourcery Code style: black Imports: isort Imports: flake8 Imports: pydocstyle linting: pylint pre-commit.ci status Join us on GitHub discussions

(/inˈken.di.um/)

noun.

  1. A fire, inferno, conflagration; heat; torch.
  2. (heat of) passion, vehemence

:package: Package that extends and wraps some functions from Ignition's Scripting API.

For more information, please refer to the Wiki.

Branches

This repository consists of the following branches:

code

This branch will contain the source code for incendium's scripting functions.

project

This branch will contain the project folder structure as stored under $IGNITION_DIR/data/projects, and gives you the ability to get the latest code by cloning at the projects folder.

Prerequisites

Before you begin, ensure you have met the following requirements:

Installation and usage

To use incendium, you may install it by doing any of the following.

Installing with pip

The preferred method is to install it by running pip. It requires Python 2.7.18.

python2 -m pip install incendium

This will install it as package to your Python installation, which will allow you to call incendium's Scripting functions from Python's REPL, and get code completion using an IDE (Pycharm or Visual Studio Code).

$ python2
Python 2.7.18 (default, Nov  9 2020, 16:23:15) 
[GCC Apple LLVM 12.0.0 (clang-1200.0.32.21)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import print_function
>>> import incendium.vision.gui
>>> print(incendium.vision.gui.__doc__)
GUI module.
>>> incendium.vision.gui.warning("This one is a warning")
This one is a warning es_MX False
Warning es_MX False
None This one is a warning Warning 2 None

And to uninstall:

python2 -m pip uninstall incendium

Downloading from releases

You may also download the code targeted to your desired version from the releases page and add it as a dependency to your scripting project.

Using as a dependency in PyCharm

To include incendium as a dependency in PyCharm, you will need to attach it to your project.

  1. Clone the repo or download from releases
  2. With your project open where you want to include incendium, navigate to File > Open and select the incendium project folder
  3. Choose Attach when prompted
  4. Under the incendium project folder, right-click on the src/ folder and choose Mark Directory as > Sources Root

Installing incendium as a Project on your Gateway

To install incendium on your Gateway follow these steps:

  1. Download incendium.x.x.x.zip from the latest release or from Ignition Exchange
  2. Browse to your Ignition Gateway (version 8.0+)
  3. Go to Config > Projects and click on Import project...
  4. Click on Choose File and select the downloaded ZIP file
  5. Enter incendium as the Project Name
    1. If you're replacing a previous version, make sure to check Allow Overwrite
  6. Click on Import

Alternatively you could follow the instructions for cloning the project branch directly into $IGNITION_DIR/data/projects found here.

Contributing to incendium

To contribute to incendium, follow these steps:

  1. Fork this repository
  2. Create a local copy on your machine
  3. Create a branch
  4. Make sure to run pre-commit install to install required pre-commit hooks
  5. Make your changes and commit them
  6. Push to the code branch
  7. Create the pull request

Alternatively see the GitHub documentation on creating a pull request.

Discussions

Feel free to post your questions and/or ideas at Discussions.

Contributors

Thanks to everyone who has contributed to this project.

Up-to-date list of contributors can be found here.

License

See the LICENSE.

Code of conduct

This project has adopted the Microsoft Open Source Code of Conduct.

v2022.8.0 (2022-08-05)

Feat

  • add type hints (#52)
  • dataset: add to_jsonobject function (#50)

Refactor

  • dataset: use Dataset instance functions (#51)
  • dataset: remove default value for root (#49)
  • dataset: use Dataset to check instance

v2022.3.2 (2022-03-24)

Fix

  • ci: run ci on all PRs (#40)

Refactor

  • ci: update ci.yml (#38)
  • apply multiple refactorings to dataset (#34)

Feat

  • add get_users function (#36)

v2022.3.1 (2022-03-03)

Refactor

  • fix perflint W8202
  • reduce cognitive complexity

v2022.2.1 (2022-02-09)

Fix

  • add get_timestamp to __all__

v2022.2.0 (2022-02-09)

Feat

  • add get_timestamp function

v2.0.2 (2022-01-25)

Refactor

  • fix SonarLint and Sourcery issues

BREAKING CHANGE

  • stop checking instance of in_params and out_params

v2.0.1 (2021-12-17)

Fix

  • db: check instance of out_params

v2.0.0 (2021-10-20)

Feat

  • add InParam, OutParam and Param to db

BREAKING CHANGE

  • calls to db functions should switch from passing dict to list[InParam] and list[OutParam] where applicable

v1.1.2 (2021-10-18)

Fix

  • update icendium.vision.gui constants

v1.1.1 (2021-10-18)

Fix

  • bring back gui.CURSOR* constants

v1.1.0 (2021-10-15)

Fix

  • setup: modify Python 2 Only classifier

Refactor

  • move version information into its own module
  • rename _User class to IncendiumUser
  • import and use implementing classes rather than interfaces
  • import unicode_literals
  • remove copyright from modules

BREAKING CHANGE

  • this project has turned into a pure Python project. Jython is no longer recommended.

v1.0.7.post2 (2021-09-13)

v1.0.7.post1 (2021-09-13)

Fix

  • setup: include __cycle__ in package version

v1.0.7 (2021-09-11)

Fix

  • setup: fix path to version.py

Feat

  • release: v1.0.7

Refactor

  • add pylint

v1.0.6 (2021-08-04)

Fix

  • break loop after expected conditions have been met

Refactor

  • conform to snake_case naming style

BREAKING CHANGE

  • DisposableConnection's db field has been renamed to database to conform with snake_case naming style and to match the name used in some system.db functions.

v1.0.5 (2021-06-22)

Refactor

  • modify imports

Feat

  • pre-commit: update black 21.5b0 -> 21.5b1
  • pre-commit: update flake8 3.9.1 -> 3.9.2
  • pre-commit: update black 21.4b2 -> 21.5b0
  • pre-commit: update black 21.4b1 -> 21.4b2
  • pre-commit: update black 21.4b0 -> 21.4b1
  • pre-commit: update black 20.8b1 -> 21.4b0
  • pre-commit: bump flake8 to 3.9.1

v1.0.4 (2021-02-24)

Feat

  • :sparkles: add function to convert Dataset into JSON
  • add flake8 pre-commit hook

Refactor

  • :zap: simplify sequence comparison

v1.0.3 (2020-11-12)

v1.0.2 (2020-10-17)

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

incendium-2022.8.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

incendium-2022.8.0-py2-none-any.whl (21.1 kB view details)

Uploaded Python 2

File details

Details for the file incendium-2022.8.0.tar.gz.

File metadata

  • Download URL: incendium-2022.8.0.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/2.7.18

File hashes

Hashes for incendium-2022.8.0.tar.gz
Algorithm Hash digest
SHA256 85e26372b10ac44aed5ab198707df130be1fe55762e170a7062476cc24933d1b
MD5 8b80707b9be86b8198a6a771f1ea8965
BLAKE2b-256 0f24458e1cb1ca067356a6da58b23ab0038ff4bb04744f09590152856be51d7b

See more details on using hashes here.

File details

Details for the file incendium-2022.8.0-py2-none-any.whl.

File metadata

  • Download URL: incendium-2022.8.0-py2-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/2.7.18

File hashes

Hashes for incendium-2022.8.0-py2-none-any.whl
Algorithm Hash digest
SHA256 6bd4f6c8007971ec5d441fe1e35d21201021853a1a0ca1f95627748d354cdb58
MD5 674770b0ac7e2e1183b384fcc02c654b
BLAKE2b-256 b053b16a18fea017b1ff9c8113e200fbbb4d328dd2f284922da9a6a09f01f8c3

See more details on using hashes here.

Supported by

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