On 06/29/2013 02:07 AM, Nick Coghlan wrote:
On 29 June 2013 10:09, Ethan Furman <[email protected]> wrote:
Am I making this too complicated?  Can I just do my renaming in the setup.py
script before calling the setup function?

You can't easily create a wheel that way.

What would actually be better is if you could avoid the need for any
Python 3 specific syntax in the first place. Are you sure you can't
tweak the code to use types.new_class or an inner function call to
avoid the syntax problems?

For example, Python 2 can do keyword only arguments like this:

     def _unpack_args(module=None, type=None):
         return module, type

     class CallableWithKeywordOnlyArgs
         def  __call__(cls, value, names=None, **kwargs):
             module, type = _unpack_kwargs(**kwargs)

The introspection support and error messages aren't as good as those
for true Python 3 keyword-only arguments, but they're not *that* bad.

There's a reason shared syntax compatible 2/3 source has become the
most popular approach for straddling the 2/3 boundary - the
alternatives are all lousy by comparison. Conditional distribution of
version specific source files is far more painful than jumping through
a few syntactic hoops to stay within the common 2/3 subset of the
language.

I was hoping to provide good examples of Python 3 code (as opposed to good examples of 2/3 boundary straddling), but yeah, it's danged difficult!

Is there a way to have both a Py2 distribution and a Py3 distribution available 
on PyPI?

--
~Ethan~
_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to