Skip to main content

CLI and Python client for Arena PLM (app.bom.com): login, get revisions, list/download attachments, and upload to working revisions.

Project description

gladiator-arena

CLI + Python client for interacting with the Arena PLM.

Install

pip install lr-gladiator

Quick start

Login

Interactive login (prompts for username/password):

gladiator login

Non-interactive (for CI/CD):

export GLADIATOR_USERNAME="<insert username>"
export GLADIATOR_PASSWORD="<insert password>"
gladiator login --ci

By default, this stores session details at:

~/.config/gladiator/login.json

Commands

Get the latest approved revision for an item:

gladiator latest-approved 890-1001

List all files on an item (defaults to the latest approved revision):

gladiator list-files 890-1001

Output JSON instead of a table:

gladiator list-files 890-1001 --format json

List the Bill of Materials (BOM) for an item:

gladiator bom 890-1001

Recursively expand subassemblies up to two levels deep:

gladiator bom 890-1001 --recursive --max-depth 2

Download attached files to a directory named after the article:

gladiator get-files 890-1001

Specify a different output directory:

gladiator get-files 890-1001 --out downloads/

Recursively download all files in the full BOM tree:

gladiator get-files 890-1001 --recursive

Upload or update a file on the working revision:

gladiator upload-file 890-1001 ./datasheet.pdf --category "CAD Data" --title "Datasheet"

3) Output control

Most commands support a JSON output mode.
Example:

gladiator bom 890-1001 --output json

Example sessions

Human-readable

$ gladiator list-files 101-1031
         Files for 101-1031 rev (latest approved)         
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┳━━━━━━┳━━━━━━━━━━┓
┃ Name                 Size  Edition  Type  Location ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━╇━━━━━━╇━━━━━━━━━━┩
│ 101-1907 E.PDF     171396  1        FILE           │
└─────────────────┴──────────┴─────────┴──────┴──────────┘

JSON output

$ gladiator list-files 101-1031 --format json
{
  "article": "101-1031",
  "revision": null,
  "files": [
    {
      "id": "00000000000000000000",
      "fileGuid": "11111111111111111111",
      "name": "101-1907 E.PDF",
      "filename": "101-1907 E.PDF",
      "size": 171396,
      "haveContent": true,
      "downloadUrl": "https://api.arenasolutions.com/v1/files/11111111111111111111/content",
      "edition": "1",
      "updatedAt": "2016-12-06T12:31:33Z",
      "attachmentGroupGuid": "22222222222222222222",
      "storageMethodName": "FILE",
      "location": null
    }
  ]
}

Programmatic use

from gladiator import ArenaClient, load_config

client = ArenaClient(load_config())
rev = client.get_latest_approved_revision("890-1001")
files = client.list_files("890-1001", rev)

Development

python -m pip install -e .[dev]
python -m build

FAQ

  • Where is the config kept? ~/.config/gladiator/login.json (override with GLADIATOR_CONFIG)

  • How do I run non-interactively? Make sure to give all required arguments. Also pass --ci to stop output of sensitive information such as username or passwords.

  • What does --recursive do? Expands subassemblies and downloads or lists all contained items up to the given --max-depth.

  • How does Gladiator handle authentication? It performs a /login call and stores the resulting arenaSessionId for reuse. If it expires, re-run gladiator login.

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

lr_gladiator-0.11.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

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

lr_gladiator-0.11.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file lr_gladiator-0.11.0.tar.gz.

File metadata

  • Download URL: lr_gladiator-0.11.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lr_gladiator-0.11.0.tar.gz
Algorithm Hash digest
SHA256 9944f87fa6fddffbb7cc30dbd15c45afa8464f322d41c88c23c7a853257cd999
MD5 aa5eefcfdf0d53ee4ade6d34993089bc
BLAKE2b-256 3500909d65f52cc122a902f6b5e639dad20eaf064c39e4c98ebca244138b828a

See more details on using hashes here.

File details

Details for the file lr_gladiator-0.11.0-py3-none-any.whl.

File metadata

  • Download URL: lr_gladiator-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lr_gladiator-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9e44342d0cc9482bc1f99ce0b5e3a323805bd9a240ae8881f90bf08414d2405
MD5 14b8c1a46f8c440c24a235afc38497be
BLAKE2b-256 4edf1e61fe602c4cd94f06f0a82209f4cce2be05bec63f4c718306ba21beeb34

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