Age | Commit message (Collapse) | Author |
|
Create the application and set up configs and other things within an
application factory function.
Fix obvious egregious errors preventing the application from starting
up correctly.
|
|
Set up the mandatory settings in the `flask.current_app.config` object
rather than in the file itself.
|
|
Add a blueprint for the `wqflask.api` package and register the
`wqflask.api.router` module as a child.
Rework the cascading imports to use the new configuration system to
avoid circular imports.
|
|
* Introduce flask Blueprints to help with decoupling the various
modules from the `wqflask/__init__.py` module
* Refactor settings: Create a function
`base.webqtlConfig.init_app(...)` to handle setting up the
configurations on the app correctly. Call this function at app
creation time.
* Move configuration utility functions from `utility.tools` module to
`utility.configuration` module.
* Use the `get_setting(...)` function to retrieve configuration
settings from the application.
|
|
|
|
|
|
* wqflask/utility/tools.py: Output extraneous messages to stderr
rather than stdout to avoid cluttering the output.
|
|
* Pass the user_id for the current user to the
`check_resource_availability` function as an argument, rather than
using the global `g.user_session.user_id` value.
|
|
|
|
* wqflask/utility/monads.py (MonadicDictCursor): Delete class.
(sql_query_mdict): New function.
* wqflask/scripts/index.py: Import sql_query_mdict instead of
MonadicDictCursor.
(main): Use sql_query_mdict.
|
|
* wqflask/utility/monads.py (MonadicDict, MonadicDictCursor): Remove
empty first line in docstrings.
|
|
* wqflask/utility/monads.py (MonadicDict.__init__): Ignore None values
early instead of converting them to Nothing and then ignoring them.
|
|
* wqflask/utility/monads.py (MonadicDictCursor.fetchone): Return
monadic value.
|
|
If a file/directory does not exist, raise the builtin
`FileNotFoundError` rather than the generic `Exception`.
|
|
* wqflask/utility/monads.py (MonadicDictCursor): Add example code to
docstring.
|
|
* wqflask/utility/monads.py (MonadicDict): Add example code to
docstring.
|
|
* wqflask/utility/monads.py (MonadicDict)[__init__]: Set default
dictionary argument to the empty dictionary.
|
|
* wqflask/utility/monads.py: New file.
|
|
* wqflask/utility/logger.py: Delete.
|
|
* wqflask/base/mrna_assay_tissue_data.py: Replace "flask.g" with database_connection.
(MrnaAssayTissueData.__init__): Use database_connection.
(MrnaAssayTissueData.get_symbol_values_pairs): Ditto.
* wqflask/base/species.py: Replace "Flask.g" imports with
"database_connection".
(Chromosomes.chromosomes): Use database_connection.
* wqflask/base/trait.py: Import database_connection.
(retrieve_trait_info): Use database_connection.
* wqflask/utility/authentication_tools.py: Replace "flask.g" with
database_connection.
(get_group_code): Use database_connection.
* wqflask/utility/helper_functions.py: Replace "flask.g" with
"database_connection".
(get_species_groups): Use database_connection.
* wqflask/wqflask/db_info.py: Replace "Flask" and "g" with
"database_connection".
(InfoPage.get_info): Use database_connection.
* wqflask/wqflask/do_search.py (DoSearch.execute): Use
database_connection().
* wqflask/wqflask/external_tools/send_to_geneweaver.py: Replace
"Flask" and "g" import with database_connection.
(test_chip): Use database_connection.
* wqflask/wqflask/external_tools/send_to_webgestalt.py: Replace
"Flask, g" imports with database_connection.
(test_chip): Use database_connection.
* wqflask/wqflask/gsearch.py: Replace "Flask" and "g" import with
database_connection.
(GSearch.__init__): Use database_connection.
* wqflask/wqflask/interval_analyst/GeneUtil.py (loadGenes):
Use database_connection().
* wqflask/wqflask/show_trait/SampleList.py: Replace "flask.g import"
with database_connection.
(SampleList.get_attributes): Use database_connection.
(SampleList.get_extra_attribute_values): Ditto.
* wqflask/wqflask/show_trait/show_trait.py: Replace "Flask" and "g"
import with database_connection.
(ShowTrait.__init__): Use database_connection.
(ShowTrait.get_external_links): Ditto.
(get_nearest_marker): Ditto.
|
|
* wqflask/wqflask/update_search_results.py: Replace "Flask" and "g"
import with "database_connection".
(GSearch.__init__): Reformat SQL. Rename "re" to "results" since "re"
is part of the stdlib.
* wqflask/wqflask/marker_regression/rqtl_mapping.py: Replace flask.g
with database_connection.
(write_covarstruct_file): Replace g.db with database_connection().
* wqflask/wqflask/search_results.py: Replace "Flask" and "g" imports
with "database_connection" import.
(trait_info_str): Replace g.db with database_connection.
* wqflask/wqflask/docs.py (Docs): Use dababase_connection() context
manager.
(update_text): Ditto.
* wqflask/wqflask/marker_regression/display_mapping_results.py:
Replace "Flask" and "g" import with "database_connection".
(DisplayMappingResults.__init__): Use database_connection.
(DisplayMappingResults.drawSNPTrackNew): Ditto.
|
|
* wqflask/utility/benchmark.py: Delete module.
|
|
Logging is used to introspect variables or notify the commencement of
a given operation. Logging should only be used to log errors. Also,
most of the logging is either "logger.debug" or "logger.info"; and
this won't show up in production/testing since we need a logging level
above "WARNING" for them to show up.
* wqflask/base/data_set.py (create_datasets_list): Remove logger.
(Markers.add_pvalues): Ditto.
(DataSet.retrieve_other_names): Ditto.
* wqflask/base/mrna_assay_tissue_data.py: Ditto.
* wqflask/base/webqtlCaseData.py: Ditto.
* wqflask/db/call.py (fetch1): Ditto.
(gn_server): Ditto.
* wqflask/db/gn_server.py: Ditto.
* wqflask/maintenance/set_resource_defaults.py: Ditto.
* wqflask/utility/Plot.py (find_outliers): Ditto.
* wqflask/utility/gen_geno_ob.py: Ditto.
* wqflask/utility/helper_functions.py: Ditto.
* wqflask/utility/pillow_utils.py: Ditto.
* wqflask/utility/redis_tools.py: Ditto.
* wqflask/wqflask/api/gen_menu.py (get_groups): Ditto.
* wqflask/wqflask/api/mapping.py: Ditto.
* wqflask/wqflask/api/router.py (get_dataset_info): Ditto.
* wqflask/wqflask/collect.py (report_change): Ditto.
* wqflask/wqflask/correlation/corr_scatter_plot.py: Ditto.
* wqflask/wqflask/ctl/ctl_analysis.py (CTL): Ditto.
(CTL.__init__): Ditto.
(CTL.run_analysis): Ditto.
(CTL.process_results): Ditto.
* wqflask/wqflask/db_info.py: Ditto.
* wqflask/wqflask/do_search.py (DoSearch.execute): Ditto.
(DoSearch.mescape): Ditto.
(DoSearch.get_search): Ditto.
(MrnaAssaySearch.run_combined): Ditto.
(MrnaAssaySearch.run): Ditto.
(PhenotypeSearch.run_combined): Ditto.
(GenotypeSearch.get_where_clause): Ditto.
(LrsSearch.get_where_clause): Ditto.
(MeanSearch.run): Ditto.
(RangeSearch.get_where_clause): Ditto.
(PvalueSearch.run): Ditto.
* wqflask/wqflask/docs.py: Ditto.
* wqflask/wqflask/export_traits.py: Ditto.
* wqflask/wqflask/external_tools/send_to_bnw.py: Ditto.
* wqflask/wqflask/external_tools/send_to_geneweaver.py: Ditto.
* wqflask/wqflask/external_tools/send_to_webgestalt.py: Ditto.
* wqflask/wqflask/gsearch.py (GSearch.__init__): Ditto.
* wqflask/wqflask/heatmap/heatmap.py: Ditto.
* wqflask/wqflask/marker_regression/display_mapping_results.py (DisplayMappingResults): Ditto.
* wqflask/wqflask/marker_regression/gemma_mapping.py: Ditto.
* wqflask/wqflask/marker_regression/plink_mapping.py (run_plink): Ditto.
* wqflask/wqflask/marker_regression/qtlreaper_mapping.py (run_reaper): Ditto.
* wqflask/wqflask/marker_regression/rqtl_mapping.py: Ditto.
* wqflask/wqflask/marker_regression/run_mapping.py (RunMapping.__init__): Ditto.
* wqflask/wqflask/parser.py (parse): Ditto.
* wqflask/wqflask/search_results.py (SearchResultPage.__init__): Ditto.
* wqflask/wqflask/update_search_results.py (GSearch.__init__): Ditto.
* wqflask/wqflask/user_login.py (send_email): Ditto.
(logout): Ditto.
(forgot_password_submit): Ditto.
(password_reset): Ditto.
(password_reset_step2): Ditto.
(register): Ditto.
* wqflask/wqflask/user_session.py (create_signed_cookie): Ditto.
|
|
* wqflask/utility/logger.py: Delete "import string".
|
|
Update the code to return the setting already set up in the app.config
dictionary if it exists or None if it does not exist.
|
|
This functionality, at least how we use it, is already provided
natively in python's pdb. Should someone need this, they can add it
manually.
* wqflask/runserver.py (app_config): Remove "flask_debugtoolbar"
import and instantiation.
* wqflask/utility/startup_config.py (app_config): Ditto.
|
|
For some reason that isn't clear to me yet, a logged-in user session ID
was set even when a user wasn't logged in, causing the user session code
to attempt to fetch user information for a non-existent user ID
|
|
These checks are only relevant for python pre-2.2.
* wqflask/utility/svg.py: Remove python pre-2.2 checks.
|
|
|
|
|
|
|
|
This causes noisy logging.
|
|
|
|
Use the new auth proxy tools instead.
|
|
This function is coupled to "wqflask.app", therefore requiring it's
import at the module level. This may lead circular importation issues
when working with blueprints.
|
|
|
|
|
|
|
|
settings file)
|
|
group_list by using group_list.items()
|
|
switchover (and was causing there to be no matches between user IDs and groups)
|
|
webqtlConfig.MAXLRS; previously threw an error
|
|
* wqflask/utility/startup_config.py (app_config): Add
DebugToolbarExtension
|
|
user_ids being stored as different encoding
|
|
|
|
this was introduced by Python3
|
|
|
|
|
|
|
|
|