From ce9cde2ea5429fa14bce4410ce3021f7d4bfd44c Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 9 Nov 2023 20:44:06 +0100 Subject: [PATCH 1/8] Git ignore virtual environments. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 68a0b4c0..cbbbce8a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ htmlcov/ .coverage .idea/* .vscode/* +venv From eb2e36dfb3cf06da7d322b30b2c43a6f098f19dd Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 9 Nov 2023 20:44:52 +0100 Subject: [PATCH 2/8] Git ignore pyenv version selector. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index cbbbce8a..73e46150 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ htmlcov/ .idea/* .vscode/* venv +.python-version From 0e189aa631257dd8d4ed211763c58a79850f0fd8 Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 9 Nov 2023 22:45:45 +0100 Subject: [PATCH 3/8] Add skeleton interfaces. --- netqasm/sdk/run/__init__.py | 2 ++ netqasm/sdk/run/context.py | 29 +++++++++++++++++++++++++++++ netqasm/sdk/run/program.py | 15 +++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 netqasm/sdk/run/__init__.py create mode 100644 netqasm/sdk/run/context.py create mode 100644 netqasm/sdk/run/program.py diff --git a/netqasm/sdk/run/__init__.py b/netqasm/sdk/run/__init__.py new file mode 100644 index 00000000..e8a25732 --- /dev/null +++ b/netqasm/sdk/run/__init__.py @@ -0,0 +1,2 @@ +from .context import Context +from .program import Program diff --git a/netqasm/sdk/run/context.py b/netqasm/sdk/run/context.py new file mode 100644 index 00000000..da901621 --- /dev/null +++ b/netqasm/sdk/run/context.py @@ -0,0 +1,29 @@ +""" +External execution context interface. +""" + +from abc import ABC, abstractmethod +from typing import Dict + +from netqasm.sdk.connection import BaseNetQASMConnection +from netqasm.sdk.classical_communication.socket import Socket +from netqasm.sdk.epr_socket import EPRSocket + +class Context(ABC): + def __init__(self): + pass + + @property + @abstractmethod + def connection(self) -> BaseNetQASMConnection: + raise NotImplementedError + + @property + @abstractmethod + def csockets(self) -> Dict[str, Socket]: + raise NotImplementedError + + @property + @abstractmethod + def epr_sockets(self) -> Dict[str, EPRSocket]: + raise NotImplementedError diff --git a/netqasm/sdk/run/program.py b/netqasm/sdk/run/program.py new file mode 100644 index 00000000..7ba317e8 --- /dev/null +++ b/netqasm/sdk/run/program.py @@ -0,0 +1,15 @@ +""" +External program interface. +""" + +from abc import ABC, abstractmethod + +from netqasm.sdk.run import Context + +class Program(ABC): + def __init__(self): + print(__name__) + + @abstractmethod + def run(self, context: Context): + raise NotImplementedError From feb32421cd02e68ec50dcf449d8af2edd5dbf337 Mon Sep 17 00:00:00 2001 From: Casper Date: Thu, 16 Nov 2023 11:42:35 +0100 Subject: [PATCH 4/8] Prefer private attribute over property accessor. --- netqasm/sdk/connection.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netqasm/sdk/connection.py b/netqasm/sdk/connection.py index 2cd505e7..ecab5867 100644 --- a/netqasm/sdk/connection.py +++ b/netqasm/sdk/connection.py @@ -676,7 +676,7 @@ def loop_until(self, max_iterations: int) -> ContextManager[SdkLoopUntilContext] :param max_iterations: the maximum number of times to loop """ - return self.builder.sdk_new_loop_until_context(max_iterations) + return self._builder.sdk_new_loop_until_context(max_iterations) def if_eq(self, a: T_CValue, b: T_CValue, body: T_BranchRoutine) -> None: """Execute a function if a == b. From 9cbd7f6a1b5d2291f33e0abe8a129fc564b53656 Mon Sep 17 00:00:00 2001 From: Casper Date: Mon, 20 Nov 2023 13:53:46 +0100 Subject: [PATCH 5/8] Add parameters property. --- netqasm/sdk/run/program.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/netqasm/sdk/run/program.py b/netqasm/sdk/run/program.py index 7ba317e8..1707c7df 100644 --- a/netqasm/sdk/run/program.py +++ b/netqasm/sdk/run/program.py @@ -3,6 +3,7 @@ """ from abc import ABC, abstractmethod +from typing import Dict, Any from netqasm.sdk.run import Context @@ -10,6 +11,10 @@ class Program(ABC): def __init__(self): print(__name__) + @property + def parameters(self) -> Dict[str, Any]: + raise NotImplementedError + @abstractmethod def run(self, context: Context): raise NotImplementedError From 0cc4f97edba7d0e788bd13df6069d48ab9451ae6 Mon Sep 17 00:00:00 2001 From: Casper Date: Fri, 26 Jan 2024 17:49:32 +0100 Subject: [PATCH 6/8] Git ignore direnv envrc. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 73e46150..c57675ff 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ htmlcov/ .vscode/* venv .python-version +.envrc From df592929db87db0ca3c9dd4bdd28320281b1e427 Mon Sep 17 00:00:00 2001 From: Casper Date: Mon, 12 Feb 2024 15:19:51 +0100 Subject: [PATCH 7/8] Remove sockets from interface. --- netqasm/sdk/run/context.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/netqasm/sdk/run/context.py b/netqasm/sdk/run/context.py index da901621..be0078e4 100644 --- a/netqasm/sdk/run/context.py +++ b/netqasm/sdk/run/context.py @@ -3,11 +3,8 @@ """ from abc import ABC, abstractmethod -from typing import Dict from netqasm.sdk.connection import BaseNetQASMConnection -from netqasm.sdk.classical_communication.socket import Socket -from netqasm.sdk.epr_socket import EPRSocket class Context(ABC): def __init__(self): @@ -17,13 +14,3 @@ def __init__(self): @abstractmethod def connection(self) -> BaseNetQASMConnection: raise NotImplementedError - - @property - @abstractmethod - def csockets(self) -> Dict[str, Socket]: - raise NotImplementedError - - @property - @abstractmethod - def epr_sockets(self) -> Dict[str, EPRSocket]: - raise NotImplementedError From 2447365faa916ffb6940d9726192eaf1c448ca41 Mon Sep 17 00:00:00 2001 From: Casper Date: Mon, 12 Feb 2024 16:17:32 +0100 Subject: [PATCH 8/8] Satisfy isort linter. --- netqasm/sdk/run/context.py | 1 + netqasm/sdk/run/program.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/netqasm/sdk/run/context.py b/netqasm/sdk/run/context.py index be0078e4..8454b0c6 100644 --- a/netqasm/sdk/run/context.py +++ b/netqasm/sdk/run/context.py @@ -6,6 +6,7 @@ from netqasm.sdk.connection import BaseNetQASMConnection + class Context(ABC): def __init__(self): pass diff --git a/netqasm/sdk/run/program.py b/netqasm/sdk/run/program.py index 1707c7df..594c34c5 100644 --- a/netqasm/sdk/run/program.py +++ b/netqasm/sdk/run/program.py @@ -3,10 +3,11 @@ """ from abc import ABC, abstractmethod -from typing import Dict, Any +from typing import Any, Dict from netqasm.sdk.run import Context + class Program(ABC): def __init__(self): print(__name__)