Skip to content

(closes #2813) Migrate to pyproject.toml#3434

Open
sergisiso wants to merge 9 commits into
masterfrom
migrate_to_pyproject
Open

(closes #2813) Migrate to pyproject.toml#3434
sergisiso wants to merge 9 commits into
masterfrom
migrate_to_pyproject

Conversation

@sergisiso
Copy link
Copy Markdown
Collaborator

I left the data_files in setup.py because they can not be easily migrated with the current file structure. Everything else has been migrated.

@sergisiso sergisiso self-assigned this May 16, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.96%. Comparing base (b45ff81) to head (5152467).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3434   +/-   ##
=======================================
  Coverage   99.96%   99.96%           
=======================================
  Files         391      391           
  Lines       54668    54668           
=======================================
  Hits        54649    54649           
  Misses         19       19           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sergisiso
Copy link
Copy Markdown
Collaborator Author

@LonelyCat124 @arporter This is ready for a first review

LonelyCat124
LonelyCat124 previously approved these changes May 19, 2026
Copy link
Copy Markdown
Collaborator

@LonelyCat124 LonelyCat124 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this should work. I'm going to set the ITs going just in case, but otherwise it all seems fine.

@LonelyCat124
Copy link
Copy Markdown
Collaborator

@sergisiso I think maybe this an issue with my setup but I just wanted to check, but my flake8 on git push reports many errors for this branch. Most are in __init__ (that were probably skipped before), Some of these are in other files though.

/home/aidan/base-env/bin/flake8
src/psyclone/domain/common/psylayer/__init__.py:38:1: F401 'psyclone.domain.common.psylayer.global_reduction.GlobalReduction' imported but unused
src/psyclone/domain/common/psylayer/__init__.py:39:1: F401 'psyclone.domain.common.psylayer.psyloop.PSyLoop' imported but unused
src/psyclone/domain/common/psylayer/__init__.py:40:1: W391 blank line at end of file
src/psyclone/domain/gocean/kernel/__init__.py:40:1: F401 'psyclone.domain.gocean.kernel.psyir.GOceanContainer' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:41:1: F401 'psyclone.domain.gocean.transformations.gocean_extract_trans.GOceanExtractTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:43:1: F401 'psyclone.domain.gocean.transformations.gocean_opencl_trans.GOOpenCLTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:45:1: F401 'psyclone.domain.gocean.transformations.gocean_move_iteration_boundaries_inside_kernel_trans.GOMoveIterationBoundariesInsideKernelTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:48:1: F401 'psyclone.domain.gocean.transformations.gocean_loop_fuse_trans.GOceanLoopFuseTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:50:1: F401 'psyclone.domain.gocean.transformations.gocean_const_loop_bounds_trans.GOConstLoopBoundsTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:52:1: F401 'psyclone.domain.gocean.transformations.raise_psyir_2_gocean_kern_trans.RaisePSyIR2GOceanKernTrans' imported but unused
src/psyclone/domain/gocean/transformations/__init__.py:54:1: F401 'psyclone.domain.gocean.transformations.gocean_alg_invoke_2_psy_call_trans.GOceanAlgInvoke2PSyCallTrans' imported but unused
src/psyclone/domain/lfric/__init__.py:45:1: F401 'psyclone.domain.lfric.function_space.FunctionSpace' imported but unused
src/psyclone/domain/lfric/__init__.py:46:1: F401 'psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor' imported but unused
src/psyclone/domain/lfric/__init__.py:47:1: F401 'psyclone.domain.lfric.lfric_constants.LFRicConstants' imported but unused
src/psyclone/domain/lfric/__init__.py:48:1: F401 'psyclone.domain.lfric.lfric_halo_depths.LFRicHaloDepths' imported but unused
src/psyclone/domain/lfric/__init__.py:49:1: F401 'psyclone.domain.lfric.arg_ordering.ArgOrdering' imported but unused
src/psyclone/domain/lfric/__init__.py:50:1: F401 'psyclone.domain.lfric.kern_call_arg_list.KernCallArgList' imported but unused
src/psyclone/domain/lfric/__init__.py:51:1: F401 'psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList' imported but unused
src/psyclone/domain/lfric/__init__.py:52:1: F401 'psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList' imported but unused
src/psyclone/domain/lfric/__init__.py:54:1: F401 'psyclone.domain.lfric.kernel_interface.KernelInterface' imported but unused
src/psyclone/domain/lfric/__init__.py:55:1: F401 'psyclone.domain.lfric.lfric_cell_iterators.LFRicCellIterators' imported but unused
src/psyclone/domain/lfric/__init__.py:56:1: F401 'psyclone.domain.lfric.lfric_driver_creator.LFRicDriverCreator' imported but unused
src/psyclone/domain/lfric/__init__.py:58:1: F401 'psyclone.domain.lfric.lfric_types.LFRicTypes' imported but unused
src/psyclone/domain/lfric/__init__.py:59:1: F401 'psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList' imported but unused
src/psyclone/domain/lfric/__init__.py:60:1: F401 'psyclone.domain.lfric.lfric_invoke.LFRicInvoke' imported but unused
src/psyclone/domain/lfric/__init__.py:61:1: F401 'psyclone.domain.lfric.metadata_to_arguments_rules.MetadataToArgumentsRules' imported but unused
src/psyclone/domain/lfric/__init__.py:63:1: F401 'psyclone.domain.lfric.arg_index_to_metadata_index.ArgIndexToMetadataIndex' imported but unused
src/psyclone/domain/lfric/__init__.py:65:1: F401 'psyclone.domain.lfric.lfric_kern.LFRicKern' imported but unused
src/psyclone/domain/lfric/__init__.py:66:1: F401 'psyclone.domain.lfric.lfric_loop.LFRicLoop' imported but unused
src/psyclone/domain/lfric/__init__.py:67:1: F401 'psyclone.domain.lfric.lfric_kern_call_factory.LFRicKernCallFactory' imported but unused
src/psyclone/domain/lfric/__init__.py:68:1: F401 'psyclone.domain.lfric.lfric_collection.LFRicCollection' imported but unused
src/psyclone/domain/lfric/__init__.py:69:1: F401 'psyclone.domain.lfric.lfric_fields.LFRicFields' imported but unused
src/psyclone/domain/lfric/__init__.py:70:1: F401 'psyclone.domain.lfric.lfric_global_reductions.LFRicGlobalMax' imported but unused
src/psyclone/domain/lfric/__init__.py:70:1: F401 'psyclone.domain.lfric.lfric_global_reductions.LFRicGlobalMin' imported but unused
src/psyclone/domain/lfric/__init__.py:70:1: F401 'psyclone.domain.lfric.lfric_global_reductions.LFRicGlobalSum' imported but unused
src/psyclone/domain/lfric/__init__.py:72:1: F401 'psyclone.domain.lfric.lfric_run_time_checks.LFRicRunTimeChecks' imported but unused
src/psyclone/domain/lfric/__init__.py:73:1: F401 'psyclone.domain.lfric.lfric_invokes.LFRicInvokes' imported but unused
src/psyclone/domain/lfric/__init__.py:74:1: F401 'psyclone.domain.lfric.lfric_scalar_args.LFRicScalarArgs' imported but unused
src/psyclone/domain/lfric/__init__.py:75:1: F401 'psyclone.domain.lfric.lfric_scalar_array_args.LFRicScalarArrayArgs' imported but unused
src/psyclone/domain/lfric/__init__.py:76:1: F401 'psyclone.domain.lfric.lfric_loop_bounds.LFRicLoopBounds' imported but unused
src/psyclone/domain/lfric/__init__.py:77:1: F401 'psyclone.domain.lfric.lfric_kern_metadata.LFRicKernMetadata' imported but unused
src/psyclone/domain/lfric/__init__.py:78:1: F401 'psyclone.domain.lfric.lfric_psy.LFRicPSy' imported but unused
src/psyclone/domain/lfric/__init__.py:79:1: F401 'psyclone.domain.lfric.lfric_invoke_schedule.LFRicInvokeSchedule' imported but unused
src/psyclone/domain/lfric/__init__.py:80:1: F401 'psyclone.domain.lfric.lfric_dofmaps.LFRicDofmaps' imported but unused
src/psyclone/domain/lfric/__init__.py:81:1: F401 'psyclone.domain.lfric.lfric_stencils.LFRicStencils' imported but unused
src/psyclone/domain/lfric/algorithm/psyir/__init__.py:41:1: F401 'psyclone.domain.lfric.algorithm.psyir.lfric_alg_invoke_call.LFRicAlgorithmInvokeCall' imported but unused
src/psyclone/domain/lfric/algorithm/psyir/__init__.py:43:1: F401 'psyclone.domain.lfric.algorithm.psyir.lfric_kernel_functor.LFRicBuiltinFunctor' imported but unused
src/psyclone/domain/lfric/algorithm/psyir/__init__.py:45:1: F401 'psyclone.domain.lfric.algorithm.psyir.lfric_kernel_functor.LFRicKernelFunctor' imported but unused
src/psyclone/domain/lfric/algorithm/psyir/__init__.py:47:1: F401 'psyclone.domain.lfric.algorithm.psyir.lfric_kernel_functor.LFRicBuiltinFunctorFactory' imported but unused
src/psyclone/domain/lfric/function_space.py:64:5: E266 too many leading '#' for block comment
src/psyclone/domain/lfric/kernel/__init__.py:40:1: F401 'psyclone.domain.lfric.kernel.scalar_array_arg_metadata.ScalarArrayArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:42:1: F401 'psyclone.domain.lfric.kernel.columnwise_operator_arg_metadata.ColumnwiseOperatorArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:44:1: F401 'psyclone.domain.lfric.kernel.common_arg_metadata.CommonArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:45:1: F401 'psyclone.domain.lfric.kernel.common_declaration_metadata.CommonDeclarationMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:47:1: F401 'psyclone.domain.lfric.kernel.common_meta_arg_metadata.CommonMetaArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:49:1: F401 'psyclone.domain.lfric.kernel.common_metadata.CommonMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:50:1: F401 'psyclone.domain.lfric.kernel.evaluator_targets_metadata.EvaluatorTargetsMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:52:1: F401 'psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:53:1: F401 'psyclone.domain.lfric.kernel.field_vector_arg_metadata.FieldVectorArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:55:1: F401 'psyclone.domain.lfric.kernel.inter_grid_arg_metadata.InterGridArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:57:1: F401 'psyclone.domain.lfric.kernel.inter_grid_vector_arg_metadata.InterGridVectorArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:59:1: F401 'psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:61:1: F401 'psyclone.domain.lfric.kernel.meta_args_metadata.MetaArgsMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:62:1: F401 'psyclone.domain.lfric.kernel.meta_funcs_arg_metadata.MetaFuncsArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:64:1: F401 'psyclone.domain.lfric.kernel.meta_funcs_metadata.MetaFuncsMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:65:1: F401 'psyclone.domain.lfric.kernel.meta_mesh_arg_metadata.MetaMeshArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:67:1: F401 'psyclone.domain.lfric.kernel.meta_mesh_metadata.MetaMeshMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:68:1: F401 'psyclone.domain.lfric.kernel.meta_ref_element_arg_metadata.MetaRefElementArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:70:1: F401 'psyclone.domain.lfric.kernel.meta_ref_element_metadata.MetaRefElementMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:72:1: F401 'psyclone.domain.lfric.kernel.operates_on_metadata.OperatesOnMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:74:1: F401 'psyclone.domain.lfric.kernel.operator_arg_metadata.OperatorArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:76:1: F401 'psyclone.domain.lfric.kernel.psyir.LFRicKernelContainer' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:77:1: F401 'psyclone.domain.lfric.kernel.scalar_arg_metadata.ScalarArgMetadata' imported but unused
src/psyclone/domain/lfric/kernel/__init__.py:78:1: F401 'psyclone.domain.lfric.kernel.shapes_metadata.ShapesMetadata' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:41:1: F401 'psyclone.domain.lfric.transformations.lfric_alg_trans.LFRicAlgTrans' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:43:1: F401 'psyclone.domain.lfric.transformations.lfric_alg_invoke_2_psy_call_trans.LFRicAlgInvoke2PSyCallTrans' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:45:1: F401 'psyclone.domain.lfric.transformations.lfric_extract_trans.LFRicExtractTrans' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:47:1: F401 'psyclone.domain.lfric.transformations.raise_psyir_2_lfric_alg_trans.RaisePSyIR2LFRicAlgTrans' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:49:1: F401 'psyclone.domain.lfric.transformations.lfric_loop_fuse_trans.LFRicLoopFuseTrans' imported but unused
src/psyclone/domain/lfric/transformations/__init__.py:51:1: F401 'psyclone.domain.lfric.transformations.raise_psyir_2_lfric_kern_trans.RaisePSyIR2LFRicKernTrans' imported but unused
src/psyclone/doxy_main_page.py:1:1: E266 too many leading '#' for block comment
src/psyclone/psyad/__init__.py:38:1: F401 'psyclone.psyad.adjoint_visitor.AdjointVisitor' imported but unused
src/psyclone/psyad/__init__.py:39:1: F401 'psyclone.psyad.main.main' imported but unused
src/psyclone/psyad/__init__.py:40:1: F401 'psyclone.psyad.tl2ad.generate_adjoint_str' imported but unused
src/psyclone/psyad/__init__.py:40:1: F401 'psyclone.psyad.tl2ad.generate_adjoint' imported but unused
src/psyclone/psyad/__init__.py:40:1: F401 'psyclone.psyad.tl2ad.generate_adjoint_test' imported but unused
src/psyclone/psyad/domain/common/__init__.py:40:1: F401 'psyclone.psyad.domain.common.adjoint_utils.find_container' imported but unused
src/psyclone/psyad/domain/common/__init__.py:40:1: F401 'psyclone.psyad.domain.common.adjoint_utils.create_adjoint_name' imported but unused
src/psyclone/psyad/domain/common/__init__.py:40:1: F401 'psyclone.psyad.domain.common.adjoint_utils.create_real_comparison' imported but unused
src/psyclone/psyad/domain/common/__init__.py:40:1: F401 'psyclone.psyad.domain.common.adjoint_utils.common_real_comparison' imported but unused
src/psyclone/psyad/domain/lfric/__init__.py:40:1: F401 'psyclone.psyad.domain.lfric.lfric_adjoint.generate_lfric_adjoint' imported but unused
src/psyclone/psyad/domain/lfric/__init__.py:41:1: F401 'psyclone.psyad.domain.lfric.lfric_adjoint_harness.generate_lfric_adjoint_harness' imported but unused
src/psyclone/psyad/transformations/__init__.py:37:1: F401 'psyclone.psyad.transformations.tangent_linear_error.TangentLinearError' imported but unused
src/psyclone/psyad/transformations/__init__.py:39:1: F401 'psyclone.psyad.transformations.assignment_trans.AssignmentTrans' imported but unused
src/psyclone/psyir/nodes/__init__.py:42:1: F401 'psyclone.psyir.nodes.acc_clauses.ACCAsyncQueueClause' imported but unused
src/psyclone/psyir/nodes/__init__.py:89:1: F401 'psyclone.psyir.nodes.acc_directives.ACCWaitDirective' imported but unused
src/psyclone/psyir/symbols/datatypes.py:410:9: E266 too many leading '#' for block comment
src/psyclone/psyir/symbols/datatypes.py:413:9: E266 too many leading '#' for block comment
src/psyclone/psyir/symbols/interfaces.py:220:9: E266 too many leading '#' for block comment
src/psyclone/psyir/symbols/interfaces.py:222:9: E266 too many leading '#' for block comment
src/psyclone/psyir/symbols/interfaces.py:225:9: E266 too many leading '#' for block comment
src/psyclone/psyir/symbols/interfaces.py:228:9: E266 too many leading '#' for block comment
src/psyclone/psyir/tools/__init__.py:44:1: F811 redefinition of unused 'DefinitionUseChain' from line 41
src/psyclone/psyir/tools/__init__.py:51:33: W291 trailing whitespace
src/psyclone/psyir/transformations/__init__.py:123:1: F401 'psyclone.psyir.transformations.scalarisation_trans.ScalarisationTrans' imported but unused
src/psyclone/psyir/transformations/__init__.py:141:1: F401 'psyclone.psyir.transformations.datanode_to_temp_trans.DataNodeToTempTrans' imported but unused
src/psyclone/psyir/transformations/__init__.py:144:1: F401 'psyclone.psyir.transformations.move_trans.MoveTrans' imported but unused
src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py:255:9: E266 too many leading '#' for block comment
src/psyclone/psyir/transformations/replace_reference_by_literal_trans.py:258:9: E266 too many leading '#' for block comment
Linting failed

Not sure if error on my setup or something else? But only happens on this branch.

@LonelyCat124 LonelyCat124 dismissed their stale review May 19, 2026 10:31

Linting issue?

@sergisiso
Copy link
Copy Markdown
Collaborator Author

These are the flake8 exceptions listed in the settings, by default flake8 does not read pyproject setting but I had introduced the flake8-pyproject that is supposed to do that. But apparently is conflicting with flake8 if it is already installed in the environment. I will revert this for now as I want to discuss other solutions when I am back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants