Skip to content

W24-Service-GmbH/werk24-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Werk24

Werk24 Python Client

Unlock manufacturing intelligence from technical drawings with AI.

PyPI version Python Version License Downloads Tests

Table of Contents

Overview

Werk24 provides AI-powered solutions for extracting and interpreting technical drawings. This Python client enables easy interaction with the Werk24 API for processing technical drawings efficiently. The API gives you access to the following structured data:

  • Meta Data: Drawing ID, Part ID, Designation, General Tolerances, General Roughness, Material, Weight, Bill of Material, Revision Table, Languages and Notes.
  • Features: Dimensions incl. Tolerances, Threads, Bores, Chamfers, Roughnesses, GDnTs, Radii.
  • Insights: Manufacturing Method, Postprocesses, Input Geometry, Output Geometry.
  • Redaction: Redact information from Technical Drawings.

๐Ÿ‘‰ Visit werk24.io to learn more or request a demo.

Why Werk24?

  • Accelerate Quoting โ€“ Generate prices from 2D drawings in seconds.
  • Reduce Manual Entry โ€“ Automatically capture metadata and dimensions.
  • Speed Up Supplier Scouting โ€“ Match drawings with capable vendors.
  • Protect IP โ€“ Anonymize sensitive details before sharing.
  • Boost Productivity โ€“ Let engineers focus on design, not data extraction.

Features

  • Automated Extraction: Retrieve metadata, dimensions, and annotations from technical drawings.
  • Fast Processing: Optimized API calls for efficient inference.
  • Seamless Integration: Works with Python-based workflows for manufacturing, CAD, and ERP systems.
  • JSON Output: Standardized response format for easy processing.

Applications

Harness Werk24 for:

  • Instant Pricing: Automate 2D drawing-based quoting.
  • Feasibility Checks: Evaluate RFQs efficiently.
  • Configurator Auto-Fill: Populate online configurators with minimal input.
  • Drawing Anonymization: Protect sensitive data in technical drawings.
  • Supplier Scouting: Automate vendor selection for specific requirements.
  • ERP Registration: Streamline incoming RFQ registrations.
  • Structured Archiving: Organize drawings with metadata extraction.

Installation

Pip installation

pip install werk24    # install the library
werk24 init           # obtain a trial license

Dependency Management

Overview

The werk24 library uses a flexible dependency management strategy designed to minimize conflicts with other packages in your environment. We specify minimum versions for dependencies based on required features and security fixes, but avoid restrictive upper bounds that can cause installation conflicts.

Why Minimum Versions?

Each minimum version requirement exists for a specific reason:

  • Security Fixes: Dependencies like cryptography>=44.0.0 require minimum versions that include critical security patches
  • Required Features: Some dependencies introduced features we rely on in specific versions
  • API Stability: Minimum versions ensure the APIs we use are available and stable

Philosophy

We follow these principles:

  1. Trust Semantic Versioning: For dependencies that follow SemVer, we trust that minor and patch updates won't break compatibility
  2. No Restrictive Upper Bounds: We avoid upper bounds (like <=X.Y.Z) on stable dependencies to prevent blocking your other packages
  3. Surgical Exclusions: If a specific version has issues, we exclude only that version using !=X.Y.Z rather than blocking all future versions
  4. Tested Configurations: We maintain requirements.txt with exact versions we've tested, but your environment can use compatible newer versions

Troubleshooting Dependency Conflicts

If you encounter dependency conflicts during installation:

  1. Check Your Environment: Use pip list to see what's already installed
  2. Update pip: Ensure you're using a recent version: pip install --upgrade pip
  3. Use Virtual Environments: Always install in a clean virtual environment to avoid conflicts
  4. Review Conflict Messages: pip will show which packages have incompatible requirements
  5. Report Issues: If werk24's requirements conflict with popular packages, please open an issue

Common Scenarios

Installing alongside other packages:

# werk24 works well with other packages
pip install werk24 requests pandas numpy

Upgrading from older versions:

# Simply upgrade to the latest version
pip install --upgrade werk24

Checking installed versions:

# See what versions are actually installed
pip show werk24
pip list | grep -E "(cryptography|pydantic|websockets)"

Quick Start

Here's how you can use the Werk24 client to extract data from a technical drawing:

import asyncio
from werk24 import Werk24Client, AskMetaData, get_test_drawing

async def read_drawing(asks):
  fid = get_test_drawing()
  async with Werk24Client() as client:
      return [msg async for msg in client.read_drawing(fid, asks)]

asyncio.run(read_drawing([AskMetaData()]))

Documentation

See https://werk24.io/docs/index.html

CLI

To get a first impression, you can run the CLI:

$> werk24 --help
 Usage: python -m werk24.cli.werk24 [OPTIONS] COMMAND [ARGS]...

โ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ --log-level                 TEXT  Set the log level [default: WARNING]                    โ”‚
โ”‚ --install-completion              Install completion for the current shell.               โ”‚
โ”‚ --show-completion                 Show completion for the current shell, to copy it or... |
โ”‚ --help                            Show this message and exit.                             โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ init           Initialize Werk24 by providing or creating a license.                      โ”‚
โ”‚ health-check   Run a comprehensive health check for the CLI.                              โ”‚
โ”‚ techread       Read a drawing file and extract information.                               โ”‚
โ”‚ version        Print the version of the Client.                                           โ”‚
โ”‚ status         Fetch and display the Werk24 system status.                               โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Community & Support

Have questions? Request a demo or open an issue and weโ€™ll be happy to help.

Contributing

We welcome contributions that improve the client or documentation.

  1. Fork the repository and create a new branch.
  2. Make your changes and ensure tests pass with pytest.
  3. Open a pull request describing your changes.

See CONTRIBUTING.md for more details.

License

The Werk24 Python Client requires a commercial Werk24 license to use. See LICENSE.txt for terms and conditions.