Metadata-Version: 2.1
Name: incendium
Version: 2022.8.2
Summary: Package that extends and wraps Ignition Scripting API
Home-page: https://github.com/thecesrom/incendium
Author: César Román
Author-email: cesar@thecesrom.dev
License: MIT
Project-URL: Source, https://github.com/thecesrom/incendium
Project-URL: Documentation, https://github.com/thecesrom/incendium/wiki
Project-URL: Funding, https://github.com/sponsors/thecesrom
Project-URL: Tracker, https://github.com/thecesrom/incendium/issues
Keywords: hmi,ignition,inductive automation,scada
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Manufacturing
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Testing :: Mocking
Requires-Python: ==2.7.18
Description-Content-Type: text/markdown
Requires-Dist: ignition-api

# incendium

<!--- Badges --->
[![GitHub contributors](https://img.shields.io/github/contributors/thecesrom/incendium)](https://github.com/thecesrom/incendium/graphs/contributors)
[![Downloads](https://pepy.tech/badge/incendium)](https://pepy.tech/project/incendium)
[![PyPI](https://img.shields.io/pypi/v/incendium)](https://pypi.org/project/incendium/)
![GitHub last commit (code)](https://img.shields.io/github/last-commit/thecesrom/incendium)
[![time tracker](https://wakatime.com/badge/github/thecesrom/incendium.svg)](https://wakatime.com/badge/github/thecesrom/incendium)
[![Sourcery](https://img.shields.io/badge/Sourcery-enabled-brightgreen)](https://sourcery.ai)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![Imports: flake8](https://img.shields.io/badge/%20imports-flake8-%231674b1?style=flat&labelColor=ef8336)](https://flake8.pycqa.org/en/latest/)
[![Imports: pydocstyle](https://img.shields.io/badge/%20imports-pydocstyle-%231674b1?style=flat&labelColor=ef8336)](https://www.pydocstyle.org/en/stable/)
[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/thecesrom/incendium/code.svg)](https://results.pre-commit.ci/latest/github/thecesrom/incendium/code)
[![Join us on GitHub discussions](https://img.shields.io/badge/github-discussions-informational)](https://github.com/thecesrom/incendium/discussions)

>(/inˈken.di.um/)
>
>_noun_.
>
>1. A fire, inferno, conflagration; heat; torch.
>1. (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](https://github.com/thecesrom/incendium/wiki).

## Branches

This repository consists of the following branches:

### [code](https://github.com/thecesrom/incendium/tree/code)

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

### [project](https://github.com/thecesrom/incendium/tree/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:

* You have installed Python 2.7.18 ([download here](https://www.python.org/downloads/release/python-2718/))
* You are familiar with [Ignition 8.1 System Functions](https://docs.inductiveautomation.com/display/DOC81/System+Functions)

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

```bash
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).

```bash
$ 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:

```bash
python2 -m pip uninstall incendium
```

### Downloading from releases

You may also download the code targeted to your desired version from the [releases page](https://github.com/thecesrom/incendium/releases) 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](https://github.com/thecesrom/incendium/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](https://github.com/thecesrom/incendium/releases/latest) or from [Ignition Exchange](https://inductiveautomation.com/exchange/2104)
1. Browse to your Ignition Gateway (version 8.0+)
1. Go to **Config > Projects** and click on **Import project...**
1. Click on **Choose File** and select the downloaded ZIP file
1. Enter **incendium** as the **Project Name**
    1. If you're replacing a previous version, make sure to check Allow Overwrite
1. Click on **Import**

Alternatively you could follow the instructions for cloning the `project` branch directly into `$IGNITION_DIR/data/projects` found [here](https://github.com/thecesrom/incendium/tree/project#cloning-this-branch).

## 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](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request).

## Discussions

Feel free to post your questions and/or ideas at [Discussions](https://github.com/thecesrom/incendium/discussions).

## Contributors

Thanks to everyone who has contributed to this project.

Up-to-date list of contributors can be found [here](https://github.com/thecesrom/incendium/graphs/contributors).

## License

See the [LICENSE](https://github.com/thecesrom/incendium/blob/HEAD/LICENSE).

## Code of conduct

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).

## 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)

### 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)


