From e639c12c20ceeb03e2dc31d9baeffd1d6d42a2fe Mon Sep 17 00:00:00 2001 From: furtest Date: Sun, 4 Jan 2026 19:18:57 +0100 Subject: [PATCH] docs : Add sphinx for handling documentation Edit gitignore by ignoring the docs/build directory Add sphinx dependencies to pyproject Add docs folder --- .gitignore | 1 + docs/Makefile | 20 +++++++++++ docs/make.bat | 35 +++++++++++++++++++ docs/source/conf.py | 36 +++++++++++++++++++ docs/source/index.rst | 18 ++++++++++ docs/source/modules.rst | 7 ++++ docs/source/unisync.rst | 77 +++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 7 ++++ 8 files changed, 201 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/make.bat create mode 100644 docs/source/conf.py create mode 100644 docs/source/index.rst create mode 100644 docs/source/modules.rst create mode 100644 docs/source/unisync.rst diff --git a/.gitignore b/.gitignore index 822c508..85077da 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ poetry.lock __pycache__ +docs/build 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..747ffb7 --- /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 + +%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 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000..f60d301 --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,36 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'unisync' +copyright = '2026, Paul Retourné' +author = 'Paul Retourné' +release = '0.1.0' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'sphinx.ext.napoleon', + 'sphinx.ext.todo' + ] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +#html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] + +autodoc_docstring_signature = True diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000..c148277 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,18 @@ +.. unisync documentation master file, created by + sphinx-quickstart on Sun Jan 4 15:02:58 2026. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Documentation for unisync +========================= + +Unisync is a data synchronising tool built around `unison`_ + +.. _unison: https://github.com/bcpierce00/unison + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + modules + diff --git a/docs/source/modules.rst b/docs/source/modules.rst new file mode 100644 index 0000000..54c1554 --- /dev/null +++ b/docs/source/modules.rst @@ -0,0 +1,7 @@ +unisync +======= + +.. toctree:: + :maxdepth: 4 + + unisync diff --git a/docs/source/unisync.rst b/docs/source/unisync.rst new file mode 100644 index 0000000..8f1f7d7 --- /dev/null +++ b/docs/source/unisync.rst @@ -0,0 +1,77 @@ +unisync package +=============== + +Submodules +---------- + +unisync.argparser module +------------------------ + +.. automodule:: unisync.argparser + :members: + :show-inheritance: + :undoc-members: + +unisync.config module +--------------------- + +.. automodule:: unisync.config + :members: + :show-inheritance: + :undoc-members: + +unisync.defaults module +----------------------- + +.. automodule:: unisync.defaults + :members: + :show-inheritance: + :undoc-members: + +unisync.errors module +--------------------- + +.. automodule:: unisync.errors + :members: + :show-inheritance: + :undoc-members: + +unisync.main module +------------------- + +.. automodule:: unisync.main + :members: + :show-inheritance: + :undoc-members: + +unisync.paths module +-------------------- + +.. automodule:: unisync.paths + :members: + :show-inheritance: + :undoc-members: + +unisync.runners module +---------------------- + +.. automodule:: unisync.runners + :members: + :show-inheritance: + :undoc-members: + +unisync.synchroniser module +--------------------------- + +.. automodule:: unisync.synchroniser + :members: + :show-inheritance: + :undoc-members: + +Module contents +--------------- + +.. automodule:: unisync + :members: + :show-inheritance: + :undoc-members: diff --git a/pyproject.toml b/pyproject.toml index 5b96ec5..f3933d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,3 +20,10 @@ packages = [{include = "unisync", from = "src"}] [build-system] requires = ["poetry-core>=2.0.0,<3.0.0"] build-backend = "poetry.core.masonry.api" + +[dependency-groups] +docs = [ + "sphinx (>=9.1.0,<10.0.0)", + "sphinx-rtd-theme (>=3.0.2,<4.0.0)", +] +