Hello, I've created two blocks starting from Block...
# prefect-getting-started
m
Hello, I've created two blocks starting from Block. The first one for SFTP: python """ _from da_prefect.integrations.sftp.credentials import SFTPCredentials_ _sftpcredentials_block = SFTPCredentials.load("sftp-****")_ class SFTPCredentials(Block): """ _sftp_credentials_block = SFTPCredentials(_ username="nic", _password=Secret(value="secret_password"),_ server="server", key="", port=22 ) """ username: Optional[str] = None password: Optional[Secret] = None server: Optional[str] = None key: Optional[Secret] = None port: Optional[int] = 22 """ The second one for Database: python """ _from da_prefect.integrations.database.credentials import DatabaseCredentials_ _databasecredentials_block = DatabaseCredentials.load("teleborsa-db-credentials")_ class DatabaseCredentials(Block): """ _db_credentials_block = DatabaseCredentials(_ host="", database="", ) """ host: str port: int | None = None username: str | None = None password: Secret | None = None database: str = None driver: str | None = None params: dict[str, str] | None = None """ When launching my flow locally , I use Block.load(block_id): python """ from prefect import task, flow from prefect.blocks.core import Block @task _def load_block(block_id=None):_ _return Block.load(block_id)_ @flow def dc(): _load_block("sftpcredentials/sftp-teleborsa")_ _load_block("databasecredentials/teleborsa-db-credentials")_ _if name == "__main__":_ dc() """ The load of Block gives the following error: """ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 841, in load_ _return cls._from_block_document(block_document)_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 634, in _from_block_document_ _else cls.get_block_class_from_schema(block_document.block_schema)_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 688, in get_block_class_from_schema_ _return cls.get_block_class_from_key(block_schema_to_key(schema))_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 699, in get_block_class_from_key_ _return lookup_type(cls, key)_ ^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\utilities\dispatch.py", line 185, in lookup_type_ raise KeyError( KeyError: "No class found for dispatch key 'databasecredentials' in registry for type 'Block'." _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 841, in load_ _return cls._from_block_document(block_document)_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 634, in _from_block_document_ _else cls.get_block_class_from_schema(block_document.block_schema)_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 688, in get_block_class_from_schema_ _return cls.get_block_class_from_key(block_schema_to_key(schema))_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\blocks\core.py", line 699, in get_block_class_from_key_ _return lookup_type(cls, key)_ ^^^^^^^^^^^^^^^^^^^^^ _File "C:\PREFECT_GITHUB\venv\Lib\site-packages\prefect\utilities\dispatch.py", line 185, in lookup_type_ raise KeyError( KeyError: "No class found for dispatch key 'sftpcredentials' in registry for type 'Block'." """ I noticed that if in the flow I import the Block python """ from da_prefect.integrations.database.credentials import DatabaseCredentials """ then Block.load("databasecredentials/borsa-db-credentials") works. and the same for SFTP Would anyone know how I can solve the load problem without having to import the Block?