Skip to main content

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 install
  • make 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

Environment Variables

Configs can also be provided as env vars:

  • PLUGIN_REGISTRY
  • PLUGIN_REGISTRY_USERNAME
  • PLUGIN_REGISTRY_PASSWORD
  • PLUGIN_REGISTRY_PROJECT
  • PLUGIN_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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

utic_dev_tools-0.2.7-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file utic_dev_tools-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: utic_dev_tools-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for utic_dev_tools-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 9b623fff75fad636278ae64a4c854b13638b0cf94cabf6b1778b0c04ec58c1f8
MD5 1d6a46009acb3dfa1464a8950ae3422b
BLAKE2b-256 8a5f3beb14c5b349be9b5d96606c2d17881677fc459cf53be4908ec0e1377469

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page