helmkit 0.3.2__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {helmkit-0.3.2 → helmkit-0.4.0}/.github/workflows/main.yml +2 -0
  2. {helmkit-0.3.2 → helmkit-0.4.0}/.pre-commit-config.yaml +6 -2
  3. {helmkit-0.3.2 → helmkit-0.4.0}/PKG-INFO +1 -1
  4. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/README.md +5 -5
  5. helmkit-0.4.0/benchmarks/profile.prof +246 -0
  6. helmkit-0.4.0/benchmarks/profile2.prof +243 -0
  7. helmkit-0.4.0/benchmarks/profile3.prof +243 -0
  8. helmkit-0.4.0/benchmarks/profile4.prof +243 -0
  9. helmkit-0.4.0/benchmarks/profile5.prof +243 -0
  10. helmkit-0.4.0/benchmarks/profile6.prof +243 -0
  11. {helmkit-0.3.2 → helmkit-0.4.0}/pyproject.toml +2 -1
  12. {helmkit-0.3.2 → helmkit-0.4.0}/src/helmkit/molecule.py +68 -112
  13. {helmkit-0.3.2 → helmkit-0.4.0}/tests/test_random_peptides.py +1 -1
  14. {helmkit-0.3.2 → helmkit-0.4.0}/uv.lock +51 -32
  15. {helmkit-0.3.2 → helmkit-0.4.0}/.github/dependabot.yml +0 -0
  16. {helmkit-0.3.2 → helmkit-0.4.0}/.gitignore +0 -0
  17. {helmkit-0.3.2 → helmkit-0.4.0}/.python-version +0 -0
  18. {helmkit-0.3.2 → helmkit-0.4.0}/LICENSE +0 -0
  19. {helmkit-0.3.2 → helmkit-0.4.0}/README.md +0 -0
  20. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/benchmark-import.py +0 -0
  21. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/data/monomers.sdf +0 -0
  22. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/data/peptides.csv +0 -0
  23. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/helmkit-benchmark.py +0 -0
  24. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/helmkit-parallel-benchmark.py +0 -0
  25. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/helmkit-profile.py +0 -0
  26. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/helmkit-with-reload-benchmark.py +0 -0
  27. {helmkit-0.3.2 → helmkit-0.4.0}/benchmarks/pypept-benchmark.py +0 -0
  28. {helmkit-0.3.2 → helmkit-0.4.0}/src/helmkit/__init__.py +0 -0
  29. {helmkit-0.3.2 → helmkit-0.4.0}/src/helmkit/data/monomers.sdf +0 -0
  30. {helmkit-0.3.2 → helmkit-0.4.0}/src/helmkit/py.typed +0 -0
  31. {helmkit-0.3.2 → helmkit-0.4.0}/tests/data/generate_sdf.py +0 -0
  32. {helmkit-0.3.2 → helmkit-0.4.0}/tests/data/monomers.csv +0 -0
  33. {helmkit-0.3.2 → helmkit-0.4.0}/tests/data/monomers.sdf +0 -0
  34. {helmkit-0.3.2 → helmkit-0.4.0}/tests/data/peptides.csv +0 -0
  35. {helmkit-0.3.2 → helmkit-0.4.0}/tests/test_cycpeptmpdb.py +0 -0
  36. {helmkit-0.3.2 → helmkit-0.4.0}/tests/test_parallel_load.py +0 -0
@@ -4,9 +4,11 @@ on:
4
4
  push:
5
5
  paths:
6
6
  - '**/*.py'
7
+ - 'uv.lock'
7
8
  pull_request:
8
9
  paths:
9
10
  - '**/*.py'
11
+ - 'uv.lock'
10
12
  workflow_dispatch:
11
13
 
12
14
  jobs:
@@ -1,4 +1,8 @@
1
1
  repos:
2
+ - repo: https://github.com/asottile/dead
3
+ rev: v2.1.0
4
+ hooks:
5
+ - id: dead
2
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
3
7
  rev: v5.0.0
4
8
  hooks:
@@ -16,12 +20,12 @@ repos:
16
20
  hooks:
17
21
  - id: reorder-python-imports
18
22
  - repo: https://github.com/astral-sh/ruff-pre-commit
19
- rev: v0.12.5
23
+ rev: v0.12.8
20
24
  hooks:
21
25
  - id: ruff-check
22
26
  args: [ --fix ]
23
27
  - id: ruff-format
24
28
  - repo: https://github.com/astral-sh/uv-pre-commit
25
- rev: 0.8.3
29
+ rev: 0.8.6
26
30
  hooks:
27
31
  - id: uv-lock
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: helmkit
3
- Version: 0.3.2
3
+ Version: 0.4.0
4
4
  Summary: Parse HELM strings into RDKit molecules
5
5
  License-File: LICENSE
6
6
  Requires-Python: >=3.11
@@ -37,13 +37,13 @@ and average parsing time:
37
37
  |-------------------------------------|---------------:|-------------------------:|--------------------:|
38
38
  | `pyPept` | 676.65 | 0.14400 | 6.94 |
39
39
  | `helmkit` (DB reload every peptide) | 252.67 | 0.05383 | 18.58 |
40
- | `helmkit` | 2.83 | 0.00060 | 1658.68 |
41
- | `helmkit` (parallel loading) | 1.42 | 0.00030 | 3305.63 |
40
+ | `helmkit` | 2.07 | 0.00044 | 2267.63 |
41
+ | `helmkit` (parallel loading) | 0.95 | 0.00020 | 4926.11 |
42
42
 
43
- `helmkit` outperforms `pyPept` by approximately 239× when loading the monomer library
43
+ `helmkit` outperforms `pyPept` by approximately 327x when loading the monomer library
44
44
  once per session. When forced to reload the library for every peptide, `helmkit` is
45
45
  still about 3× faster. If we use parallelized loading in `helmkit`, we achieve an
46
- additional 2.5× speedup, resulting in a total speedup of approximately 477× over
46
+ additional 2× speedup, resulting in a total speedup of approximately 712× over
47
47
  `pyPept`.
48
48
 
49
49
  ## Environment
@@ -55,4 +55,4 @@ versions:
55
55
  - `polars 1.31.0` (CSV parsing and dataframe processing)
56
56
  - `rdkit 2025.3.3` (target output format and structure processing)
57
57
  - `pypept 1.0.0` (commit `ade9f5840691ad1f8fa22d13939a665c25175d5a`)
58
- - `helmkit 0.3.0` (local development version)
58
+ - `helmkit 0.3.4` (local development version)
@@ -0,0 +1,246 @@
1
+ 701302 function calls (701205 primitive calls) in 2.444 seconds
2
+
3
+ Ordered by: cumulative time
4
+
5
+ ncalls tottime percall cumtime percall filename:lineno(function)
6
+ 1 0.000 0.000 2.444 2.444 {built-in method builtins.exec}
7
+ 1 0.005 0.005 2.443 2.443 <string>:1(<module>)
8
+ 1 0.070 0.070 2.439 2.439 /home/ramon/Repositories/helmkit/benchmarks/helmkit-profile.py:10(main)
9
+ 4694 0.010 0.000 2.255 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:110(__init__)
10
+ 4694 0.010 0.000 1.804 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:387(_build_molecule)
11
+ 4694 1.264 0.000 1.264 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:454(_sanitize)
12
+ 4694 0.015 0.000 0.440 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:130(_parse_helm_string)
13
+ 4694 0.428 0.000 0.428 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:405(_combine_monomers)
14
+ 4694 0.064 0.000 0.294 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:234(_process_polymers)
15
+ 31585 0.038 0.000 0.107 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:210(_process_monomer)
16
+ 31585 0.017 0.000 0.069 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/__init__.py:179(sub)
17
+ 1 0.045 0.045 0.054 0.054 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:70(load_monomer_library)
18
+ 4694 0.009 0.000 0.053 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:321(_process_connections)
19
+ 4694 0.045 0.000 0.045 0.000 {method 'search' of 're.Pattern' objects}
20
+ 4694 0.020 0.000 0.043 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:291(_parse_connection)
21
+ 4694 0.015 0.000 0.039 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:371(_fix_rgroups)
22
+ 4694 0.025 0.000 0.038 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:426(_process_rgroups)
23
+ 4694 0.031 0.000 0.036 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:395(_generate_atom_offsets)
24
+ 40973 0.022 0.000 0.034 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/__init__.py:280(_compile)
25
+ 3/1 0.000 0.000 0.033 0.033 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/deprecation.py:123(wrapper)
26
+ 1 0.000 0.000 0.033 0.033 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/csv/functions.py:46(read_csv)
27
+ 1 0.000 0.000 0.033 0.033 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/csv/functions.py:586(_read_csv_impl)
28
+ 1 0.033 0.033 0.033 0.033 {built-in method read_csv}
29
+ 31585 0.030 0.000 0.030 0.000 {method 'sub' of 're.Pattern' objects}
30
+ 4694 0.029 0.000 0.029 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:416(_add_bonds)
31
+ 168951 0.028 0.000 0.028 0.000 {method 'append' of 'list' objects}
32
+ 4694 0.023 0.000 0.028 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:171(_split_sequence_with_brackets)
33
+ 1 0.000 0.000 0.025 0.025 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:5029(filter)
34
+ 63170 0.025 0.000 0.025 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:379(_mark_used_rgroup)
35
+ 1 0.000 0.000 0.024 0.024 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/deprecation.py:84(wrapper)
36
+ 1 0.000 0.000 0.024 0.024 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:314(wrapper)
37
+ 1 0.000 0.000 0.024 0.024 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:2104(collect)
38
+ 1 0.024 0.024 0.024 0.024 {method 'collect' of 'builtins.PyLazyFrame' objects}
39
+ 4694 0.016 0.000 0.021 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:346(_create_backbone_bonds)
40
+ 4694 0.010 0.000 0.017 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:149(_split_helm_sections)
41
+ 4694 0.008 0.000 0.015 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:195(_extract_chain_id)
42
+ 45801 0.014 0.000 0.014 0.000 {built-in method builtins.isinstance}
43
+ 4694 0.003 0.000 0.013 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/__init__.py:199(split)
44
+ 4694 0.002 0.000 0.010 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/__init__.py:226(compile)
45
+ 31599 0.009 0.000 0.009 0.000 {built-in method builtins.min}
46
+ 64539/64532 0.009 0.000 0.009 0.000 {built-in method builtins.len}
47
+ 23470 0.008 0.000 0.008 0.000 {method 'replace' of 'str' objects}
48
+ 10161 0.008 0.000 0.008 0.000 {method 'split' of 'str' objects}
49
+ 4694 0.006 0.000 0.006 0.000 {method 'split' of 're.Pattern' objects}
50
+ 31585 0.006 0.000 0.006 0.000 {method 'add' of 'set' objects}
51
+ 9395 0.004 0.000 0.004 0.000 {method 'startswith' of 'str' objects}
52
+ 2310 0.004 0.000 0.004 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:24(get_molecule_property)
53
+ 385 0.003 0.000 0.003 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:46(infer_attachment_points)
54
+ 770 0.001 0.000 0.003 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:30(parse_comma_separated_property)
55
+ 4694 0.002 0.000 0.002 0.000 {method 'group' of 're.Match' objects}
56
+ 4694 0.002 0.000 0.002 0.000 {method 'strip' of 'str' objects}
57
+ 1 0.000 0.000 0.001 0.001 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:3818(filter)
58
+ 1 0.000 0.000 0.001 0.001 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:3733(_filter)
59
+ 4705 0.001 0.000 0.001 0.000 {method 'extend' of 'list' objects}
60
+ 1 0.001 0.001 0.001 0.001 {method 'filter' of 'builtins.PyLazyFrame' objects}
61
+ 4694 0.001 0.000 0.001 0.000 {method 'start' of 're.Match' objects}
62
+ 1 0.000 0.000 0.001 0.001 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/series/series.py:4363(to_list)
63
+ 1 0.001 0.001 0.001 0.001 {method 'to_list' of 'builtins.PySeries' objects}
64
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:745(compile)
65
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:969(parse)
66
+ 5/3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:452(_parse_sub)
67
+ 5/3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:512(_parse)
68
+ 8 0.000 0.000 0.000 0.000 <frozen abc>:117(__instancecheck__)
69
+ 8 0.000 0.000 0.000 0.000 {built-in method _abc._abc_instancecheck}
70
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:578(_code)
71
+ 41/4 0.000 0.000 0.000 0.000 <frozen abc>:121(__subclasscheck__)
72
+ 41/4 0.000 0.000 0.000 0.000 {built-in method _abc._abc_subclasscheck}
73
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/various.py:79(_is_generator)
74
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/expr/string.py:962(contains)
75
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:551(drive)
76
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:407(_load_parts)
77
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:1258(__getitem__)
78
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/getitem.py:128(get_df_item_by_key)
79
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:516(_compile_info)
80
+ 4 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:437(__str__)
81
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:731(parent)
82
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:524(__hash__)
83
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/parse/expr.py:21(parse_into_expression)
84
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:8685(get_column)
85
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:114(prepare_file_arg)
86
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:484(_str_normcase)
87
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/functions/lit.py:30(lit)
88
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:719(__truediv__)
89
+ 5 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:1157(__init__)
90
+ 4 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:380(with_segments)
91
+ 7/3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:37(_compile)
92
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:387(_parse_path)
93
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:711(joinpath)
94
+ 6 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/enum.py:1561(__and__)
95
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:9732(lazy)
96
+ 1 0.000 0.000 0.000 0.000 {method 'get_column' of 'builtins.PyDataFrame' objects}
97
+ 4 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dependencies.py:210(_check_for_numpy)
98
+ 5 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:358(__init__)
99
+ 1 0.000 0.000 0.000 0.000 {method 'lazy' of 'builtins.PyDataFrame' objects}
100
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dependencies.py:199(_might_be)
101
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/__init__.py:331(_compile_template)
102
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/various.py:223(normalize_filepath)
103
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/functions/col.py:182(__call__)
104
+ 37 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/src/helmkit/molecule.py:439(_replace_rgroup)
105
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/wrap.py:12(wrap_df)
106
+ 1 0.000 0.000 0.000 0.000 {method 'str_contains' of 'builtins.PyExpr' objects}
107
+ 9/5 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:178(getwidth)
108
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/functions/col.py:37(_create_col)
109
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:996(parse_template)
110
+ 3 0.000 0.000 0.000 0.000 {built-in method builtins.any}
111
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:135(_eager)
112
+ 2 0.000 0.000 0.000 0.000 <frozen posixpath>:71(join)
113
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/contextlib.py:272(contextmanager)
114
+ 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
115
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:243(_optimize_charset)
116
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:420(_from_parsed_parts)
117
+ 18 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/enum.py:1543(_get_value)
118
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:98(closegroup)
119
+ 27 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:168(__getitem__)
120
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/wrap.py:20(wrap_s)
121
+ 3 0.000 0.000 0.000 0.000 <frozen os>:808(getenv)
122
+ 1 0.000 0.000 0.000 0.000 {method 'with_optimizations' of 'builtins.PyLazyFrame' objects}
123
+ 5/3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:441(_get_literal_prefix)
124
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/contextlib.py:141(__exit__)
125
+ 6 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dependencies.py:205(<genexpr>)
126
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/various.py:114(is_bool_sequence)
127
+ 16 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:261(get)
128
+ 3 0.000 0.000 0.000 0.000 <frozen _collections_abc>:804(get)
129
+ 5 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/wrap.py:24(wrap_expr)
130
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/functools.py:35(update_wrapper)
131
+ 6 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/enum.py:720(__call__)
132
+ 5 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:1164(__new__)
133
+ 20 0.000 0.000 0.000 0.000 {built-in method sys.intern}
134
+ 16 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x7f015666e560}
135
+ 24 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:240(__next)
136
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/parse/expr.py:79(parse_into_list_of_expressions)
137
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/expr/expr.py:904(not_)
138
+ 3 0.000 0.000 0.000 0.000 <frozen os>:709(__getitem__)
139
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dataframe/frame.py:522(_from_pydf)
140
+ 1 0.000 0.000 0.000 0.000 {lit}
141
+ 2 0.000 0.000 0.000 0.000 {built-in method posix.stat}
142
+ 1 0.000 0.000 0.000 0.000 <frozen genericpath>:16(exists)
143
+ 1 0.000 0.000 0.000 0.000 {col}
144
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/parse/expr.py:152(_parse_positional_inputs)
145
+ 4 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:231(__init__)
146
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/contextlib.py:299(helper)
147
+ 3 0.000 0.000 0.000 0.000 <frozen posixpath>:138(splitroot)
148
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:429(_format_parsed_parts)
149
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:86(opengroup)
150
+ 3 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/csv/_utils.py:11(_check_arg_is_1byte)
151
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:144(__copy__)
152
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:372(_escape)
153
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:33(__init__)
154
+ 5 0.000 0.000 0.000 0.000 <frozen _collections_abc>:104(_check_methods)
155
+ 1 0.000 0.000 0.000 0.000 {method 'not_' of 'builtins.PyExpr' objects}
156
+ 2 0.000 0.000 0.000 0.000 {built-in method builtins.next}
157
+ 2 0.000 0.000 0.000 0.000 <frozen posixpath>:256(expanduser)
158
+ 1 0.000 0.000 0.000 0.000 <frozen _collections_abc>:388(__subclasshook__)
159
+ 11 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:293(tell)
160
+ 5 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/expr/expr.py:139(_from_pyexpr)
161
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:307(is_glob_pattern)
162
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:1012(addgroup)
163
+ 9 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:176(append)
164
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/parse/expr.py:161(_parse_inputs_as_iterable)
165
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/wrap.py:16(wrap_ldf)
166
+ 13 0.000 0.000 0.000 0.000 {built-in method posix.fspath}
167
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:1004(addliteral)
168
+ 17 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:256(match)
169
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:216(_compile_charset)
170
+ 3 0.000 0.000 0.000 0.000 {built-in method _sre.compile}
171
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/contextlib.py:104(__init__)
172
+ 1 0.000 0.000 0.000 0.000 <frozen genericpath>:39(isdir)
173
+ 11 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:164(__len__)
174
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:449(_uniq)
175
+ 9 0.000 0.000 0.000 0.000 {built-in method builtins.getattr}
176
+ 3 0.000 0.000 0.000 0.000 <frozen os>:791(encode)
177
+ 10 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:83(groups)
178
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/series/series.py:377(_from_pyseries)
179
+ 10 0.000 0.000 0.000 0.000 {method 'find' of 'bytearray' objects}
180
+ 6 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/enum.py:1128(__new__)
181
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:403(_simple)
182
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:57(_is_case_sensitive)
183
+ 13 0.000 0.000 0.000 0.000 <frozen _collections_abc>:341(__subclasshook__)
184
+ 5 0.000 0.000 0.000 0.000 {method 'join' of 'str' objects}
185
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:421(_from_pyldf)
186
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/expr/expr.py:11088(str)
187
+ 19 0.000 0.000 0.000 0.000 <frozen _collections_abc>:435(__subclasshook__)
188
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/contextlib.py:132(__enter__)
189
+ 6 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:575(isstring)
190
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:150(no_optimizations)
191
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/various.py:136(is_sequence)
192
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:412(_generate_overlap_table)
193
+ 8 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}
194
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:174(_select_engine)
195
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:3780(<genexpr>)
196
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:953(fix_flags)
197
+ 6 0.000 0.000 0.000 0.000 {method 'encode' of 'str' objects}
198
+ 5 0.000 0.000 0.000 0.000 {method 'endswith' of 'str' objects}
199
+ 1 0.000 0.000 0.000 0.000 <frozen _collections_abc>:288(__subclasshook__)
200
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:195(_gpu_engine_callback)
201
+ 7 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:113(__init__)
202
+ 4 0.000 0.000 0.000 0.000 {method 'items' of 'dict' objects}
203
+ 3 0.000 0.000 0.000 0.000 {method 'pop' of 'dict' objects}
204
+ 2 0.000 0.000 0.000 0.000 {method 'mro' of 'type' objects}
205
+ 2 0.000 0.000 0.000 0.000 {get_engine_affinity}
206
+ 4 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:31(_combine_flags)
207
+ 1 0.000 0.000 0.000 0.000 <frozen _collections_abc>:309(__subclasshook__)
208
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/functools.py:65(wraps)
209
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/parse/expr.py:186(_is_iterable)
210
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:447(__fspath__)
211
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:61(_from_pyoptflags)
212
+ 6 0.000 0.000 0.000 0.000 {built-in method builtins.ord}
213
+ 2 0.000 0.000 0.000 0.000 <frozen posixpath>:41(_get_sep)
214
+ 6 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:433(_get_iscased)
215
+ 1 0.000 0.000 0.000 0.000 {built-in method fromkeys}
216
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_compiler.py:472(_get_charset_prefix)
217
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:77(__init__)
218
+ 6 0.000 0.000 0.000 0.000 {built-in method builtins.setattr}
219
+ 4 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:308(<genexpr>)
220
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/various.py:70(_process_null_values)
221
+ 1 0.000 0.000 0.000 0.000 {method 'no_optimizations' of 'builtins.PyOptFlags' objects}
222
+ 1 0.000 0.000 0.000 0.000 {built-in method default}
223
+ 2 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:172(__setitem__)
224
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:186(simplify_expression)
225
+ 3 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/_utils/deprecation.py:136(_rename_keyword_argument)
226
+ 1 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/re/_parser.py:295(seek)
227
+ 1 0.000 0.000 0.000 0.000 {method 'copy' of 'builtins.PyOptFlags' objects}
228
+ 1 0.000 0.000 0.000 0.000 <frozen posixpath>:52(normcase)
229
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/expr/string.py:46(__init__)
230
+ 4 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/typing.py:2187(cast)
231
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:560(root)
232
+ 1 0.000 0.000 0.000 0.000 {method 'update' of 'dict' objects}
233
+ 3 0.000 0.000 0.000 0.000 /home/ramon/.local/share/uv/python/cpython-3.12.10-linux-x86_64-gnu/lib/python3.12/pathlib.py:569(_tail)
234
+ 1 0.000 0.000 0.000 0.000 {built-in method _sre.template}
235
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:151(managed_file)
236
+ 1 0.000 0.000 0.000 0.000 {built-in method builtins.hash}
237
+ 2 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:23(parse_columns_arg)
238
+ 1 0.000 0.000 0.000 0.000 {built-in method _stat.S_ISDIR}
239
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/dependencies.py:234(_check_for_torch)
240
+ 1 0.000 0.000 0.000 0.000 {method 'keys' of 'dict' objects}
241
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/frame.py:3785(<genexpr>)
242
+ 1 0.000 0.000 0.000 0.000 <frozen _collections_abc>:407(__subclasshook__)
243
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/lazyframe/opt_flags.py:97(update)
244
+ 1 0.000 0.000 0.000 0.000 /home/ramon/Repositories/helmkit/.venv/lib/python3.12/site-packages/polars/io/_utils.py:66(parse_row_index_args)
245
+
246
+