Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python 3 support #14

Closed
1 of 8 tasks
nsoranzo opened this issue Jun 25, 2016 · 51 comments
Closed
1 of 8 tasks

Python 3 support #14

nsoranzo opened this issue Jun 25, 2016 · 51 comments

Comments

@nsoranzo
Copy link
Collaborator

nsoranzo commented Jun 25, 2016

Python 2.7 will not be maintained past 2020.

Add support for Python >= 3.3 while maintaining support for Python 2.6 and 2.7.

xref.: https://trello.com/c/dZcCVf9I/2702-migrate-to-python-3

The list of files already fixed is in .ci/py3_sources.txt

Useful tools and documentation:
https://docs.python.org/3/howto/pyporting.html
https://docs.python.org/2/library/2to3.html
https://python-modernize.readthedocs.org/
https://pythonhosted.org/six/
http://python3porting.com/preparing.html

Requirements which need to be ported or dropped:

xref: galaxyproject#1715

@nsoranzo
Copy link
Collaborator Author

nsoranzo commented Jun 25, 2016

Example pull request: galaxyproject#2453

Useful commands:

  • clone this repository:
git clone https://github.com/bxlab/galaxy_hackathon
  • checkout the python3 branch:
cd galaxy_hackathon/
git checkout python3
  • create virtual environment for Galaxy:
./scripts/common_startup.sh
  • activate virtual environment:
. .venv/bin/activate
  • install tox and flake8:
pip install tox flake8
  • Lint for Python 2.7:
tox -e py27-lint
  • Lint for Python 3.4
tox -e py34-lint
  • file containing the list of files to lint for Python 3.4: .ci/py3_sources.txt

  • Other tests:

    • Check that Galaxy starts correctly:
    ./run.sh
    
    • Unit tests:
    tox -e py27-unit
    
    • Framework tests
    ./run_tests.sh -framework
    
    • ToolShed tests:
    ./run.sh -toolshed
    

When done with changing the python file(s), make sure all tests pass and both python2 and 3 lint is OK. Then add the file(s) that are OK to this file, to check them automatically with python 3 lint:
.ci/py3_sources.txt

@jmchilton
Copy link

Smaller PRs or are we going to merge a bunch of stuff together?

@nsoranzo
Copy link
Collaborator Author

@jmchilton Still have to figure how to split the work among people, suggestions welcome!

@jxtx
Copy link
Collaborator

jxtx commented Jun 25, 2016

Regarding bx-python, code is now here and the tests run/pass. I will merge any Python 3 changes that don't break the tests under 2.

@nsoranzo
Copy link
Collaborator Author

@jxtx Thanks! I've removed it from the list.

@nsoranzo
Copy link
Collaborator Author

nsoranzo commented Jun 25, 2016

List of files that do not pass py34-lint tests:

./lib/galaxy/datatypes/util/gff_util.py (can't be done for now because of bx-python)
./lib/galaxy/model/tool_shed_install/migrate/versions/0001_add_tool_shed_repository_table.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0002_add_tool_shed_repository_table_columns.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0003_tool_id_guid_map_table.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0004_add_installed_changeset_revison_column.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0005_add_tool_shed_repository_table_columns.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0006_add_tool_version_tables.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0007_add_migrate_tools_table.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0008_add_ctx_rev_column.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0009_add_tool_dependency_table.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0010_alter_tool_dependency_table_version_column.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0011_drop_installed_changeset_revision_column.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0012_add_tool_dependency_status_columns.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0013_add_tool_shed_repository_status_columns.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0014_add_repository_dependency_tables.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0015_update_migrate_tools_table.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0016_update_migrate_tools_table_again.py
./lib/galaxy/model/tool_shed_install/migrate/versions/0017_drop_update_available_col_add_tool_shed_status_col.py
./lib/galaxy/tools/actions/__init__.py
./lib/galaxy/tools/data/__init__.py
./lib/galaxy/tools/evaluation.py
./lib/galaxy/tools/imp_exp/export_history.py
./lib/galaxy/tools/imp_exp/unpack_tar_gz_archive.py
./lib/galaxy/tools/__init__.py
./lib/galaxy/tools/util/maf_utilities.py
./lib/galaxy/tools/wrappers.py
./lib/galaxy/webapps/galaxy/api/lda_datasets.py
./lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py
./lib/galaxy/webapps/galaxy/controllers/library_common.py
./lib/galaxy/webapps/tool_shed/config.py
./lib/galaxy/webapps/tool_shed/model/__init__.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0001_initial_tables.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0002_add_tool_suite_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0003_review_and_review_association_tables.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0004_repository_tables.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0005_drop_tool_related_tables.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0006_add_email_alerts_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0007_add_long_description_times_downloaded_columns.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0008_add_repository_metadata_table.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0009_add_malicious_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0010_add_new_repo_alert_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0011_add_tool_versions_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0012_add_downloadable_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0013_add_review_tables.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0014_add_deprecated_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0015_add_api_keys_table.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0016_add_do_not_test_tools_functionally_correct_errors_columns.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0017_add_galaxy_utility_columns_to_repository_metadata_table.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0018_add_repository_metadata_flag_columns.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0019_add_skip_tool_test_table_and_test_install_error_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0020_add_repository_type_column.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0021_change_repository_type_value.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0022_add_repository_admin_roles.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0023_add_repository_url_and_hompeage_url.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0024_password_reset.py
./lib/galaxy/webapps/tool_shed/model/migrate/versions/0025_session_timeout.py
./lib/galaxy/webapps/tool_shed/search/repo_search.py
./lib/galaxy/web/base/controller.py
./lib/galaxy/workflow/steps.py
./lib/mimeparse.py
./lib/tool_shed/galaxy_install/datatypes/custom_datatype_manager.py
./lib/tool_shed/galaxy_install/migrate/common.py
./lib/tool_shed/galaxy_install/migrate/versions/0001_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0002_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0003_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0004_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0005_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0006_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0007_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0008_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0009_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0010_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0011_tools.py
./lib/tool_shed/galaxy_install/migrate/versions/0012_tools.py
./lib/tool_shed/galaxy_install/tool_migration_manager.py
./scripts/extract_toolbox_sections.py
./scripts/fetch_eggs.py
./scripts/get_platforms.py
./scripts/helper.py
./scripts/loc_files/create_all_fasta_loc.py
./scripts/manage_tools.py
./scripts/metagenomics/convert_title.py
./scripts/microbes/BeautifulSoup.py
./scripts/microbes/create_bacteria_loc_file.py
./scripts/microbes/create_bacteria_table.py
./scripts/microbes/create_nib_seq_loc_file.py
./scripts/microbes/get_builds_lengths.py
./scripts/microbes/harvest_bacteria.py
./scripts/microbes/ncbi_to_ucsc.py
./scripts/migrate_tools/migrate_tools.py
./scripts/others/incorrect_gops_jobs.py
./scripts/others/incorrect_gops_join_jobs.py
./scripts/set_dataset_sizes.py
./scripts/set_user_disk_usage.py
./scripts/tool_shed/api/add_repository_registry_entry.py
./scripts/tool_shed/api/common.py
./scripts/tool_shed/api/create_categories.py
./scripts/tool_shed/api/create_users.py
./scripts/tool_shed/api/export.py
./scripts/tool_shed/api/get_filtered_repository_revisions.py
./scripts/tool_shed/api/remove_repository_registry_entry.py
./scripts/tool_shed/api/reset_metadata_on_repositories.py
./scripts/tool_shed/bootstrap_tool_shed/bootstrap_util.py
./scripts/tool_shed/bootstrap_tool_shed/create_user_with_api_key.py
./scripts/tool_shed/build_ts_whoosh_index.py
./scripts/tool_shed/check_download_urls.py
./scripts/tool_shed/check_filesystem_for_empty_tool_dependency_installation_paths.py
./scripts/tool_shed/check_s3_for_empty_tool_dependency_installation_paths.py
./scripts/tool_shed/clean_up_tool_dependency_directory.py
./scripts/tool_shed/deprecate_repositories_without_metadata.py
./scripts/tool_shed/migrate_tools_to_repositories.py
./scripts/tool_shed/show_tool_dependency_installation_dir_contents.py
./scripts/tools/maf/check_loc_file.py
./scripts/update_shed_config_path.py
./tools/extract/extract_genomic_dna.py
./tools/filters/axt_to_concat_fasta.py
./tools/filters/axt_to_fasta.py
./tools/filters/bed_to_gff_converter.py
./tools/filters/convert_characters.py
./tools/filters/gff/extract_GFF_Features.py
./tools/filters/gff/gff_filter_by_attribute.py
./tools/filters/gff/gff_filter_by_feature_count.py
./tools/filters/gff_to_bed_converter.py
./tools/filters/grep.py
./tools/filters/gtf_to_bedgraph_converter.py
./tools/filters/join.py
./tools/filters/lav_to_bed.py
./tools/filters/mergeCols.py
./tools/filters/random_lines_two_pass.py
./tools/filters/sff_extract.py
./tools/filters/trimmer.py
./tools/filters/ucsc_gene_bed_to_exon_bed.py
./tools/filters/ucsc_gene_table_to_intervals.py
./tools/filters/uniq.py
./tools/filters/wiggle_to_simple.py
./tools/genomespace/genomespace_exporter.py
./tools/maf/interval2maf.py
./tools/maf/interval_maf_to_merged_fasta.py
./tools/maf/maf_by_block_number.py
./tools/maf/maf_filter.py
./tools/maf/maf_limit_size.py
./tools/maf/maf_limit_to_species.py
./tools/maf/maf_reverse_complement.py
./tools/maf/maf_split_by_species.py
./tools/maf/maf_stats.py
./tools/maf/maf_thread_for_species.py
./tools/maf/maf_to_bed.py
./tools/maf/maf_to_fasta_concat.py
./tools/maf/maf_to_fasta_multiple_sets.py
./tools/maf/vcf_to_maf_customtrack.py
./tools/metag_tools/shrimp_color_wrapper.py
./tools/metag_tools/shrimp_wrapper.py
./tools/next_gen_conversion/solid_to_fastq.py
./tools/ngs_simulation/ngs_simulation.py
./tools/phenotype_association/pagetag.py
./tools/phenotype_association/senatag.py
./tools/solid_tools/solid_qual_stats.py
./tools/sr_assembly/velvetg_wrapper.py
./tools/stats/filtering.py
./tools/stats/grouping.py
./tools/stats/gsummary.py

@jxtx
Copy link
Collaborator

jxtx commented Jun 25, 2016

@nsoranzo Sorry, to be clear the tests run/pass under Python 2. Still needs work for python 3.

@nsoranzo
Copy link
Collaborator Author

@jxtx Ohhh, OK. I don't think we will have time for that today, but I'll open an issue on your repo.

@nsoranzo
Copy link
Collaborator Author

@jmchilton I've created a python3 branch on this repo. Anybody feel free to call dibs on the file you want to update by commenting on this issue.

@nsoranzo
Copy link
Collaborator Author

I will start with ./lib/galaxy/dataset_collections/structure.py

@tshtatland
Copy link
Collaborator

tshtatland commented Jun 25, 2016

Doing test/unit/test_galaxy_mapping.py

OK, done.

@junzwang
Copy link
Collaborator

Doing ./test/api/helpers.py

@jmchilton
Copy link

WIP on getting an unit test to run in Python 3.

jmchilton@b3c6819

@junzwang
Copy link
Collaborator

doing ./test/api/test_datasets.py

@nsoranzo
Copy link
Collaborator Author

I've done ./lib/galaxy/security/passwords.py

@xiaoqian1984
Copy link
Collaborator

doing ./test/unit/managers/base.py

@junzwang
Copy link
Collaborator

doing ./test/api/test_tool_data.py

@junzwang
Copy link
Collaborator

doing ./test/api/test_workflow_extraction.py

@xiaoqian1984
Copy link
Collaborator

doing ./test/unit/managers/test_DatasetManager.py

@tshtatland
Copy link
Collaborator

tshtatland commented Jun 25, 2016

Doing ./tools/stats/aggregate_scores_in_intervals.py
Done

@xiaoqian1984
Copy link
Collaborator

doing ./test/unit/managers/test_HDAManager.py

@junzwang
Copy link
Collaborator

Done
test/api/helpers.py
test/api/test_datasets.py
test/api/test_tool_data.py
test/api/test_workflow_extraction.py
test/api/test_workflows.py

@junzwang
Copy link
Collaborator

found something interesting maybe helpful for this project

Cheat Sheet: Writing Python 2-3 compatible code
http://python-future.org/compatible_idioms.html

@junzwang
Copy link
Collaborator

Done:
test/shed_functional/base/twilltestcase.py
test/shed_functional/functional_tests.py
test/unit/datatypes/dataproviders/test_base_dataproviders.py

@junzwang
Copy link
Collaborator

test/unit/datatypes/dataproviders/test_line_dataproviders.py
scripts/api/data_manager_example_execute.py

@tshtatland
Copy link
Collaborator

Doing lib/galaxy/datatypes/converters/interval_to_bedstrict_converter.py

@nsoranzo
Copy link
Collaborator Author

I'm doing lib/galaxy/datatypes/binary.py

@nsoranzo
Copy link
Collaborator Author

lib/galaxy/datatypes/sequence.py

@tshtatland
Copy link
Collaborator

Doing lib/galaxy/datatypes/converters/interval_to_bed_converter.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/datatypes/sniff.py

@tshtatland
Copy link
Collaborator

./lib/galaxy/datatypes/converters/fastq_to_fqtoc.py
./lib/galaxy/datatypes/converters/gff_to_bed_converter.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/datatypes/tabular.py

@tshtatland
Copy link
Collaborator

lib/galaxy/datatypes/converters/bed_to_gff_converter.py

@tshtatland
Copy link
Collaborator

./lib/galaxy/datatypes/converters/lped_to_fped_converter.py
./lib/galaxy/datatypes/converters/lped_to_pbed_converter.py
./lib/galaxy/datatypes/converters/maf_to_fasta_converter.py
./lib/galaxy/datatypes/converters/maf_to_interval_converter.py

@junzwang
Copy link
Collaborator

scripts/api/example_watch_folder.py
scripts/api/form_create_from_xml.py
scripts/api/history_delete_history.py
scripts/api/import_library_dataset_to_history.py
scripts/api/import_workflows_from_installed_tool_shed_repository.py
scripts/api/library_create_folder.py
scripts/api/library_create_library.py
scripts/api/library_upload_from_import_dir.py
scripts/api/load_data_with_metadata.py
scripts/api/repair_tool_shed_repository.py
scripts/api/requests_update_state.py
scripts/api/request_type_create_from_xml.py
scripts/api/sample_dataset_update_status.py
scripts/api/sample_update_state.py
scripts/api/search.py
scripts/api/sequencer_configuration_create.py
scripts/api/upload_to_history.py
scripts/api/workflow_delete.py
scripts/api/workflow_execute.py
scripts/api/workflow_import_from_file_rpark.py
scripts/api/workflow_import.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/datatypes/util/gff_util.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/datatypes/dataproviders/line.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/datatypes/dataproviders/column.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/managers/context.py

@junzwang
Copy link
Collaborator

./scripts/bootstrap_history.py
./scripts/build_toolbox.py
./scripts/check_eggs.py
./scripts/check_galaxy.py
./scripts/check_python.py
./scripts/cleanup_datasets/pgcleanup.py
./scripts/cleanup_datasets/populate_uuid.py
./scripts/cleanup_datasets/remove_renamed_datasets_from_disk.py
./scripts/cleanup_datasets/rename_purged_datasets.py
./scripts/cleanup_datasets/update_dataset_size.py
./scripts/cleanup_datasets/update_metadata.py
./scripts/data_libraries/build_whoosh_index.py
./scripts/db_shell.py
./scripts/drmaa_external_runner.py

@tshtatland
Copy link
Collaborator

./lib/galaxy/datatypes/converters/pbed_ldreduced_converter.py
./lib/galaxy/datatypes/converters/pbed_to_lped_converter.py
./lib/galaxy/datatypes/converters/picard_interval_list_to_bed6_converter.py
./lib/galaxy/datatypes/converters/ref_to_seq_taxonomy_converter.py
./lib/galaxy/datatypes/converters/wiggle_to_simple_converter.py

@nsoranzo
Copy link
Collaborator Author

nsoranzo commented Jun 26, 2016

./lib/galaxy/model/__init__.py

@nsoranzo
Copy link
Collaborator Author

./lib/galaxy/visualization/genomes.py

@tshtatland
Copy link
Collaborator

./lib/galaxy/model/migrate/versions/0006_change_qual_datatype.py
./lib/galaxy/model/migrate/versions/0007_sharing_histories.py
./lib/galaxy/model/migrate/versions/0008_galaxy_forms.py
./lib/galaxy/model/migrate/versions/0009_request_table.py
./lib/galaxy/model/migrate/versions/0010_hda_display_at_authz_table.py
./lib/galaxy/model/migrate/versions/0011_v0010_mysql_index_fix.py
./lib/galaxy/model/migrate/versions/0012_user_address.py
./lib/galaxy/model/migrate/versions/0013_change_lib_item_templates_to_forms.py

@nsoranzo
Copy link
Collaborator Author

lib/galaxy/visualization/data_providers/phyloviz/newickparser.py

@tshtatland
Copy link
Collaborator

./lib/galaxy/model/migrate/versions/0014_pages.py
./lib/galaxy/model/migrate/versions/0015_tagging.py
./lib/galaxy/model/migrate/versions/0016_v0015_mysql_index_fix.py
./lib/galaxy/model/migrate/versions/0017_library_item_indexes.py
./lib/galaxy/model/migrate/versions/0018_ordered_tags_and_page_tags.py
./lib/galaxy/model/migrate/versions/0019_request_library_folder.py
./lib/galaxy/model/migrate/versions/0020_library_upload_job.py
./lib/galaxy/model/migrate/versions/0021_user_prefs.py
./lib/galaxy/model/migrate/versions/0022_visualization_tables.py
./lib/galaxy/model/migrate/versions/0023_page_published_and_deleted_columns.py

@ericenns
Copy link
Collaborator

+lib/galaxy/model/migrate/versions/0024_page_slug_unique_constraint.py
+lib/galaxy/model/migrate/versions/0025_user_info.py
+lib/galaxy/model/migrate/versions/0026_cloud_tables.py
+lib/galaxy/model/migrate/versions/0027_request_events.py
+lib/galaxy/model/migrate/versions/0028_external_metadata_file_override.py
+lib/galaxy/model/migrate/versions/0029_user_actions.py
+lib/galaxy/model/migrate/versions/0030_history_slug_column.py
+lib/galaxy/model/migrate/versions/0031_community_and_workflow_tags.py
+lib/galaxy/model/migrate/versions/0032_stored_workflow_slug_column.py
+lib/galaxy/model/migrate/versions/0033_published_cols_for_histories_and_workflows.py
+lib/galaxy/model/migrate/versions/0034_page_user_share_association.py
+lib/galaxy/model/migrate/versions/0035_item_annotations_and_workflow_step_tags.py
+lib/galaxy/model/migrate/versions/0036_add_deleted_column_to_library_template_assoc_tables.py
+lib/galaxy/model/migrate/versions/0037_samples_library.py
+lib/galaxy/model/migrate/versions/0038_add_inheritable_column_to_library_template_assoc_tables.py
+lib/galaxy/model/migrate/versions/0039_add_synopsis_column_to_library_table.py
+lib/galaxy/model/migrate/versions/0040_page_annotations.py
+lib/galaxy/model/migrate/versions/0041_workflow_invocation.py
+lib/galaxy/model/migrate/versions/0042_workflow_invocation_fix.py
+lib/galaxy/model/migrate/versions/0043_visualization_sharing_tagging_annotating.py
+lib/galaxy/model/migrate/versions/0044_add_notify_column_to_request_table.py
+lib/galaxy/model/migrate/versions/0045_request_type_permissions_table.py
+lib/galaxy/model/migrate/versions/0046_post_job_actions.py
+lib/galaxy/model/migrate/versions/0047_job_table_user_id_column.py
+lib/galaxy/model/migrate/versions/0048_dataset_instance_state_column.py
+lib/galaxy/model/migrate/versions/0049_api_keys_table.py
+lib/galaxy/model/migrate/versions/0050_drop_cloud_tables.py
+lib/galaxy/model/migrate/versions/0051_imported_col_for_jobs_table.py
+lib/galaxy/model/migrate/versions/0052_sample_dataset_table.py
+lib/galaxy/model/migrate/versions/0053_item_ratings.py
+lib/galaxy/model/migrate/versions/0054_visualization_dbkey.py
+lib/galaxy/model/migrate/versions/0055_add_pja_assoc_for_jobs.py
+lib/galaxy/model/migrate/versions/0056_workflow_outputs.py
+lib/galaxy/model/migrate/versions/0057_request_notify.py
+lib/galaxy/model/migrate/versions/0058_history_import_export.py
+lib/galaxy/model/migrate/versions/0059_sample_dataset_file_path.py
+lib/galaxy/model/migrate/versions/0060_history_archive_import.py
+lib/galaxy/model/migrate/versions/0061_tasks.py
+lib/galaxy/model/migrate/versions/0062_user_openid_table.py
+lib/galaxy/model/migrate/versions/0063_sequencer_table.py
+lib/galaxy/model/migrate/versions/0064_add_run_and_sample_run_association_tables.py
+lib/galaxy/model/migrate/versions/0065_add_name_to_form_fields_and_values.py
+lib/galaxy/model/migrate/versions/0066_deferred_job_and_transfer_job_tables.py
+lib/galaxy/model/migrate/versions/0067_populate_sequencer_table.py
+lib/galaxy/model/migrate/versions/0068_rename_sequencer_to_external_services.py
+lib/galaxy/model/migrate/versions/0069_rename_sequencer_form_type.py
+lib/galaxy/model/migrate/versions/0070_add_info_column_to_deferred_job_table.py
+lib/galaxy/model/migrate/versions/0071_add_history_and_workflow_to_sample.py
+lib/galaxy/model/migrate/versions/0072_add_pid_and_socket_columns_to_transfer_job_table.py
+lib/galaxy/model/migrate/versions/0073_add_ldda_to_implicit_conversion_table.py
+lib/galaxy/model/migrate/versions/0074_add_purged_column_to_library_dataset_table.py
+lib/galaxy/model/migrate/versions/0075_add_subindex_column_to_run_table.py
+lib/galaxy/model/migrate/versions/0076_fix_form_values_data_corruption.py
+lib/galaxy/model/migrate/versions/0077_create_tool_tag_association_table.py
+lib/galaxy/model/migrate/versions/0078_add_columns_for_disk_usage_accounting.py
+lib/galaxy/model/migrate/versions/0079_input_library_to_job_table.py
+lib/galaxy/model/migrate/versions/0080_quota_tables.py
+lib/galaxy/model/migrate/versions/0081_add_tool_version_to_hda_ldda.py
+lib/galaxy/model/migrate/versions/0082_add_tool_shed_repository_table.py
+lib/galaxy/model/migrate/versions/0083_add_prepare_files_to_task.py
+lib/galaxy/model/migrate/versions/0084_add_ldda_id_to_implicit_conversion_table.py
+lib/galaxy/model/migrate/versions/0085_add_task_info.py
+lib/galaxy/model/migrate/versions/0086_add_tool_shed_repository_table_columns.py
+lib/galaxy/model/migrate/versions/0087_tool_id_guid_map_table.py
+lib/galaxy/model/migrate/versions/0088_add_installed_changeset_revison_column.py
+lib/galaxy/model/migrate/versions/0089_add_object_store_id_columns.py
+lib/galaxy/model/migrate/versions/0090_add_tool_shed_repository_table_columns.py
+lib/galaxy/model/migrate/versions/0091_add_tool_version_tables.py
+lib/galaxy/model/migrate/versions/0092_add_migrate_tools_table.py
+lib/galaxy/model/migrate/versions/0093_add_job_params_col.py
+lib/galaxy/model/migrate/versions/0094_add_job_handler_col.py
+lib/galaxy/model/migrate/versions/0095_hda_subsets.py
+lib/galaxy/model/migrate/versions/0096_openid_provider.py
+lib/galaxy/model/migrate/versions/0097_add_ctx_rev_column.py
+lib/galaxy/model/migrate/versions/0098_genome_index_tool_data_table.py
+lib/galaxy/model/migrate/versions/0099_add_tool_dependency_table.py
+lib/galaxy/model/migrate/versions/0100_alter_tool_dependency_table_version_column.py
+lib/galaxy/model/migrate/versions/0101_drop_installed_changeset_revision_column.py
+lib/galaxy/model/migrate/versions/0102_add_tool_dependency_status_columns.py
+lib/galaxy/model/migrate/versions/0103_add_tool_shed_repository_status_columns.py
+lib/galaxy/model/migrate/versions/0105_add_cleanup_event_table.py
+lib/galaxy/model/migrate/versions/0106_add_missing_indexes.py
+lib/galaxy/model/migrate/versions/0107_add_exit_code_to_job_and_task.py
+lib/galaxy/model/migrate/versions/0108_add_extended_metadata.py
+lib/galaxy/model/migrate/versions/0109_add_repository_dependency_tables.py
+lib/galaxy/model/migrate/versions/0110_add_dataset_uuid.py
+lib/galaxy/model/migrate/versions/0111_add_job_destinations.py
+lib/galaxy/model/migrate/versions/0112_add_data_manager_history_association_and_data_manager_job_association_tables.py
+lib/galaxy/model/migrate/versions/0113_update_migrate_tools_table.py
+lib/galaxy/model/migrate/versions/0114_update_migrate_tools_table_again.py
+lib/galaxy/model/migrate/versions/0116_drop_update_available_col_add_tool_shed_status_col.py
+lib/galaxy/model/migrate/versions/0117_add_user_activation.py
+lib/galaxy/model/migrate/versions/0118_add_hda_extended_metadata.py
+lib/galaxy/model/migrate/versions/0119_job_metrics.py
+lib/galaxy/model/migrate/versions/0120_dataset_collections.py
+lib/galaxy/model/migrate/versions/0121_workflow_uuids.py
+lib/galaxy/model/migrate/versions/0122_grow_mysql_blobs.py
+lib/galaxy/model/migrate/versions/0123_add_workflow_request_tables.py
+lib/galaxy/model/migrate/versions/0124_job_state_history.py
+lib/galaxy/model/migrate/versions/0125_workflow_step_tracking.py
+lib/galaxy/model/migrate/versions/0126_password_reset.py
+lib/galaxy/model/migrate/versions/0127_output_collection_adjustments.py
+lib/galaxy/model/migrate/versions/0128_session_timeout.py
+lib/galaxy/model/migrate/versions/0129_job_external_output_metadata_validity.py
+lib/galaxy/model/migrate/versions/0130_change_pref_datatype.py
+lib/galaxy/model/migrate/versions/0131_subworkflow_and_input_parameter_modules.py

@NickSto
Copy link

NickSto commented Jun 26, 2016

Hey, so I was looking at lending a hand in this, and trying to read up on porting methods.

I notice that the example pull request doesn't really touch strings, instead of using any of the methods I've seen like unicode_literals or six.u().

What was the reasoning in going with this strategy? Are there things to watch out for when applying it?

@nsoranzo
Copy link
Collaborator Author

@NickSto You are very welcome to contribute to this effort, feel free to add commits to the python3 branch of this repository (I plan to create a PR of this amazing collective work around the end of GCC2016).

Regarding your question, there is no need to use six.u() because u'mystring' is supported both in Python 2 and >=3.3 (see https://docs.python.org/3/whatsnew/3.3.html ) and we plan to support 2.7 and >= 3.4.

If you want a short introduction of the recommended approach to do the porting, we can meet for 10' tomorrow at some point.

@nsoranzo
Copy link
Collaborator Author

@tshtatland @ericenns Do not forget to add

from __future__ import print_function

at the top of a file when you change print to print() in a it. I've fixed the already modified files.

@nsoranzo
Copy link
Collaborator Author

I've opened PR galaxyproject#2574, thank you all for the fantastic contribution!
Let's continue to track progress on galaxyproject#1715.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants