Skip to content

Releases: BhavyeMathur/goopylib

1.1.134a15

27 Oct 12:19
Compare
Choose a tag to compare
1.1.134a15 Pre-release
Pre-release
  • Added a try except clause when importing the sound subpackage to handle for MacOS Users
  • The goopylib __init__.py file not longer imports everything.

1.1.132a14

20 Oct 06:47
Compare
Choose a tag to compare
1.1.132a14 Pre-release
Pre-release
  • Renamed the open argument of the UniformBSpline() function to is_open to avoid the same name as the
    built-in function

  • BSpline.py no longer uses the Point class for any of its functions

  • Fixed a bug with the Line class's set_arrow_first(), set_arrow_last(), & set_arrow_both functions removing
    all arrows

  • The Line class's set_arrow() function now displays the correct error

  • Made the setter functions for the Line class run faster by getting rid of nots and restructuring the code

  • The Line class no longer uses a GraphicsObject config to store data opting instead for internal variables

  • Fixed an error with the closed UniformBSpline() function working incorrectly

  • Renamed the UniformBSpline() & CoxDeBoorRecursion functions to uniform_bspline() & cox_de_boor_recursion
    respectively to conform with Python Convention & PEP 8

  • The Line class no longer uses styles

  • Fixed bug with the AnimatedImage class not defining its anchor attribute

  • Added a try & except clause for the CBezierCurve import statement as some people were facing errors importing it.

1.1.21a12

28 Sep 16:50
Compare
Choose a tag to compare
1.1.21a12 Pre-release
Pre-release
  • Changed the if-else statements for the easing functions from if t is not None: to if t is None: and switched the
    code (from else-if and if-else) to reduce the amount of nots called and improve performance.

  • Removed an unnecessary + symbol from +r, +g, +b from the ColourRGB() __init__ function.

  • Started working a C-implementation of colours.py - Added the 4 colour classes and rgb_to_hex() function.

  • Added a rgb_to_hex() function to colours.py

  • Removed the __bytes__(), __oct__(), __ceil__(), and __floor__() functions from Colour` object as they are
    mostly unnecessary

  • The Arc, CurvedLine, Entry, & Circle classes no longer use Point objects opting instead for lists in the
    form [x, y]

  • You can no longer assign a style to Circle, Entry, Arc, Text, & CurvedLine objects

  • Added a rotate_to_face() function to the GraphicsObject that rotates an object to face another

  • Removed a check from the GraphicsObject class that checked if the cursor provided was a str because another check
    already made sure that the cursor was part of a set of options

  • Removed the style argument from the GraphicsObject class's __init__() function

  • Text objects no longer use the old system of configs for every GraphicsObject. They have shifted to just using
    variables

  • The Text object getter functions now call _update_layer() internally to fix bug with a manual redrawing required

  • Changed the Text object's clone() function to copy all the attributes properly

  • All the GraphicsErrors raised in Text.py now start with "\n\nGraphicsError: "

1.1.107a11

26 Sep 19:28
Compare
Choose a tag to compare
1.1.107a11 Pre-release
Pre-release
  • The BSpline module no longer uses the Point class. It returns the spline as a list in the form [x, y]

  • Removed an unnecessary and unused definition of _ease_liner() from Easing.py

  • Renamed the Easing.py module to PyEasing.py and renamed all functions in it to have a suffix of py_

  • Added a BezierCurve.py file to serve as an interface between Python & the C Extensions

  • Few more optimizations to the bezier_curve() function to make it run a little bit quicker

Bezier Curve Speed Comparision

  • Added a C implementation of the rational_bezier_curve() function
  • Optimized the py_rational_bezier_curve() function a lot

Rational Bezier Curve Speed Comparision

  • The py_rational_bezier_curve() function takes the control_points argument before the weights to make it more
    consistent with the other functions

  • Added a MANIFEST.in file to include the .pyd C-extension modules which weren't being packaged properly

  • The CPython Interface functions now raise errors if the arguments provided are bigger than what C can accuratly
    provide results for

  • Moved most argument checking statements to the C implementation to increase the performance of the CPython Interface
    functions.

Speed Comparision

  • Added argument and error checks to the bezier_curve(), berstein_polynomial(), and combination() functions
  • The C extension packages now correctly package as a module with the goopylib package

1.1.94a10

25 Sep 14:45
Compare
Choose a tag to compare
1.1.94a10 Pre-release
Pre-release
  • If no parameter is supplied to a GraphicObject's draw() function, it checks if it has been previously drawn and if
    so, draws to the same window

  • Fixed bug with the Rectangle using its width variable (defines how wide the rectangle is) instead of outline_width
    (defines the thickness of the outline) to draw the outline

  • The Window & AnimatedImages objects do not use the Point class anymore opting instead for a list in form [x, y]

  • Window attributes related to size & position now have to ints instead of the previously acceptable int or float

  • The Window's max_width & max_height variables are None by default which means the user can choose to not define
    a max size

  • Added a check to ensure that the Window's min_height and min_width are greater than 0 and changed the check from
    ... not > 0 to ... < 1

  • Window objects no longer use styles

  • Fixed bug with wrongly spelt filter_more_enhance_edge() as more_enhance_edge() inside the AnimatedImage class

  • Added a C implementation of the PyRawBezierCurve() function to make it run much faster.

  • Added optimizations for the PyBezierCurve() function for curves with a degree less than 6.

  • numpy is no longer a goopylib dependency

  • Renamed the Python implementations of the Bezier Curve functions to follow the Python Convention

  • Removed the py_raw_bezier_curve() & raw_bezier_curve() functions as they were only meant to be used internally
    and moved their code directly into where they were being called

1.1.80a9

22 Sep 19:21
Compare
Choose a tag to compare
1.1.80a9 Pre-release
Pre-release

UNSTABLE RELEASE!

  • Renamed the Window's update_win() function to just update()

  • The rectangle class doesn't define a list of points inside the __init__() function anymore, rather, it does it in
    the draw() function

  • Added a C implementation for the Factorial, Combination, & BernsteinPolynomial functions

  • Renamed all the functions (Combination, BernsteinPolynomial, RawBezierCurve, RationalBezierCurve,
    BezierCurve) inside BezierCurve.py to have a suffix Py in front to avoid confusion with the C functions.

  • The PyRawBezierCurve(), PyRationalBezierCurve(), & PyBezierCurve() functions now return a tuple (x, y)
    instead of Point(x, y)

  • Made the PyRawBezierCurve() function more efficient and faster by calculating the size of the control_points once
    rather than every iteration

  • Made the PyRawBezierCurve() function more efficient by calculating the berstein_polynomial once every iteration
    and using the stored value

  • The Rectangle class raises exceptions if proper arguments aren't supplied

  • Removed an unused VectorEquation import statement from the Rectangle class

  • You can now provide bounds arguments for the Rectangle set_resizable() function to define custom bounds in each
    direction

  • Removed the show_bounds argument from the _BBox's set_resizable() function

  • Added an undraw_bounds() function to the GraphicsObject class to undraw any drawn bounds

  • Removed the show_bounds() and hide_bounds() functions from the _BBox class as these are already defined in the
    GraphicsObject class

  • Fixed bug with the _BBox's set_resizable() function being able to add the objects to the GraphicsObject's
    resizing_objects set multiple times and not removing objects from it if the object is set to be not resizable.

  • Removed an unused Line module import statement from _BBox.py and a VectorEquation module import statement from
    Rectangle.py

  • _BBox & Line objects now use floor division to find the anchor of itself to give an integer result rather than a
    float.

  • The Rectangle, Oval, and _BBox classes no longer use the Point class. This aims towards a shift from deprecating the point
    class in favour of length-2 list [x, y]

  • Removed the reset_bounds() function from the _BBox class as its functionality is not required.

  • You can no longer assign a style value to any of the _BBox classes. This is a step towards deprecating the largely
    useless styles

  • The Rectangle's _draw() function now draws a Polygon shaped like a rectangle only if the rectangle is rounded,
    otherwise, it draws a rectangle

  • Fixed the Rectangle's clone() function to transfer all the previous Rectangle's attributes over properly

  • More misc changes to the GraphicsObject & Oval classes

1.1.59a8

14 Sep 19:54
Compare
Choose a tag to compare
1.1.59a8 Pre-release
Pre-release
  • Added functionality to the Radio Button class

  • The Checkbox now only checks if its graphic has been clicked if its bound is None. otherwise, it returns whether or
    not its bound was clicked.

  • Removed the Checkbox's is_clicked() function because its superclass (CycleButton) already defines it

  • Removed the CycleButton's _update_layer() function because its superclass (GraphicsObject) already defines it

  • Removed an unnecessary checkbox_instances variable from the GraphicsObject class as the checkbox now works under
    the CycleButton class

  • Fixed bug with the Checkbox's set_state() function setting the opposite state

  • Created the official goopylib logo

  • Made destroying compound GraphicObject classes much more efficient

  • Added more destroy all instances functions to the Window class

1.1.50a7

07 Sep 17:18
Compare
Choose a tag to compare
1.1.50a7 Pre-release
Pre-release
  • If the distance to move an object is 0 for both x & y, the _move() function does not execute.

  • Changed a lot about how objects are drawn to fix bug with the layering system

  • Optimized Entry box movement to make it much faster

  • Fixed bug with Checkboxes not changing states properly

  • Closing a window now binds another window to mouse & key functions

  • The Entry, MultilineEntry, and Text objects' set_text() function now converts the text given to a string

  • The MultilinEntry now raises an error if the user tries to use the get_text() function when the object is not drawn

  • Fixed bug with the Window's update_win() function not working properly.

1.1.43a6

04 Sep 20:43
Compare
Choose a tag to compare
1.1.43a6 Pre-release
Pre-release
  • Fixed destroy() function with Buttons

  • Fixed bug with the Button's move() functions not working properly due to bug with the anchor being moved twice

  • Added more getter functions to the Entry & MultilineEntry classes

  • Added more setter functions to the MultilineEntry class

  • Fixed bug with Checkbox state changing not undrawing the previous state properly

  • Fixed more bugs with the Checkbox not undrawing when changing sate when using non-button states

  • You can now bind the state of a Checkbox to the state of another

  • Fixed the state argument in Checkboxes which was setting its state to the opposite state of the one inputted

  • Added a setter & getter function for text inside a multiline entry

1.1.35a5

02 Sep 18:54
Compare
Choose a tag to compare
1.1.35a5 Pre-release
Pre-release
  • Fixed AttributeError in the _BBox set_resizable() function because of using the append() function on a set,
    should have been add()

  • Added a max_characters variable to the Entry class to control the max number of characters the user can enter

  • Added a multiline entry class to create... multi-line entries.

  • You can use tags for setting bounds for GraphicsObjects

  • Added Dragging functions for the Window class

  • Added bounding bounds for the Window class

  • Added getter functions to get the position of the window