diff --git a/.gitignore b/.gitignore index ecde7a25d5f..b2d194479f7 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ instance/ # Sphinx documentation docs/_build/ +docs/_collections/ # PyBuilder .pybuilder/ diff --git a/docs/conf.py b/docs/conf.py index adcd94f262f..270f0ac74a3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -39,11 +39,12 @@ "sphinxcontrib.bibtex", "sphinxcontrib.mermaid", "sphinxext.opengraph", + "sphinx_collections", ] templates_path = ["_templates"] html_show_sourcelink = False -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "README.md"] +exclude_patterns = ["_build", "_collections/rfcs/README.md", "Thumbs.db", ".DS_Store", "README.md"] intersphinx_mapping = { "python": ("https://docs.python.org/3", None), @@ -53,6 +54,8 @@ "polars": ("https://docs.pola.rs/api/python/stable", "polars.objects.inv"), } +collections = {"rfcs": {"driver": "git", "source": "https://github.com/vortex-data/rfcs.git"}} + git_root = Path(__file__).parent.parent nitpicky = True # ensures all :class:, :obj:, etc. links are valid diff --git a/docs/developer-guide/index.md b/docs/developer-guide/index.md index 0180f6e2360..d95e5a022cf 100644 --- a/docs/developer-guide/index.md +++ b/docs/developer-guide/index.md @@ -37,4 +37,16 @@ caption: Integrations integrations/datafusion integrations/duckdb integrations/spark +``` + +if-collection:: rfcs +```{toctree} +--- +maxdepth: 2 +caption: RFCs +glob: +--- + +../_collections/rfcs/proposals/* + ``` \ No newline at end of file diff --git a/docs/pyproject.toml b/docs/pyproject.toml index 63378cbf06f..17be3395ac4 100644 --- a/docs/pyproject.toml +++ b/docs/pyproject.toml @@ -21,6 +21,7 @@ dependencies = [ "libclang>=18.1.1", # forced transitive bumps "starlette>=0.49.1", + "sphinx-collections>=0.3.1", ] requires-python = ">= 3.11" diff --git a/uv.lock b/uv.lock index afd6afb2b5c..0c720b7b8f8 100644 --- a/uv.lock +++ b/uv.lock @@ -243,6 +243,7 @@ dependencies = [ { name = "setuptools" }, { name = "sphinx" }, { name = "sphinx-autobuild" }, + { name = "sphinx-collections" }, { name = "sphinx-copybutton" }, { name = "sphinx-design" }, { name = "sphinx-inline-tabs" }, @@ -263,6 +264,7 @@ requires-dist = [ { name = "setuptools", specifier = ">=75.8.0" }, { name = "sphinx", specifier = ">=8.0.2" }, { name = "sphinx-autobuild", specifier = ">=2024.10.3" }, + { name = "sphinx-collections", specifier = ">=0.3.1" }, { name = "sphinx-copybutton", specifier = ">=0.5.2" }, { name = "sphinx-design", specifier = ">=0.6.0" }, { name = "sphinx-inline-tabs", specifier = ">=2023.4.21" }, @@ -335,6 +337,30 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b5/36/7fb70f04bf00bc646cd5bb45aa9eddb15e19437a28b8fb2b4a5249fac770/filelock-3.20.3-py3-none-any.whl", hash = "sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1", size = 16701, upload-time = "2026-01-09T17:55:04.334Z" }, ] +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/b5/59d16470a1f0dfe8c793f9ef56fd3826093fc52b3bd96d6b9d6c26c7e27b/gitpython-3.1.46.tar.gz", hash = "sha256:400124c7d0ef4ea03f7310ac2fbf7151e09ff97f2a3288d64a440c584a29c37f", size = 215371, upload-time = "2026-01-01T15:37:32.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/09/e21df6aef1e1ffc0c816f0522ddc3f6dcded766c3261813131c78a704470/gitpython-3.1.46-py3-none-any.whl", hash = "sha256:79812ed143d9d25b6d176a10bb511de0f9c67b1fa641d82097b0ab90398a2058", size = 208620, upload-time = "2026-01-01T15:37:30.574Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -1493,6 +1519,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -1565,6 +1600,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/20/56411b52f917696995f5ad27d2ea7e9492c84a043c5b49a3a3173573cd93/sphinx_autobuild-2025.8.25-py3-none-any.whl", hash = "sha256:b750ac7d5a18603e4665294323fd20f6dcc0a984117026d1986704fa68f0379a", size = 12535, upload-time = "2025-08-25T18:44:54.164Z" }, ] +[[package]] +name = "sphinx-collections" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitpython" }, + { name = "jinja2" }, + { name = "packaging" }, + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/18/2f258a70fb9059014d7dc589b4aab09ffd9a47ba6e4235b77b888d0220f8/sphinx_collections-0.3.1.tar.gz", hash = "sha256:4dda762479d2ad2163ccb074b15f36f72810d9cd08be4daa69854a6e34c99f92", size = 13031, upload-time = "2025-10-30T16:04:14.802Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/85/8f0de226be865c7bda58c46db8d27cee0be7f9125bbc21568e5d40699286/sphinx_collections-0.3.1-py3-none-any.whl", hash = "sha256:fb93b979cc9275bd2ad980a71fd57be5521c0f879f90f8189917a8f7ca0436ab", size = 16273, upload-time = "2025-10-30T16:04:13.28Z" }, +] + [[package]] name = "sphinx-copybutton" version = "0.5.2"