Hein Group activity https://gitlab.com/heingroup 2026-03-18T03:37:03Z tag:gitlab.com,2026-03-18:5215552159 Ivory Zhang pushed to project branch main at Hein Group / ivoryOS 2026-03-18T03:37:03Z ivoryzhangwy Ivory Zhang

Ivory Zhang (9a9d1421) at 18 Mar 03:37

update requirements.txt, add flask[async]

tag:gitlab.com,2026-03-17:5213960907 Veronica Lai commented on merge request !120 at Hein Group / ivoryOS 2026-03-17T17:03:58Z vlai Veronica Lai

i didnt think about testing that, sounds good! yeah right now if there is an additional dynamic parameter added the workflow that gets used just disappears from the design

tag:gitlab.com,2026-03-17:5213937574 Veronica Lai closed issue #90: always show current iteration out of total number of iterations to run of the current compiled run at Hein Group / ivoryOS 2026-03-17T16:58:18Z vlai Veronica Lai
tag:gitlab.com,2026-03-17:5213937535 Veronica Lai deleted project branch 90-always-show-current-iteration-out-of-total-number-of-iterations-to-run-of-the-current-compiled at Hein Group / ivoryOS 2026-03-17T16:58:17Z vlai Veronica Lai

Veronica Lai (60d1920a) at 17 Mar 16:58

tag:gitlab.com,2026-03-17:5213937436 Veronica Lai pushed to project branch main at Hein Group / ivoryOS 2026-03-17T16:58:16Z vlai Veronica Lai

Veronica Lai (e7c735a2) at 17 Mar 16:58

Merge branch '90-always-show-current-iteration-out-of-total-number-...

... and 2 more commits

tag:gitlab.com,2026-03-17:5213937431 Veronica Lai accepted merge request !124: Resolve "always show current iteration out of total number of iterations to run of the current compiled run" at Hei... 2026-03-17T16:58:16Z vlai Veronica Lai

Closes #90

tag:gitlab.com,2026-03-17:5213931947 Veronica Lai pushed to project branch 90-always-show-current-iteration-out-of-total-number-of-iterations-to-run-of-the-current-compiled at Hein Group / ivoryOS 2026-03-17T16:57:02Z vlai Veronica Lai

Veronica Lai (60d1920a) at 17 Mar 16:57

fix displaying iteration in logging panel if move away then back to...

... and 7 more commits

tag:gitlab.com,2026-03-17:5213929523 Veronica Lai deleted project branch 95-bug-generated-proxy-authentication-error at Hein Group / ivoryOS 2026-03-17T16:56:31Z vlai Veronica Lai

Veronica Lai (3f154192) at 17 Mar 16:56

tag:gitlab.com,2026-03-17:5213929303 Veronica Lai closed issue #95: bug generated proxy authentication error at Hein Group / ivoryOS 2026-03-17T16:56:28Z vlai Veronica Lai

bug with generated proxy py files, that calls will raise an AuthenticationError but no such error exists/is imported


    def _call(self, payload):
        """Make API call with error handling."""
        res = session.post(self.url, json=payload, allow_redirects=False)
            # Handle 302 redirect (likely auth issue)
        if res.status_code == 302:
            try:
                self._auth()
                res = session.post(self.url, json=payload, allow_redirects=False)
            except Exception as e:
                raise AuthenticationError(
                    "Authentication failed during re-attempt. "
                    "Please check your credentials or connection."
                ) from e
        res.raise_for_status()
        data = res.json()
        if not data.get('success'):
            raise Exception(data.get('output', "Unknown API error."))
        return data.get('output')

but it doesnt seem like the code will get to that issue because in the call to _auth() usually if the username or password is incorrect it will raise the regular Exception there


    def _auth(self):
        username = self.username or 'admin'
        password = self.password or 'admin'
        res = session.get('http://192.168.30.251:8000/ivoryos/', allow_redirects=False)
        if res.status_code == 200:
            return
        else:
            session.post(
                'http://192.168.30.251:8000/ivoryos/auth/login',
                data={"username": username, "password": password}
            )
            res = session.get('http://192.168.30.251:8000/ivoryos/', allow_redirects=False)
            if res.status_code != 200:
                raise Exception("Authentication failed")
tag:gitlab.com,2026-03-17:5213929165 Veronica Lai accepted merge request !125: Resolve "bug generated proxy authentication error" at Hein Group / ivoryOS 2026-03-17T16:56:26Z vlai Veronica Lai

Closes #95

tag:gitlab.com,2026-03-17:5213929140 Veronica Lai pushed to project branch main at Hein Group / ivoryOS 2026-03-17T16:56:26Z vlai Veronica Lai

Veronica Lai (83285318) at 17 Mar 16:56

Merge branch '95-bug-generated-proxy-authentication-error' into 'main'

... and 1 more commit

tag:gitlab.com,2026-03-17:5213918124 Veronica Lai pushed to project branch 95-bug-generated-proxy-authentication-error at Hein Group / ivoryOS 2026-03-17T16:54:10Z vlai Veronica Lai

Veronica Lai (3f154192) at 17 Mar 16:54

replace unknown AuthenticationError with Exception when generate cl...

... and 4 more commits

tag:gitlab.com,2026-03-17:5213913862 Veronica Lai deleted project branch 94-generate-proxy-import-classes-error at Hein Group / ivoryOS 2026-03-17T16:53:08Z vlai Veronica Lai

Veronica Lai (4e8ca788) at 17 Mar 16:53

tag:gitlab.com,2026-03-17:5213913574 Veronica Lai closed issue #94: generate proxy import classes error at Hein Group / ivoryOS 2026-03-17T16:53:04Z vlai Veronica Lai

example with `community/examples/abstract_sdl_example/abstract_sdl.py`

if in your script there is an import from another file and it is an enum that gets imported imported, then the enum will be duplicated in the generated proxy script but in the method it still tries to use the path, but the module that the import comes from never gets imported.

second if a method argument has a default enum value, it is not in correct python.

for both issues see below for more details

example. move the Solvent enum to a different module and import it into abstract_sdl.py and update the dose_solvent method to:


    # @prefect.task
    def dose_solvent(self,
                     solvent_name: Solvent = Solvent.Methanol,
                     amount_in_ml: float = 5,
                     rate_ml_per_minute: float = 1
                     ):
        print("dosing liquid")
        ...

and this is what the generated proxy looks like. in this case 2 errors:

  1. trying to use community when it is not imported (and not needed) solvent_name: community.solvent.Solvent . instead if should use just the Solvent that is recreated at the top of the script. so it should be solvent_name: Solvent
  2. trying to use <> for the default solvent_name when it is invalid python. so <Solvent.Methanol: 'Methanol'> should be Solvent.Methanol instead
import requests
from typing import List, Optional

session = requests.Session()

# Generated Enum definitions
from enum import Enum

class Solvent(Enum):
    Methanol = "Methanol"
    Ethanol = "Ethanol"
    Acetone = "Acetone"
    DMF = "dmf"

...


class Sdl:
    """Auto-generated API client for sdl operations."""
    url = "http://127.0.0.1:8000/ivoryos/instruments/deck.sdl"

    ...

    def dose_solvent(self, solvent_name: Optional[community.solvent.Solvent] = <Solvent.Methanol: 'Methanol'>, amount_in_ml: float = 5, rate_ml_per_minute: float = 1):
        payload = {"hidden_name": "dose_solvent"}
        payload["solvent_name"] = solvent_name
        payload["amount_in_ml"] = amount_in_ml
        payload["rate_ml_per_minute"] = rate_ml_per_minute
        return self._call(payload)
tag:gitlab.com,2026-03-17:5213913484 Veronica Lai pushed to project branch main at Hein Group / ivoryOS 2026-03-17T16:53:03Z vlai Veronica Lai

Veronica Lai (ec440305) at 17 Mar 16:53

Merge branch '94-generate-proxy-import-classes-error' into 'main'

... and 3 more commits

tag:gitlab.com,2026-03-17:5213913471 Veronica Lai accepted merge request !122: Resolve &quot;generate proxy import classes error&quot; at Hein Group / ivoryOS 2026-03-17T16:53:02Z vlai Veronica Lai

Closes #94

tag:gitlab.com,2026-03-17:5211061588 Ivory Zhang approved merge request !124: Resolve &quot;always show current iteration out of total number of iterations to run of the current compiled run&quot; at Hein... 2026-03-17T05:56:59Z ivoryzhangwy Ivory Zhang

Closes #90

tag:gitlab.com,2026-03-17:5211049470 Ivory Zhang approved merge request !125: Resolve &quot;bug generated proxy authentication error&quot; at Hein Group / ivoryOS 2026-03-17T05:49:45Z ivoryzhangwy Ivory Zhang

Closes #95

tag:gitlab.com,2026-03-17:5211049037 Ivory Zhang approved merge request !122: Resolve &quot;generate proxy import classes error&quot; at Hein Group / ivoryOS 2026-03-17T05:49:29Z ivoryzhangwy Ivory Zhang

Closes #94

tag:gitlab.com,2026-03-17:5211028737 Ivory Zhang commented on merge request !120 at Hein Group / ivoryOS 2026-03-17T05:38:50Z ivoryzhangwy Ivory Zhang

we might have to edit the nested workflow at the drag-n-drop layer, and let the runner take the script directly. one issue was when there is additional dynamic params, the nested workflow won't update the params. We can discuss this later!