Skip to content

Commit

Permalink
Merge branch 'develop' into reintroduce-initialize
Browse files Browse the repository at this point in the history
  • Loading branch information
IshaanDesai committed Feb 6, 2024
2 parents c3addbd + f4897dc commit 2abc4bf
Show file tree
Hide file tree
Showing 9 changed files with 20 additions and 17 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/pythonpublish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ jobs:
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
python setup.py sdist
twine upload dist/*
7 changes: 6 additions & 1 deletion docs/micro-simulation-convert-to-library.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,14 @@ Restructure your micro simulation code into a Python class with the structure gi

```python
class MicroSimulation: # Name is fixed
def __init__(self):
def __init__(self, sim_id):
"""
Constructor of class MicroSimulation.
Parameters
----------
sim_id : int
ID of the simulation instance, that the Micro Manager has set for it.
"""

def solve(self, macro_data: dict, dt: float) -> dict:
Expand Down
2 changes: 0 additions & 2 deletions docs/running.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ from micro_manager import MicroManager

manager = MicroManager("micro-manager-config.json")

manager.initialize()

manager.solve()
```

Expand Down
6 changes: 3 additions & 3 deletions examples/cpp-dummy/micro_cpp_dummy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "micro_cpp_dummy.hpp"

// Constructor
MicroSimulation::MicroSimulation() : _micro_scalar_data(0), _state(0) {}
MicroSimulation::MicroSimulation(int sim_id) : _sim_id(sim_id), _micro_scalar_data(0), _state(0) {}

// Solve
py::dict MicroSimulation::solve(py::dict macro_data, double dt)
Expand Down Expand Up @@ -64,7 +64,7 @@ PYBIND11_MODULE(micro_dummy, m) {
m.doc() = "pybind11 micro dummy plugin";

py::class_<MicroSimulation>(m, "MicroSimulation")
.def(py::init())
.def(py::init<int>())
.def("solve", &MicroSimulation::solve)
.def("get_state", &MicroSimulation::get_state)
.def("set_state", &MicroSimulation::set_state)
Expand All @@ -77,7 +77,7 @@ PYBIND11_MODULE(micro_dummy, m) {
throw std::runtime_error("Invalid state!");

/* Create a new C++ instance */
MicroSimulation ms;
MicroSimulation ms(0);

ms.set_state(t);

Expand Down
3 changes: 2 additions & 1 deletion examples/cpp-dummy/micro_cpp_dummy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ namespace py = pybind11;
class MicroSimulation
{
public:
MicroSimulation();
MicroSimulation(int sim_id);
// solve takes a python dict data, and the timestep dt as inputs, and returns a python dict
py::dict solve(py::dict macro_write_data, double dt);

void set_state(py::list state);
py::list get_state() const;

private:
int _sim_id;
double _micro_scalar_data;
std::vector<double> _micro_vector_data;
double _state;
Expand Down
3 changes: 2 additions & 1 deletion examples/python-dummy/micro_dummy.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@

class MicroSimulation:

def __init__(self):
def __init__(self, sim_id):
"""
Constructor of MicroSimulation class.
"""
self._sim_id = sim_id
self._dims = 3
self._micro_scalar_data = None
self._micro_vector_data = None
Expand Down
5 changes: 1 addition & 4 deletions micro_manager/micro_simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,10 @@ def create_simulation_class(micro_simulation_class):
"""
class Simulation(micro_simulation_class):
def __init__(self, global_id):
micro_simulation_class.__init__(self)
micro_simulation_class.__init__(self, global_id)
self._global_id = global_id

def get_global_id(self) -> int:
return self._global_id

def set_global_id(self, global_id) -> None:
self._global_id = global_id

return Simulation
3 changes: 2 additions & 1 deletion tests/integration/test_unit_cube/micro_dummy.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@

class MicroSimulation:

def __init__(self):
def __init__(self, sim_id):
"""
Constructor of MicroSimulation class.
"""
self._sim_id = sim_id
self._micro_scalar_data = None
self._micro_vector_data = None
self._checkpoint = None
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_micro_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@


class MicroSimulation:
def __init__(self):
def __init__(self, sim_id):
self.very_important_value = 0

def initialize(self):
Expand Down Expand Up @@ -83,7 +83,7 @@ def test_solve_mico_sims(self):
"""
manager = micro_manager.MicroManager('micro-manager-config.json')
manager._local_number_of_sims = 4
manager._micro_sims = [MicroSimulation() for _ in range(4)]
manager._micro_sims = [MicroSimulation(i) for i in range(4)]
manager._micro_sims_active_steps = np.zeros(4, dtype=np.int32)

micro_sims_output = manager._solve_micro_simulations(self.fake_read_data)
Expand Down

0 comments on commit 2abc4bf

Please sign in to comment.