Hamster is a client application to iRODS systems with a userfriendly GUI. It brings the functionality of some iRODS-icommands to the graphical desktop on Windows, Linux and MacOS. It is a tool for uploading/downloading files and directories to iRODS, for editing and searching metadata in iRODS. Finally, being platform independent, Hamster-source-code can be used as example code for custom developments to interface your own research-environment with iRODS.
- platform independent GUI (Windows, Linux, MacOS, python, Qt, mostly-one-click-interface MOCI)
- user program (no admin rights needed for running or installation)
- connect with any iRODS (like
iinit
,ils
,ipwd
,icd
) - metadata: add/edit/delete on dataobjects & collections (like
imeta ls|add|mod|rm
on dataobject & collections) - metadata: copy/paste/undo on dataobjects & collections
- metadata: search (like
imeta qu
on dataobject & collections) - upload files and directories (like
iput -r -d -C
). Optionally: add checksum-before-upload for later comparison with iRODS-checksums - download files and directories (like
iget -r
) - rename data objects & collections (like
imv
) - delete data objects & collections (like
irm -r
) - inspect object & collection: show all metadata, show replica's (like
ilsresc
) - view iRODS users & groups (like
igroupadmin lg
)
Hamster supports two ways to login to iRODS.
The first method is to re-use an already setup iRODS environment.
The other method is via a pure Python SSL session (without a local irods_environment.json
).
In this case a settingsfile [USER_HOME_PATH]/.hamster.json
holds the environment settings and user credentials.
- Login to your iRODS environment using
iinit
- Run Hamster
python3 main.py
- Hamster will use the iRODS environment and piggy-bag on the active iRODS session.
It will create a settingsfile
[USER_HOME_PATH]/.hamster.json
- Create a settingsfile
[USER_HOME_PATH]/.hamster.json
- Run Hamster
python3 main.py
Current development of Hamster is for PyQt6. All instruction here are for building/running a PyQt6 version. PyQt6 sources are in the "src" directory.
However for those systems that cannot run PyQt6, a version of Hamster for the older PyQt5 is provided here as well. If you want to build/run the PyQt5 version, change to directory "src-qt5" (instead of "src").
First, you may want to setup a virtual environment
python3 -m venv hamsterenv
on Windows commandline: call hamsterenv\scripts\activate.bat
on Windows powershell: .\hamsterenv\Scripts\Activate.ps1
on Linux and MacOS: source hamsterenv/bin/activate
python3 -m pip install --upgrade pip
git clone https://github.com/Andries-B/Hamster.git
cd Hamster/src
python3 -m pip install -r requirements.txt
python3 main.py
pyinstaller Hamster.spec
- The software is written in pure Python: Python >= 3.4 is needed
- Python libraries: PyQt6 (or PyQt5), python-irodsclient >= 1.0.0
- iRODS server: iRODS 4.2.7, 4.2.8, 4.2.9, 4.2.10, 4.3.0 are known to work
- iRODS server: only port 1247 is needed, no additional iRODS plugins are needed
- iRODS server: native or PAM authentication, irods_environment or pure python (no icommands dependency), connection over SSL
- Tested on Linux
- Tested on Windows (working: pure python, SSL, PAM authentication)
- Tested on MacOS