diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..b16fa25 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,36 @@ +name: GitHub Pages + +on: + push: + branches: + - main + +jobs: + deploy-pages: + runs-on: ubuntu-latest + container: + image: python:3.10 + volumes: + - public:/public + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v1 + + - name: Install Prerequisites 🖥️ + run: | + apt update + apt install rsync -y + + - name: Build 🛠️ + run: | + python --version + pip install -r requirements.txt + poetry run sphinx-build -d build/doctrees source build/html + mv build/html public/ + touch public/.nojekyll + + - name: Deploy 🚀 + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: public + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d0c3cbf --- /dev/null +++ b/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/make.bat b/make.bat new file mode 100644 index 0000000..6fcf05b --- /dev/null +++ b/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.https://www.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/requirements.txt b/requirements.txt new file mode 100644 index 0000000..49fcebf --- /dev/null +++ b/requirements.txt @@ -0,0 +1,38 @@ +alabaster==0.7.12 +astroid==2.12.12 +Babel==2.11.0 +beautifulsoup4==4.11.1 +charset-normalizer==2.1.1 +docutils==0.17.1 +furo==2022.9.29 +idna==3.4 +imagesize==1.4.1 +Jinja2==3.1.2 +lazy-object-proxy==1.8.0 +markdown-it-py==2.1.0 +MarkupSafe==2.1.1 +mdit-py-plugins==0.3.1 +mdurl==0.1.2 +myst-parser==0.18.1 +packaging==21.3 +Pygments==2.13.0 +pyparsing==3.0.9 +pytz==2022.6 +PyYAML==6.0 +requests==2.28.1 +snowballstemmer==2.2.0 +soupsieve==2.3.2.post1 +Sphinx==5.3.0 +sphinx-autoapi==2.0.0 +sphinx-basic-ng==1.0.0b1 +sphinx-rtd-theme==1.1.1 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==2.0.0 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.5 +typing_extensions==4.4.0 +Unidecode==1.3.6 +urllib3==1.26.12 +wrapt==1.14.1 diff --git a/source/_static/icons/favicon.ico b/source/_static/icons/favicon.ico new file mode 100644 index 0000000..11b2bc2 Binary files /dev/null and b/source/_static/icons/favicon.ico differ diff --git a/source/_static/icons/fireline_logo.png b/source/_static/icons/fireline_logo.png new file mode 100644 index 0000000..bea9db8 Binary files /dev/null and b/source/_static/icons/fireline_logo.png differ diff --git a/source/_static/icons/rl_logo.png b/source/_static/icons/rl_logo.png new file mode 100644 index 0000000..1c92220 Binary files /dev/null and b/source/_static/icons/rl_logo.png differ diff --git a/source/_static/icons/rl_logo_horizontal.png b/source/_static/icons/rl_logo_horizontal.png new file mode 100644 index 0000000..3dbc540 Binary files /dev/null and b/source/_static/icons/rl_logo_horizontal.png differ diff --git a/source/_static/images/html_documentation.png b/source/_static/images/html_documentation.png new file mode 100644 index 0000000..b750905 Binary files /dev/null and b/source/_static/images/html_documentation.png differ diff --git a/source/conf.py b/source/conf.py new file mode 100644 index 0000000..134cbdf --- /dev/null +++ b/source/conf.py @@ -0,0 +1,77 @@ +# 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/main/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +from datetime import date + +# import sys +# sys.path.insert(0, os.path.abspath('../../')) + +# -- Project information ----------------------------------------------------- + +project = "fiReLine" +copyright = f"{date.today().year}, fiReLine" +author = ( + "Marissa Dotter, Michael Doyle, Dhanuj Gandikota, Chris Kempis, " + "Lauren Schambach, Alex Tapley, Michael Threet, Tim Welsh" +) + +# -- 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.napoleon", + "myst_parser", + "sphinx.ext.intersphinx", +] + +intersphinx_mapping = { + "python": ("https://docs.python.org/", None), + "numpy": ("https://numpy.org/doc/stable/", None), + "scikit-image": ("https://scikit-image.org/docs/stable/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), + "numba": ("https://numba.pydata.org/numba-doc/latest/", None), + "PIL": ("https://pillow.readthedocs.io/en/stable/", None), + "pygame": ("https://www.pygame.org/docs/", None), +} +tls_verify = False + +# Autodoc settings +autodoc_typehints = "description" + +# 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 = ["**/_tests"] + +# -- 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 = "furo" +html_logo = "_static/icons/rl_logo.png" +html_theme_options = { + "sidebar_hide_name": True +} +# 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"] + +# favicon location +html_favicon = "_static/icons/favicon.ico" diff --git a/source/index.rst b/source/index.rst new file mode 100644 index 0000000..08abb89 --- /dev/null +++ b/source/index.rst @@ -0,0 +1,33 @@ +.. image:: _static/icons/rl_logo_horizontal.png + :alt: fiReLine Logo + +======== + +`fiReLine `_ develops machine learning models (deep reinforcement learning or otherwise) capable of determining optimal or near optimal fuel reduction and fire effects strategies, in the domain of wildland firefighting. + +With the overall objective of reducing decision timelines, streamlining multiagency logistics, and reducing the overall cost and damage induced by yearly fire seasons. + +Repositories +------------ +.. `SimHarness `_ +.. SimHarness is a modular reinforcement learning harness written in PyTorch made to interact with natural disaster modelers. + +`SimFire `_ [`GitHub `_] + An open-source wildfire simulator written in Python and meant to be used to train reinforcement learning (RL) agents through SimHarness. + + +.. Hidden TOCs + +.. toctree:: + :maxdepth: 2 + :caption: Associated Libraries + :hidden: + + SimFire + +.. toctree:: + :maxdepth: 2 + :caption: Collaborators + :hidden: + + CHML