Hi!
I found an error in your implementation in fiat, Nico. And I'm having some
trouble removing it. It is an error for all linear elements (which is not
tested by fiat), and can be easy be reconstructed by running
element = FiniteElement("Lagrange", interval, 1)
The problem seems to be that tabulate_derivative in LineExpansionSet is not
changed to return the same as tabulate_derivative in TriangleExpansionSet
and TetrahedronExpansionSet. Is there an easy fix for this?
Aslak
2014-06-29 22:31 GMT+02:00 Nico Schlömer <[email protected]>:
> > Changing idioms
> > 2py3 changes idioms that are "outdated". When running the script it
> changes
> > type(t) != type(q) to not isinstance(t, type(q)). Is this this
> something I
> > should do?
> >
> > Python syntax
> > The 2to3 scripts have the possibility to change the comma-syntax to
> correct
> > python syntax. For example, it changes (a,b) to (a, b). Should I run
> this on
> > the files as well?
>
> Those are things that Python2 linters like
>
> pep8
> pyflakes
> flake8
>
> usually bring up too. I would say that getting FEniCS clean w.r.t. to
> those three (largely overlapping) improves the code readability and
> quality.
>
> Cheers,
> Nico
>
>
> On Fri, Jun 27, 2014 at 9:21 AM, Aslak Bergersen
> <[email protected]> wrote:
> > Hi!
> >
> > I have some questions about the supporting to python 3.x. You can take a
> > look at the changes I have done if you want (or need).
> >
> > Testing with python 3.3
> > I have installed python 3.3 such that I can use it when I want (e.g. py3
> > script.py). However, when I'm running the tests all the dependencies are
> > missing (For now I'm running python -3). So how do I build it with
> python 3?
> >
> > Support python 3.1
> > callable() returned in python 3.2, so there is no need to change it,
> unless
> > we want to support python 3.1?
> >
> > Changing idioms
> > 2py3 changes idioms that are "outdated". When running the script it
> changes
> > type(t) != type(q) to not isinstance(t, type(q)). Is this this
> something I
> > should do?
> >
> > Python syntax
> > The 2to3 scripts have the possibility to change the comma-syntax to
> correct
> > python syntax. For example, it changes (a,b) to (a, b). Should I run
> this on
> > the files as well?
> >
> > Six module
> > I have used the six modules to make it compatible with 2.x and 3.x, but
> I'm
> > a bit unsure where to put it, or how to properly include it to the
> project
> > such that all files have access.
> >
> > --
> > Mvh
> > Aslak Bergersen
> > 993 22 848
> >
> >
> > 2014-05-23 12:56 GMT+02:00 Martin Sandve Alnæs <[email protected]>:
> >
> >> UFL doesn't use __metaclass__ but it uses __new__, is the behaviour of
> >> that the same? I'd like to clean up those parts at some point but I
> won't
> >> have time before the summer.
> >>
> >> If we have to change behaviour of Expression we should consider doing
> that
> >> simultaneously with the introduction of an Expression-like ufl type
> which
> >> will have several advantages.
> >>
> >> Martin
> >>
> >>
> >> On 23 May 2014 12:24, Johan Hake <[email protected]> wrote:
> >>>
> >>> And then there is the change of syntax for metaclasses in Python3...
> Just
> >>> goggle metaclass python 3 and there are several pointers to the
> different
> >>> syntax.
> >>>
> >>> Maybe this will be a good point to throw out the usage of metaclasses
> in
> >>> DOLFIN? What we need is to add a distinction between
> CompiledExpression and
> >>> Expression. I have tried this before with no luck ;)
> >>>
> >>> Johan
> >>>
> >>>
> >>> On Thu, May 22, 2014 at 11:40 AM, Martin Sandve Alnæs
> >>> <[email protected]> wrote:
> >>>>
> >>>> Yes, and if we're lucky we can get to that point without as much work
> as
> >>>> sympy, since we don't have as much code.
> >>>>
> >>>> The 2to3 tool can do selective changes like change print "" to
> print("")
> >>>> and fix exception syntax, which are compatible with 2.7.
> >>>>
> >>>> It can also do things like change "a = dict.iteritems()" into "a =
> >>>> dict.items()" which changes the memory usage when run on 2.7. These
> >>>> differences can instead be resolved by using the python module "six"
> which
> >>>> implements cross-compatible helper functions for a lot of things.
> >>>>
> >>>> Btw when we switch we should go straight to python 3.3-3.4.
> >>>> Supporting 3.0-3.2 side by side with 2.7 is apparently harder.
> >>>>
> >>>> (Note to Aslak: read the link from Jan!)
> >>>>
> >>>> Martin
> >>>>
> >>>>
> >>>> On 22 May 2014 11:22, Jan Blechta <[email protected]> wrote:
> >>>>>
> >>>>> Note that there is also an approach of having simultaneously 2.x and
> >>>>> 3.x
> >>>>> compatible codebase without a need of using 2to3. Allegedly, this is
> >>>>> used in SymPy, NumPy and SciPy projects. See
> >>>>>
> >>>>>
> http://ondrejcertik.blogspot.cz/2013/08/how-to-support-both-python-2-and-3.html
> >>>>>
> >>>>> Jan
> >>>>>
> >>>>>
> >>>>> On Thu, 22 May 2014 11:05:43 +0200
> >>>>> Martin Sandve Alnæs <[email protected]> wrote:
> >>>>>
> >>>>> > The plan for the initial work here is to keep the code python 2.7
> >>>>> > compatible but ready for a later swift switch to 3 only. I suggest
> we
> >>>>> > release fenics 1.5 with python 2.7 compatibility intact but
> >>>>> > convertible to python 3 by just running py2to3. Otherwise there
> will
> >>>>> > be too much simultaneous breakage. Then we can discuss whether we
> >>>>> > leave python 2.7 behind in fenics 1.6 or not.
> >>>>> >
> >>>>> > However, I haven't thought about the swig side in dolfin, and as
> >>>>> > Johan
> >>>>> > mentions keeping the Python CAPI code compatible is not covered by
> >>>>> > py2to3. I'll discuss this with Johan and Aslak.
> >>>>> >
> >>>>> > Martin
> >>>>> >
> >>>>> >
> >>>>> > On 22 May 2014 10:49, Garth N. Wells <[email protected]> wrote:
> >>>>> >
> >>>>> > > Nice. Do we want to support Python 2.7 and 3, or would it be more
> >>>>> > > sustainable to go all Python 3? My preference is for simplicity
> and
> >>>>> > > low maintenance, which points to Python 3 only support.
> >>>>> > >
> >>>>> > > Garth
> >>>>> > > On Thu, 22 May, 2014 at 9:39 AM, Martin Sandve Alnæs
> >>>>> > > <[email protected]> wrote:
> >>>>> > >
> >>>>> > >> We have a summer intern at Simula, Aslak Bergersen,
> >>>>> > >> who will work on preparations for python 3 support in FEniCS,
> >>>>> > >> as well as some other FEniCS tasks, from late June and
> >>>>> > >> throughout July.
> >>>>> > >>
> >>>>> > >> The preparations for python 3 involves mainly:
> >>>>> > >> - Replacing ScientificPython for AD in FIAT
> >>>>> > >> - Applying and committing backwards compatible parts of py2to3
> >>>>> > >> - Replacing several functions such as dict.iteritems with
> >>>>> > >> six.iteritems in UFL and possibly FFC to make sure we keep the
> >>>>> > >> same performance and memory behaviour with python 2 and 3.
> >>>>> > >>
> >>>>> > >> I will be on vacation part of his time here so please
> >>>>> > >> help him out if he has questions to the list.
> >>>>> > >>
> >>>>> > >> Martin
> >>>>> > >>
> >>>>> > >
> >>>>> > >
> >>>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> fenics mailing list
> >>>> [email protected]
> >>>> http://fenicsproject.org/mailman/listinfo/fenics
> >>>>
> >>>
> >>
> >
> >
> >
> > --
> > Mvh
> > Aslak Bergersen
> > 993 22 848
> >
> >
> > _______________________________________________
> > fenics mailing list
> > [email protected]
> > http://fenicsproject.org/mailman/listinfo/fenics
> >
>
--
Mvh
Aslak Bergersen
993 22 848
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics