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.

incendium Project

We have moved the project branch to its own repo, incendium-project

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

See CONTRIBUTING.md.

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 LICENSE.

Code of conduct

See CODE_OF_CONDUCT.md.

v2023.4.0 (2023-04-18)

Feat

  • db: handle concurrent DisposableConnection connections (#142)

v2023.3.0 (2023-03-30)

Feat

  • dataset: add from_list_of_dicts (#140)

Refactor

  • helper: move SProcResult from helper.types to db module (#141)

v2023.2.0 (2023-02-25)

Feat

  • vision: add authentication and authorization (#137)

Refactor

  • ci: remove matrix strategy (#116)

v2023.1.0 (2023-01-09)

Refactor

  • add call to super in base classes (#111)
  • ci: run on ubuntu-20.04 (#98)

v2022.9.2 (2022-09-21)

Refactor

  • db: cast return value to str (#78)
  • db: return BasicDataset on get_data and o_get_data (#77)

v2022.9.1 (2022-09-03)

Fix

  • db: fix o_get_data docstring (#72)

v2022.9.0.post1 (2022-09-03)

v2022.9.0 (2022-09-02)

Feat

  • db: add repr and str functions to Param (#70)
  • date: add functions to get first and last day of the month (#69)
  • db: add functions to get OUTPUT parameters (#68)

Fix

  • db: accept unicode type for [In|Out]Param (#67)
  • exceptions: fix inner_exception warning (#66)

Refactor

  • exceptions: improve repr and str functions (#71)

v2022.8.2.post1 (2022-08-23)

Fix

  • db: refactor types module (#61)

v2022.8.2 (2022-08-05)

Refactor

  • dataset: work with nested Datasets on to_jsonobject (#56)

v2022.8.1 (2022-08-05)

Refactor

  • db: remove unnecessary str cast

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)

Feat

  • add get_users function (#36)

Fix

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

Refactor

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

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)

BREAKING CHANGE

  • stop checking instance of in_params and out_params

Refactor

  • fix SonarLint and Sourcery issues

v2.0.1 (2021-12-17)

Fix

  • db: check instance of out_params

v2.0.0 (2021-10-20)

BREAKING CHANGE

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

Feat

  • add InParam, OutParam and Param to db

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)

BREAKING CHANGE

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

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

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)

Feat

  • release: v1.0.7

Fix

  • setup: fix path to version.py

Refactor

  • add pylint

v1.0.6 (2021-08-04)

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.

Fix

  • break loop after expected conditions have been met

Refactor

  • conform to snake_case naming style

v1.0.5 (2021-06-22)

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

Refactor

  • modify imports

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-2023.4.0.tar.gz (20.4 kB view hashes)

Uploaded Source

Built Distribution

incendium-2023.4.0-py2-none-any.whl (22.8 kB view hashes)

Uploaded Python 2

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