Commit Graph

353 Commits

Author SHA1 Message Date
Marek Wolan
314e76f497 Merged PR 122: Typehint everything
## Summary
Added typehints to functions/methods, and class attributes.

## Test process
I used flake8-annotations and mypy to verify completeness and correctness. Mypy did throw up a very large number of errors and many of them point to some potential problems in the codebase. To elaborate, there are some places where there has been confusion as to whether objects should be strings, integers, or enums. Resolving this is out of scope of this PR but I will create more tickets with concrete examples.

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [ ] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1623
2023-07-18 09:43:08 +00:00
Marek Wolan
0d521bc96b Remove redundant 'if TYPE_CHECKING' statements 2023-07-18 10:21:06 +01:00
Marek Wolan
6c31034dba Ensure everything is still typehinted 2023-07-18 10:13:54 +01:00
Marek Wolan
9c28de5b49 Mark failing tests as Xfail to force build success 2023-07-18 10:08:02 +01:00
Marek Wolan
471826e5ce Merge branch 'dev' into feature/1623-typehints 2023-07-18 10:03:48 +01:00
Christopher McCarthy
2c4b4801b0 Merged PR 123: #1631 - Added the DEFCON 703 header to all possible files
## Summary
Added the DEFCON 703 header to all possible files

## Test process
Built docs to confirm that the top-of-the-page comment does not break anything

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [X] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

#1631 - Added the DEFCON 703 header to all possible files

Related work items: #1631
2023-07-17 19:51:29 +00:00
Chris McCarthy
f4683f3b66 #1631 - Updated the copyright statement to comply with DEFCON 703 Edition 08/13 2023-07-17 19:57:34 +01:00
Chris McCarthy
678f953ced #1631 - Added the DEFCON 703 header to all possible files 2023-07-17 19:28:43 +01:00
Christopher McCarthy
3186fcb489 Merged PR 121: #1629 - Added rllib test
## Summary
Quick test that uses RLLIB in a session

## Test process
The learning session completes then we check that the number of rows in both the average reward per episode and all transactions csv files.

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [ ] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

#1629 - Added rllib test

Related work items: #1629
2023-07-17 17:28:51 +00:00
Czar Echavez
89fd8fb8dc Merged PR 119: Loading SB3 Agents + Loading agent via PrimaiteSession
## Summary
- Added a feature which allows a user to load a previous SB3 session
- Added a feature which allows a user to load a previous PrimaiteSession
- Added a feature which allows a user to load a previous session via the CLI: `primaite session --load "<SESSION_PATH>"`
- RLlib is TODO in another ticket #1626
- Parallel tests via the [pytest-xdist](https://pypi.org/project/pytest-xdist/) dependency (MIT licensed)
- Moved hardcoded agent into hardcoded_abc.py
- renamed agent.py to agent_abc.py to clarify it is an abstract base class
- Added documentation to clarify how to use the feature via CLI or using the run function via main.py

## Test process
Created [test_session_loading.py](https://dev.azure.com/ma-dev-uk/PrimAITE/_git/PrimAITE/pullrequest/119?_a=files&path=/tests/test_session_loading.py) which loads a previously run session and then performs a learn and evaluation run on the loaded agent/Primate session.

The test copies the saved session into a temporary folder, which is then set as the test session path. Once the test is done, the temporary folder should then be deleted

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [X] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

Related work items: #1595
2023-07-17 15:26:42 +00:00
Marek Wolan
4032f3a2a8 Change typehints after mypy analysis 2023-07-17 16:22:07 +01:00
Czar Echavez
1d0a211b44 Merge branch 'dev' into feature/1595-finalise-and-test-the-loading-of-trained-agents 2023-07-17 15:23:46 +01:00
Brian Kanyora
12339aa970 Merged PR 113: feature/1597-Getting-Started
## Summary
Add a Getting started page to the docs file.

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [na] I have written **tests** for any new functionality added with this PR
- [x] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1597
2023-07-17 14:19:16 +00:00
Chris McCarthy
ee0c797c3c #1629 - Added assertion in the test that checks the length of the all transactions file too.
- Added supporting function on the TempPrimaiteSession class that reads the all transactions csv file.
- Some renaming of the functions.
2023-07-17 12:14:47 +01:00
Czar Echavez
6cb475ecdc #1595: set default tc and ldc to None for AgentABC and PrimaiteSession + adding a comment for cli load flag 2023-07-17 11:54:54 +01:00
Chris McCarthy
0732eb2f5c #1629 - Added rllib test 2023-07-17 11:50:07 +01:00
Marek Wolan
ef8f6de646 Add typehint for agent config class 2023-07-17 11:21:29 +01:00
Brian Kanyora
9374646758 Merge remote-tracking branch 'origin/dev' into feature/1597-Getting-Started 2023-07-17 10:33:59 +01:00
Brian Kanyora
ff6c8c0c6b Apply suggestions from code review 2023-07-17 09:23:11 +00:00
Marek Wolan
98ac228f90 Fix types according to mypy 2023-07-14 16:38:55 +01:00
Czar Echavez
232908ac00 #1595: minor fix to cli command 2023-07-14 16:04:34 +01:00
Czar Echavez
c783965001 #1595: added loading sessions to run command + test + documentation for how to use loading sessions 2023-07-14 15:51:38 +01:00
Marek Wolan
e522e56ff1 Add typehints 2023-07-14 14:43:47 +01:00
Czar.Echavez
fbdb8aab28 #1595:
- Added ability to load sessions via PrimaiteSession
- PrimaiteSession loading test
- Added a NotImplemented RLlib loading for now
- Added the ability to load sessions for hardcoded agents
- Moved Session metadata parsing to utils
2023-07-14 14:14:03 +01:00
Marek Wolan
c57ed6edcd Added type hints 2023-07-14 12:01:38 +01:00
Czar Echavez
dce0d10383 #1595: fix poorly merged tests + files 2023-07-14 11:21:59 +01:00
Czar Echavez
a92ef3f4ad #1595: test to make sure that the loaded agent trains + remove unnecessary files + fixing agent save output name 2023-07-14 10:56:28 +01:00
Czar Echavez
bc7c32697f Merge branch 'dev' into feature/1595-finalise-and-test-the-loading-of-trained-agents 2023-07-14 08:39:52 +01:00
Marek Wolan
a923d818d3 Add More Typehint 2023-07-13 18:08:44 +01:00
Czar.Echavez
c3023d4d7c #1595 missed hardcoded_abc file in commit 2023-07-13 16:24:30 +01:00
Czar.Echavez
e2d5f0bcff #1595:
- SB3 Agent loading
- rename agent.py -> agent_abc.py
- rename hardcoded.py -> hardcoded_abc.py
- Tests
- Added in test asset that is used to load the SB3 Agent
2023-07-13 16:24:03 +01:00
Marek Wolan
4e4166d4d4 Continue Adding Typehints 2023-07-13 12:25:54 +01:00
Brian Kanyora
345b89d5ee feature/1597:
Added dependencies to the index.rst since v1.1.0.
2023-07-13 09:36:04 +01:00
Brian Kanyora
3874d08a7e feature/1597:
Added dependencies to the index.rst since v1.1.0.
2023-07-13 09:35:42 +01:00
Marek Wolan
d2bac4307a Type hint ACLs 2023-07-12 16:58:12 +01:00
Marek Wolan
f3809054bf Merged PR 116: Update documentation
## Summary
* Update observation space information and standardise formatting of code blocks in that section
* Remove non-ascii quotation characters
* Update custom blue agent page to match new AgentSession classes.
* Introduce glossary
* Provide a first draft of migration guide for 1.2 to 2.0 (probably not comprehensive)

## Test process
Sphinx is able to build the documentation as checked on my local machine

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [x] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1602
2023-07-12 14:28:41 +00:00
Sunil Samra
8caec4eaa1 Merged PR 115: Configure Different Episode and Step Counts for Training and Evaluation
## Summary
Training configs now have 2 different types of episode and step counts - one for train and one for evaluation.

`num_train_episodes`
`num_train_steps`
`num_eval_episodes`
`num_eval_steps`

## Test process
A test file `test_train_eval_episode_steps.py` has been implemented which runs train and evaluation session on two particular configs.

The train and evaluation sessions have different episodes and step count and the test checks that the output log files have the correct number of `total_steps` and `total_episodes`.

## Checklist
- [X] This PR is linked to a **work item**
- [X] I have performed **self-review** of the code
- [X] I have written **tests** for any new functionality added with this PR
- [X] I have updated the **documentation** if this PR changes or adds functionality
- [X] I have run **pre-commit** checks for code style

Related work items: #1566, #1589
2023-07-12 13:34:58 +00:00
Czar Echavez
54e4da1250 #1595: run tests in parallel 2023-07-12 12:04:26 +01:00
SunilSamra
bd8d9f278d 1566 - removed redundant config file 2023-07-12 09:52:54 +01:00
Marek Wolan
5d5d70c0b6 Add better hyperlinks 2023-07-12 09:16:40 +01:00
SunilSamra
92f94b7be7 Merge remote-tracking branch 'origin/dev' into feature/1566-configure_episode-steps-learn-eval 2023-07-11 17:18:05 +01:00
Chris McCarthy
8eba54f81c #1597 - Fixed Project Links side bar 2023-07-11 15:50:37 +01:00
Chris McCarthy
32f2444102 Merge remote-tracking branch 'origin/feature/1597-Getting-Started' into feature/1597-Getting-Started
# Conflicts:
#	docs/source/getting_started.rst
2023-07-11 15:47:47 +01:00
Chris McCarthy
646ac3cf02 #1597 - Added code tabs to getting started page 2023-07-11 15:47:13 +01:00
Czar.Echavez
e51391b0cf #1595: Moved hardcoded agent into its own file 2023-07-11 15:03:02 +01:00
Brian Kanyora
70798b6c04 Added a space 2023-07-11 14:15:02 +01:00
Brian Kanyora
e99560f720 Addressing Sunils comments from my 2023-07-11 13:49:01 +01:00
Marek Wolan
fdec452e7a Merge remote-tracking branch 'origin/dev' into feature/1602-update-docs 2023-07-11 13:13:02 +01:00
Marek Wolan
93a9d7732e Merged PR 114: Change build pipeline to only run once on commits
## Summary
Unfortunately, I had to do away with the nice and neat matrix strategy for builds, because they do not support conditionals. Instead, I manually replicated the behaviour of the matrix but added a conditional to run every platform only when the 'build reason' is PR.

## Test process
*How have you tested this (if applicable)?*

## Checklist
- [x] This PR is linked to a **work item**
- [x] I have performed **self-review** of the code
- [ ] I have written **tests** for any new functionality added with this PR
- [ ] I have updated the **documentation** if this PR changes or adds functionality
- [x] I have run **pre-commit** checks for code style

Related work items: #1603
2023-07-11 12:12:32 +00:00
SunilSamra
14d7317b6b 1566 - updated docs for new items in training_config 2023-07-11 12:40:25 +01:00