# dagster_dataframely > A Dataframely integration for Dagster. ## Docs ### API Reference #### Core > `dd.asset` builds an asset from a schema, and `quarantine_spec` adds that asset's quarantine to the asset graph. - [asset](https://ozanozbeker.com/dagster-dataframely/reference/asset.html): Turn the decorated function into an asset that validates the frame it returns against `schema` - [quarantine_spec](https://ozanozbeker.com/dagster-dataframely/reference/quarantine_spec.html): Return an asset spec that adds an asset's quarantine to the asset graph - [Granularity](https://ozanozbeker.com/dagster-dataframely/reference/Granularity.html): Type alias - [SchemaRules](https://ozanozbeker.com/dagster-dataframely/reference/SchemaRules.html): Type alias #### Hand-wiring > `dd.asset` assembles these parts. Use them to build a `@dg.asset` yourself, where `dd.asset` does not fit. - [wiring.schema_metadata](https://ozanozbeker.com/dagster-dataframely/reference/wiring.schema_metadata.html) - [wiring.table_schema](https://ozanozbeker.com/dagster-dataframely/reference/wiring.table_schema.html) - [wiring.check_specs](https://ozanozbeker.com/dagster-dataframely/reference/wiring.check_specs.html) - [wiring.check_results](https://ozanozbeker.com/dagster-dataframely/reference/wiring.check_results.html) - [wiring.check_name](https://ozanozbeker.com/dagster-dataframely/reference/wiring.check_name.html) - [wiring.validation_results](https://ozanozbeker.com/dagster-dataframely/reference/wiring.validation_results.html) - [wiring.AssetYield](https://ozanozbeker.com/dagster-dataframely/reference/wiring.AssetYield.html) - [wiring.QuarantineWriter](https://ozanozbeker.com/dagster-dataframely/reference/wiring.QuarantineWriter.html) - [wiring.delegating_writer](https://ozanozbeker.com/dagster-dataframely/reference/wiring.delegating_writer.html) - [wiring.file_writer](https://ozanozbeker.com/dagster-dataframely/reference/wiring.file_writer.html) - [wiring.quarantine_frame](https://ozanozbeker.com/dagster-dataframely/reference/wiring.quarantine_frame.html) - [wiring.quarantine_path](https://ozanozbeker.com/dagster-dataframely/reference/wiring.quarantine_path.html) - [wiring.validate_quarantine_key](https://ozanozbeker.com/dagster-dataframely/reference/wiring.validate_quarantine_key.html) #### Errors > This package raises these errors. Each one subclasses `DagsterDataframelyError`. - [errors.DagsterDataframelyError](https://ozanozbeker.com/dagster-dataframely/reference/errors.DagsterDataframelyError.html) - [errors.CollectionNotSupportedError](https://ozanozbeker.com/dagster-dataframely/reference/errors.CollectionNotSupportedError.html) - [errors.ReservedColumnError](https://ozanozbeker.com/dagster-dataframely/reference/errors.ReservedColumnError.html) - [errors.InvalidColumnNameError](https://ozanozbeker.com/dagster-dataframely/reference/errors.InvalidColumnNameError.html) - [errors.CheckNameCollisionError](https://ozanozbeker.com/dagster-dataframely/reference/errors.CheckNameCollisionError.html) - [errors.InvalidSettingError](https://ozanozbeker.com/dagster-dataframely/reference/errors.InvalidSettingError.html) - [errors.MaterializeResultValueError](https://ozanozbeker.com/dagster-dataframely/reference/errors.MaterializeResultValueError.html) - [errors.MaterializeResultFieldError](https://ozanozbeker.com/dagster-dataframely/reference/errors.MaterializeResultFieldError.html) - [errors.ColumnSchemaError](https://ozanozbeker.com/dagster-dataframely/reference/errors.ColumnSchemaError.html) - [errors.ValidationAbortError](https://ozanozbeker.com/dagster-dataframely/reference/errors.ValidationAbortError.html) - [errors.NoValidRowsError](https://ozanozbeker.com/dagster-dataframely/reference/errors.NoValidRowsError.html) - [errors.QuarantineKeyCollisionError](https://ozanozbeker.com/dagster-dataframely/reference/errors.QuarantineKeyCollisionError.html) - [errors.QuarantineDirError](https://ozanozbeker.com/dagster-dataframely/reference/errors.QuarantineDirError.html)