From a4b4d6ff73e0ae9b2e5dbaa8d249282be7e2f30a Mon Sep 17 00:00:00 2001 From: marota Date: Tue, 21 Dec 2021 10:31:45 +0100 Subject: [PATCH 1/5] Add .circleci/config.yml --- .circleci/config.yml | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..7dc7f85 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,47 @@ +# Use the latest 2.1 version of CircleCI pipeline process engine. +# See: https://circleci.com/docs/2.0/configuration-reference +version: 2.1 + +# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects. +# See: https://circleci.com/docs/2.0/orb-intro/ +orbs: + # The python orb contains a set of prepackaged CircleCI configuration you can use repeatedly in your configuration files + # Orb commands and jobs help you with common scripting around a language/tool + # so you dont have to copy and paste it everywhere. + # See the orb documentation here: https://circleci.com/developer/orbs/orb/circleci/python + python: circleci/python@1.2 + +# Define a job to be invoked later in a workflow. +# See: https://circleci.com/docs/2.0/configuration-reference/#jobs +jobs: + build-and-test: # This is the name of the job, feel free to change it to better match what you're trying to do! + # These next lines defines a Docker executors: https://circleci.com/docs/2.0/executor-types/ + # You can specify an image from Dockerhub or use one of the convenience images from CircleCI's Developer Hub + # A list of available CircleCI Docker convenience images are available here: https://circleci.com/developer/images/image/cimg/python + # The executor is the environment in which the steps below will be executed - below will use a python 3.8 container + # Change the version below to your required version of python + docker: + - image: cimg/python:3.8 + # Checkout the code as the first step. This is a dedicated CircleCI step. + # The python orb's install-packages step will install the dependencies from a Pipfile via Pipenv by default. + # Here we're making sure we use just use the system-wide pip. By default it uses the project root's requirements.txt. + # Then run your tests! + # CircleCI will report the results back to your VCS provider. + steps: + - checkout + - python/install-packages: + pkg-manager: pip + # app-dir: ~/project/package-directory/ # If you're requirements.txt isn't in the root directory. + # pip-dependency-file: test-requirements.txt # if you have a different name for your requirements file, maybe one that combines your runtime and test requirements. + - run: + name: Run tests + # This assumes pytest is installed via the install-package step above + command: pytest + +# Invoke jobs via workflows +# See: https://circleci.com/docs/2.0/configuration-reference/#workflows +workflows: + sample: # This is the name of the workflow, feel free to change it to better match your workflow. + # Inside the workflow, you define the jobs you want to run. + jobs: + - build-and-test From fd4cb4630ccdb0177d67e882057238b0ea841647 Mon Sep 17 00:00:00 2001 From: marota Date: Tue, 21 Dec 2021 10:35:51 +0100 Subject: [PATCH 2/5] adding requirements.txt --- requirements.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..076f29f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,10 @@ +numba==0.53.1 +grid2op>1.5.1 +pandas==1.2.4 +psutil==5.7.2 +matplotlib==3.3.2 +pybind11==2.5.0 +ipykernel==5.3.4 +ipywidgets==7.5.1 +numpy==1.19.3 +pytest==6.2.2 From a2f2b126c91be87b8e0c24b898ca9354f6a99059 Mon Sep 17 00:00:00 2001 From: marota Date: Tue, 21 Dec 2021 10:44:33 +0100 Subject: [PATCH 3/5] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 076f29f..fa985d6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ numba==0.53.1 -grid2op>1.5.1 +grid2op==1.5.1 pandas==1.2.4 psutil==5.7.2 matplotlib==3.3.2 From 639202fde66a8d31f6ba8ef0497b8b52e7cfe24d Mon Sep 17 00:00:00 2001 From: marota Date: Tue, 21 Dec 2021 16:28:25 +0100 Subject: [PATCH 4/5] upgrading to grid2op 1.6.4 --- oracle4grid/core/agent/OneChangeThenOnlyReconnect.py | 2 +- requirements.txt | 3 ++- setup.py | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/oracle4grid/core/agent/OneChangeThenOnlyReconnect.py b/oracle4grid/core/agent/OneChangeThenOnlyReconnect.py index 4c41bef..b988627 100644 --- a/oracle4grid/core/agent/OneChangeThenOnlyReconnect.py +++ b/oracle4grid/core/agent/OneChangeThenOnlyReconnect.py @@ -1,5 +1,5 @@ import numpy -from grid2op.Agent.BaseAgent import BaseAgent +from grid2op.Agent import BaseAgent class OneChangeThenOnlyReconnect(BaseAgent): diff --git a/requirements.txt b/requirements.txt index fa985d6..4d300cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ numba==0.53.1 -grid2op==1.5.1 +grid2op==1.6.4 pandas==1.2.4 psutil==5.7.2 matplotlib==3.3.2 @@ -7,4 +7,5 @@ pybind11==2.5.0 ipykernel==5.3.4 ipywidgets==7.5.1 numpy==1.19.3 +lightsim2grid>=0.6.0 pytest==6.2.2 diff --git a/setup.py b/setup.py index 6c91ab1..2351c3a 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ pkgs = { "required": [ "numba==0.53.1", - "grid2op>1.5.1", + "grid2op==1.6.4", "pandas==1.2.4", "psutil==5.7.2", "matplotlib==3.3.2", @@ -13,6 +13,7 @@ "ipywidgets==7.5.1", "numpy==1.19.3", "pytest==6.2.2", + "lightsim2grid==0.6.0", # We don't need these "scipy<=1.6.0" ] From 51afa77c074535303bc3aaa862968fba727b3a34 Mon Sep 17 00:00:00 2001 From: marota Date: Tue, 21 Dec 2021 19:12:04 +0100 Subject: [PATCH 5/5] correcting a last missing typo changing t by nb_timestep --- oracle4grid/core/replay/agent_replay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oracle4grid/core/replay/agent_replay.py b/oracle4grid/core/replay/agent_replay.py index 82d7c4e..1139fe4 100644 --- a/oracle4grid/core/replay/agent_replay.py +++ b/oracle4grid/core/replay/agent_replay.py @@ -61,7 +61,7 @@ def replay(action_path: list, max_iter: int, # Check reward as expected expected_reward = extract_expected_reward(kpis) - if (not isclose(expected_reward, agent_reward, rel_tol=rel_tol)) and t==max_iter: + if (not isclose(expected_reward, agent_reward, rel_tol=rel_tol)) and nb_time_step==max_iter: warnings.warn("During replay - oracle agent does not retrieve the expected reward. Some timestep may have break some game rules in real condition. Expected reward: "+str(expected_reward)+" Reward obtained: "+str(agent_reward)) elif nb_time_step==max_iter: # if pas de game over print("Expected reward of "+str(expected_reward)+" has been correctly obtained in replay conditions")