On Sunday, May 3, 2020 at 11:18:12 PM UTC-7, vdelecroix wrote: > > Le 04/05/2020 à 02:27, Michael Orlitzky a écrit : > > On 5/3/20 8:09 PM, Matthias Koeppe wrote: > >> I propose the following goal for Sage 9.3. > >> > >> Modularize sagelib so that individual parts of it can be built and run > >> with a much smaller set of libraries. > > > > it's going to be difficult given the widespread use of > > lazy_import to create circular references. We're probably looking at a > > lot of refactoring before any useful modules can be excised. > > > > A good first step might be to ban new circular imports, but that means > > that e.g. parent structures and their element classes would need to be > > defined in the same files
My proposal does NOT say that every Python module should become a separate Python package. It is not a prerequisite to fight against all circular imports. A parent class and its corresponding element class would certainly not be separated into separate packages. But of course they can stay in separate modules (source files) as they are now. > The category framework can not really be separated from the > Parent/Element/CategoryObject (e.g. coercion is involved in > comparisons and binary operations). Thanks, yes, I am aware of this. That's why in my proposal all of these would be in the same package sage_objects. > And the former can not > live without the integers (e.g. the output of .cardinality() > expects an integer). Noted. This will need a solution. > More dramatically, in sage.categories > > bimodules imports QQ, RR > classical_crystals imports SR > finite_coxeter_groups imports QQbar > > One can try to not populate the whole category system. > Good points. Given the current status of the library, I don't think this > is reasonable to state it as a milestone goal. But still, it > is desirable to introduce modularity. Starting with a > sage-core / sage-rest would be nice. > Well, the technical design of this modularization, even if not completely implemented within 9.3, will inform work on https://trac.sagemath.org/ticket/21507 (Meta-ticket: Make sagelib a pip-installable Python source package, listed on PyPI). -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/12452883-76e6-43d3-a085-4a7a1d881d8e%40googlegroups.com.