This has been briefly discussed before, but we need to form a consensus on
whether we vendor or depend on the multipledispatch
<https://github.com/mrocklin/multipledispatch> library for the following
PR: https://github.com/django/django/pull/6395
The brief overview of the patch is to allow operators on different
expressions to generate different SQL. An example:
.annotate(combined=F('cost') + F('tax')) -> SELECT .. cost + tax as
combined ..
.annotate(combined=F('first_name') + F('last_name')) -> SELECT ..
CONCAT(first_name, last_name) ..
As you can see, the operators are the same (+) but most (all?) SQL dialects
don't allow you to use the + symbol for concatenation.
As for whether or not to add the dependency we can look
to https://github.com/django/deps/blob/master/draft/0007-dependency-policy.rst
for guidance. I'll copy the guidelines below:
- Stable *- there aren't many releases. Seems to keep up to date with
Python releases but not much else.*
- Maintained *- last release was 3 months ago, but see point above.*
- Takes security seriously* - N/A to date*
- Works on all the same platforms as Django does* - Yes*
- Backwards compatible in minor releases*. - Yes*
- Confident that point-releases of won't break Django. *- Yes.*
I believe multipledispatch meets all the criteria for being an acceptable
dependency. I don't see much value in vendoring the library if we're going
to need to remember to keep it up to date with Django releases. The
precedent was set with pytz recently.
Does anyone have a problem with declaring multipledispatch as a dependency?
Thanks
--
You received this message because you are subscribed to the Google Groups
"Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/d46cfb10-1698-4534-8a0f-ec5d75b5226d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.