Embarcadero / P4D-Data-Sciences

A collection of lightweight Python wrappers based on Python4Delphi simplifying Data Sciences development with Delphi
MIT License
92 stars 21 forks source link

Added CV2_Contrib, H5Py, Pandas, Pillow, PSUtil and SciPy #14

Closed peardox closed 2 years ago

peardox commented 2 years ago

So actually it's six more (CV2_Contrib as an afterthought)

I've run some very basic tests and at least PSUtils does sensible things when told to...

  var t: Variant  := PSUtil.psutil.cpu_count();
  Log('api returned ' + t);

In my case returning 16... which is correct (8c/16t)

Spotted a bug in earlier version of CV2_Contrib using np as module name - it displayed cv2 as the PyModuleName but I'm cutting + pasting to make these an missed the fact that Numpy declared the property np - changing this to cv2 etc made everything work as expected (so I assume the untested yet ones are OK)

All the modules included in this bunch are important.

Torch (and other things) import Pillow anyway but it made sense to also have a component for it so I threw that one together as well

Everything installs in the IDE under the 'Python - Data Science Ecosystem' branch

I'll go add a note to the issue I fixed recently where I had the wrong variant (duhh)

peardox commented 2 years ago

Just tested that issue about cv2 with CV2_Contrib - works nicely (using cv2 as property - previous bug in my component fixed so property properly named)

lmbelo commented 2 years ago

@peardox thank you for your contribution. I'm only finishing some tasks before reviewing and accepting it.

peardox commented 2 years ago

I've tested the components I could write quick tests for as outlined above

Doubt there will be any problems as the things are simple enough to start with. I will be trying Pillow out soon though...

lmbelo commented 2 years ago

I've tested the components I could write quick tests for as outlined above

Doubt there will be any problems as the things are simple enough to start with. I will be trying Pillow out soon though...

Can we create a test project covering up all these packages? We can get started with simple module importation and basic stuff.

peardox commented 2 years ago

I was going to start by writing a Tutorial showing how to install all the libraries then illustrate use with 'HelloCPU' which would use PSUtil to show machine status (CPU cores/ threads/ memory/ VM and that kinda thing) with both Python and Module versions of the code to show that you can almost re-write the python in Delphi.

After that I was thinking of Pillow to demo some basic Image stuff

The problem is that the libraries all do very different things so while you might come up with a way to use several in a constructive way using all of them would be pure demo for demo sake (which is actually also worthwhile...)

My main project uses a load of libraries and will be open source (it also use Skia though...)

lmbelo commented 2 years ago

Let's break it down to separated PR's with smaller commits in future requests, it gets easier to merge.

peardox commented 2 years ago

I've just done CV2Contrib but not tested yet

lmbelo commented 2 years ago

I've just done CV2Contrib but not tested yet

I've just done CV2Contrib but not tested yet

Do you want to update this pull request with it? If possible, remove the existing .dproj files.