diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index d742cc1b3..f6313a598 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -217,4 +217,4 @@ All public modules in the SDK are checked for the presence of docstrings in clas ### What is Poetry and why do we need it? For more info on `Poetry` and `Pipx`, please see the topic in our -[python tips](../python_tips.md) guide. +[python tips](./python_tips.md) guide. diff --git a/docs/conf.py b/docs/conf.py index ce7added6..492612202 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -97,8 +97,7 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] -# TODO: set this back to 3 after MyST-Parser 0.21.0 is released -myst_heading_anchors = 4 +myst_heading_anchors = 3 redirects = { "porting.html": "guides/porting.html", diff --git a/docs/deprecation.md b/docs/deprecation.md index 811bf0bc5..089355fd9 100644 --- a/docs/deprecation.md +++ b/docs/deprecation.md @@ -10,4 +10,4 @@ incompatible way, following their deprecation, as indicated in the as part of the stream pagination process. It is replaced by the [`RESTStream.get_new_paginator`](singer_sdk.RESTStream.get_new_paginator). - See the [migration guide](../guides/pagination-classes.md) for more information. + See the [migration guide](./guides/pagination-classes.md) for more information. diff --git a/docs/dev_guide.md b/docs/dev_guide.md index 190e8fe04..e323392b4 100644 --- a/docs/dev_guide.md +++ b/docs/dev_guide.md @@ -159,7 +159,7 @@ Some APIs instead return the records as values inside an object where each key i ### Detailed Class Reference -For a detailed reference, please see the [SDK Reference Guide](./reference.md) +For a detailed reference, please see the [SDK Reference Guide](./reference.rst) ### Implementation Details diff --git a/docs/guides/porting.md b/docs/guides/porting.md index 1979c17a3..aec02ea7b 100644 --- a/docs/guides/porting.md +++ b/docs/guides/porting.md @@ -11,7 +11,7 @@ When porting over an existing tap, most developers find it easier to start from 1. Within your existing repo, create a new branch. 1. Move _all_ of the files in the old branch into a subfolder called "archive". 1. Commit and push the result to your new branch. (You'll do this several times along the way, which creates a fresh tree and a fresh diff for subsequent commits.) -1. Now follow the steps in the [dev guide](dev_guide.md#building-a-new-tap-or-target) to create a new project using the Tap cookiecutter. +1. Now follow the steps in the [dev guide](../dev_guide.md#building-a-new-tap-or-target) to create a new project using the Tap cookiecutter. 1. Copy all the files from the cookiecutter output into your main repo and commit the result. ## Settings and Readme @@ -103,7 +103,7 @@ _Important: If you've gotten this far, this is a good time to commit your code b Pagination is generally unique for almost every API. There's no single method that solves for very different API's approach to pagination. -Most likely you will use [get_new_paginator](singer_sdk.RESTStream.get_new_paginator) to instantiate a [pagination class](./../../classes/singer_sdk.pagination.BaseAPIPaginator.rst) for your source, and you'll use `get_url_params` to define how to pass the "next page" token back to the API when asking for subsequent pages. +Most likely you will use [get_new_paginator](singer_sdk.RESTStream.get_new_paginator) to instantiate a [pagination class](./../classes/singer_sdk.pagination.BaseAPIPaginator.rst) for your source, and you'll use `get_url_params` to define how to pass the "next page" token back to the API when asking for subsequent pages. When you think you have it right, run `poetry run tap-mysource` again, and debug until you are confident the result is including multiple pages back from the API. @@ -197,7 +197,7 @@ Notes: - As should be expected, you are free to subclass streams in order to have their behavior be inherited from other stream classes. - For instance, if 3 streams use one pagination method, and 5 other streams use a different method, you can have each stream created as a subclass of a stream that has desired behavior. -- If you have streams which invoke each other in a nested layout, please refer to the `parent_stream_class` property and its [related documentation](../../stream_maps.md). +- If you have streams which invoke each other in a nested layout, please refer to the `parent_stream_class` property and its [related documentation](../stream_maps.md). - As before, if you do not already have a full JSON Schema file for each stream type, it is generally a good practice to start with just 5-8 properties per stream. You don't have to define all properties up front and before doing so, it is generally more valuable to test that each stream is getting data. ## Run pytest again, add stream properties, and repeat @@ -218,7 +218,7 @@ poetry run pytest The SDK will automatically handle `STATE` for you 99% of the time. However, it is very likely that the legacy version of the tap has a different `STATE` format in comparison with the SDK format. If you want to seamlessly support both old and new STATE formats, you'll need to define a conversion operation. -To handle the conversion operation, you'll override [`Tap.load_state()`](singer_sdk.Tap.load_state). The exact process of converting state is outside of this guide, but please check the [STATE implementation docs](../../implementation/state.md) for an explanation of general format expectations. +To handle the conversion operation, you'll override [`Tap.load_state()`](singer_sdk.Tap.load_state). The exact process of converting state is outside of this guide, but please check the [STATE implementation docs](../implementation/state.md) for an explanation of general format expectations. ### Leverage Auto Generated README diff --git a/poetry.lock b/poetry.lock index dae376dca..a42be07a2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1159,14 +1159,14 @@ files = [ [[package]] name = "mdit-py-plugins" -version = "0.3.3" +version = "0.3.4" description = "Collection of plugins for markdown-it-py" category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "mdit-py-plugins-0.3.3.tar.gz", hash = "sha256:5cfd7e7ac582a594e23ba6546a2f406e94e42eb33ae596d0734781261c251260"}, - {file = "mdit_py_plugins-0.3.3-py3-none-any.whl", hash = "sha256:36d08a29def19ec43acdcd8ba471d3ebab132e7879d442760d963f19913e04b9"}, + {file = "mdit-py-plugins-0.3.4.tar.gz", hash = "sha256:3278aab2e2b692539082f05e1243f24742194ffd92481f48844f057b51971283"}, + {file = "mdit_py_plugins-0.3.4-py3-none-any.whl", hash = "sha256:4f1441264ac5cb39fa40a5901921c2acf314ea098d75629750c138f80d552cdf"}, ] [package.dependencies] @@ -1262,30 +1262,31 @@ files = [ [[package]] name = "myst-parser" -version = "0.18.1" -description = "An extended commonmark compliant parser, with bridges to docutils & sphinx." +version = "0.19.0" +description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," category = "main" optional = true python-versions = ">=3.7" files = [ - {file = "myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d"}, - {file = "myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8"}, + {file = "myst-parser-0.19.0.tar.gz", hash = "sha256:5a278c02015ce89f282dfde2a6e43d0924d957ab57d83555fce1645448810577"}, + {file = "myst_parser-0.19.0-py3-none-any.whl", hash = "sha256:a71ef265d01ddc905590c3c840b8a9f38b5b48d6d2c43be3b85ad130f5fd896d"}, ] [package.dependencies] docutils = ">=0.15,<0.20" jinja2 = "*" markdown-it-py = ">=1.0.0,<3.0.0" -mdit-py-plugins = ">=0.3.1,<0.4.0" +mdit-py-plugins = ">=0.3.4,<0.4.0" pyyaml = "*" -sphinx = ">=4,<6" -typing-extensions = "*" +sphinx = ">=5,<7" +typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -code-style = ["pre-commit (>=2.12,<3.0)"] +code-style = ["pre-commit (>=3.0,<4.0)"] linkify = ["linkify-it-py (>=1.0,<2.0)"] -rtd = ["ipython", "sphinx-book-theme", "sphinx-design", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] -testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=6,<7)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx (<5.2)", "sphinx-pytest"] +rtd = ["ipython", "pydata-sphinx-theme (==v0.13.0rc4)", "sphinx-autodoc2 (>=0.4.2,<0.5.0)", "sphinx-book-theme (==1.0.0rc2)", "sphinx-copybutton", "sphinx-design2", "sphinx-pyscript", "sphinx-tippy (>=0.3.1)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.7.5,<0.8.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] +testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=7,<8)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx-pytest"] +testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,<0.4.0)"] [[package]] name = "numpy" @@ -2714,4 +2715,4 @@ testing = ["pytest", "pytest-durations"] [metadata] lock-version = "2.0" python-versions = "<3.12,>=3.7.1" -content-hash = "b3dc623ccc88507b1770668b292e667f0ac1f4b46d46bfac826e6e7c64dc21a7" +content-hash = "00b7f441784dfd0ad605504a315b47fcb21b736d4a658ec355b6737414a6e711" diff --git a/pyproject.toml b/pyproject.toml index 4093688ec..936217e00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,7 +65,7 @@ PyYAML = "^6.0" sphinx = {version = ">=4.5,<6.0", optional = true} furo = {version = "^2022.12.7", optional = true} sphinx-copybutton = {version = ">=0.3.1,<0.6.0", optional = true} -myst-parser = {version = ">=0.17.2,<0.19.0", optional = true} +myst-parser = {version = ">=0.17.2,<0.20.0", optional = true} sphinx-autobuild = {version = "^2021.3.14", optional = true} sphinx-reredirects = {version = "^0.1.1", optional = true}