Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ repos:
args: [src, tests, examples]
additional_dependencies:
- typer
- pytest
- repo: https://github.com/scientific-python/cookie
rev: 2024.04.23
hooks:
Expand Down
23 changes: 19 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased](https://github.com/MaterialsPhysicsANU/pbspy/compare/v0.0.9...HEAD)

### Removed
### Added

- Remove `progress` parameter from the `wait[_all]` and `result[_all]` methods of `Job`
- These methods no longer print job IDs or progress
- Remove `rich` dependency
- Add the public `Backend` interface and default `LocalBackend` implementation
- `JobDescription.submit()` accepts a backend supplied by the caller
- Each `Job` retains its backend for waiting, result retrieval, and cancellation
- Add `Job.cancel()`
- Add batched PBS state-query and deletion helpers

### Changed

- Group `Job.wait_all()` and `Job.result_all()` calls by backend so each backend can wait for its jobs together
- Reuse a shared `LocalBackend` for jobs submitted without an explicit backend
- Return `None` when PBS has not reported a completed job's exit status

### Fixed

- Preserve `JobDescription.output_path` and `error_path` on submitted jobs and use them when retrieving results
- Treat cancellation of finished or unknown PBS jobs as successful
- Update `JOBFS` limit for jobs on the `copyq` queue of the `Gadi` supercomputer

### Removed

- Remove progress display from the `Job` wait and result methods
- Remove `rich` dependency

## [0.0.9](https://github.com/MaterialsPhysicsANU/pbspy/releases/tag/v0.0.9) - 2026-05-18

### Added
Expand Down
23 changes: 7 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ See the [documentation](https://MaterialsPhysicsANU.github.io/pbspy/) for more i

## Example

### Running directly on a supercomputer login-node

```python
from pbspy import Job, JobDescription

Expand All @@ -38,23 +40,12 @@ print("job_a:", result_a.output.strip())
print("job_b:", result_b.output.strip())
```

Output (partially executed):

```text
✓ 124397435.gadi-pbs job_a
0:01:15 124397436.gadi-pbs job_b
```

Output (completed):

```text
✓ 124397435.gadi-pbs job_a
✓ 124397436.gadi-pbs job_b
### Backends

job_a: A
job_b: B
```
PBS operations use `LocalBackend` by default and run on the current host.
`JobDescription.submit()` also accepts any implementation of the public `Backend`
interface, allowing alternate execution mechanisms to live in separate packages.

## Licence
## License

`pbspy` is licensed under the MIT License [LICENSE](./LICENSE) or <http://opensource.org/licenses/MIT>.
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ license = {text = "MIT License"}
dependencies = [
]


[dependency-groups]
dev = [
"mypy>=1.14.1",
Expand Down
Loading
Loading