Commit Graph
49220 Commits
Author SHA1 Message Date
Helena Rasche 646b133bb3 Add EDAM topics to unannotated tools 2020-10-30 17:59:45 +01:00
Helena RascheandMarius van den Beek f86cd33e6d Update lib/galaxy/webapps/galaxy/config_schema.yml
Co-authored-by: Marius van den Beek <m.vandenbeek@gmail.com>
2020-10-30 12:37:33 +01:00
Helena Rasche ab64d8f554 linting 2020-10-30 12:37:32 +01:00
Helena Rasche 1733f462dd Parse EDAM ontology to decode names 2020-10-30 12:37:23 +01:00
Helena Rasche 5728189085 Implement simple edam toolbox using non-readable ids 2020-10-30 10:25:14 +01:00
Enis Afgan 1afb79d2b5 Merge pull request #10540 from guerler/enable_custom_logo
Allow admins to add an additional custom logo to the masthead
2020-10-29 09:40:35 -04:00
Marius van den Beek 4403991983 Merge pull request #10580 from dannon/worfklows
Worfklow typo fix in styling
2020-10-29 11:11:35 +01:00
Dannon Baker 5cc252c1a4 Worfklow typo fix in styling 2020-10-28 22:17:00 -04:00
Dannon c80d3fee47 Merge pull request #10557 from OlegZharkov/lib-race-hotfix
Data library fix races, show spinner on first load
2020-10-28 15:54:39 -04:00
Dannon c6bc26a4f4 Merge pull request #10577 from ic4f/dev_uwsgi_debug_mode
Set uwsgi's honour-stdin option when in debug mode
2020-10-28 15:39:30 -04:00
Sergey Golitsynskiy 31b908226a Set uwsgi's honor-stdin when in debug mode 2020-10-28 14:08:25 -04:00
Oleg Zharkov 950cbfe739 typo 2020-10-27 21:19:39 +02:00
Oleg Zharkov 6add2c9546 prettier 2020-10-27 21:12:30 +02:00
Oleg Zharkov 29b7bc3e4c show spinner during search 2020-10-27 21:12:30 +02:00
Oleg Zharkov 1502d3a9e8 remove seach text check during loading 2020-10-27 21:12:30 +02:00
Oleg Zharkov c8ece1298a show spinner only on first load 2020-10-27 21:12:30 +02:00
Oleg Zharkov 2c96acbac3 fix races, hide empty text and add busy spinner 2020-10-27 21:12:30 +02:00
John Chilton ddcaddd40e Merge pull request #10537 from ic4f/dev_config_doc_path
Generate path resolution note for sample file, docs
2020-10-27 14:55:28 -04:00
John Chilton 7befbd8279 Merge pull request #10558 from OlegZharkov/fix-search-field
Data library: start search on enter
2020-10-27 14:33:53 -04:00
Nicola Soranzo 701f55b616 Merge branch 'release_20.09' into dev 2020-10-27 17:34:47 +00:00
Nicola Soranzo 734e0cecf0 Merge branch 'release_20.05' into release_20.09 2020-10-27 17:22:21 +00:00
Nicola Soranzo 24db43ae73 Merge branch 'release_20.01' into release_20.05 2020-10-27 16:46:40 +00:00
Marius van den Beek ddf766e102 Merge pull request #10556 from OlegZharkov/20.09_lib_bugfix
[20.09] allow adding dataset to library from history by default
2020-10-27 17:39:06 +01:00
Marius van den Beek c6a7bdad64 Merge pull request #10559 from nsoranzo/release_20.09_lower_package_name
[20.09] Make package names lowercase for mulled dependency resolving
2020-10-27 17:22:17 +01:00
Nicola Soranzo 2030ddbe5d Make package names lowercase for mulled dependency resolving
Fix `planemo test --biocontainers --no_dependency_resolution --no_conda_auto_init ~/tools-devteam/tools/sicer/`
where the requirement

```xml
<requirement type="package" version="1.1">SICER</requirement>
```

was not being resolved by `CachedMulledDockerContainerResolver` since
commit f0a55a399c , while on 20.05 is
correctly resolved to `quay.io/biocontainers/sicer:1.1--4` .
2020-10-27 14:38:58 +00:00
Nicola Soranzo fef1a14b8e Update import 2020-10-27 14:36:01 +00:00
Oleg Zharkov a77a337113 search on enter 2020-10-27 16:29:45 +02:00
Oleg Zharkov ed7e0fcd0c allow adding dataset from history 2020-10-27 12:42:12 +02:00
Marius van den Beek 06ef6b3e8d Merge pull request #10552 from mvdbeek/compare_by_id
[20.01] Fix get_output_path when HDA identity changes
2020-10-27 08:35:02 +01:00
Marius van den Beek ea8529d9c8 Merge pull request #10526 from jmchilton/s3fs
More comments for rapid testing optional galaxy.files stuff.
2020-10-26 21:53:28 +01:00
John Chilton 3562d1d95d Merge pull request #10495 from davelopez/document-xsd-macros
Add missing documentation for macro elements in XSD
2020-10-26 14:56:41 -04:00
Nicola Soranzo 58e3705cb4 Merge branch 'release_20.05' into release_20.09 2020-10-26 18:13:03 +00:00
mvdbeek 6500e32f37 Fix get_output_path when HDA identity changes
@RJMW reported this on gitter:
```
galaxy.jobs.runners ERROR 2020-10-13 09:34:24,937 [p:23472,w:1,m:0] [SlurmRunner.monitor_thread] (442471) Failure preparing job
Traceback (most recent call last):
  File "lib/galaxy/jobs/runners/__init__.py", line 236, in prepare_job
    job_wrapper.prepare()
  File "lib/galaxy/jobs/__init__.py", line 1077, in prepare
    tool_evaluator.set_compute_environment(compute_environment, get_special=get_special)
  File "lib/galaxy/tools/evaluation.py", line 110, in set_compute_environment
    output_collections=out_collections,
  File "lib/galaxy/tools/evaluation.py", line 149, in build_param_dict
    self.__populate_output_dataset_wrappers(param_dict, output_datasets, job_working_directory)
  File "lib/galaxy/tools/evaluation.py", line 341, in __populate_output_dataset_wrappers
    param_dict[name] = DatasetFilenameWrapper(hda, compute_environment=self.compute_environment, io_type="output")
  File "lib/galaxy/tools/wrappers.py", line 289, in __init__
    path_rewrite = compute_environment and compute_environment.output_path_rewrite(dataset)
  File "lib/galaxy/jobs/__init__.py", line 2546, in output_path_rewrite
    dataset_path = self.job_wrapper.get_output_path(dataset)
  File "lib/galaxy/jobs/__init__.py", line 1912, in get_output_path
    raise KeyError("Couldn't find job output for [%s] in [%s]" % (dataset, self.output_hdas_and_paths.values()))
KeyError: "Couldn't find job output for [<galaxy.model.HistoryDatasetAssociation(714739) at 0x7f59c5d269b0>] in [dict_values([(<galaxy.model.HistoryDatasetAssociation(714739) at 0x7f5976dd5be0>, <galaxy.job_execution.datasets.DatasetPath object at 0x7f59783efc18>)])]"
```
The HDA with the id 714739 is present in the outputs, but the identity
is not the same. I don't know why that happened (maybe a flush?) but in
this case it should be safe to compare HDAs by database id.
2020-10-26 18:11:26 +01:00
Marius van den Beek db1d151f36 Merge pull request #10494 from guerler/highlight_drag_drop
Fix drag and drop highlighting in tool form for data inputs
2020-10-26 18:07:38 +01:00
Marius van den Beek 2a21f371a8 Merge pull request #10493 from OlegZharkov/min_admin_jobs
Display minutes in admin jobs cutoff
2020-10-26 18:04:10 +01:00
Marius van den Beek c25f583e1b Merge pull request #10539 from mvdbeek/apply_rules_performance
Improve database operation job submission performance
2020-10-26 15:14:46 +01:00
John Chilton 5cd0ee512b Merge pull request #10551 from mvdbeek/fix_extension_watching
[20.09] Fix composite dataset listing in upload modal
2020-10-26 08:48:37 -04:00
mvdbeek 23796903d3 Fix composite dataset listing in upload modal
Likely broken in 90c03fcc26.
2020-10-26 12:59:45 +01:00
mvdbeek a8191d4b8a Move one more flush out of dicovering outputs 2020-10-26 12:01:59 +01:00
mvdbeek 0334b2f39b Fix derived permission setting logic 2020-10-26 12:01:59 +01:00
mvdbeek 12d80f7159 Generalize tracking objects to add to history
This will use the optimized route of minimizing flushes during execution
handling for all database operation tools. This also seems signifcantly
simpler than passing around the datasets_to_persist list.
2020-10-26 12:01:59 +01:00
mvdbeek b3ace06a60 Drop history session workaround from threading work
This was added in 41d3dc62f7 because
history may have been created in another thread. But we don't
do that anymore, so we can drop this.
2020-10-26 09:37:37 +01:00
mvdbeek 38682c8f60 Flush once for apply_rules tool
Before commit:
```
*** PROFILER RESULTS ***
_produce_outputs (/Users/mvandenb/src/galaxy/lib/galaxy/tools/actions/model_operations.py:74)
function called 1 times

         897129 function calls (883135 primitive calls) in 0.817 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 1500 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.820    0.820 model_operations.py:74(_produce_outputs)
        1    0.000    0.000    0.820    0.820 __init__.py:3158(produce_outputs)
        4    0.001    0.000    0.488    0.122 session.py:2489(flush)
        3    0.001    0.000    0.485    0.162 session.py:2542(_flush)
        1    0.000    0.000    0.472    0.472 __init__.py:829(create_collection)
        1    0.000    0.000    0.464    0.464 collections.py:97(create)
        3    0.000    0.000    0.437    0.146 unitofwork.py:402(execute)
        1    0.000    0.000    0.428    0.428 collections.py:138(_create_instance_for_collection)
     1010    0.001    0.000    0.417    0.000 base.py:952(execute)
     1010    0.001    0.000    0.415    0.000 elements.py:296(_execute_on_connection)
     1010    0.005    0.000    0.414    0.000 base.py:1088(_execute_clauseelement)
9085/8883    0.005    0.000    0.356    0.000 attributes.py:699(get)
        5    0.000    0.000    0.318    0.064 scoping.py:162(do)
        1    0.000    0.000    0.313    0.313 collections.py:347(__persist)
        1    0.000    0.000    0.309    0.309 __init__.py:2781(_add_datasets_to_history)
        1    0.000    0.000    0.309    0.309 __init__.py:1814(add_datasets)
     1010    0.007    0.000    0.297    0.000 base.py:1195(_execute_context)
       26    0.000    0.000    0.286    0.011 unitofwork.py:520(execute_aggregate)
      303    0.001    0.000    0.280    0.001 state.py:640(_load_expired)
      203    0.001    0.000    0.278    0.001 loading.py:938(load_scalar_attributes)
      203    0.000    0.000    0.272    0.001 loading.py:190(load_on_ident)
      203    0.001    0.000    0.271    0.001 loading.py:211(load_on_pk_identity)
      203    0.000    0.000    0.269    0.001 query.py:3417(one)
      203    0.003    0.000    0.269    0.001 query.py:3381(one_or_none)
       15    0.000    0.000    0.240    0.016 persistence.py:184(save_obj)
      203    0.000    0.000    0.222    0.001 query.py:3476(__iter__)
6909/6908    0.003    0.000    0.221    0.000 attributes.py:279(__get__)
     1608    0.002    0.000    0.219    0.000 strategies.py:665(_load_for_state)
      304    0.001    0.000    0.215    0.001 query.py:3501(_execute_and_instances)
       15    0.006    0.000    0.213    0.014 persistence.py:1039(_emit_insert_statements)
        1    0.000    0.000    0.212    0.212 __init__.py:1822(<listcomp>)
      100    0.000    0.000    0.212    0.002 __init__.py:2750(get_total_size)
     1009    0.001    0.000    0.194    0.000 default.py:589(do_execute)
     1009    0.188    0.000    0.193    0.000 {method 'execute' of 'psycopg2.extensions.cursor' objects}
       13    0.000    0.000    0.190    0.015 unitofwork.py:585(execute)
        2    0.000    0.000    0.183    0.092 mapping.py:2835(db_next_hid)
      5/3    0.000    0.000    0.175    0.058 session.py:899(begin)
      5/3    0.000    0.000    0.175    0.058 session.py:221(__init__)
      5/3    0.000    0.000    0.175    0.058 session.py:338(_take_snapshot)
       14    0.002    0.000    0.154    0.011 dependency.py:792(process_saves)
```
after commit:
```
*** PROFILER RESULTS ***
_produce_outputs (/Users/mvandenb/src/galaxy/lib/galaxy/tools/actions/model_operations.py:73)
function called 1 times

         158126 function calls (156268 primitive calls) in 0.093 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 615 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.094    0.094 model_operations.py:73(_produce_outputs)
        1    0.000    0.000    0.094    0.094 __init__.py:3158(produce_outputs)
        1    0.000    0.000    0.053    0.053 __init__.py:829(create_collection)
        1    0.000    0.000    0.046    0.046 collections.py:97(create)
     5816    0.004    0.000    0.040    0.000 attributes.py:271(__set__)
        1    0.000    0.000    0.040    0.040 collections.py:487(apply_rules)
        1    0.001    0.001    0.038    0.038 collections.py:500(_build_elements_from_rule_data)
      100    0.000    0.000    0.036    0.000 __init__.py:3163(copy_dataset)
      100    0.001    0.000    0.036    0.000 __init__.py:3149(copy)
    201/1    0.001    0.000    0.035    0.035 collections.py:178(create_dataset_collection)
      201    0.000    0.000    0.032    0.000 builder.py:7(build_collection)
    101/1    0.001    0.000    0.028    0.028 collections.py:377(__recursively_create_collections_for_elements)
      201    0.001    0.000    0.028    0.000 builder.py:18(set_collection_elements)
      602    0.001    0.000    0.027    0.000 state.py:423(_initialize_instance)
      101    0.000    0.000    0.018    0.000 session.py:1988(add)
      101    0.000    0.000    0.018    0.000 session.py:2019(_save_or_update_state)
     1403    0.002    0.000    0.015    0.000 attributes.py:976(set)
      602    0.006    0.000    0.015    0.000 mapper.py:3035(cascade_iterator)
      100    0.000    0.000    0.014    0.000 __init__.py:3099(__init__)
     4211    0.005    0.000    0.013    0.000 attributes.py:849(set)
     1403    0.002    0.000    0.012    0.000 attributes.py:1031(fire_replace_event)
      100    0.001    0.000    0.012    0.000 __init__.py:2600(__init__)
        1    0.000    0.000    0.011    0.011 collections.py:138(_create_instance_for_collection)
      200    0.000    0.000    0.011    0.000 __init__.py:2706(set_metadata)
        2    0.000    0.000    0.011    0.005 scoping.py:162(do)
        1    0.000    0.000    0.011    0.011 collections.py:347(__persist)
      501    0.000    0.000    0.010    0.000 list.py:13(generate_elements)
      300    0.000    0.000    0.010    0.000 <string>:1(__init__)
      202    0.001    0.000    0.008    0.000 attributes.py:1268(set)
      300    0.001    0.000    0.008    0.000 __init__.py:4528(__init__)
        1    0.000    0.000    0.007    0.007 __init__.py:775(get_output_name)
        1    0.000    0.000    0.007    0.007 template.py:40(fill_template)
        1    0.000    0.000    0.007    0.007 Template.py:353(compile)
      701    0.001    0.000    0.006    0.000 attributes.py:1418(emit_backref_from_scalar_set_event)
     3617    0.003    0.000    0.006    0.000 relationships.py:1925(cascade_iterator)
      202    0.001    0.000    0.006    0.000 collections.py:767(bulk_replace)
      300    0.000    0.000    0.006    0.000 attributes.py:1237(append)
      200    0.000    0.000    0.005    0.000 metadata.py:140(make_dict_copy)
      400    0.000    0.000    0.004    0.000 attributes.py:871(fire_replace_event)
     6216    0.004    0.000    0.004    0.000 state.py:716(_modified_event)
```
2020-10-26 09:37:37 +01:00
mvdbeek d4fd4d597d Speed up DefaultToolAction._collect_input_datasets
We can again use collection.dataset_states_and_extensions_summary to
avoid having to load all dataset inputs.
With this commit:
*** PROFILER RESULTS ***
check_inputs_ready (/Users/mvandenb/src/galaxy/lib/galaxy/tools/actions/model_operations.py:17)
function called 1 times

         17507 function calls (17346 primitive calls) in 0.019 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 374 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.019    0.019 model_operations.py:17(check_inputs_ready)
        1    0.000    0.000    0.015    0.015 __init__.py:251(_collect_inputs)
        2    0.000    0.000    0.015    0.008 __init__.py:1513(visit_inputs)
        2    0.000    0.000    0.015    0.008 __init__.py:21(visit_input_values)
        1    0.000    0.000    0.015    0.015 __init__.py:65(_collect_input_datasets)
        4    0.000    0.000    0.015    0.004 __init__.py:117(callback_helper)
        2    0.000    0.000    0.015    0.008 __init__.py:81(visitor)
      107    0.000    0.000    0.010    0.000 langhelpers.py:880(__get__)
       17    0.000    0.000    0.010    0.001 selectable.py:634(columns)
       17    0.000    0.000    0.009    0.001 selectable.py:1395(_populate_column_collection)
      170    0.001    0.000    0.009    0.000 schema.py:1658(_make_proxy)
        1    0.000    0.000    0.009    0.009 __init__.py:4056(dataset_action_tuples)
        3    0.000    0.000    0.007    0.002 session.py:1155(execute)
        3    0.000    0.000    0.007    0.002 base.py:952(execute)
        3    0.000    0.000    0.007    0.002 elements.py:296(_execute_on_connection)
        3    0.000    0.000    0.007    0.002 base.py:1088(_execute_clauseelement)
        2    0.000    0.000    0.007    0.003 __init__.py:3977(dataset_states_and_extensions_summary)
      170    0.002    0.000    0.005    0.000 schema.py:1089(__init__)
        3    0.000    0.000    0.005    0.002 base.py:1195(_execute_context)
        3    0.000    0.000    0.005    0.002 default.py:589(do_execute)
        3    0.005    0.002    0.005    0.002 {method 'execute' of 'psycopg2.extensions.cursor' objects}
        1    0.000    0.000    0.004    0.004 __init__.py:2760(check_inputs_ready)
        1    0.000    0.000    0.004    0.004 __init__.py:4011(populated_optimized)
      170    0.000    0.000    0.002    0.000 schema.py:102(_init_items)
       40    0.000    0.000    0.002    0.000 base.py:461(_set_parent_with_dispatch)
       40    0.000    0.000    0.002    0.000 schema.py:2153(_set_parent)
       40    0.000    0.000    0.002    0.000 schema.py:1609(_on_table_attach)
       40    0.000    0.000    0.002    0.000 api.py:34(listen)
        3    0.000    0.000    0.002    0.001 <string>:1(<lambda>)
        3    0.000    0.000    0.002    0.001 elements.py:412(compile)
        3    0.000    0.000    0.002    0.001 elements.py:478(_compiler)
        3    0.000    0.000    0.002    0.001 compiler.py:527(__init__)
        3    0.000    0.000    0.002    0.001 compiler.py:274(__init__)
        3    0.000    0.000    0.002    0.001 compiler.py:349(process)
    108/3    0.000    0.000    0.002    0.001 visitors.py:86(_compiler_dispatch)
        3    0.000    0.000    0.002    0.001 compiler.py:2045(visit_select)
       40    0.000    0.000    0.001    0.000 registry.py:193(listen)
        3    0.000    0.000    0.001    0.000 <string>:1(select)
        4    0.000    0.000    0.001    0.000 deprecations.py:126(warned)
        3    0.001    0.000    0.001    0.000 selectable.py:2826(__init__)

Which is about 25 times faster as compared to the starting situation
prior to 7b4ed38453e30e476f950c599ef9ab8a7e66942d.
On the whole for list:list with 100 inner elements and the apply_rules
tool this is about 25% faster (1683 ms vs 1254 ms now).
2020-10-26 08:53:31 +01:00
mvdbeek 0b5275913f Speed up collection input dataset ready check
We can use the optimized dataset_states_and_extensions_summary query to
not load up all collection dataset instances here.
2020-10-25 16:34:04 +01:00
mvdbeek 47a0d2c7c5 Implement collection.dataset_instances with query
Instead of recursively loading elements fro child collections.
We use this in a bunch of different places, but this makes the
check_inputs_ready check about twice as fast.
Before:

*** PROFILER RESULTS ***
check_inputs_ready (/Users/mvandenb/src/galaxy/lib/galaxy/tools/actions/model_operations.py:17)
function called 1 times

         305330 function calls (299676 primitive calls) in 0.509 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 717 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.510    0.510 model_operations.py:17(check_inputs_ready)
        1    0.000    0.000    0.507    0.507 __init__.py:246(_collect_inputs)
5314/4312    0.003    0.000    0.494    0.000 attributes.py:279(__get__)
 1202/601    0.002    0.000    0.491    0.001 attributes.py:699(get)
      601    0.003    0.000    0.482    0.001 strategies.py:665(_load_for_state)
      501    0.001    0.000    0.473    0.001 <string>:1(<lambda>)
      501    0.006    0.000    0.472    0.001 strategies.py:772(_emit_lazyload)
        2    0.000    0.000    0.427    0.213 __init__.py:1513(visit_inputs)
        2    0.000    0.000    0.427    0.213 __init__.py:21(visit_input_values)
        4    0.000    0.000    0.427    0.107 __init__.py:117(callback_helper)
        1    0.000    0.000    0.427    0.427 __init__.py:65(_collect_input_datasets)
        2    0.000    0.000    0.427    0.213 __init__.py:81(visitor)
    202/2    0.001    0.000    0.336    0.168 __init__.py:4116(dataset_instances)
      501    0.005    0.000    0.243    0.000 baked.py:421(__iter__)
      501    0.002    0.000    0.214    0.000 query.py:3501(_execute_and_instances)
      200    0.005    0.000    0.204    0.001 baked.py:557(_load_on_pk_identity)
      301    0.003    0.000    0.193    0.001 baked.py:539(all)
      502    0.001    0.000    0.186    0.000 base.py:952(execute)
      502    0.001    0.000    0.185    0.000 elements.py:296(_execute_on_connection)
      502    0.003    0.000    0.184    0.000 base.py:1088(_execute_clauseelement)
      502    0.004    0.000    0.175    0.000 base.py:1195(_execute_context)
      502    0.000    0.000    0.152    0.000 default.py:589(do_execute)
      200    0.000    0.000    0.152    0.001 __init__.py:4565(dataset_instance)
      502    0.147    0.000    0.152    0.000 {method 'execute' of 'psycopg2.extensions.cursor' objects}
      200    0.000    0.000    0.151    0.001 __init__.py:4554(element_object)
     1001    0.005    0.000    0.144    0.000 loading.py:35(instances)
      100    0.001    0.000    0.082    0.001 __init__.py:83(process_dataset)
      101    0.000    0.000    0.080    0.001 __init__.py:155(auto_propagated_tags)
      100    0.000    0.000    0.076    0.001 security.py:473(can_access_dataset)
      100    0.000    0.000    0.076    0.001 security.py:1031(dataset_is_public)
      501    0.001    0.000    0.060    0.000 loading.py:59(<listcomp>)
      501    0.002    0.000    0.060    0.000 query.py:4345(row_processor)
      502    0.001    0.000    0.059    0.000 result.py:1268(fetchall)
  601/501    0.017    0.000    0.057    0.000 loading.py:354(_instance_processor)
      502    0.001    0.000    0.054    0.000 result.py:926(_soft_close)
      502    0.001    0.000    0.052    0.000 base.py:899(close)
      502    0.001    0.000    0.051    0.000 base.py:1031(close)
      502    0.001    0.000    0.050    0.000 base.py:858(_checkin)
      502    0.002    0.000    0.050    0.000 base.py:671(_finalize_fairy)
      501    0.002    0.000    0.042    0.000 baked.py:180(_add_lazyload_options)

after:
*** PROFILER RESULTS ***
check_inputs_ready (/Users/mvandenb/src/galaxy/lib/galaxy/tools/actions/model_operations.py:17)
function called 1 times

         186085 function calls (183671 primitive calls) in 0.251 seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 738 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.251    0.251 model_operations.py:17(check_inputs_ready)
2920/2718    0.002    0.000    0.200    0.000 attributes.py:279(__get__)
  802/401    0.001    0.000    0.198    0.000 attributes.py:699(get)
      401    0.002    0.000    0.192    0.000 strategies.py:665(_load_for_state)
      301    0.001    0.000    0.187    0.001 <string>:1(<lambda>)
      301    0.003    0.000    0.187    0.001 strategies.py:772(_emit_lazyload)
        1    0.000    0.000    0.161    0.161 __init__.py:246(_collect_inputs)
      201    0.002    0.000    0.111    0.001 baked.py:539(all)
      301    0.002    0.000    0.107    0.000 baked.py:421(__iter__)
      303    0.001    0.000    0.102    0.000 query.py:3501(_execute_and_instances)
        2    0.000    0.000    0.099    0.049 __init__.py:1513(visit_inputs)
        2    0.000    0.000    0.099    0.049 __init__.py:21(visit_input_values)
        4    0.000    0.000    0.099    0.025 __init__.py:117(callback_helper)
        1    0.000    0.000    0.099    0.099 __init__.py:65(_collect_input_datasets)
        2    0.000    0.000    0.099    0.049 __init__.py:81(visitor)
        1    0.000    0.000    0.091    0.091 __init__.py:2760(check_inputs_ready)
      304    0.000    0.000    0.088    0.000 base.py:952(execute)
      304    0.000    0.000    0.088    0.000 elements.py:296(_execute_on_connection)
      304    0.002    0.000    0.087    0.000 base.py:1088(_execute_clauseelement)
      304    0.002    0.000    0.078    0.000 base.py:1195(_execute_context)
    101/1    0.000    0.000    0.072    0.072 __init__.py:4049(populated)
       76    0.000    0.000    0.069    0.001 {built-in method builtins.all}
      101    0.000    0.000    0.069    0.001 __init__.py:4053(<genexpr>)
      100    0.001    0.000    0.069    0.001 __init__.py:83(process_dataset)
      304    0.000    0.000    0.065    0.000 default.py:589(do_execute)
      304    0.063    0.000    0.064    0.000 {method 'execute' of 'psycopg2.extensions.cursor' objects}
      100    0.000    0.000    0.063    0.001 security.py:473(can_access_dataset)
      100    0.000    0.000    0.063    0.001 security.py:1031(dataset_is_public)
      803    0.003    0.000    0.062    0.000 loading.py:35(instances)
      101    0.000    0.000    0.062    0.001 __init__.py:155(auto_propagated_tags)
      100    0.002    0.000    0.053    0.001 baked.py:557(_load_on_pk_identity)
        2    0.000    0.000    0.039    0.020 __init__.py:4116(dataset_instances)
        2    0.000    0.000    0.032    0.016 query.py:3303(all)
      304    0.001    0.000    0.029    0.000 result.py:1268(fetchall)
      304    0.001    0.000    0.026    0.000 result.py:926(_soft_close)
      304    0.001    0.000    0.025    0.000 base.py:899(close)
      304    0.000    0.000    0.025    0.000 base.py:1031(close)
      304    0.000    0.000    0.024    0.000 base.py:858(_checkin)
      304    0.001    0.000    0.024    0.000 base.py:671(_finalize_fairy)
        2    0.000    0.000    0.022    0.011 query.py:3476(__iter__)
2020-10-25 16:34:04 +01:00
guerler 850a978b9b Parse secondary logo in legacy masthead mako 2020-10-25 10:02:04 -04:00
Marius van den Beek 0b20315227 Merge pull request #10521 from dannon/username-baseauth
[20.09] Allow username or email for authenticate API identity
2020-10-25 09:42:19 +01:00
mvdbeek d0047c1085 Merge branch 'release_20.09' into dev 2020-10-24 16:21:52 +02:00
Dannon Baker bd0a015a02 Invert publicname/email regex detection logic
We actually do have some capitalized publicnames historically.
2020-10-24 09:57:11 -04:00