diff --git a/.gitignore b/.gitignore index 1f091d4..126808d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,9 @@ __pycache__/ *.py[cod] rlenv/ runs/ +*.tox +*.coverage +.vscode/ +docs/build +.mypy_cache/ +*egg-info* diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..6247f7e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/action_selector.rst b/docs/source/action_selector.rst new file mode 100644 index 0000000..17cfdfb --- /dev/null +++ b/docs/source/action_selector.rst @@ -0,0 +1,4 @@ +Action Selector +=============== +.. automodule:: rltorch.action_selector + :members: diff --git a/docs/source/agents.rst b/docs/source/agents.rst new file mode 100644 index 0000000..76ef275 --- /dev/null +++ b/docs/source/agents.rst @@ -0,0 +1,4 @@ +Agents +====== +.. automodule:: rltorch.agents + :members: diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..5eef823 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,58 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- + +project = 'RLTorch' +copyright = '2020, Brandon Rozek' +author = 'Brandon Rozek' + +# The full version, including alpha/beta/rc tags +release = '0.1.0' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + 'sphinx.ext.autosummary', + 'sphinx.ext.napoleon', + "sphinx.ext.viewcode", + "sphinx.ext.mathjax", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + + +html_sidebars = { + '**': [ + 'about.html', + 'navigation.html', + 'searchbox.html', + ] +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/docs/source/env.rst b/docs/source/env.rst new file mode 100644 index 0000000..80b6c53 --- /dev/null +++ b/docs/source/env.rst @@ -0,0 +1,5 @@ +Environment Utilities +===================== +.. automodule:: rltorch.env + :members: + diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..1f90744 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,15 @@ +Welcome to RLTorch's documentation! +=================================== +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + action_selector + agents + env + memory + mp + network + scheduler + log + seed diff --git a/docs/source/log.rst b/docs/source/log.rst new file mode 100644 index 0000000..658ecfc --- /dev/null +++ b/docs/source/log.rst @@ -0,0 +1,4 @@ +Logging +======= +.. automodule:: rltorch.log + :members: diff --git a/docs/source/memory.rst b/docs/source/memory.rst new file mode 100644 index 0000000..3446f3d --- /dev/null +++ b/docs/source/memory.rst @@ -0,0 +1,4 @@ +Memory Structures +================= +.. automodule:: rltorch.memory + :members: diff --git a/docs/source/mp.rst b/docs/source/mp.rst new file mode 100644 index 0000000..7fad488 --- /dev/null +++ b/docs/source/mp.rst @@ -0,0 +1,4 @@ +Multiprocessing +=============== +.. automodule:: rltorch.mp + :members: diff --git a/docs/source/network.rst b/docs/source/network.rst new file mode 100644 index 0000000..1e3d69b --- /dev/null +++ b/docs/source/network.rst @@ -0,0 +1,4 @@ +Neural Networks +=============== +.. automodule:: rltorch.network + :members: diff --git a/docs/source/scheduler.rst b/docs/source/scheduler.rst new file mode 100644 index 0000000..61fd10c --- /dev/null +++ b/docs/source/scheduler.rst @@ -0,0 +1,4 @@ +Hyperparameter Scheduling +========================= +.. automodule:: rltorch.scheduler + :members: diff --git a/docs/source/seed.rst b/docs/source/seed.rst new file mode 100644 index 0000000..933023b --- /dev/null +++ b/docs/source/seed.rst @@ -0,0 +1,4 @@ +Seeding +======= +.. automodule:: rltorch.seed + :members: diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 91331da..0000000 --- a/requirements.txt +++ /dev/null @@ -1,32 +0,0 @@ -absl-py==0.7.0 -astor==0.7.1 -atari-py==0.1.7 -certifi==2018.11.29 -chardet==3.0.4 -future==0.17.1 -gast==0.2.2 -grpcio==1.18.0 -gym==0.10.11 -h5py==2.9.0 -idna==2.8 -Keras-Applications==1.0.7 -Keras-Preprocessing==1.0.8 -Markdown==3.0.1 -numpy==1.16.0 -opencv-python==4.0.0.21 -Pillow==6.2.0 -pkg-resources==0.0.0 -protobuf==3.6.1 -pyglet==1.3.2 -PyOpenGL==3.1.0 -requests==2.21.0 -scipy==1.2.0 -six==1.12.0 -tensorboard==1.12.2 -tensorboardX==1.6 -tensorflow==1.15.2 -termcolor==1.1.0 -torch==1.0.0 -urllib3==1.24.2 -Werkzeug==0.15.3 -numba==0.42.1 diff --git a/setup.py b/setup.py index c0763be..66de91d 100644 --- a/setup.py +++ b/setup.py @@ -12,4 +12,11 @@ setuptools.setup( description="Reinforcement Learning Framework for PyTorch", version="0.1", packages=setuptools.find_packages(), -) \ No newline at end of file + install_requires=[ + "numpy~=1.16.0", + "opencv-python~=4.2.0.32", + "gym~=0.10.11", + "torch~=1.4.0", + "numba~=0.48.0" + ] +) diff --git a/tests/test.py b/tests/test.py new file mode 100644 index 0000000..22eea34 --- /dev/null +++ b/tests/test.py @@ -0,0 +1,6 @@ +import rltorch +import unittest + +class Test(unittest.TestCase): + def test(self): + pass diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..bf11c08 --- /dev/null +++ b/tox.ini @@ -0,0 +1,17 @@ +[tox] +envlist = + py36 + py37 + py38 + +[testenv] +deps = coverage +commands = + coverage run --source=tests,rltorch -m unittest discover tests + + +[testenv:py38] +commands = + coverage run --source=tests,rltorch -m unittest discover tests + coverage report -m +