Skip to content

Commit dac0ec5

Browse files
committed
use context managers for file I/O - fixes #298
1 parent 2c47e5e commit dac0ec5

8 files changed

Lines changed: 157 additions & 0 deletions

File tree

complete_rebase.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
cd "D:\gsoc org\concore-project\concore"
3+
git add requirements-dev.txt
4+
git rebase --continue
5+
git push origin add-concoredocker-tests --force

concore.egg-info/PKG-INFO

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
Metadata-Version: 2.4
2+
Name: concore
3+
Version: 1.0.0
4+
Summary: Concore workflow management CLI
5+
Home-page: https://github.com/ControlCore-Project/concore
6+
Author: ControlCore Project
7+
License: MIT
8+
Requires-Python: >=3.9
9+
Description-Content-Type: text/markdown
10+
License-File: LICENSE
11+
Requires-Dist: click>=8.0.0
12+
Requires-Dist: rich>=10.0.0
13+
Requires-Dist: beautifulsoup4>=4.9.0
14+
Requires-Dist: lxml>=4.6.0
15+
Requires-Dist: psutil>=5.8.0
16+
Provides-Extra: dev
17+
Requires-Dist: pytest>=6.0.0; extra == "dev"
18+
Requires-Dist: pytest-cov>=2.10.0; extra == "dev"
19+
Dynamic: author
20+
Dynamic: home-page
21+
Dynamic: license-file
22+
Dynamic: requires-python
23+
24+
# CONTROL-CORE: Integrated Development Environment for Closed-loop Neuromodulation Control Systems.
25+
26+
[CONTROL-CORE](https://github.com/ControlCore-Project/) is a design and simulation framework, functioning as a visual Integrated Development Environment (IDE) for Closed-loop Neuromodulation Control Systems. At its center is _concore_, a lightweight protocol to simulate neuromodulation control systems. This repository consists of the implementation of _concore_ protocol and sample (demo and neuromodulation control systems) studies. In addition to its default standard Python implementation, _concore_ also supports developing studies in Matlab/Octave, Verilog, and C++. _concore_ also aims to support more language programs in the future.
27+
28+
# The CONTROL-CORE Framework
29+
30+
The CONTROL-CORE framework consists of the below projects.
31+
32+
* _concore_: The CONTROL-CORE protocol, known as _concore_, allows modular simulation of controller and PM nodes to run on different operating systems, computing platforms, and programming languages. [This repository](https://github.com/ControlCore-Project/concore/) consists of _concore_ source code. The _concore_ documentation can be found [here](https://control-core.readthedocs.io/en/latest/index.html). A _concore_ study can be developed from programs written in different languages. That means, _concore_ facilitates a seamless communication across codes developed in different languages that it supports, through its simple file-based data sharing between the programs.
33+
34+
* _concore_ Editor: This is the front-end for CONTROL-CORE. We forked [DHGWorkflow](https://github.com/ControlCore-Project/DHGWorkflow), a sibling project we developed, and extend it as the _concore_ Editor.
35+
36+
* _Mediator_: The [Mediator](https://github.com/ControlCore-Project/mediator) allows the CONTROL-CORE studies to be distributed and run, rather than having all the programs that construct a study to be run just from a centralized location.
37+
38+
* _concore-lite_: The [_concore-lite_](https://github.com/ControlCore-Project/concore-lite) repository consists of a simple example version of a _concore_ study. Please check out and run this, if you like to learn the _concore_ protocol without having to clone this large _concore_ repository.
39+
40+
* documentation: The [source code repository](https://github.com/ControlCore-Project/documentation) of the ReadTheDocs documentation of CONTROL-CORE.
41+
42+
43+
# The _concore_ Protocol
44+
45+
_concore_ enables composing studies from programs developed in different languages. Currently supported languages are, Python, Matlab/Octave, Verilog, and C++. The studies are designed through the visual _concore_ Editor (DHGWorkflow) and interpreted into _concore_ through its parser. Neural control systems consist of loops (dicycles). Therefore, they cannot be represented by classic workflow standards (such as CWL or WDL). Therefore, _concore_ addresses a significant research gap to model closed-loop neuromodulation control systems. The _concore_ protocol shares data between the programs through file sharing, with no centralized entity (a broker or an orchestrator) to arbitrate communications between the programs. (In the distributed executions, the CONTROL-CORE Mediator enables connecting the disjoint pieces of the study through REST APIs).
46+
47+
48+
# Installation and Getting Started Guide
49+
50+
Please follow the [ReadTheDocs](https://control-core.readthedocs.io/en/latest/index.html) documentation and the [_concore-lite_](https://github.com/ControlCore-Project/concore-lite) repository to get started quick.
51+
52+
Installation instructions for concore can be found [here](https://control-core.readthedocs.io/en/latest/installation.html). Usage instructions can be found [here](https://control-core.readthedocs.io/en/latest/usage.html).
53+
54+
## Command-Line Interface (CLI)
55+
56+
_concore_ now includes a command-line interface for easier workflow management. Install it with:
57+
58+
```bash
59+
pip install -e .
60+
```
61+
62+
Quick start with the CLI:
63+
64+
```bash
65+
# Create a new project
66+
concore init my-project
67+
68+
# Validate your workflow
69+
concore validate workflow.graphml
70+
71+
# Run your workflow
72+
concore run workflow.graphml --auto-build
73+
74+
# Monitor running processes
75+
concore status
76+
77+
# Stop all processes
78+
concore stop
79+
```
80+
81+
For detailed CLI documentation, see [concore_cli/README.md](concore_cli/README.md).
82+
83+
For a detailed and more scientific documentation, please read our extensive [open-access research paper on CONTROL-CORE](https://doi.org/10.1109/ACCESS.2022.3161471). This paper has a complete discussion on the CONTROL-CORE architecture and deployment, together with the commands to execute the studies in different programming languages and programming environments (Ubuntu, Windows, MacOS, Docker, and distributed execution).
84+
85+
86+
# The _concore_ Repository
87+
88+
_concore_ contains programs (such as physiological models or more commonly called "PMs" and controllers) and studies (i.e., graphml files that represents the studies as workflows). The _wrappers_ enable seamlessly extending a study into a distributed one with the CONTROL-CORE Mediator.
89+
90+
_concore_ repository consists of several scripts at its root level. The demo folder consists of several sample programs and studies, mostly toy examples to learn the protocol. The ratc folder consists of the programs and studies of the rat cardiac experiments we developed with _concore_.
91+
92+
If you have a bug to report in one of the CONTROL-CORE projects, please report it through relevant Issue Tracker. Similarly, please feel free to contribute your studies and code enhancements using pull requests. Questions and discussions can be made through the relevant Discussions forum.
93+
94+
The _concore_ Issues can be reported [here](https://github.com/ControlCore-Project/concore/issues).
95+
96+
The _concore_ discussion forum can be found [here](https://github.com/ControlCore-Project/concore/discussions).
97+
98+
Please make sure to send your _concore_ pull requests to the [dev branch](https://github.com/ControlCore-Project/concore/tree/dev).
99+
100+
101+
# Citing _concore_
102+
103+
If you use _concore_ in your research, please cite the below papers:
104+
105+
* Kathiravelu, P., Arnold, M., Vijay, S., Jagwani, R., Goyal, P., Goel, A.K., Li, N., Horn, C., Pan, T., Kothare, M. V., and Mahmoudi, B. **Distributed Executions with CONTROL-CORE Integrated Development Environment (IDE) for Closed-loop Neuromodulation Control Systems.** In Cluster Computing – The Journal of Networks Software Tools and Applications (CLUSTER). May 2025. Accepted. Springer.
106+
* Kathiravelu, P., Arnold, M., Fleischer, J., Yao, Y., Awasthi, S., Goel, A. K., Branen, A., Sarikhani, P., Kumar, G., Kothare, M. V., and Mahmoudi, B. **CONTROL-CORE: A Framework for Simulation and Design of Closed-Loop Peripheral Neuromodulation Control Systems**. In IEEE Access. March 2022. https://doi.org/10.1109/ACCESS.2022.3161471

concore.egg-info/SOURCES.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
LICENSE
2+
README.md
3+
mkconcore.py
4+
pyproject.toml
5+
setup.py
6+
concore.egg-info/PKG-INFO
7+
concore.egg-info/SOURCES.txt
8+
concore.egg-info/dependency_links.txt
9+
concore.egg-info/entry_points.txt
10+
concore.egg-info/requires.txt
11+
concore.egg-info/top_level.txt
12+
concore_cli/__init__.py
13+
concore_cli/cli.py
14+
concore_cli/commands/__init__.py
15+
concore_cli/commands/init.py
16+
concore_cli/commands/inspect.py
17+
concore_cli/commands/run.py
18+
concore_cli/commands/status.py
19+
concore_cli/commands/stop.py
20+
concore_cli/commands/validate.py
21+
tests/test_cli.py
22+
tests/test_concore.py
23+
tests/test_concoredocker.py
24+
tests/test_graph.py
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

concore.egg-info/entry_points.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[console_scripts]
2+
concore = concore_cli.cli:cli

concore.egg-info/requires.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
click>=8.0.0
2+
rich>=10.0.0
3+
beautifulsoup4>=4.9.0
4+
lxml>=4.6.0
5+
psutil>=5.8.0
6+
7+
[dev]
8+
pytest>=6.0.0
9+
pytest-cov>=2.10.0

concore.egg-info/top_level.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
concore_cli
2+
mkconcore

setup_branch.ps1

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
cd "D:\gsoc org\concore-project\concore"
2+
git config core.editor "notepad"
3+
git fetch upstream
4+
git checkout dev
5+
git reset --hard upstream/dev
6+
git branch -D refactor-file-io-v2 2>$null
7+
git checkout -b refactor-file-io-v2
8+
Write-Host "Branch ready!"

0 commit comments

Comments
 (0)