aboutsummaryrefslogtreecommitdiff
path: root/wqflask/utility
AgeCommit message (Collapse)Author
2023-12-29Namespace all modules under gn2.Arun Isaac
We move all modules under a gn2 directory. This is important for "correct" packaging and deployment as a Guix service.
2023-10-26Use auth-server for authenticationFrederick Muriuki Muriithi
Authenticate with the Auth-server (gn-auth) to get the token to use on the API server (GN3).
2023-10-26Use gn-auth as the authorisation server.Frederick Muriuki Muriithi
2023-09-13Patch MySQLdb.escape_string to use use a connection.Munyoki Kilyungi
* wqflask/utility/db_tools.py: Delete MySQLdb.escape_. Import get_setting, database_connection. (escape_): New function. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-09-11Replace string concat with os.path.join.Munyoki Kilyungi
* wqflask/utility/tools.py (assert_writable_dir): Use "os.path.join" to concatenate paths. Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
2023-07-12Use new session to get user (author) informationFrederick Muriuki Muriithi
* wqflask/utility/json/__init__.py: Custom JSON for serialising UUIDs into a JSON representantion * wqflask/utility/json/encoders.py: Custom JSON for serialising UUIDs into a JSON representation * wqflask/wqflask/metadata_edits.py: Use new sessions for author information
2023-07-10Remove `OVERRIDES` global variable.Frederick Muriuki Muriithi
2023-07-05Compute the GN_VERSION in setup code not shell scriptFrederick Muriuki Muriithi
2023-07-05Config: Remove unused `OVERRIDES`Frederick Muriuki Muriithi
The `OVERRIDES` variable has no actual use in the application, therefore, this commit removes it and its dependent code.
2023-06-22Update calls to `database_connection` functionFrederick Muriuki Muriithi
Pass in the database URI at call time.
2022-12-29Implement "login" via OAuth2Frederick Muriuki Muriithi
2022-10-28Settings: Add the `REDIS_URL` setting.Frederick Muriuki Muriithi
2022-10-28Declutter stdoutFrederick Muriuki Muriithi
* wqflask/utility/tools.py: Output extraneous messages to stderr rather than stdout to avoid cluttering the output.
2022-10-28Refactor: Pass user id to `check_resource_availability`Frederick Muriuki Muriithi
* 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.
2022-10-12Account for empty strings in get_string functionzsloan
2022-09-29Replace MonadicDictCursor with generator function.Arun Isaac
* 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.
2022-09-29Remove empty first line in docstrings.Arun Isaac
* wqflask/utility/monads.py (MonadicDict, MonadicDictCursor): Remove empty first line in docstrings.
2022-09-29Ignore None values early when initializing MonadicDict.Arun Isaac
* wqflask/utility/monads.py (MonadicDict.__init__): Ignore None values early instead of converting them to Nothing and then ignoring them.
2022-09-29Return monadic value from MonadicDictCursor.fetchone.Arun Isaac
* wqflask/utility/monads.py (MonadicDictCursor.fetchone): Return monadic value.
2022-09-19Refactor: raise appropriate errorFrederick Muriuki Muriithi
If a file/directory does not exist, raise the builtin `FileNotFoundError` rather than the generic `Exception`.
2022-09-16Add example code to docstring of MonadicDictCursor.Arun Isaac
* wqflask/utility/monads.py (MonadicDictCursor): Add example code to docstring.
2022-09-16Add example code to docstring of MonadicDict.Arun Isaac
* wqflask/utility/monads.py (MonadicDict): Add example code to docstring.
2022-09-16Initialize empty MonadicDict by default.Arun Isaac
* wqflask/utility/monads.py (MonadicDict)[__init__]: Set default dictionary argument to the empty dictionary.
2022-09-14Add monadic utilities MonadicDict and MonadicDictCursor.Arun Isaac
* wqflask/utility/monads.py: New file.
2022-09-08Deleting utility.loggerMunyoki Kilyungi
* wqflask/utility/logger.py: Delete.
2022-09-08Replace g.db with database_connection() context managerMunyoki Kilyungi
* 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.
2022-09-08Replace g.db with database_connection() context managerMunyoki Kilyungi
* 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.
2022-08-31Delete benchmark moduleMunyoki Kilyungi
* wqflask/utility/benchmark.py: Delete module.
2022-08-31Remove usage of "logger" and un-necessary comments wrt the sameMunyoki Kilyungi
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.
2022-08-31Remove unused "string" importMunyoki Kilyungi
* wqflask/utility/logger.py: Delete "import string".
2022-07-25Return config in app.config or NoneFrederick Muriuki Muriithi
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.
2022-07-04wqflask: Remove DebugToolbarExtensionBonfaceKilz
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.
2022-04-04Return None in load_json_from_redis when the item doesn't existzsloan
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
2022-02-18wqflask: Remove python pre-2.2 checks.Arun Isaac
These checks are only relevant for python pre-2.2. * wqflask/utility/svg.py: Remove python pre-2.2 checks.
2021-11-25Delete noisy loggingBonfaceKilz
2021-11-04Removes unused importjgart
2021-10-28Remove all elasticsearch references in gn2BonfaceKilz
2021-10-28Remove the use of '@deprecated'BonfaceKilz
This causes noisy logging.
2021-10-25utility: redis_tools: Remove dead functionsBonfaceKilz
2021-10-25authentication_tools: Mark `check_owner_or_admin` as deprecatedBonfaceKilz
Use the new auth proxy tools instead.
2021-10-25utility.hmac: Label "hmac_creation" as deprecatedBonfaceKilz
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.
2021-10-25Mark `get_resource_info` as deprecatedBonfaceKilz
2021-10-22Fix line pulling GN3_LOCAL_URL from settingszsloan
2021-10-22Replace hardcoded GN proxy URLs with one pulled from settingszsloan
2021-10-22Added proxy and local GN3 URLs in tools.py (which should be set in the ↵zsloan
settings file)
2021-10-04Changed get_user_groups to pull both the ID and details in the for loop from ↵zsloan
group_list by using group_list.items()
2021-09-10Removed encoding, since it's apparently not needed since the Python 3 ↵zsloan
switchover (and was causing there to be no matches between user IDs and groups)
2021-08-23Account for situations where the minimum permutation value is also above ↵zsloan
webqtlConfig.MAXLRS; previously threw an error
2021-08-20startup_config.py: Add DebugToobarExtension for wsgi DEBUG modeBonfaceKilz
* wqflask/utility/startup_config.py (app_config): Add DebugToolbarExtension
2021-07-12Encode user_id as bytestring if not already bytestring to account for some ↵zsloan
user_ids being stored as different encoding