If you're forking it, then I believe that SO support -- as well as support
for old versions of SA -- are interesting.

If you're keeping it tied to TG2, then I don't see a reason to fork it into
a separate package.

What I mean is: if decoupled, then maintaining current features is needed --
even though they are not supported by TG2; if not decoupled then lets not
create a new dependency.

--
Jorge Godoy     <[email protected]>


On Sun, Apr 26, 2009 at 5:54 AM, Jorge Vargas <[email protected]>wrote:

>
> Hello Everyone
>
> here is an update on my work, and at this point I need feedback, to
> see where we are going to end up.
>
> First of all a quick summary.
>
> TurboJson provides the following
> 1- a buffet API
> 2- a JSONEncoder subclass that implements methods for
> 3- any object with __json__
> 4- date and datetime objects
> 5- decimal.Decimal
> 6- SQLObject
> 7- SQLAlchemy (0.5, 0.4 and 0.3)
> 8- SQLAlchemy ResultProxy and RowProxy (the objects used by sqlalchemy.sql)
> 9- any third party object with the @jsonify.when() decorator.
> 10 - priority overrides
>
> 11- TG2 currently still uses the is still using the buffet rendering API.
>
> Therefore at this point we could get rid of TurboJson and incorporate
> that functionality directly into TG2 (tg/json.py for example) but I
> think this extra library is good as standalone as it could provide a
> default set of types for use outside TG, so I think it should live on
> as a tiny api (like webflash), although by this point I think it
> should be renamed.
>
> The patches. technically it's 2 patches one for tg2.1 and another for
> TurboJson although the second is pretty much a complete rewrite.
> $ cat jsonify.py jsonsupport.py | wc -l
> 93
> $ svn diff jsonify.py jsonsupport.py | wc -l
> 200
>
> The state of my patch,
> What is ok
> - it removes 1 and 11 from tg2.1
> - It provides 2 but without rule dispatch, it simply uses a subclass
> with a default method that tests the object for types and return the
> proper conversion.
> - it provides conversions for 3,4,5, 8 and 7 for SA0.5
>
> What is missing?
> SO (6)
> - There is no implementation* for SQLObject, but could be added back in
> easily
>
> SA 0.4 and SA 0.3 support (7)
> - I haven't tested this code with older version of SA
>
> Third Party Object (9)
> - This is not implemented yet*
>
> priority overrides (10)
> - It is my understanding this is a rule-dispatch extension to allow
> resolution of conflicting rules.
>
> * This could be easily implemented I'm just not sure if it's worth it
> but the procedure will be simply to extend GenericJSON to provide SO
> and expose that class inside TurboJson and to write some documentation
> on how to do this. And then provide a hook for replacing the default
> implementation or simply change the public api from TurboJson to be
> more flexible
>
> in the TG2 part I'm having only 2 test failing.
> 1- Should be totally unrelated and seems to me like a bug I uncovered
> with this change test_template_override
> 2- This is really important what should render_json do when the
> objects in template_vars are not valid JSON? currently the test fails
> with a generic simplejson encoding error (TypeError) which if run on a
> real server should send a 500 error, but it is not happening.
>
> So in general I think we should either
> a- fork TurboJson into another package (names welcome) which will only
> support what it supports now (with the extending pending, but with a
> small change in the API, that will probably make it equal to
> simplejson.dumps) how about VargasJson hehe j/k
> b- patch TurboJson with my code and add a TG1 compatibility layer.
>
> IMO my patch/fork covers 95% of the interesting use cases and with the
> API change for extending it. it should over that 5% missing, since we
> should drop support for SO, SA4 and SA3 since TG2 doesn't supports
> them.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to