mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-08-30 16:58:03 +08:00
27b262209dc8a8c604f82cc95fe061c253fdad58
config_schema.yml is the source of truth for all 460 config attributes, but only ~50 had explicit Python type annotations in GalaxyAppConfiguration. The remaining attributes were typed as Any via HasDynamicProperties.__getattr__, requiring consumers to use # type: ignore or defensive getattr() patterns. Add a `build_config_types` action to config_manage.py that reads the schema and emits a *AppConfigurationAttributes mixin class with type annotations for every schema-defined attribute. Schema types map to Python types (str/bool/int/float → direct, any → Any, seq → list[Any]). Attributes with a null schema default get `T | None`. A per-app override dict encodes cases where post-processing in _process_config changes the runtime type (listified filters, float cache size, optional interactivetools_map, etc.). GalaxyAppConfiguration and ToolShedAppConfiguration now inherit from their respective generated mixin, making all schema attributes statically typed. Manual overrides in GalaxyAppConfiguration continue to refine specific attributes (HashFunctionNameEnum, timedelta, themes dicts). Wire the new action into the Makefile config-rebuild target so generated files stay in sync when the schema changes. Also fix two newly-exposed type errors in the codebase: - galaxy/dependencies/__init__.py: guard None before passing file_source_templates_config_file to exists() - galaxy/config/__init__.py: cast use_remote_user or single_user to bool
.. figure:: https://galaxyproject.org/images/galaxy-logos/galaxy_project_logo.jpg
:alt: Galaxy Logo
The latest information about Galaxy can be found on the `Galaxy Community Hub <https://galaxyproject.org/>`__.
Community support is available at `Galaxy Help <https://help.galaxyproject.org/>`__.
.. image:: https://img.shields.io/badge/chat-gitter-blue.svg
:target: https://gitter.im/galaxyproject/Lobby
:alt: Chat on gitter
.. image:: https://img.shields.io/badge/chat-irc.freenode.net%23galaxyproject-blue.svg
:target: https://webchat.freenode.net/?channels=galaxyproject
:alt: Chat on irc
.. image:: https://img.shields.io/badge/release-documentation-blue.svg
:target: https://docs.galaxyproject.org/en/master/
:alt: Release Documentation
.. image:: https://travis-ci.org/galaxyproject/galaxy.svg?branch=dev
:target: https://travis-ci.org/galaxyproject/galaxy
:alt: Inspect the test results
Galaxy Quickstart
=================
Galaxy requires Python 3.10 or higher. To check your Python version, run:
.. code:: console
$ python -V
Python 3.10.12
Start Galaxy:
.. code:: console
$ sh run.sh
Once Galaxy completes startup, you should be able to view Galaxy in your
browser at: http://localhost:8080
For more installation details please see: https://getgalaxy.org/
Documentation is available at: https://docs.galaxyproject.org/
Tutorials on how to use Galaxy, perform scientific analyses with it, develop Galaxy and its tools, and admin a Galaxy server are at: https://training.galaxyproject.org/
Tools
=====
Tools can be either installed from the Tool Shed or added manually.
For details please see the `tutorial <https://galaxyproject.org/admin/tools/add-tool-from-toolshed-tutorial/>`__.
Note that not all dependencies for the tools provided in the
``tool_conf.xml.sample`` are included. To install them please visit
"Manage dependencies" in the admin interface.
Issues and Galaxy Development
=============================
Please see `CONTRIBUTING.md <CONTRIBUTING.md>`_ .
Description
Languages
Python
66.6%
Vue
13%
TypeScript
10.8%
JavaScript
3.8%
Jupyter Notebook
2.8%
Other
2.8%