aboutsummaryrefslogtreecommitdiff
path: root/wqflask/utility
AgeCommit message (Collapse)Author
2023-06-20configs: set mandatory settings in the appFrederick Muriuki Muriithi
Set up the mandatory settings in the `flask.current_app.config` object rather than in the file itself.
2023-06-20Add blueprint and rework configuration retrievalFrederick Muriuki Muriithi
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.
2023-06-20Configs: Introduce Blueprints. Refactor configs in webqtlConfig.Frederick Muriuki Muriithi
* 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.
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
2021-06-17remove print statementsAlexander Kabui
2021-06-15Fix issue where column values were used as str instead of bytes; pretty sure ↵zsloan
this was introduced by Python3
2021-05-08utility: startup_config: Use python3 f-stringsBonfaceKilz
2021-05-08utility: startup_config: Break up long import statementBonfaceKilz
2021-05-08utility: startup_config: Remove dead commentsBonfaceKilz
2021-05-07Fixed issue that caused /submit_trait page to not load properlyzsloan
2021-04-30autopep8: Run autopep8 100 times with target rulesBonfaceKilz
Rules used are: E20,E211,E22,E224,E224,E225,E226,E227,E228,E231,E241,E242, E251,E252,E26,E265,E266,E27,E301,E302,E303,E304,E305,E306, E401,E501,E70,E701,W291,W292,W293,W391,W504,E101,E11,E121, E122,E123,E124,E125,E126,E127,E128,E129,E131,E133