Comments (10)
I've split the commits, 4448a8d is a 2.6 -> 2.7 upgrade, and f0a2d2e is 2.7 -> 3.4+.
from limbo.
See https://python3statement.org for a list of projects which have pledged to drop support for Python 2 on or before it's EOL on 2020-01-01.
And pyupgrade is a useful tool to help upgrade Python syntax for newer language versions.
from limbo.
Thankfully, the syntax is already compatible with python 3; this would be a matter of dropping support for python 2. It would indeed be very nice to switch to f-strings, but I don't think there's a whole lot to gain otherwise?
Addition of typing that could easy the coding of plugins and new functionality;
I do think we could stand to add some type notes for sure, but we could do that in a python 2.7 compatible way if we wanted to. (I think? I just kind of vaguely recall that either 2.7 supports the syntax, or is it that you have to use a weird comment-type syntax?)
Maybe asyncio can also improve somethings?
I've actually played around with an asyncio branch, and I found asyncio to be a confusing mess.
It actually kind of makes me want to convert limbo to go tbh, but I'm much too lazy to do that.
If somebody else wants to make an asyncio branch that works, I'm all ears.
Maybe other niceties that I have forgot (iterators everywhere, Enums,...)
This is the crux of the matter, I think; it's not much pain to support both python 2.7 and python 3 ATM.
So I'm open to it but don't feel like python 2.7 support is really dragging me down? Mostly it makes me use ugly format strings.
That said, I'm python 3 all the way, so if you can convince me that there's real value to be gained I'll be happy to mark a revision as the last one that supports python 2.7 and move forward with 3 only.
from limbo.
Ultimately, you'll want/need to drop python 2.7 eventually. With Django and other larger frameworks already having dropped support, it will hasten the rest of the community to do so as well.
Why not get it done now? All it really should need is simply removing python 2.7 from travis, and telling people to run it in python 3 instead.
from limbo.
I will want to drop python 2.7 eventually for sure, I don't see who I benefit by dropping it today, you know?
from limbo.
Just as an example, here's what it could look like after removing a few things manually (like 2.7 Travis) and then running pyupgrade
:
from limbo.
right, it changes the things I expected (I put in all the things that keep it compatible, so it's no surprise haha). Basically f-strings would be nicer plus it removes the one utility function that does python2/3 string handling, and I can remove the makefile switch.
Still doesn't seem like that big a win to me?
from limbo.
All the {0}
s btw are because I used to support python 2.6, because it was the standard RH python for a long time, now that was a PITA I dropped as soon as possible
from limbo.
I will want to drop python 2.7 eventually for sure, I don't see who I benefit by dropping it today, you know?
We could argue this till 2.7 reaches EOL, but do we really want to keep being stuck in 2.7?
I do think we could stand to add some type notes for sure, but we could do that in a python 2.7 compatible way if we wanted to. (I think? I just kind of vaguely recall that either 2.7 supports the syntax, or is it that you have to use a weird comment-type syntax?)
We could add some weird comment syntax yes, but I think some tools will maybe miss it or not work as good as typings from python 3.
Let's do a modest proposal and wait a couple of weeks to see if anyone manifests interest?
In order to increase the reachability of this matter to limbo users, maybe merge this warning: eSoares@b755e9d
from limbo.
Closed by #186
from limbo.
Related Issues (20)
- Please set the OXFORD_APP_ID and OXFORD_APP_KEY environment variables to valid (free) Oxford dictionary API keys HOT 1
- Oxford V1 API is deprecated.
- slackclient not compatible with files.upload HOT 1
- Remove DarkSky dependency in Weather Plugin HOT 4
- Migrate away from deprecated API calls HOT 2
- upload packages with twine
- Make it easy to thread limbo responses HOT 2
- Travis is now unusably slow HOT 1
- plugin idea: emoji added/changed bot HOT 1
- convert to github actions
- add --version flag
- !cat
- !turtle
- !bunny
- Lunch status updater
- unsplash plugin
- use socket mode instead of rtm
- Capability to add custom plugins without removing included plugins HOT 4
- Lack of support for python 3.12 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from limbo.