splitting dynamics functionality in morphism.py into separate files

20 views
Skip to first unread message

Ben Hutz

unread,
Mar 3, 2013, 1:57:11 PM3/3/13
to sage-...@googlegroups.com
As some of you are aware the (arithmetic) dynamical systems community has been working on dynamical system functionality for Sage. As the initial ticket has been reviewed (#13130) I've opened tickets for the remaining (completed) functionality: 14217, 14218, 14219.

I've opened the three tickets at once and up-loaded the patches even though they are not quite ready for review to make the case for splitting morphism.py into several files. The reason is that morphism.py is getting crowded. With just 13130 it is still a nice compact file, but it seems like it is getting overloaded with (14127,14218,14219), especially since there remains quite a bit of dynamics functionality that has been published recently, but not implemented as patches (beyond these 3 tickets). I know that some history is lost as code when moved around, but I propose doing the split now (as part of #14217) before more dynamics functionality is added to morphism.py. This would also leave morphism.py as a more generic file without the dynamics specific functionality it in.

If this is reasonable, I'd like some input on where to move these files.

The maximum change would be an "affine_space" and a "projective_space" folder in sage\schemes\ each with point and polynomial morphism files for rings/field/finite_fields (so a total of 12 new files and 2 folders) and some rearrangement of where the affine/projective functionality lives (it in currently in schemes/generic).

The minimum I propose would be making 4 new files in schemes/generic one each for affine/projective points/morphisms.

I think the major division makes sense as there are plans for a significant amount of  dynamics functionality. But, as this proposal is more than just implementing a couple functions, I am seeking the input/experience of sage-devel.

I look forward to your input.

Sincerely,
  Ben Hutz

Jean-Pierre Flori

unread,
Mar 4, 2013, 4:29:08 AM3/4/13
to sage-...@googlegroups.com


On Sunday, March 3, 2013 7:57:11 PM UTC+1, Ben Hutz wrote:
As some of you are aware the (arithmetic) dynamical systems community has been working on dynamical system functionality for Sage. As the initial ticket has been reviewed (#13130) I've opened tickets for the remaining (completed) functionality: 14217, 14218, 14219.

I've opened the three tickets at once and up-loaded the patches even though they are not quite ready for review to make the case for splitting morphism.py into several files. The reason is that morphism.py is getting crowded. With just 13130 it is still a nice compact file, but it seems like it is getting overloaded with (14127,14218,14219), especially since there remains quite a bit of dynamics functionality that has been published recently, but not implemented as patches (beyond these 3 tickets). I know that some history is lost as code when moved around, but I propose doing the split now (as part of #14217) before more dynamics functionality is added to morphism.py. This would also leave morphism.py as a more generic file without the dynamics specific functionality it in.

If this is reasonable, I'd like some input on where to move these files.

The maximum change would be an "affine_space" and a "projective_space" folder in sage\schemes\ each with point and polynomial morphism files for rings/field/finite_fields (so a total of 12 new files and 2 folders) and some rearrangement of where the affine/projective functionality lives (it in currently in schemes/generic).
Not sure it is related, but finite field lattices may be finally merged in #8335.
It would be great if the two changesets were not completely conflicting.

Ben Hutz

unread,
Mar 4, 2013, 8:21:29 AM3/4/13
to sage-...@googlegroups.com
I took a quick look at 8335 and it doesn't look like there would be any conflict in the changesets.
Reply all
Reply to author
Forward
0 new messages