Giter VIP home page Giter VIP logo

prodius's Introduction

Hello, world! ๐Ÿ‘‹

I'm a passionate technologist with a strong background in programming, data analytics, and IT support. I love solving complex problems and learning new technologies.

Certifications ๐ŸŽ“

  • Google Project Management
  • Google IT Support
  • Google Data Analytics
  • Google IT Automation with Python

Skills ๐Ÿ’ป

  • Programming: Python (superpower), C/C++
  • Data Analytics: Spreadsheets, SQL, Python
  • IT Support: Troubleshooting and other IT duties

Projects ๐Ÿš€

I have more than 10 personal projects on GitHub, mostly in Python and a few in C/C++. Some of my Python projects have been distributed to PyPI.

Other Technologies ๐ŸŒ

  • Computer graphics with Blender 3D
  • GIMP for image editing and retouch
  • Inkscape for vector image generation

Keep exploring and happy coding!

prodius's People

Contributors

sekgobela-kevin avatar

Stargazers

 avatar

Watchers

 avatar

prodius's Issues

Iterables cannot be more than 11

Iterables supplied to prodius.product() are limited to 11.
The number needs to atleast be large to hold more iterables.

These two cases wont work as iterables are larger than 11.

import prodius

product = prodius.product(*[range(10)]*12)
import prodius

product = prodius.product(range(10), repeat=12)

Multiple grouped product items feature

This is related to issue #17 of perock which was not added to prodius.
This issue depends on issue #3 as grouped cartesian product is not yet available in broote.

What needed is to have multiple grouped items alternating each other over waiting for each other.
As already said, this feature may depend on issue #3 which is not yet implemented.

BEFORE:

prodius.product([0,1], [2,3]) -> [(0, 2), [0, 3), (1,2), (1,3)]

AFTER:

prodius.product([2,3], group=[0,1], max_multiple=2) -> [(0, 2), [1, 2), (0,3), (1,3)]

group argument as in #3 causes product results to be grouped but here they are not.
max_multiple argument should create new iterable that flattens everything back normal.

Realise that results are similar but not differ by order.

Bug within to_callable() method

Product.to_callable() method returns callable version of iterable.
But when iterable is passed, the iterable is just wrapped into function.
This can cause problems if the iterable is iterator which will get exausted.

@classmethod
def to_callable(cls, iterable):
    # Creates callable_ from iterable if not already callable_.
    if callable(iterable):
        return iterable
    else:
        # Problem/bug is here.
        # What if iterable get exausted(especially iterator)?
        return lambda: iterable

Grouped cartesian product results support

Instead of having result of cartesian poduct as a very large iterator.
The result can be grouped by another iterable items which wil result in 3D iterable instead of 2D iterable.

prodius.product([0,1], [2,3]) -> [(0, 2), [0, 3), (1,2), (1,3)]

# First iterable was used for grouping
product.product_group([0,1], [2,3]) ->[[(0, 2), (0, 3)], [(1,2), (1,3)]] 

# Same thing be archieved as
product.product_group([2,3], group=[0,1]) ->[[(0, 2), (0, 3)], [(1,2), (1,3)]] 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.