Dev tools for Unstructured.io ecosystem.
Project description
Introduction
A collection of Types and Schemas for use in various projects in the Unstructured ecosystem.
The project is intended to be very lightweight, and to play the role of the abstraction in "Concretions can depend on abstractions, but not vice-versa".
In other words, this project should exclusively define types and remain lightweight enough to encourage other projects to take it on as a dependency. Ideally, the project would itself have no dependencies. For rapid development in early phases, we take a dependency on Pydantic for easier modeling.
Right now, it is mostly utilized for defining unstructured's plugin architecture to enable developers to define their own plugins.
Note: This package is automatically published to PyPI on every merge to main.
Requirements
- Python 3.12
uv:pip install uv
Quick start
make installmake test
unstructured-plugins command
Basic Usage
unstructured-plugins publish plugin_hello_world:PLUGIN_MANIFEST --registry http://localhost:8080/
CLI Arguments
Registry Configuration
--registry: URL to registry to publish to--registry-project: Some registries require objects to be organized into projects--registry-username: Username for authentication--registry-password: Password for authentication--channel: Channel or tag to push or read from (default: 'dev')--from-channel: Used for promoting from one channel to another
Metadata Overrides (publish only)
--override-name: Override the plugin name from the manifest--override-type: Override the plugin type from the manifest--override-subtype: Override the plugin subtype from the manifest--dry-run: Show what would be published without making any changes to the registry
Adding plugin icon (publish only)
--icon-path: Path to the plugin icon (currently only.svgfiles are supported)
Environment Variables
Configs can also be provided as env vars:
PLUGIN_REGISTRYPLUGIN_REGISTRY_USERNAMEPLUGIN_REGISTRY_PASSWORDPLUGIN_REGISTRY_PROJECTPLUGIN_REGISTRY_VERIFY_SSL
Publishing Multiple Variants
You can publish multiple plugin variants from a single manifest using override flags:
unstructured-plugins publish s3_protocol:PLUGIN_MANIFEST \
--override-type index \
--override-subtype vast \
--override-name "VAST Indexer" \
--channel dev
Using Dry-Run
Preview what will be published before making changes:
unstructured-plugins publish s3_protocol:PLUGIN_MANIFEST \
--override-type index \
--override-subtype vast \
--override-name "VAST Indexer" \
--dry-run
This will show:
- Registry path where plugin will be published
- Tags that will be created
- Overrides that were applied
- Complete metadata payload
- Plugin index entry
- Command to run for real publish
Plugin icon
You can add an icon to the plugin by using --icon-path flag. Icon has to be an .svg file. It gets converted into an object that contains a base64 encoded string of the given svg. Icon gets added to the default presentation layer.
{
...,
"presentation": {
"default": {
...,
"icon": {
"value": "PHN2ZyB4bWxucz0i...",
"original_file_extension": "svg",
"encoding": "base64",
"mime_type": "image/svg+xml"
},
...
}
}
...
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file utic_dev_tools-0.2.11-py3-none-any.whl.
File metadata
- Download URL: utic_dev_tools-0.2.11-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
997567a09d14a2c88eb7aa737ed513b37ba3f7669276e69532ceb047a59b7eb8
|
|
| MD5 |
b064c9a0b5d67c58159923f5edec8dfa
|
|
| BLAKE2b-256 |
45ffe417d015d87bea2b4898af592f085886a2b5242fa965cf847d5b5c84903f
|