From 6a0aff765280e1f9772b1d92e13f8b39cd95053a Mon Sep 17 00:00:00 2001 From: lukew3 Date: Mon, 19 Oct 2020 12:16:03 -0400 Subject: [PATCH] Improved module format --- mathgenerator/__init__.py | 20 +++++++++++++++++++ mathgenerator/funcs/__init__.py | 2 +- .../funcs/{additionFunc.py => addition.py} | 4 +++- mathgenerator/mathgen.py | 11 +++++----- test.py | 2 +- 5 files changed, 31 insertions(+), 8 deletions(-) rename mathgenerator/funcs/{additionFunc.py => addition.py} (80%) diff --git a/mathgenerator/__init__.py b/mathgenerator/__init__.py index e69de29..9a5f3ea 100644 --- a/mathgenerator/__init__.py +++ b/mathgenerator/__init__.py @@ -0,0 +1,20 @@ + +genList = [] + +class Generator: + def __init__(self, title, id, generalProb, generalSol, func): + self.title = title + self.id = id + self.generalProb = generalProb + self.generalSol = generalSol + self.func = func + genList.append([id, title, self]) + + def __str__(self): + return str(self.id) + " " + self.title + " " + self.generalProb + " " + self.generalSol + + def __call__(self, **kwargs): + return self.func(**kwargs) + +def getGenList(): + return genList diff --git a/mathgenerator/funcs/__init__.py b/mathgenerator/funcs/__init__.py index 4bfd99e..0cca17b 100644 --- a/mathgenerator/funcs/__init__.py +++ b/mathgenerator/funcs/__init__.py @@ -2,7 +2,7 @@ import random import math import fractions -from .additionFunc import * +from .addition import * from .subtractionFunc import * from .multiplicationFunc import * from .divisionFunc import * diff --git a/mathgenerator/funcs/additionFunc.py b/mathgenerator/funcs/addition.py similarity index 80% rename from mathgenerator/funcs/additionFunc.py rename to mathgenerator/funcs/addition.py index 30dfefe..b1cc1d6 100644 --- a/mathgenerator/funcs/additionFunc.py +++ b/mathgenerator/funcs/addition.py @@ -1,5 +1,5 @@ from .__init__ import * - +from ..__init__ import Generator def additionFunc(maxSum=99, maxAddend=50): a = random.randint(0, maxAddend) @@ -8,3 +8,5 @@ def additionFunc(maxSum=99, maxAddend=50): problem = str(a) + "+" + str(b) + "=" solution = str(c) return problem, solution + +addition = Generator("Addition", 0, "a+b=", "c", additionFunc) diff --git a/mathgenerator/mathgen.py b/mathgenerator/mathgen.py index 89bf086..064c69a 100644 --- a/mathgenerator/mathgen.py +++ b/mathgenerator/mathgen.py @@ -2,8 +2,9 @@ import random import math import fractions from .funcs import * +from .__init__ import getGenList -genList = [] +genList = getGenList() # || Generator class class Generator: @@ -28,13 +29,13 @@ def genById(id): return(generator()) # -def getGenList(): - return(genList) +#def getGenList(): +# return(genList) # Format is: # = Generator("<Title>", <id>, <generalized problem>, <generalized solution>, <function name>) # Funcs_start - DO NOT REMOVE! -addition = Generator("Addition", 0, "a+b=", "c", additionFunc) +#addition = Generator("Addition", 0, "a+b=", "c", additionFunc) subtraction = Generator("Subtraction", 1, "a-b=", "c", subtractionFunc) multiplication = Generator("Multiplication", 2, "a*b=", "c", multiplicationFunc) division = Generator("Division", 3, "a/b=", "c", divisionFunc) @@ -111,4 +112,4 @@ binary2sComplement = Generator("Binary 2's Complement", 73, "2's complement of 1 invertmatrix = Generator("Inverse of a Matrix", 74, "Inverse of a matrix A is", "A^(-1)", matrixInversion) sectorArea=Generator("Area of a Sector", 75,"Area of a sector with radius, r and angle, a ","Area",sectorAreaFunc) meanMedian=Generator("Mean and Median", 76,"Mean and median of given set of numbers","Mean, Median",meanMedianFunc) -intMatrix22determinant = Generator("Determinant to 2x2 Matrix", 77, "Det([[a,b],[c,d]]) =", " a * d - b * c", determinantToMatrix22) +intMatrix22determinant = Generator("Determinant to 2x2 Matrix", 77, "Det([[a,b],[c,d]]) =", " a * d - b * c", determinantToMatrix22) diff --git a/test.py b/test.py index e5bb2c1..a1fb4dd 100644 --- a/test.py +++ b/test.py @@ -3,4 +3,4 @@ from mathgenerator import mathgen #test your generators here print(mathgen.addition()) -print(mathgen.genById(74)) +print(mathgen.genById(10))