Skip to content

Commit

Permalink
Merge pull request #35 from marota/circleci-project-setup
Browse files Browse the repository at this point in the history
Circleci project setup and upgrade to grid2op 1.6.4
  • Loading branch information
marota authored Dec 21, 2021
2 parents c1bd168 + 51afa77 commit 1806c50
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 3 deletions.
47 changes: 47 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -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/[email protected]

# 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
2 changes: 1 addition & 1 deletion oracle4grid/core/agent/OneChangeThenOnlyReconnect.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import numpy
from grid2op.Agent.BaseAgent import BaseAgent
from grid2op.Agent import BaseAgent


class OneChangeThenOnlyReconnect(BaseAgent):
Expand Down
2 changes: 1 addition & 1 deletion oracle4grid/core/replay/agent_replay.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
11 changes: 11 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
numba==0.53.1
grid2op==1.6.4
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
lightsim2grid>=0.6.0
pytest==6.2.2
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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"
]
Expand Down

0 comments on commit 1806c50

Please sign in to comment.