Commit Graph

155 Commits

Author SHA1 Message Date
d98b60fc57 Add better image 2025-10-17 23:25:55 +13:00
86c3f9b808 Improve search look 2025-10-17 22:45:16 +13:00
4408a09e82 Add basic index redesign 2025-10-17 22:33:06 +13:00
f5889b270a New Layout for parallel styling
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-17 20:25:50 +13:00
376fd65785 [Feature] ML model caching for reducing prediction overhead (#156)
The caching is now finished. The cache is created in `settings.py` giving us the most flexibility for using it in the future.

The cache is currently updated/accessed by `tasks.py/get_ml_model` which can be called from whatever task needs to access ml models in this way (currently, `predict` and `predict_simple`).

This implementation currently caches all ml models including the relative reasoning. If we don't want this and only want to cache enviFormer, i can change it to that. However, I don't think there is a harm in having the other models be cached as well.

Co-authored-by: Liam Brydon <62733830+MyCreativityOutlet@users.noreply.github.com>
Reviewed-on: enviPath/enviPy#156
Co-authored-by: liambrydon <lbry121@aucklanduni.ac.nz>
Co-committed-by: liambrydon <lbry121@aucklanduni.ac.nz>
2025-10-16 08:58:36 +13:00
d5ebb23622 [Fix] AppDomain Leftovers (#161)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#161
beta_2025-10-15
2025-10-16 08:17:39 +13:00
93dd811e39 [Fix] Pathway SVG Export (#157)
Fixes #103

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#157
2025-10-16 02:25:30 +13:00
9a4735246f [Fix] Fix for sending mails (#160)
Captured by Sentry: https://envipath-limited.sentry.io/issues/66662009/?project=4509569727922256

```
SMTPSenderRefused
Level: Error
(504, b'5.5.2 <webmaster@localhost>: Sender address rejected: need fully-qualified address', 'webmaster@localhost')
```

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#160
2025-10-16 02:24:51 +13:00
1f863fdcd6 [Fix] Remove Scenarios from Objects (#159)
Fixes #155

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#159
2025-10-15 20:23:52 +13:00
1effaeb342 [Migration] EnzymeLink Migration (#158)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#158
2025-10-15 19:57:03 +13:00
386098b8a6 [Feature] EnzymeLink Annotations (#152)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#152
2025-10-15 19:35:26 +13:00
ef697ac5f5 [Fix] Added UZH Affiliation, Update UoA Images (#153)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#153
2025-10-15 19:25:23 +13:00
f76861a83f chore: migrate build commands to poe
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:24:51 +13:00
110fbe12c1 chore: update gitignore for pnpm
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:09:06 +13:00
d8dc9598ff chore: add makefile integration and documentation
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:07:20 +13:00
b7e4abae1c chore: add pnpm install to make
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:07:04 +13:00
2fa0be52ef Update commands to automatically run pnpm for relevant commands
Signed-off-by: Tobias O <tobias.olenyi@tum.de>
2025-10-13 21:07:04 +13:00
be5ff369e0 Setup TailwindCSS and DaisyUI
This commit introduces pnpm for build time dependency. While it does add
npm, it keeps it at a minimum and buildtime only to eventually allow for
automatic CI builds.

This is discussed in #133

Signed-off-by: Tobias O <tobias.olenyi@tum.de>
2025-10-13 21:07:04 +13:00
ee776e7d14 refactor: ALLOWED_HOSTS throws exception if not present
ALLOWED_HOSTS is now manfatory again. Also cleaned defunct SQLite
backend and autoformated fille to line lenght 100.

Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:06:42 +13:00
f27bc56379 chore: Setup pre-commit to automatically run ruff on commit.
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:06:14 +13:00
547eac3411 chore: add basic ruff configuration with line lenght 100
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:05:49 +13:00
9e66169d23 fix: fix docker compose command typo
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:05:28 +13:00
9a43942f12 docs: remove alternative install instructions for lower maintenance.
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:05:28 +13:00
1bad6e4b03 docs: add makefile and docker-compose for initial setup
Since sqlite is not a suitable backend due to array field switch to an
easy to setup postgres backend relying on docker. From cloning to run is
now just two commands.

Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:05:07 +13:00
ad38704ffe refactor: create local version of settings w/o postgres
This version allows installation using sqlite for local dev setup.

Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:04:31 +13:00
0775ad30d4 docs: add note on RDkit install painpoint
Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
2025-10-13 21:03:13 +13:00
68a3f3b982 [Feature] Alias Support (#151)
Fixes #149

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#151
2025-10-09 23:14:34 +13:00
afeb56622c [Chore] Linted Files (#150)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#150
2025-10-09 07:25:13 +13:00
22f0bbe10b [Feature] Eval package evaluation
`evaluate_model` in `PackageBasedModel` and `EnviFormer` now use evaluation packages if any are present instead of the random splits.

Co-authored-by: Liam Brydon <62733830+MyCreativityOutlet@users.noreply.github.com>
Reviewed-on: enviPath/enviPy#148
Co-authored-by: liambrydon <lbry121@aucklanduni.ac.nz>
Co-committed-by: liambrydon <lbry121@aucklanduni.ac.nz>
2025-10-08 19:03:21 +13:00
36879c266b [Feature] Documentation for development setup
## Summary

This PR improves the local development setup experience by adding Docker Compose and Makefile for streamlined setup.

## Changes

- **Added `docker-compose.yml`**: for one-command PostgreSQL database setup
- **Added `Makefile`**: Convenient shortcuts for common dev tasks (\`make setup\`, \`make dev\`, etc.)
- **Updated `README.md`**: Quick development setup instructions using Make
-
- **Added**: RDkit installation pain point documentation
- **Fixed**: Made Java feature properly dependent

## Why these changes?

The application uses PostgreSQL-specific features (\`ArrayField\`) and requires an anonymous user created by the bootstrap command. This PR makes the setup process trivial for new developers:

```bash
cp .env.local.example .env
make setup  # Starts DB, runs migrations, bootstraps data
make dev    # Starts development server
```

Java fix:
Moved global Java import to inline to avoid everyone having to configure the Java path.

Numerous changes to view and settings.
- Applied ruff-formatting

## Testing

Verified complete setup from scratch works with:
- PostgreSQL running in Docker
- All migrations applied
- Bootstrap data loaded successfully
- Anonymous user created
- The development server starts correctly.

Co-authored-by: Tobias O <tobias.olenyi@tum.de>
Co-authored-by: Tobias O <tobias.olenyi@envipath.com>
Co-authored-by: Liam <62733830+limmooo@users.noreply.github.com>
Reviewed-on: enviPath/enviPy#143
Reviewed-by: jebus <lorsbach@envipath.com>
Reviewed-by: liambrydon <lbry121@aucklanduni.ac.nz>
Co-authored-by: t03i <mail+envipath@t03i.net>
Co-committed-by: t03i <mail+envipath@t03i.net>
2025-10-08 18:51:50 +13:00
c2c46fbfa7 [Migration] Added missing Migration for #141 (#147)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#147
2025-10-07 21:22:13 +13:00
d2f4fdc58a [Feature] Enviformer fine tuning and evaluation
## Changes
- I have finished the backend integration of EnviFormer (#19), this includes, dataset building, model finetuning, model evaluation and model prediction with the finetuned model.
- `PackageBasedModel` has been adjusted to be more abstract, this includes making the `_save_model` method and making `compute_averages` a static class function.
- I had to bump the python-version in `pyproject.toml` to >=3.12 from >=3.11 otherwise uv failed to install EnviFormer.
- The default EnviFormer loading during `settings.py` has been removed.

## Future Fix
I noticed you have a little bit of code in `PackageBasedModel` -> `evaluate_model` for using the `eval_packages` during evaluation instead of train/test splits on `data_packages`. It doesn't seem finished, I presume we want this for all models, so I will take care of that in a new branch/pullrequest after this request is merged.

Also, I haven't done anything for a POST request to finetune the model, I'm not sure if that is something we want now.

Co-authored-by: Liam Brydon <62733830+MyCreativityOutlet@users.noreply.github.com>
Reviewed-on: enviPath/enviPy#141
Reviewed-by: jebus <lorsbach@envipath.com>
Co-authored-by: liambrydon <lbry121@aucklanduni.ac.nz>
Co-committed-by: liambrydon <lbry121@aucklanduni.ac.nz>
2025-10-07 21:14:10 +13:00
3f2b046bd6 [Feature] More on Legacy API (#142)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#142
2025-10-03 00:07:30 +13:00
7ad4112343 [Feature] External Identifier/References
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#139
2025-10-02 00:40:00 +13:00
3f5bb76633 [Fix] Remove all Scenarios, catch empty SMILES, prevent default Package delete (#134)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#134
2025-09-30 19:10:57 +13:00
b757a07f91 [Misc] Performance improvements, SMIRKS Coverage, Minor Bugfixes (#132)
Bump Python Version to 3.12
Make use of "epauth" optional
Cache `srs` property of rules to speed up apply
Adjust view names for use of `reverse()`
Fix Views for Scenario Attachments
Added Simply Compare View/Template to identify differences between rdkit and ambit
Make migrations consistent with tests + compare
Fixes #76
Set default year for Scenario Modal
Fix html tags for package description
Added Tests for Pathway / Rule
Added remove stereo for apply

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#132
2025-09-26 19:33:03 +12:00
b5c759d74e [Feature] Register / Login / Logout View Testing (#126)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#126
beta_2025-09-18
2025-09-19 06:44:25 +12:00
b3079834c1 [Fix] Registering Issue (#125)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#125
2025-09-19 01:17:03 +12:00
f03ade0e94 [Migration] Multigen Eval Flag Migration (#123)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#123
2025-09-18 18:44:02 +12:00
50db2fb372 [Feature] MultiGen Eval (Backend) (#117)
Fixes #16

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#117
2025-09-18 18:40:45 +12:00
762a6b7baf [Feature] Package Export/Import (#116)
Fixes #90
Fixes #91
Fixes #115
Fixes #104

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#116
2025-09-16 02:41:10 +12:00
ce349a287b [Migration] Migration file for #113 (#114)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#114
2025-09-11 18:23:14 +12:00
7905a8c2c1 [Bug] Fixes for Group handling, Load all objects only if necessary (#113)
Fixes #109
Fixes #110
Fixes #111
Fixes #112

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#113
2025-09-11 18:19:27 +12:00
af3981d96e [Bug] Fix duplicate IDs in SVG defs (#108)
Fixes #107

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#108
2025-09-11 10:20:33 +12:00
62e6448448 [Feature] Legacy Package Import (#106)
Fixes #105

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#106
2025-09-11 01:18:04 +12:00
31783306e2 [Feature] Pathway SVG Export (#102)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#102
2025-09-10 18:44:18 +12:00
e82fe7e87e [Feature] Initial Active Directory / Entra Login (#101)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#101
2025-09-10 08:29:27 +12:00
4463bf1bc8 [Fix] Add RuleBasedRelativeReasoning to localize_urls command (#95)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#95
2025-09-09 21:43:11 +12:00
abfd683640 [Migration] Migration for Rule Based Modelling (#94)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#94
2025-09-09 21:27:10 +12:00
3453a169e1 [Feature] Async Prediction Status Poll (#93)
Fixed #81

Co-authored-by: Tim Lorsbach <tim@lorsba.ch>
Reviewed-on: enviPath/enviPy#93
2025-09-09 20:39:26 +12:00