RDA Python package to hold RDA miscellaneous utility programs
Project description
rda_python_miscs
RDA Python package to hold miscellaneous utility programs for the NSF NCAR Geoscience Data Exchange (GDEX).
Programs
The package provides two categories of programs:
Run as current user (no setuid required):
| Command | Alias | Description |
|---|---|---|
bashqsub |
Submit a job as a bash batch job on a PBS node via qsub | |
tcshqsub |
Submit a job as a tcsh batch job on a PBS node via qsub | |
rdasub |
gdexsub |
Submit a command as a nohup background process on the local machine |
pgwget |
Download remote files by root name pattern, combining downloaded parts into a single file | |
gdexls |
List local files and directories with matching metadata from the GDEX database | |
rdaps |
gdexps |
Show process status for local or PBS batch processes, with filtering by PID, owner, or name |
rdazip |
gdexzip |
Compress or uncompress files using a supported format |
rdaown |
gdexown |
Change ownership of files and directories to rdadata (must be run as root) |
pgrst |
Convert .usg files to RST and push to gdex-docs-* repos on GitHub for readthedocs.io |
Run as gdexdata via setuid (requires setup below):
| Command | Alias | Connector script | Description |
|---|---|---|---|
rdacp |
gdexcp |
setuid_rdacp / setuid_gdexcp |
Copy files and directories across local, remote, Object Store, or Globus endpoints |
rdakill |
gdexkill |
setuid_rdakill / setuid_gdexkill |
Kill local processes and their children, or cancel PBS batch jobs |
rdamod |
gdexmod |
setuid_rdamod / setuid_gdexmod |
Change permission modes for files and directories owned by rdadata |
Environment setup
Create a Python environment first; package installs in the next section run inside whichever environment you activate here.
Option A — Python venv (DECS machines)
python3 -m venv $ENVHOME # e.g. /glade/u/home/gdexdata/gdexmsenv
source $ENVHOME/bin/activate
Option B — Conda (DAV/Casper)
conda create --prefix $ENVHOME python=3.12 # e.g. /glade/work/gdexdata/conda-envs/pg-gdex
conda activate $ENVHOME
Installing rda-python-miscs
Pick whichever install mode fits your workflow. All four pull in the
transitive dependencies (rda_python_common, rda_python_setuid)
automatically.
For local development, clone this repo alongside your project and install it in editable mode so that changes are picked up without re-installing:
git clone https://github.com/NCAR/rda-python-miscs.git
cd rda-python-miscs
pip install -e .
To test a specific branch (e.g. an in-progress feature or fix branch), pass
-b/--branch to git clone:
git clone -b <branch-name> https://github.com/NCAR/rda-python-miscs.git
cd rda-python-miscs
pip install -e .
For a regular (non-editable) install from a checkout:
pip install /path/to/rda-python-miscs
For a production install on a system that uses the published distribution:
pip install rda_python_miscs
Setuid Setup
The setuid programs (rdacp, rdakill, rdamod and their gdex* aliases)
execute as the common user PGLOG['COMMONUSER'] (default gdexdata) via
the rda_python_setuid mechanism, which is pulled in automatically as a
dependency. After pip install above, choose one of the wiring options
below.
Full setuid install (requires sudo access to COMMONUSER)
Run these steps once per environment:
# 1. Compile the pywrapper C binary (once per environment):
pywrapper-install -c|--compile -n|--username gdexdata
# 2. Wire up all setuid programs in one pass:
pywrapper-install -l|--link all
# 3. Optionally, install a pgstart_<loginname> binary so <loginname> (any
# user in the same group as PGLOG['COMMONUSER']) can run commands as
# themselves. Run either by PGLOG['ADMINUSER'] (default zji, if it has
# 'sudo -u <loginname>'), or by <loginname> directly:
pywrapper-install -p|--pgstart -n|--username <loginname>
pywrapper-install with no arguments displays the full user guide.
Simple install (no sudo required, runs as current user)
Users who do not need the setuid mechanism can create direct symlinks instead:
pywrapper-install -l|--link all -s|--simple
This creates bin/<name> -> bin/setuid_<name> for every setuid program and
they run as the current user with no privilege change.
Update an existing installation (no sudo required)
When the package is upgraded and a new pywrapper.c is bundled, recompile and
reinstall all setuid binaries using the existing pgstart_* binaries:
pywrapper-install -u|--update
Setup guide
The shared setuid setup guide is shown automatically if any setuid_*
connector script is invoked directly before the setuid wrapper has been
configured.
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 rda_python_miscs-3.0.0.tar.gz.
File metadata
- Download URL: rda_python_miscs-3.0.0.tar.gz
- Upload date:
- Size: 73.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92c7a8079cbc4dd41e0b72e013b33b836d2b321948bdafc4e6b91bff1e1800c0
|
|
| MD5 |
7a7fa37d7fe1ea48c22e9a94ae06aa03
|
|
| BLAKE2b-256 |
f3612577f151b15d601c82ba48cdbfe911efce38682090bf22f627800ffd40a6
|
Provenance
The following attestation bundles were made for rda_python_miscs-3.0.0.tar.gz:
Publisher:
publish.yml on NCAR/rda-python-miscs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rda_python_miscs-3.0.0.tar.gz -
Subject digest:
92c7a8079cbc4dd41e0b72e013b33b836d2b321948bdafc4e6b91bff1e1800c0 - Sigstore transparency entry: 1756399636
- Sigstore integration time:
-
Permalink:
NCAR/rda-python-miscs@e337ee11f68637712cb5bd4b79607f60968e5fd2 -
Branch / Tag:
refs/tags/v3.0.0 - Owner: https://github.com/NCAR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e337ee11f68637712cb5bd4b79607f60968e5fd2 -
Trigger Event:
release
-
Statement type:
File details
Details for the file rda_python_miscs-3.0.0-py3-none-any.whl.
File metadata
- Download URL: rda_python_miscs-3.0.0-py3-none-any.whl
- Upload date:
- Size: 104.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13f3afef014af1c0f55e0944f837b9292c6d12e87fac0fc4699c735c67487c1f
|
|
| MD5 |
64ea9361fc35072fe37d5915926e6a30
|
|
| BLAKE2b-256 |
527a6e2d2eb103abafd2fbe25034c4ede1c76043e253226a27a9c6d74ff78a24
|
Provenance
The following attestation bundles were made for rda_python_miscs-3.0.0-py3-none-any.whl:
Publisher:
publish.yml on NCAR/rda-python-miscs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rda_python_miscs-3.0.0-py3-none-any.whl -
Subject digest:
13f3afef014af1c0f55e0944f837b9292c6d12e87fac0fc4699c735c67487c1f - Sigstore transparency entry: 1756399651
- Sigstore integration time:
-
Permalink:
NCAR/rda-python-miscs@e337ee11f68637712cb5bd4b79607f60968e5fd2 -
Branch / Tag:
refs/tags/v3.0.0 - Owner: https://github.com/NCAR
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e337ee11f68637712cb5bd4b79607f60968e5fd2 -
Trigger Event:
release
-
Statement type: