Metadata-Version: 2.1
Name: deltatwin-cli
Version: 1.3.2
Summary: DeltaTwin command line for managing Delta project
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Requires-Python: ~=3.11
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1.3
Requires-Dist: rich==13.7.0
Requires-Dist: delta-core==1.1.2

# DeltaTwin service

GAEL Systems is developing a dedicated service, named "DeltaTwin Service" to 
facilitate modelling activities of digital twins. 

It aims to offer a collaborative environment for building and running 
multi-scale and composable workflow, leveraging the numerous 
available data sources, sharing results, and easing interoperability 
with other digital twin standards and system dynamics models.

The DeltaTwin is the central element for the management of workflows, 
resources and their results. They follow a precise structure folder to ensure 
they are handled by the DeltaTwin service.

The service includes the “drive” element in charge of handling DeltaTwin 
storage, their configuration and versionning.   
The “run“ element is in charge of the models executions and their monitoring. 

The DeltaTwin command line allows user to control the management of the 
later modules. It allows user to either work online and perform all actions
in a cloud environment or locally using your computer's resources. 

DeltaTwin service also provides a web application to graphically manages your
Deltatwins and their execution.

# DeltaTwin Command-line

The command line interface allows the user to configure a DeltaTwin and manage its run
operation either from the a shell command prompt or with a script. 

The commands are divided into two main groups: those that allow user to configure and manage
the DeltaTwin’s composition (``deltatwin drive``) and those dedicated to the to the run concept (
``deltatwin run``).  


## Installation

DeltaTwin command-line can be installed using pip:
```
pip install deltatwin-cli
```



# *Delta* API

Commands are described below. 
These descriptions are also available by using the ``--help`` option on each 
individual command.


| *delta* command |                parameters                 |                                                                                                                                 description |
|-----------------|:-----------------------------------------:|--------------------------------------------------------------------------------------------------------------------------------------------:|
| version         | -all: show all deltatwin components versions. |                                                                                Show DeltaTwin version and check if deltatwin is properly installed. |
| list            |                   None                    |                                                                                                        	List the DeltaTwin from marketplace |
| login           |  -u username -p password  -c conf.ini path                                   |   logs the user to the service, and allows the use of commands, such as ``deltatwin list`` command,that require online registration                                                                                                                                          |

Configured deltatwin information will be stored into $HOME/.delta/config.json 

# *DeltaTwin drive* API

The ``deltatwin drive`` is the command line dedicated to handle DeltaTwin project repository. 
It stores all the configuration, resources, models and sources to run a DeltaTwin and retrieve data.




| *deltatwin drive* command |               parameters               |                                                                     description |
|-----------------------|:--------------------------------------:|--------------------------------------------------------------------------------:|
| init                  | <parent_directory>      |              	Create an empty DeltaTwin repository. |
| resource add        |             <resource_path>              |                                       add a resource to an existing DeltaTwin |
| resource delete        |             <resource_name>              |                                       delete a resource from an existing DeltaTwin |
| resource list        |                          |                                       List the resources from the working DeltaTwin |
| artifact add                          | run_id, output, name, ... |          Create a DeltaTwin artifact |
| artifact list                         |                           |    Show list the artifacts of a DeltaTwin component |
| artifact get                          |        artifact_id        | Retrive an artifact and store it in a file |
| artifact delete                       |        artifact_id        |          Delete a DeltaTwin artifact |
| publish                       |        version        |          Publish a new version of a DeltaTwin  |





# *DeltaTwin run* API

DeltaTwin run module uses models stored into DeltaTwin repository. 
The objective of this service is to allow edition and run of the models stored into the DeltaTwin.
The run can be done remotely and locally when possible.
Run results shall be stored into the artifact folder of the deltatwin drive environment. 

| *deltatwin run* command   |       parameters        |                                                       description |
|-----------------------|:-----------------------:|------------------------------------------------------------------:|
| start                 |          model          | Start the DeltaTwin execution with the expected DeltaTwins inputs |
| get                   |      run_id     |                               Show information about an execution |
| list                  |   name   |                                  Show list of execution for model |
| delete              |  run_id, output |                                      Delete a run |
