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
Display a quick summary for an item revision (number, name, description, category, lifecycle, etc.):
gladiator info 890-1001
Emit machine-readable JSON instead of the Rich table:
gladiator info 890-1001 --format json
The summary includes the Arena web URL (Item URL) so you can click straight into the item from the terminal output.
Download the item's thumbnail (saved as <item>.png/.jpg) while fetching the summary:
gladiator info 890-1001 --picture --rev WORKING
List the Bill of Materials (BOM) for an item:
gladiator get-bom 890-1001
Recursively expand subassemblies up to two levels deep:
gladiator get-bom 890-1001 --recursive --max-depth 2
Add or update a BOM line on the working revision:
gladiator add-to-bom 890-1001 510-0005 --qty 2 --refdes R1
Target a different revision or inspect the raw API response:
gladiator add-to-bom 890-1001 510-0005 --parent-rev EFFECTIVE --format json
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"
Inspect a change and see which views are affected (columns show * when the view is included in the change):
gladiator get-change CCO-0006
Show the raw change payload instead of the Rich table:
gladiator get-change CCO-0006 --format json
Add an item (WORKING revision by default) to an existing change:
gladiator add-to-change --change CCO-0003 510-0001
Create a new change order (effectivity and deadline flags optional):
gladiator create-change --title "Fan bracket update" --description "Replace bracket" --category "Engineering Change Order"
The command prints a summary table with the newly assigned change number. Use --format json to inspect the raw response payload.
3) Output control
Most commands support a JSON output mode.
Example:
gladiator get-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
}
]
}
Change inspections use a tabular view that highlights impacted areas. Example output for gladiator get-change CCO-0006:
Affected items for CCO-0006
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━┓
┃ Item Number ┃ Affected Rev ┃ New Rev ┃ Disposition ┃ Notes ┃ BOM ┃ Specs ┃ Files ┃ Source ┃ Cost ┃
┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━╇━━━━━━┩
│ 510-0001 │ A │ B │ In Stock: Use │ Review │ * │ │ * │ │ * │
└─────────────┴──────────────┴─────────┴───────────────┴────────┴─────┴───────┴───────┴────────┴──────┘
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 withGLADIATOR_CONFIG) -
How do I run non-interactively? Make sure to give all required arguments. Also pass
--cito stop output of sensitive information such as username or passwords. -
What does
--recursivedo? Expands subassemblies and downloads or lists all contained items up to the given--max-depth. -
How does Gladiator handle authentication? It performs a
/logincall and stores the resultingarenaSessionIdfor reuse. If it expires, re-rungladiator login.
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 Distribution
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 lr_gladiator-0.27.0.tar.gz.
File metadata
- Download URL: lr_gladiator-0.27.0.tar.gz
- Upload date:
- Size: 41.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
239fb8e38fc7587f340bfa820f6e79fc0ef83c4d16d33e5f45c0b800ab694eaa
|
|
| MD5 |
993b6209567ac7256157bb5b2b82d05e
|
|
| BLAKE2b-256 |
ea83f414ea053986fe6ccf90b1b3f779a75564204b047a597efa7ecde3216f3d
|
File details
Details for the file lr_gladiator-0.27.0-py3-none-any.whl.
File metadata
- Download URL: lr_gladiator-0.27.0-py3-none-any.whl
- Upload date:
- Size: 35.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69ec410915f041ec3c040cf499a41949a3f90bad6d3676a0d24a9a74ee8881db
|
|
| MD5 |
535a9d2d0f0956414d00679557144ab2
|
|
| BLAKE2b-256 |
f98081c84b5cd54e6087ca924671fa277ad50a05bf6090360eb2687d442e2aa6
|