Page 1 of 1

Development status update (August 2019)

Posted: Tue Sep 03, 2019 7:33 pm
by Ayuto
It's time for another development status update! :smile:

  • Fixes:
    • null
  • Additions:
    • nada
  • Removals:
    • niente
  • Changes:
    • nothing

The full changelog can be found here:
https://github.com/Source-Python-Dev-Team/Source.Python/compare/master@%7B2019-08-01%7D...master@%7B2019-09-01%7D

Re: Development status update (August 2019)

Posted: Sat Nov 23, 2019 8:10 pm
by BackRaw
So does this mean SP is feature complete (for now)?

Re: Development status update (August 2019)

Posted: Sun Nov 24, 2019 1:47 am
by L'In20Cible
BackRaw wrote:So does this mean SP is feature complete (for now)?

It really just means no development was done that month. But as far as SP being feature complete, I'd say so. I mean, you can pretty much do everything that is permitted server-side already. There might be bug fixes/optimizations or convenience modules being added from time to time but I don't think there will be anything revolutionary being implemented in a near future; simply because there is so much that can be done server-side. And if something is not directly implemented, all the tools are there to get it done. However, something I would like to get done sooner rather than later though, is probably update to Python 3.8 which contains a lot of cool stuff. Anyways, why did you ask, was there a specific feature you wanted?

Re: Development status update (August 2019)

Posted: Tue Nov 26, 2019 8:38 am
by DeaD_EyE
And if something is not directly implemented, all the tools are there to get it done. However, something I would like to get done sooner rather than later though, is probably update to Python 3.8 which contains a lot of cool stuff. Anyways, why did you ask, was there a specific feature you wanted?


This is nice. Python 3.8 has cool new stuff.

Re: Development status update (August 2019)

Posted: Wed Nov 27, 2019 5:23 pm
by decompile
Yaaay for python 3.8 +1

Re: Development status update (August 2019)

Posted: Thu Nov 28, 2019 10:11 pm
by Ayuto
Just out of curiosity: what features of 3.8 would you like to use?

Re: Development status update (August 2019)

Posted: Fri Nov 29, 2019 7:19 pm
by L'In20Cible
Ayuto wrote:Just out of curiosity: what features of 3.8 would you like to use?

I personally like the following features that were added in 3.7-3.8:

  • Module's __getattr__ and __dir__ support.
  • The contextvar module.
  • The f-strings debugging features.
  • The dataclasses.
  • Assignment expressions.

And probably some more I don't remember.. :grin:

Re: Development status update (August 2019)

Posted: Sun Dec 01, 2019 12:08 pm
by DeaD_EyE
Dataclasses, contextvars and importlib.ressources were introduced with Python 3.6.

https://docs.python.org/3/whatsnew/3.8.html
  • Assignment expressions
  • Positional-only parameters
  • Parallel filesystem cache for compiled bytecode files
  • Debug build uses the same ABI as release build
  • f-strings support = for self-documenting expressions and debugging
  • PEP 578: Python Runtime Audit Hooks
  • PEP 587: Python Initialization Configuration
  • Vectorcall: a fast calling protocol for CPython
  • Pickle protocol 5 with out-of-band data buffers

I guess the PEP587 could be very interesting for this project.

What I really like is the ongoing improvement of the math module:
https://docs.python.org/3/whatsnew/3.8.html#math
https://docs.python.org/3/whatsnew/3.7.html#math
https://docs.python.org/3/whatsnew/3.6.html#math
https://docs.python.org/3/whatsnew/3.5.html#math

To calculate distances, we've used often constructs like this:

Code: Select all

def calc_dist1(x1,y1,z1, x2, y2, z2):
    return math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2 + (z2 - z1) ** 2)


The function math.hypot took only 2 arguments. Since Python 3.8 you can have as many arguments as you want, so you can also calculate multidimensional distances. Previous there was a funny change: Allow functions to take more as 255 arguments.

Code: Select all

def calc_dist2(x1,y1,z1, x2, y2, z2):
    return math.hypot(x2 - x1, (y2 - y1), (z2 - z1))


But wait, they added also math.dist(p, q)

Code: Select all

def calc_dist3(x1,y1,z1, x2, y2, z2):
    return math.dist((x1, y1, z1), (x2, y2, z2))


The point is, if you have the possibility to use a newer version of the language, you should do it.
This can, if adapted, improve existing code. Making it more readable and gaining more performance.
I still not using your plugin, because I stopped hosting game servers, but I like to see a Project which supports modern Python.
The examples above is just a small area. I wish I had this functions in the Software I'm working with, but they use Stackless Python 2.7.
Mostly all features I like, are not supported there. This sucks really and we have paid much money for the licenses (Visual Components).
It sucks so much, that I'm thinking to use Blender for simulation. Hopefully the last change saves me to write Code :-D

Re: Development status update (August 2019)

Posted: Sun Dec 01, 2019 12:32 pm
by L'In20Cible
DeaD_EyE wrote:Dataclasses, contextvars and importlib.ressources were introduced with Python 3.6.

No, they were added in 3.7, and since this project is still running 3.6.1 they are currently not available features. :smile:

Re: Development status update (August 2019)

Posted: Thu Dec 12, 2019 12:52 pm
by BackRaw
L'In20Cible wrote:
BackRaw wrote:So does this mean SP is feature complete (for now)?

It really just means no development was done that month. But as far as SP being feature complete, I'd say so. I mean, you can pretty much do everything that is permitted server-side already. There might be bug fixes/optimizations or convenience modules being added from time to time but I don't think there will be anything revolutionary being implemented in a near future; simply because there is so much that can be done server-side. And if something is not directly implemented, all the tools are there to get it done. However, something I would like to get done sooner rather than later though, is probably update to Python 3.8 which contains a lot of cool stuff. Anyways, why did you ask, was there a specific feature you wanted?

Great, thanks for the info! I was just curious, that's all. :D