ci-server-engineer/.claude/skills/pytools/SKILL.md
cliu bf7d88a027 R1.05 re-check batch 3: alarms, audit, authorization, classes, HAC, reporting, pyTOOLS
Full manual diffs (L15, C20, E30, L25, J40, C10 §2, L10, P10, P11, J20,
C30, P20, R40, E10) and read-only checks on the shared R1.05 test server.
Skills and summaries moved to R1.05; new skill pytools (IM 36K10P40) from
docs (no Python on the test server). Issues ISS-132..181; corrections to
version-differences (E10, E30, P11, dss_ath_grp_u0104); C10 summary lists
the 3 new authorization actions; r105-verification V10-V17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 10:21:36 +11:00

4.5 KiB

name description
pytools CI Server R1.05 pyTOOLS: Python scripts that use the `dss` module (dss.pyd) to read or change CI Server data. Use when the user wants to install or set up Python for CI Server (64-bit Python 3.12, PYTHONPATH, import dss), write a Python script that connects to DSS (dss.connect, logon, logout, close), lists datasets or fields, opens a dataset and reads records (readNext, readEqual, readRecords, ITEM_VAL, ITEM_DF, LOCAL_NODE_DF), reads item history or aggregates from Python (getItemHistory, getHisGroupItems, interpolation, AGGR_MAX, aggr_period), filters or sorts records (createFilter, activateFilter, filter expression, setIndex, getIndex), waits for value or record changes (datasetEventNotify, recordEventNotify, eventRead), inserts, updates or deletes records or locks them (insertRecord, updateRecord, deleteRecord, lockRecords), sends or receives BUS Service messages (busSetName, busSend, busReceive, busSnap, durstp a script), converts DSS times (dateString, dateDSS, dateRelDSS, dateConvert), handles dss.error / DSS-E-EOS / PY_DSS_* exceptions, or checks the server side (DSSSDAPY, PYDSS, dssana.sup Python Interface login method). Source IM 36K10P40-01EN (new in R1.04).

pyTOOLS (R1.05)

pyTOOLS is the Python module dss (%TLS_ROOT_PATH%\tls\exe\dss.pyd). A script attaches to the BUS Service and DSS of the local node (CI Core or CI Portal; not CI View) and works with datasets like any other DSS client. Item history has two fast functions that go straight to ITEM Service.

Written 2026-10-09 for R1.05. No Python is installed on the R1.05 test server, so no script was run there: all tasks are from docs, not tested. Checked read-only on the R1.05 test server: dss.pyd (module 3.6.1), the dedicated DSS server DSSSDAPY, the dss.sup routing and the Python Interface login lines in dssana.sup. On the development machine (R1.03) the R1.03 module imports under Python 3.12 (version(), busGetDirs()).

Background: knowledge/manuals/IM36K10P40-01EN.md (every function, filter syntax, exceptions). Known issues: knowledge/manuals/IM36K01A50-01EN.md. Server side of DSS: skill system-management (tasks/dss-tools.md). Login methods: skill authorization (tasks/login-methods.md).

Rules for every task:

  • Run the system-check skill first. pyTOOLS is a product function from R1.04; R1.03 ships an older, undocumented dss.pyd without the dedicated server — do not rely on it.
  • Installing Python, setting the system variable PYTHONPATH and changing dssana.sup need administrator rights: hand them to the user (direct vs prepare only as agreed).
  • Log on as a CI Server user with only the rights the script needs (pyTOOLS supports only the Manual CI Server login method). Never hard-code a real password in a file in the repo; read it from an environment variable or prompt (getpass).
  • Scripts that write (insert / update / delete / lock) change the running system and are recorded in the audit trail (source PYTOOLS): only on test systems or with the user's approval. Prefer read-only modes ('r').
  • Always stop event notifications, close datasets and dss.close(conn) in a finally: block; a script left running keeps a BUS process (PYDSS_<n>) and a DSS session.
  • Run scripts from a scratch folder; examples use CI-Eng-Sample names (examples/CI-Eng-Sample/), replace them with <Section>.<Tag> names of the user's system.
Task File Status
Set up Python and pyTOOLS, check the server side, first read-only script (version, LOCAL_NODE_DF, one item value) tasks/setup-first-script.md from docs, not tested (no Python on the R1.05 test server); server-side files verified read-only 2026-10-09
Read items (ITEM_VAL, ITEM_DF) and item history / aggregates (getItemHistory) tasks/read-items-history.md from docs, not tested (no Python on the R1.05 test server)
Filter and sort records (filter expressions, indexes) tasks/filter-index.md from docs, not tested (no Python on the R1.05 test server)
Wait for changes: event notification on records or datasets tasks/event-notification.md from docs, not tested (no Python on the R1.05 test server)
Insert, update, delete and lock records tasks/modify-datasets.md from docs, not tested (writes; no Python on the R1.05 test server)

BUS Service messages (busSend, busReceive, busReply, busSnap, stopping a named script with durstp), date/time helpers and setup-file reading are described in the manual summary (§3.11, §3.12, §3.14); no task file yet.