Skip to main content

A professional collection of pre-built steps and states for the WPipe orchestration engine. Lightweight and modular.

Project description

🧱 WPipe Steps

A professional collection of pre-built, production-ready steps and states for the WPipe orchestration engine.

WPipe Steps provides a comprehensive library of modular components ("Steps") that can be easily integrated into your WPipe pipelines. Instead of reinventing the wheel for common tasks like API calls, database queries, or notifications, simply import and use a pre-built step.


📂 Professional Structure

The library is organized into logical "Packs" based on functionality:

Pack Namespace Description
🌐 Connectivity wpipe_steps.connectivity HttpRequestStep: REST client with automatic retries.
GraphQLQueryStep: GraphQL executor.
WebhookTriggerStep: Webhook notifier.
SftpTransferStep: SFTP transfer (upload/download).
RSSParserStep: RSS/Atom feed parser.
OAuth2AuthStep: OAuth2 token manager.
📊 Database wpipe_steps.database MySQLQueryStep: MySQL SQL executor.
Redis Steps: Full Redis support via wredis (bitmaps, hash, sets, sorted sets, streams, pub/sub, queue, geo, hyperloglog, transactions, pipeline, cache decorators) - sync/async.
MongoInsertStep: MongoDB document inserter.
SQLiteAuditStep: Local SQLite audit logger.
ClickHouseBulkStep: ClickHouse massive data inserter.
CassandraWriteStep: Cassandra data writer.
🛡️ Security wpipe_steps.security Fail2BanCheckStep: IP ban status verifier.
NmapScanStep: Port scanning discovery.
ShodanSearchStep: Network intelligence search.
HashGeneratorStep: Hash generator.
VaultSecretsStep: Vault secrets retriever.
WafFilterStep: SQLi/XSS input filter.
☁️ Infrastructure wpipe_steps.infrastructure S3BucketUploadStep: AWS S3 file uploader.
📧 Communication wpipe_steps.communication Telegram, Slack, Discord, SendGrid, Twilio.
📁 Data wpipe_steps.data CSV, JSON, PDF, Excel, Image Processing.
🎙️ Multimedia wpipe_steps.multimedia Audio Normalization, Whisper AI, TTS.
🤖 AI wpipe_steps.ai OpenAI, HuggingFace, Sentiment Analysis.
⚙️ System wpipe_steps.system Resource Monitoring, Shell Exec, Health Checks.

📋 Connectivity Steps Inventory

Complete inventory of Connectivity Steps available in wpipe_steps.connectivity:

HttpRequestStep (package: wpipe_steps.connectivity)

Step Name Type Description
http_request Sync HTTP client with GET, POST, PUT, DELETE, PATCH

GraphQLQueryStep (package: wpipe_steps.connectivity)

Step Name Type Description
graphql_query Sync Execute GraphQL queries and mutations

WebhookTriggerStep (package: wpipe_steps.connectivity)

Step Name Type Description
webhook_trigger Sync Send data to external webhooks

SftpTransferStep (package: wpipe_steps.connectivity)

Step Name Type Description
sftp_transfer Sync Upload/download files via SFTP

RSSParserStep (package: wpipe_steps.connectivity)

Step Name Type Description
rss_parser Sync Parse RSS/Atom feeds and extract entries

OAuth2AuthStep (package: wpipe_steps.connectivity)

Step Name Type Description
oauth2_auth Sync Retrieve and manage OAuth2 access tokens

📋 Redis Steps Inventory

Complete inventory of Redis Steps available in wpipe_steps.database.redis:

Bitmaps (package: wpipe_steps.database.redis.bitmaps)

Step Name Type Description
redis_bitmap_set_bit_sync Sync Set a bit at offset in bitmap
redis_bitmap_set_bit_async Async Set a bit at offset in bitmap (async)
redis_bitmap_get_bit_sync Sync Get bit value at offset
redis_bitmap_get_bit_async Async Get bit value at offset (async)
redis_bitmap_count_bits_sync Sync Count set bits in bitmap
redis_bitmap_count_bits_async Async Count set bits in bitmap (async)
redis_bitmap_get_ttl_sync Sync Get TTL of bitmap key
redis_bitmap_get_ttl_async Async Get TTL of bitmap key (async)
redis_bitmap_extend_ttl_sync Sync Extend TTL of bitmap key
redis_bitmap_extend_ttl_async Async Extend TTL of bitmap key (async)

Hash (package: wpipe_steps.database.redis.hash)

Step Name Type Description
redis_hash_create_sync Sync Create hash field
redis_hash_create_async Async Create hash field (async)
redis_hash_read_sync Sync Read hash field
redis_hash_read_async Async Read hash field (async)
redis_hash_read_all_sync Sync Read all hash fields
redis_hash_read_all_async Async Read all hash fields (async)
redis_hash_update_sync Sync Update hash field
redis_hash_update_async Async Update hash field (async)
redis_hash_delete_sync Sync Delete hash field
redis_hash_delete_async Async Delete hash field (async)
redis_hash_get_ttl_sync Sync Get TTL of hash
redis_hash_get_ttl_async Async Get TTL of hash (async)
redis_hash_extend_ttl_sync Sync Extend TTL of hash
redis_hash_extend_ttl_async Async Extend TTL of hash (async)

Pub/Sub (package: wpipe_steps.database.redis.pubsub)

Step Name Type Description
redis_pubsub_publish_sync Sync Publish message to channel
redis_pubsub_publish_async Async Publish message to channel (async)
redis_pubsub_on_message_sync Sync Subscribe to channel (returns decorator)
redis_pubsub_on_message_async Async Subscribe to channel (async, returns decorator)

Queue (package: wpipe_steps.database.redis.queue)

Step Name Type Description
redis_queue_publish_sync Sync Publish message to queue
redis_queue_publish_async Async Publish message to queue (async)
redis_queue_on_message_sync Sync Subscribe to queue (returns decorator)
redis_queue_on_message_async Async Subscribe to queue (async, returns decorator)
redis_queue_get_length_sync Sync Get queue length
redis_queue_get_length_async Async Get queue length (async)

Sets (package: wpipe_steps.database.redis.sets)

Step Name Type Description
redis_set_add_sync Sync Add members to set
redis_set_add_async Async Add members to set (async)
redis_set_get_members_sync Sync Get all members from set
redis_set_get_members_async Async Get all members from set (async)
redis_set_is_member_sync Sync Check membership in set
redis_set_is_member_async Async Check membership in set (async)
redis_set_remove_sync Sync Remove members from set
redis_set_remove_async Async Remove members from set (async)
redis_set_get_ttl_sync Sync Get TTL of set
redis_set_get_ttl_async Async Get TTL of set (async)
redis_set_extend_ttl_sync Sync Extend TTL of set
redis_set_extend_ttl_async Async Extend TTL of set (async)

Sorted Sets (package: wpipe_steps.database.redis.sortsets)

Step Name Type Description
redis_sortsets_add_sync Sync Add member to sorted set
redis_sortsets_add_async Async Add member to sorted set (async)
redis_sortsets_get_sync Sync Get members (ascending)
redis_sortsets_get_async Async Get members (ascending, async)
redis_sortsets_get_reverse_sync Sync Get members (descending)
redis_sortsets_get_reverse_async Async Get members (descending, async)
redis_sortsets_remove_sync Sync Remove member from sorted set
redis_sortsets_remove_async Async Remove member from sorted set (async)
redis_sortsets_get_rank_sync Sync Get rank of member
redis_sortsets_get_rank_async Async Get rank of member (async)
redis_sortsets_get_score_sync Sync Get score of member
redis_sortsets_get_score_async Async Get score of member (async)
redis_sortsets_increment_score_sync Sync Increment score of member
redis_sortsets_increment_score_async Async Increment score of member (async)
redis_sortsets_get_by_score_sync Sync Get members by score range
redis_sortsets_get_by_score_async Async Get members by score range (async)
redis_sortsets_delete_sync Sync Delete sorted set
redis_sortsets_delete_async Async Delete sorted set (async)
redis_sortsets_set_ttl_sync Sync Set TTL of sorted set
redis_sortsets_set_ttl_async Async Set TTL of sorted set (async)
redis_sortsets_get_ttl_sync Sync Get TTL of sorted set
redis_sortsets_get_ttl_async Async Get TTL of sorted set (async)

Streams (package: wpipe_steps.database.redis.streams)

Step Name Type Description
redis_stream_add_sync Sync Add message to stream
redis_stream_add_async Async Add message to stream (async)
redis_stream_read_sync Sync Read messages from stream
redis_stream_read_async Async Read messages from stream (async)
redis_stream_on_message_sync Sync Consume messages with consumer group (returns decorator)
redis_stream_on_message_async Async Consume messages with consumer group (async, returns decorator)

Geo (package: wpipe_steps.database.redis.geo)

Step Name Type Description
redis_geo_add_sync Sync Add location to geo set
redis_geo_add_async Async Add location to geo set (async)
redis_geo_get_distance_sync Sync Get distance between members
redis_geo_get_distance_async Async Get distance between members (async)
redis_geo_get_positions_sync Sync Get positions of members
redis_geo_get_positions_async Async Get positions of members (async)
redis_geo_search_nearby_sync Sync Search nearby members
redis_geo_search_nearby_async Async Search nearby members (async)
redis_geo_search_nearby_dist_sync Sync Search nearby with distance
redis_geo_search_nearby_dist_async Async Search nearby with distance (async)

HyperLogLog (package: wpipe_steps.database.redis.hyperloglog)

Step Name Type Description
redis_hll_add_sync Sync Add elements to HyperLogLog
redis_hll_add_async Async Add elements to HyperLogLog (async)
redis_hll_count_sync Sync Count unique elements
redis_hll_count_async Async Count unique elements (async)

Transactions (package: wpipe_steps.database.redis.transactions)

Step Name Type Description
redis_transaction_execute_sync Sync Execute transaction with multiple commands
redis_transaction_execute_async Async Execute transaction with multiple commands (async)

Pipeline (package: wpipe_steps.database.redis.pipeline)

Step Name Type Description
redis_pipeline_execute_sync Sync Execute pipeline with multiple commands
redis_pipeline_execute_async Async Execute pipeline with multiple commands (async)

Cache Decorators (package: wpipe_steps.database.redis.cache)

Step Name Type Description
redis_cache_decorator_sync Sync Get cache decorator with TTL
redis_async_cache_decorator Async Get async cache decorator with TTL
redis_retry_decorator_sync Sync Get retry decorator with backoff

🚀 Quick Start

Installation

pip install wpipe-steps

Basic Usage

from wpipe import Pipeline
from wpipe_steps.connectivity import HttpRequestStep

# Create a pipeline
pipeline = Pipeline(pipeline_name="fetch_api")

# Use a pre-built step
pipeline.set_steps([
    HttpRequestStep.as_step(
        name="fetch_user",
        url="https://api.example.com/user/1",
        method="GET"
    )
])

pipeline.run({})

🛠️ Developer Guide: Creating a New Step

All steps should inherit from BaseStep located in wpipe_steps.core.base.

from wpipe_steps.core.base import BaseStep

class MyCustomStep(BaseStep):
    def execute(self, data):
        # Your logic here
        data["my_key"] = "my_value"
        return data

📢 Roadmap

Check the TODO.txt for the full list of planned steps for each pack.


Diseñado con ❤️ por William Rodriguez (wisrovi) para ingenieros que buscan máxima productividad.

Project details


Download files

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

Source Distribution

wpipe_steps-0.35.0.tar.gz (113.4 kB view details)

Uploaded Source

Built Distribution

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

wpipe_steps-0.35.0-py3-none-any.whl (120.4 kB view details)

Uploaded Python 3

File details

Details for the file wpipe_steps-0.35.0.tar.gz.

File metadata

  • Download URL: wpipe_steps-0.35.0.tar.gz
  • Upload date:
  • Size: 113.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for wpipe_steps-0.35.0.tar.gz
Algorithm Hash digest
SHA256 fcdb4f1688b0ec2612a3525ebd7cad2e33e4f571615f0b815c67fb50bd9c1eeb
MD5 581920130046549ed526aa60581302e3
BLAKE2b-256 62338354be89f27a749a2bb426a2216b2c13c9e58a0f7043769aca27634206f8

See more details on using hashes here.

File details

Details for the file wpipe_steps-0.35.0-py3-none-any.whl.

File metadata

  • Download URL: wpipe_steps-0.35.0-py3-none-any.whl
  • Upload date:
  • Size: 120.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for wpipe_steps-0.35.0-py3-none-any.whl
Algorithm Hash digest
SHA256 88e9b972e904a25927a6802566b246e2dfea519121a63b269aabe28a81aad446
MD5 737f6803c4b03c844ee85c8656429470
BLAKE2b-256 c20d662458fd9d717efa41c94d92a5c4e852a8b9b43529d26cb949df3b2a8e28

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