From 4ff938437e1137a08c5265781223da6589a88cc6 Mon Sep 17 00:00:00 2001 From: Dmytro Korenkevych Date: Mon, 16 Dec 2024 13:37:41 -0800 Subject: [PATCH] Documentation generation via gh actions (#107) Summary: Adds a github action to automatically re-generate html documentaiton files on every push/pull request using the pdoc library. Now whenever a new commit is pushed to the repository, the documentaiton should be automatically updated. Pull Request resolved: https://github.com/facebookresearch/Pearl/pull/107 Differential Revision: D67157339 --- .github/workflows/CI.yml | 32 +++++++++++++++++-- .../sequential_decision_making/twin_critic.py | 3 +- test/integration/test_integration.py | 6 +--- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 34f20df4..d5e2fcee 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -8,18 +8,46 @@ jobs: os: [ubuntu-latest, macos-latest, windows-latest] env: OS: ${{ matrix.os }} - PYTHON: '3.9' + PYTHON: "3.10" steps: - uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: "3.10" - name: Install dependencies run: | + pip install pdoc3 pip install pytest pip install pytest-cov pip install -e . + - name: Update documentation + run: | + pdoc --html pearl --output-dir html --force + - name: Upload docs artifacts + uses: actions/upload-artifact@v4 + with: + # Name of the artifact to upload. + # Optional. Default is 'artifact' + name: artifact + + # A file, directory or wildcard pattern that describes what to upload + # Required. + path: html/ + + # The desired behavior if no files are found using the provided path. + # Available Options: + # warn: Output a warning but do not fail the action + # error: Fail the action with an error message + # ignore: Do not output any warnings or errors, the action does not fail + # Optional. Default is 'warn' + if-no-files-found: warn + + # If true, an artifact with a matching name will be deleted before a new one is uploaded. + # If false, the action will fail if an artifact for the given name already exists. + # Does not fail if the artifact does not exist. + # Optional. Default is 'false' + overwrite: true - name: Generate coverage report run: | pytest --cov=./ --cov-report=xml diff --git a/pearl/neural_networks/sequential_decision_making/twin_critic.py b/pearl/neural_networks/sequential_decision_making/twin_critic.py index b78b35d0..ad334d5b 100644 --- a/pearl/neural_networks/sequential_decision_making/twin_critic.py +++ b/pearl/neural_networks/sequential_decision_making/twin_critic.py @@ -35,7 +35,8 @@ def __init__( action_dim: Optional[int] = None, hidden_dims: Optional[Iterable[int]] = None, init_fn: Callable[[nn.Module], None] = init_weights, - network_type: type[QValueNetwork] = VanillaQValueNetwork, + #network_type: type[QValueNetwork] = VanillaQValueNetwork, + network_type: str = None, output_dim: int = 1, network_instance_1: Optional[QValueNetwork] = None, network_instance_2: Optional[QValueNetwork] = None, diff --git a/test/integration/test_integration.py b/test/integration/test_integration.py index 1c242634..7d27dd3d 100644 --- a/test/integration/test_integration.py +++ b/test/integration/test_integration.py @@ -21,14 +21,10 @@ from pearl.neural_networks.sequential_decision_making.twin_critic import TwinCritic from pearl.utils.instantiations.spaces.discrete import DiscreteSpace -try: - import gymnasium as gym -except ModuleNotFoundError: - import gym # noqa import unittest -from gym.envs.toy_text.frozen_lake import generate_random_map +from gymnasium.envs.toy_text.frozen_lake import generate_random_map from pearl.action_representation_modules.one_hot_action_representation_module import ( OneHotActionTensorRepresentationModule,