From 5650dd4c69b1c3bf3763c3fa2918c3852f2b630f Mon Sep 17 00:00:00 2001 From: benpankow Date: Wed, 19 Feb 2025 16:44:48 -0800 Subject: [PATCH] [wip][docs] Generate + include apidocs for components --- docs/content-templates/concept.md | 88 ------------------- docs/content-templates/example-reference.md | 36 -------- docs/content-templates/guide-no-steps.md | 32 ------- docs/content-templates/guide-with-steps.md | 39 -------- .../dbt_project@dagster_components.md | 59 +++++++++++++ .../definitions@dagster_components.md | 15 ++++ ...ss_script_collection@dagster_components.md | 31 +++++++ ...plication_collection@dagster_components.md | 57 ++++++++++++ docs/scripts/build-components-docs.py | 17 ++++ docs/sidebars.ts | 18 ++++ docs/src/code-examples-content.js | 50 +++++------ .../libraries/dagster-dg/dagster_dg/docs.py | 4 +- 12 files changed, 224 insertions(+), 222 deletions(-) delete mode 100644 docs/content-templates/concept.md delete mode 100644 docs/content-templates/example-reference.md delete mode 100644 docs/content-templates/guide-no-steps.md delete mode 100644 docs/content-templates/guide-with-steps.md create mode 100644 docs/docs/api/components/dbt_project@dagster_components.md create mode 100644 docs/docs/api/components/definitions@dagster_components.md create mode 100644 docs/docs/api/components/pipes_subprocess_script_collection@dagster_components.md create mode 100644 docs/docs/api/components/sling_replication_collection@dagster_components.md create mode 100644 docs/scripts/build-components-docs.py diff --git a/docs/content-templates/concept.md b/docs/content-templates/concept.md deleted file mode 100644 index 6ca3de57231bb..0000000000000 --- a/docs/content-templates/concept.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: '' -description: '' ---- - -This section is an intro that includes: - -- A brief description of what the topic is, -- An example of how it could be used in the real-world -- What it can do in the UI - ---- - -## Benefits - -This section lists the benefits of using the topic, whatever it is. The items listed here should be solutions to real-world problems that the user cares about, ex: - -Using schedules helps you: - -- Predictably process and deliver data to stakeholders and business-critical applications -- Consistently run data pipelines without the need for manual intervention -- Optimize resource usage by scheduling pipelines to run during off-peak hours - -Using [TOPIC] helps you: - -- A benefit of the thing -- Another benefit -- And one more - ---- - -## Prerequisites - -This section lists the prerequisites users must complete before they should/can proceed. For concepts, we should list the other concepts they should be familiar with first. - -Before continuing, you should be familiar with: - -- Ex: To use asset checks, users should understand Asset definitions first -- Another one -- One more - ---- - -## How it works - -This section provides a high-level overview of how the concept works without getting too into the technical details. Code can be shown here, but this section shouldn't focus on it. The goal is to help the user generally understand how the thing works and what they need to do to get it working without overwhelming them with details. - -For example, this is the How it works for Schedules: - -Schedules run jobs at fixed time intervals and have two main components: - -- A job, which targets a selection of assets or ops - -- A cron expression, which defines when the schedule runs. Basic and complex schedules are supported, allowing you to have fine-grained control over when runs are executed. With cron syntax, you can: - - - Create custom schedules like Every hour from 9:00AM - 5:00PM with cron expressions (0 9-17 \* \* \*) - - Quickly create basic schedules like Every day at midnight with predefined cron definitions (@daily, @midnight) - - To make creating cron expressions easier, you can use an online tool like Crontab Guru. This tool allows you to create and describe cron expressions in a human-readable format and test the execution dates produced by the expression. Note: While this tool is useful for general cron expression testing, always remember to test your schedules in Dagster to ensure the results are as expected. - -For a schedule to run, it must be turned on and an active dagster-daemon process must be running. If you used `dagster dev` to start the Dagster UI/webserver, the daemon process will be automatically launched alongside the webserver. - -After these criteria are met, the schedule will run at the interval specified in the cron expression. Schedules will execute in UTC by default, but you can specify a custom timezone. - ---- - -## Getting started - -This section is a list of guides / links to pages to help the user get started using the topic. - -Check out these guides to get started with [CONCEPT]: - -From here, you can: - -- Construct schedules to run partitioned jobs -- Execute jobs in specific timezones -- Learn to test your schedules -- Identify and resolve common issues with our troubleshooting guide - -### Limitations [and notes] - -This section should describe any known limitations that could impact the user, ex: "Schedules will execute in UTC unless a timezone is specified" - ---- - -## Related - -A list of related links and resources diff --git a/docs/content-templates/example-reference.md b/docs/content-templates/example-reference.md deleted file mode 100644 index cf63c5932d874..0000000000000 --- a/docs/content-templates/example-reference.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: '[TOPIC] example reference' -description: '' ---- - -This reference contains a variety of examples using Dagster. Each example contains: - -- A summary -- Additional notes -- Links to relevant documentation -- A list of the APIs used in the example - -## [Title of example] - -[This example demonstrates [description of what the example accomplishes] - -Example: This example demonstrates how to use resources in schedules. To specify a resource dependency, annotate the resource as a parameter to the schedule's function. - -```python title="my_schedule.py" -@schedule(job=my_job, cron_schedule="* * * * *") -def logs_then_skips(context): - context.log.info("Logging from a schedule!") - return SkipReason("Nothing to do") -``` - -| | | -| -------------------- | --- | -| Notes | | -| Related docs | | -| APIs in this example | | - ---- - -import InspirationList from '../partials/\_InspirationList.md'; - - diff --git a/docs/content-templates/guide-no-steps.md b/docs/content-templates/guide-no-steps.md deleted file mode 100644 index ac2d4ac2dc9ad..0000000000000 --- a/docs/content-templates/guide-no-steps.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 'Title that briefly describes what the guide is for' -description: 'Description of the guide, useful for SEO and social media links' ---- - -Provide a brief introduction to the how-to guide. View [this article](https://diataxis.fr/how-to-guides/) for more information on how to write effective how-to guides. The intro should be no more than a few sentences. -The title from the frontmatter will be used as the first heading in the guide, you don't need to include it in the intro. - -
- Prerequisites - -To follow the steps in this guide, you'll need: - -- A prerequisite, ex: "Familiarity with [Asset definitions](/concepts/assets)" -- Another prerequisite, ex: "To install this library" -- One more - -
- -## Title that describes this section - -For section headings: - -- Guides can (and should) contain multiple sections, with each one being a small chunk of information. Break large topics into smaller topics, using subsequent headings (H3, H4, etc) as needed -- Titles should describe an action, ex: "Generate a token" -- Don't use gerunds (-ing) in titles, as it can cause issues with translation + SEO - -## Next steps - -- Add links to related content -- Go deeper into [Understanding Automation](/concepts/understanding-automation) -- Explore [Related Example](/) diff --git a/docs/content-templates/guide-with-steps.md b/docs/content-templates/guide-with-steps.md deleted file mode 100644 index 6ec672c138c15..0000000000000 --- a/docs/content-templates/guide-with-steps.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: 'Title that briefly describes what the guide is for' -description: 'Description of the guide that is useful for SEO and social media links' ---- - -Provide a brief introduction to the how-to guide. View [this article](https://diataxis.fr/how-to-guides/) for more information on how to write effective how-to guides. The intro should be no more than a few sentences. -The title from the frontmatter will be used as the first heading in the guide, you don't need to include it in the intro. - -
- Prerequisites - -To follow the steps in this guide, you'll need: - -- A prerequisite, ex: "Familiarity with [Asset definitions](/concepts/assets)" -- Another prerequisite, ex: "To install this library" -- One more - -
- -## Step 1: Title that describes what this step will do - -For section / step headings: - -- Titles should describe an action, ex: "Generate a token" -- Don't use gerunds (-ing) in titles, as it can cause issues with translation + SEO -- Each section heading should have an identifier that includes the word 'step' and the number of the step - -### Step 1.1: Title that describes a substep - -If a step would benefit by being broken into smaller steps, follow this section's formatting -Each substep should get an H3 and start with Step N., followed by the number of the substep - -## Step 2: Another step - -## Next steps - -- Add links to related content -- Go deeper into [Understanding Automation](/concepts/understanding-automation) -- Explore [Related Example](/) diff --git a/docs/docs/api/components/dbt_project@dagster_components.md b/docs/docs/api/components/dbt_project@dagster_components.md new file mode 100644 index 0000000000000..e5f6cba9f81f2 --- /dev/null +++ b/docs/docs/api/components/dbt_project@dagster_components.md @@ -0,0 +1,59 @@ + +## Component: `dagster_components.dbt_project` + +### Description: +Expose a DBT project to Dagster as a set of assets. + +### Sample Component Params: + +```yaml +type: dagster_components.dbt_project + +params: + dbt: + project_dir: '...' + global_config_flags: + - '...' + profiles_dir: '...' + profile: '...' + target: '...' + dbt_executable: '...' + state_path: '...' + op: + name: '...' + tags: {} + asset_attributes: # Available scope: {'node'} + deps: # Available scope: {'node'} + - '...' # Available scope: {'node'} + description: '...' # Available scope: {'node'} + metadata: '...' # Available scope: {'node'} + group_name: '...' # Available scope: {'node'} + skippable: false # Available scope: {'node'} + code_version: '...' # Available scope: {'node'} + owners: # Available scope: {'node'} + - '...' # Available scope: {'node'} + tags: '...' # Available scope: {'node'} + kinds: # Available scope: {'node'} + - '...' # Available scope: {'node'} + automation_condition: '...' # Available scope: {'node'} + key: '...' # Available scope: {'node'} + transforms: + - target: '...' + operation: '...' + attributes: + deps: + - '...' + description: '...' + metadata: '...' + group_name: '...' + skippable: false + code_version: '...' + owners: + - '...' + tags: '...' + kinds: + - '...' + automation_condition: '...' + key: '...' + +``` diff --git a/docs/docs/api/components/definitions@dagster_components.md b/docs/docs/api/components/definitions@dagster_components.md new file mode 100644 index 0000000000000..e7bcdd1eb44b5 --- /dev/null +++ b/docs/docs/api/components/definitions@dagster_components.md @@ -0,0 +1,15 @@ + +## Component: `dagster_components.definitions` + +### Description: +Wraps an arbitrary set of Dagster definitions. + +### Sample Component Params: + +```yaml +type: dagster_components.definitions + +params: + definitions_path: '...' + +``` diff --git a/docs/docs/api/components/pipes_subprocess_script_collection@dagster_components.md b/docs/docs/api/components/pipes_subprocess_script_collection@dagster_components.md new file mode 100644 index 0000000000000..a054c31bb9897 --- /dev/null +++ b/docs/docs/api/components/pipes_subprocess_script_collection@dagster_components.md @@ -0,0 +1,31 @@ + +## Component: `dagster_components.pipes_subprocess_script_collection` + +### Description: +Assets that wrap Python scripts executed with Dagster's PipesSubprocessClient. + +### Sample Component Params: + +```yaml +type: dagster_components.pipes_subprocess_script_collection + +params: + scripts: + - path: '...' + assets: + - deps: + - '...' + description: '...' + metadata: '...' + group_name: '...' + skippable: false + code_version: '...' + owners: + - '...' + tags: '...' + kinds: + - '...' + automation_condition: '...' + key: '...' + +``` diff --git a/docs/docs/api/components/sling_replication_collection@dagster_components.md b/docs/docs/api/components/sling_replication_collection@dagster_components.md new file mode 100644 index 0000000000000..0487589872b6e --- /dev/null +++ b/docs/docs/api/components/sling_replication_collection@dagster_components.md @@ -0,0 +1,57 @@ + +## Component: `dagster_components.sling_replication_collection` + +### Description: +Expose one or more Sling replications to Dagster as assets. + +### Sample Component Params: + +```yaml +type: dagster_components.sling_replication_collection + +params: + sling: + connections: + - name: '...' + type: '...' + connection_string: '...' + replications: + - path: '...' + op: + name: '...' + tags: {} + asset_attributes: # Available scope: {'stream_definition'} + deps: # Available scope: {'stream_definition'} + - '...' # Available scope: {'stream_definition'} + description: '...' # Available scope: {'stream_definition'} + metadata: '...' # Available scope: {'stream_definition'} + group_name: '...' # Available scope: {'stream_definition'} + skippable: false # Available scope: {'stream_definition'} + code_version: '...' # Available scope: {'stream_definition'} + owners: # Available scope: {'stream_definition'} + - '...' # Available scope: {'stream_definition'} + tags: '...' # Available scope: {'stream_definition'} + kinds: # Available scope: {'stream_definition'} + - '...' # Available scope: {'stream_definition'} + automation_condition: '...' # Available scope: {'stream_definition'} + key: '...' # Available scope: {'stream_definition'} + transforms: + - target: '...' + operation: '...' + attributes: + deps: + - '...' + description: '...' + metadata: '...' + group_name: '...' + skippable: false + code_version: '...' + owners: + - '...' + tags: '...' + kinds: + - '...' + automation_condition: '...' + key: '...' + +``` diff --git a/docs/scripts/build-components-docs.py b/docs/scripts/build-components-docs.py new file mode 100644 index 0000000000000..5e1ba1ce450f6 --- /dev/null +++ b/docs/scripts/build-components-docs.py @@ -0,0 +1,17 @@ +from pathlib import Path + +from dagster_dg.component import RemoteComponentRegistry +from dagster_dg.context import DgContext +from dagster_dg.docs import markdown_for_component_type + +dg_context = DgContext.default() +registry = RemoteComponentRegistry.from_dg_context(dg_context) + +for key in registry.global_keys(): + markdown = markdown_for_component_type(registry.get_global(key)) + + component_md_path = ( + Path(__file__).parent.parent / "docs" / "api" / "components" / f"{key.to_typename()}.md" + ) + component_md_path.parent.mkdir(parents=True, exist_ok=True) + component_md_path.write_text(markdown) diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 13cb9543a910e..4932dea7f9c3e 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -208,6 +208,24 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: 'category', + label: 'Labs', + collapsed: false, + items: [ + { + type: 'category', + label: 'Components', + collapsed: false, + items: [ + { + type: 'autogenerated', + dirName: 'api/components', + }, + ], + }, + ] + } ] }; diff --git a/docs/src/code-examples-content.js b/docs/src/code-examples-content.js index 0f0b88d94c2f7..44c973c064506 100644 --- a/docs/src/code-examples-content.js +++ b/docs/src/code-examples-content.js @@ -284,32 +284,15 @@ export const CODE_EXAMPLE_PATH_MAPPINGS = { 'docs_snippets/docs_snippets/deploying/job_retries.py': () => import('!!raw-loader!/../examples/docs_snippets/docs_snippets/deploying/job_retries.py'), 'docs_snippets/docs_snippets/guides/dagster/using_environment_variables_and_secrets/repository.py': () => import('!!raw-loader!/../examples/docs_snippets/docs_snippets/guides/dagster/using_environment_variables_and_secrets/repository.py'), 'docs_snippets/docs_snippets/guides/dagster/using_environment_variables_and_secrets/repository_v2.py': () => import('!!raw-loader!/../examples/docs_snippets/docs_snippets/guides/dagster/using_environment_variables_and_secrets/repository_v2.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/1-dg-scaffold-shell-command.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/1-dg-scaffold-shell-command.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/2-shell-command-empty.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/2-shell-command-empty.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-config-schema.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-config-schema.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-class-defined.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-class-defined.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-build-defs.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-build-defs.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/3-dg-list-component-types.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/3-dg-list-component-types.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/4-dg-component-type-docs.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/4-dg-component-type-docs.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/6-scaffold-instance-of-component.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/6-scaffold-instance-of-component.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-scaffolder.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-scaffolder.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/7-scaffolded-component.yaml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/7-scaffolded-component.yaml'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/8-scaffolded-component-script.sh': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/8-scaffolded-component-script.sh'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/custom-schema-resolution.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/custom-schema-resolution.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-custom-scope.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-custom-scope.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/1-tree.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/1-tree.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/3-uv-venv.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/3-uv-venv.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/4-uv-freeze.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/4-uv-freeze.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/2-pyproject.toml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/2-pyproject.toml'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/5-mkdir-components.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/5-mkdir-components.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/6-initial-definitions.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/6-initial-definitions.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/7-updated-definitions.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/7-updated-definitions.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/index/1-help.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/1-help.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/python-components/component.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/python-components/component.py'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/2-scaffold.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/2-scaffold.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/3-tree.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/3-tree.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/4-pyproject.toml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/4-pyproject.toml'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/5-definitions.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/5-definitions.py'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/6-pyproject.toml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/6-pyproject.toml'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/basic-subclass.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/basic-subclass.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/debug-mode.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/debug-mode.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/custom-scope.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/custom-scope.py'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/7-dg-list-component-types.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/7-dg-list-component-types.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/8-dg-list-component-types.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/8-dg-list-component-types.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/9-dg-scaffold-sling-replication.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/9-dg-scaffold-sling-replication.txt'), @@ -330,6 +313,26 @@ export const CODE_EXAMPLE_PATH_MAPPINGS = { 'docs_beta_snippets/docs_beta_snippets/guides/components/index/24-project-jdbt.yaml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/24-project-jdbt.yaml'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/25-dg-component-check.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/25-dg-component-check.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/index/26-duckdb-select-orders.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/26-duckdb-select-orders.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/1-dg-scaffold-shell-command.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/1-dg-scaffold-shell-command.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/2-shell-command-empty.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/2-shell-command-empty.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-config-schema.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-config-schema.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-class-defined.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-class-defined.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-build-defs.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-build-defs.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/3-dg-list-component-types.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/3-dg-list-component-types.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/4-dg-component-type-docs.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/4-dg-component-type-docs.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/6-scaffold-instance-of-component.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/6-scaffold-instance-of-component.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-scaffolder.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-scaffolder.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/7-scaffolded-component.yaml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/7-scaffolded-component.yaml'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/8-scaffolded-component-script.sh': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/8-scaffolded-component-script.sh'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/custom-schema-resolution.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/custom-schema-resolution.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-custom-scope.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/shell-script-component/with-custom-scope.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/1-tree.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/1-tree.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/3-uv-venv.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/3-uv-venv.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/4-uv-freeze.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/4-uv-freeze.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/2-pyproject.toml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/2-pyproject.toml'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/5-mkdir-components.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/5-mkdir-components.txt'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/6-initial-definitions.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/6-initial-definitions.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/7-updated-definitions.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/existing-project/7-updated-definitions.py'), 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/1-tree.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/1-tree.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/2-definitions-before.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/2-definitions-before.py'), 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/3-scaffold.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/3-scaffold.txt'), @@ -340,6 +343,7 @@ export const CODE_EXAMPLE_PATH_MAPPINGS = { 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/8-tree-after.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/8-tree-after.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/9-tree-after-all.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/9-tree-after-all.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/10-definitions-after-all.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/migrating-definitions/10-definitions-after-all.py'), + 'docs_beta_snippets/docs_beta_snippets/guides/components/index/1-help.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/index/1-help.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/1-deployment-scaffold.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/1-deployment-scaffold.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/2-tree.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/2-tree.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/3-pyproject.toml': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/3-pyproject.toml'), @@ -351,10 +355,6 @@ export const CODE_EXAMPLE_PATH_MAPPINGS = { 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/9-code-location-scaffold.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/9-code-location-scaffold.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/10-code-location-list.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/10-code-location-list.txt'), 'docs_beta_snippets/docs_beta_snippets/guides/components/deployments/11-component-type-list.txt': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/deployments/11-component-type-list.txt'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/python-components/component.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/python-components/component.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/basic-subclass.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/basic-subclass.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/debug-mode.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/debug-mode.py'), - 'docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/custom-scope.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/components/custom-subclass/custom-scope.py'), 'docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/asset-job-example.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/asset-job-example.py'), 'docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/ops-job-example.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/ops-job-example.py'), 'docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/customlogger.py': () => import('!!raw-loader!/../examples/docs_beta_snippets/docs_beta_snippets/guides/monitor-alert/custom-logging/customlogger.py'), diff --git a/python_modules/libraries/dagster-dg/dagster_dg/docs.py b/python_modules/libraries/dagster-dg/dagster_dg/docs.py index 4d62d5ea1b63a..d21148921f9b6 100644 --- a/python_modules/libraries/dagster-dg/dagster_dg/docs.py +++ b/python_modules/libraries/dagster-dg/dagster_dg/docs.py @@ -188,7 +188,7 @@ def markdown_for_component_type(remote_component_type: RemoteComponentType) -> s ### Sample Component Params: - +``` """