CreativePython 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CreativePython
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: A Python-based software environment for developing algorithmic art projects.
5
5
  Author-email: "Dr. Bill Manaris" <manaris@cofc.edu>, Taj Ballinger <ballingertj@g.cofc.edu>, Trevor Ritchie <ritchiets@g.cofc.edu>
6
6
  License: MIT License
@@ -76,8 +76,8 @@ CreativePython is distributed under the MIT License.
76
76
 
77
77
  - [Homepage](https://jythonmusic.me/)
78
78
  - [Download All Examples [ZIP]](https://www.dropbox.com/scl/fo/rvc8m8pt4m0281qn0t4oi/AO2Y0W2qOrOcurlQmLa7M54?rlkey=0sf80bmov135tc85dk9k7ats6&dl=1)
79
- - [Report a Bug (email link)](mailto:manaris@cofc.edu?cc=ballingertj@g.cofc.edu,ritchiets@g.cofc.edu&subject=[CreativePython]%20Bug%20Report&body=CreativePython%20Version:%20(e.g.%200.1.8)%0D%0AOperating%20System:%20(e.g.%20macOS%2015,%20Windows%2011,%20Ubuntu%2024.04)%0D%0APython%20Version:%20(e.g.%203.11)%0D%0A%0D%0ASummary:%0D%0A%0D%0ASteps%20to%20Reproduce:%0D%0A1.%20%0D%0A2.%20%0D%0A3.%20%0D%0A%0D%0AExpected%20Result:%0D%0A%0D%0AActual%20Result:%0D%0A%0D%0AError%20Messages%20or%20Logs:%0D%0A)
80
- - [Request a Feature (email link)](mailto:manaris@cofc.edu?cc=ballingertj@g.cofc.edu,ritchiets@g.cofc.edu&subject=[CreativePython]%20Feature%20Request&body=CreativePython%20Version:%20(e.g.%200.1.8)%0D%0AOperating%20System:%20(e.g.%20macOS%2015,%20Windows%2011,%20Ubuntu%2024.04)%0D%0A%0D%0AFeature%20Name:%0D%0A%0D%0ADescription:%0D%0A%0D%0AExample%20Use%20Case%20or%20Scenario:%0D%0A%0D%0ARelated%20Modules%20or%20Functions:%0D%0A%0D%0A)
79
+ - [Report a Bug (email link)](mailto:creativepythoncofc@gmail.com&subject=[CreativePython]%20Bug%20Report&body=CreativePython%20Version:%20(e.g.%200.1.8)%0D%0AOperating%20System:%20(e.g.%20macOS%2015,%20Windows%2011,%20Ubuntu%2024.04)%0D%0APython%20Version:%20(e.g.%203.11)%0D%0A%0D%0ASummary:%0D%0A%0D%0ASteps%20to%20Reproduce:%0D%0A1.%20%0D%0A2.%20%0D%0A3.%20%0D%0A%0D%0AExpected%20Result:%0D%0A%0D%0AActual%20Result:%0D%0A%0D%0AError%20Messages%20or%20Logs:%0D%0A)
80
+ - [Request a Feature (email link)](mailto:creativepythoncofc@gmail.com&subject=[CreativePython]%20Feature%20Request&body=CreativePython%20Version:%20(e.g.%200.1.8)%0D%0AOperating%20System:%20(e.g.%20macOS%2015,%20Windows%2011,%20Ubuntu%2024.04)%0D%0A%0D%0AFeature%20Name:%0D%0A%0D%0ADescription:%0D%0A%0D%0AExample%20Use%20Case%20or%20Scenario:%0D%0A%0D%0ARelated%20Modules%20or%20Functions:%0D%0A%0D%0A)
81
81
 
82
82
  This package is still under development.
83
83
 
@@ -1,5 +1,5 @@
1
1
  _RealtimeAudioPlayer.py,sha256=AHKDE4etmfRgwyUG3SIoEblXoPaFUk9oxQLy1BgDFP8,46808
2
- gui.py,sha256=7j7axSEcUVR9cVyMCuSNILtb_GMev1C2xv1cg3o5iMQ,163606
2
+ gui.py,sha256=hml7_U2ykR-UD4GHnnM2F3anD0VoyDlKv6dOdknpqpI,164641
3
3
  iannix.py,sha256=Ixl_wiFqIMyAWO4eAcIJvyNAuJ8alTrkSGXu8ruhVug,17162
4
4
  image.py,sha256=8TEKOREWnIFpOKZBqrdTGeiQV2vN09texrb_nAzgorw,2739
5
5
  markov.py,sha256=UXXHDJ6Y1BItACpa9vSRjSb1wfIedv7T1GuHqpnvzWE,24407
@@ -96,9 +96,9 @@ CreativePython/resources/550973__luizguilherme_a__clean-guitarr-riff.mp3,sha256=
96
96
  CreativePython/resources/chopper.jpg,sha256=AykvUOwRSDi4g6OpfcNQ-LgwPE05_eVkCv5E9lnhUbk,135266
97
97
  CreativePython/resources/de-brazzas-monkey.jpg,sha256=AFCxemqkDYv_TPpcLwrHnTtoxGduvZD7O2S0xMqQ4C0,119054
98
98
  bin/libportaudio.2.dylib,sha256=ooJlm7QeL7jYzc1c8YMmH-C8PhYHwDvBJZkNDVPFRbE,286592
99
- creativepython-0.3.0.dist-info/licenses/LICENSE,sha256=tz38qDa5RhHMqzZR1Q5QafqWdXn_EhheXYBP7FjgtEM,1992
100
- creativepython-0.3.0.dist-info/licenses/LICENSE-PSF,sha256=JN1jUPIsEUH1mq3AXxet-b1IdhAr-XzscXBZiz74c9c,3371
101
- creativepython-0.3.0.dist-info/METADATA,sha256=25ukd_ta2v5MR03_a2KHg3kkufTlO1AQ6cvsznGRaGk,8740
102
- creativepython-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
- creativepython-0.3.0.dist-info/top_level.txt,sha256=TdeMVDq8cqDv2qX3w8KNKagpLCy1eaTRFCSk2MUbtC0,90
104
- creativepython-0.3.0.dist-info/RECORD,,
99
+ creativepython-0.3.2.dist-info/licenses/LICENSE,sha256=tz38qDa5RhHMqzZR1Q5QafqWdXn_EhheXYBP7FjgtEM,1992
100
+ creativepython-0.3.2.dist-info/licenses/LICENSE-PSF,sha256=JN1jUPIsEUH1mq3AXxet-b1IdhAr-XzscXBZiz74c9c,3371
101
+ creativepython-0.3.2.dist-info/METADATA,sha256=YXF2RWUeVssqZ3e26FU6joGb0C60--nOmo3wWRU-W8k,8670
102
+ creativepython-0.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
+ creativepython-0.3.2.dist-info/top_level.txt,sha256=TdeMVDq8cqDv2qX3w8KNKagpLCy1eaTRFCSk2MUbtC0,90
104
+ creativepython-0.3.2.dist-info/RECORD,,
gui.py CHANGED
@@ -2122,8 +2122,10 @@ class Control(Drawable, Interactable):
2122
2122
  # Graphics Objects (Geometric shapes, text, and images)
2123
2123
  #######################################################################################
2124
2124
  class Rectangle(Graphics):
2125
+ """
2126
+ Rectangles are linear Graphics defined by its bounding box.
2127
+ """
2125
2128
  def __init__(self, x1, y1, x2, y2, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2126
- """Create a new Rectangle."""
2127
2129
  Graphics.__init__(self)
2128
2130
 
2129
2131
  # calculate bounding box dimensions
@@ -2153,6 +2155,9 @@ class Rectangle(Graphics):
2153
2155
 
2154
2156
 
2155
2157
  class Oval(Graphics):
2158
+ """
2159
+ Ovals are curved Graphics defined by its bounding box.
2160
+ """
2156
2161
  def __init__(self, x1, y1, x2, y2, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2157
2162
  """Create a new oval."""
2158
2163
  Graphics.__init__(self)
@@ -2184,6 +2189,9 @@ class Oval(Graphics):
2184
2189
 
2185
2190
 
2186
2191
  class Circle(Oval):
2192
+ """
2193
+ Circles are ovals defined by a center point and radius.
2194
+ """
2187
2195
  def __init__(self, x, y, radius, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2188
2196
  """Create a new Circle."""
2189
2197
  x1 = x - radius # calculate Oval dimensions
@@ -2237,6 +2245,9 @@ class Circle(Oval):
2237
2245
 
2238
2246
 
2239
2247
  class Point(Circle):
2248
+ """
2249
+ Points are individual pixels defined by their coordinate.
2250
+ """
2240
2251
  def __init__(self, x, y, color=Color.BLACK):
2241
2252
  """Create a new Point."""
2242
2253
  Circle.__init__(self, x, y, 1, color, True, 1, 0)
@@ -2271,6 +2282,9 @@ class Point(Circle):
2271
2282
 
2272
2283
 
2273
2284
  class Arc(Graphics):
2285
+ """
2286
+ Arcs are curved lines defined by a bounding box, and the angles of its endpoints within that box.
2287
+ """
2274
2288
  def __init__(self, x1, y1, x2, y2, startAngle=PI, endAngle=TWO_PI, style=OPEN, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2275
2289
  """Create a new Arc."""
2276
2290
  Graphics.__init__(self)
@@ -2353,6 +2367,9 @@ class Arc(Graphics):
2353
2367
 
2354
2368
 
2355
2369
  class ArcCircle(Arc):
2370
+ """
2371
+ ArcCircles are Arcs defined by a center point, radius, and the angles of its endpoints around its center.
2372
+ """
2356
2373
  def __init__(self, x, y, radius, startAngle=PI, endAngle=TWO_PI, style=OPEN, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2357
2374
  """Create a new ArcCircle."""
2358
2375
  x1 = x - radius # calculate Arc dimensions
@@ -2405,6 +2422,9 @@ class ArcCircle(Arc):
2405
2422
 
2406
2423
 
2407
2424
  class Line(Graphics):
2425
+ """
2426
+ Lines are straight paths between two endpoints.
2427
+ """
2408
2428
  def __init__(self, x1, y1, x2, y2, color=Color.BLACK, thickness=1, rotation=0):
2409
2429
  """Create a new Line."""
2410
2430
  Graphics.__init__(self)
@@ -2509,6 +2529,9 @@ class Line(Graphics):
2509
2529
 
2510
2530
 
2511
2531
  class PolyLine(Graphics):
2532
+ """
2533
+ PolyLines are straight paths between a series of endpoints.
2534
+ """
2512
2535
  def __init__(self, xPoints, yPoints, color=Color.BLACK, thickness=1, rotation=0):
2513
2536
  """Create a new Polyline."""
2514
2537
  Graphics.__init__(self)
@@ -2607,6 +2630,9 @@ class PolyLine(Graphics):
2607
2630
 
2608
2631
 
2609
2632
  class Polygon(Graphics):
2633
+ """
2634
+ Polygons are defined by linear paths between a series of connected endpoints.
2635
+ """
2610
2636
  def __init__(self, xPoints, yPoints, color=Color.BLACK, fill=False, thickness=1, rotation=0):
2611
2637
  """Create a new Polygon."""
2612
2638
  Graphics.__init__(self)
@@ -2701,6 +2727,9 @@ class Polygon(Graphics):
2701
2727
 
2702
2728
 
2703
2729
  class Icon(Graphics):
2730
+ """
2731
+ Icons are shapes rendered from .png or .jpg files, and/or drawn pixel-by-pixel.
2732
+ """
2704
2733
  def __init__(self, filename, width=None, height=None, rotation=0):
2705
2734
  """Create a new Icon."""
2706
2735
  Graphics.__init__(self)
@@ -2747,7 +2776,7 @@ class Icon(Graphics):
2747
2776
  if height is None: # scale height to width
2748
2777
  height = int(self._pixmap.height() * (width / self._pixmap.width()))
2749
2778
 
2750
- oldWidth, oldHeight = self._getSize()
2779
+ oldWidth, oldHeight = self.getSize()
2751
2780
 
2752
2781
  if (width != oldWidth) or (height != oldHeight):
2753
2782
  pixmap = self._pixmap.scaled(width, height) # scale new pixmap
@@ -2838,6 +2867,9 @@ class Icon(Graphics):
2838
2867
 
2839
2868
 
2840
2869
  class Label(Graphics):
2870
+ """
2871
+ Labels are text with an included background box.
2872
+ """
2841
2873
  def __init__(self, text, alignment=LEFT, foregroundColor=Color.BLACK, backgroundColor=Color.CLEAR, rotation=0):
2842
2874
  """Create a new Label."""
2843
2875
  Graphics.__init__(self)
@@ -2984,6 +3016,9 @@ class Label(Graphics):
2984
3016
  # Music Controls
2985
3017
  #######################################################################################
2986
3018
  class HFader(MusicControl):
3019
+ """
3020
+ HFaders are horizontal, linear controls.
3021
+ """
2987
3022
  def __init__(self, x1, y1, x2, y2, minValue=0, maxValue=999, startValue=None,
2988
3023
  updateFunction=None, foreground=Color.RED, background=Color.BLACK,
2989
3024
  outline=Color.BLACK, thickness=3, rotation=0):
@@ -3089,6 +3124,9 @@ class HFader(MusicControl):
3089
3124
 
3090
3125
 
3091
3126
  class VFader(HFader):
3127
+ """
3128
+ VFaders are vertical, linear controls.
3129
+ """
3092
3130
  def __init__(self, x1, y1, x2, y2, minValue=0, maxValue=999, startValue=None,
3093
3131
  updateFunction=None, foreground=Color.RED, background=Color.BLACK,
3094
3132
  outline=Color.BLACK, thickness=3, rotation=0):
@@ -3156,6 +3194,9 @@ class VFader(HFader):
3156
3194
 
3157
3195
 
3158
3196
  class Rotary(MusicControl):
3197
+ """
3198
+ Rotaries are circular controls.
3199
+ """
3159
3200
  def __init__(self, x1, y1, x2, y2, minValue=0, maxValue=999, startValue=None,
3160
3201
  updateFunction=None, foreground=Color.RED, background=Color.BLACK,
3161
3202
  outline=Color.BLUE, thickness=3, arcWidth=300, rotation=0):
@@ -3282,6 +3323,9 @@ class Rotary(MusicControl):
3282
3323
 
3283
3324
 
3284
3325
  class Push(MusicControl):
3326
+ """
3327
+ Pushes are rectangular buttons that reset when released.
3328
+ """
3285
3329
  def __init__(self, x1, y1, x2, y2, updateFunction=None, foreground=Color.RED, background=Color.BLACK, outline=Color.CLEAR, thickness=3, rotation=0):
3286
3330
  """Creates a new Push button."""
3287
3331
  MusicControl.__init__(self, updateFunction)
@@ -3368,6 +3412,9 @@ class Push(MusicControl):
3368
3412
 
3369
3413
 
3370
3414
  class Toggle(Push):
3415
+ """
3416
+ Toggles are rectangular buttons that change when clicked.
3417
+ """
3371
3418
  def __init__(self, x1, y1, x2, y2, updateFunction=None, foreground=Color.RED, background=Color.BLACK, outline=Color.CLEAR, thickness=3, rotation=0):
3372
3419
  """
3373
3420
  Creates a new Toggle button.
@@ -3401,6 +3448,9 @@ class Toggle(Push):
3401
3448
 
3402
3449
 
3403
3450
  class XYPad(MusicControl):
3451
+ """
3452
+ XYPads are grids that track values in two dimensions.
3453
+ """
3404
3454
  def __init__(self, x1, y1, x2, y2, updateFunction=None, foreground=Color.RED, background=Color.BLACK, outline=Color.CLEAR, outlineThickness=2, trackerRadius=10, crosshairsThickness=None, rotation=0):
3405
3455
  """
3406
3456
  Creates a new XYPad.
@@ -3524,7 +3574,6 @@ class XYPad(MusicControl):
3524
3574
  #######################################################################################
3525
3575
  class Button(Control):
3526
3576
  def __init__(self, text="", function=None):
3527
- """Create a new button."""
3528
3577
  Control.__init__(self)
3529
3578
 
3530
3579
  # create qt object
@@ -3567,7 +3616,6 @@ class Button(Control):
3567
3616
 
3568
3617
  class CheckBox(Control):
3569
3618
  def __init__(self, text="", function=None):
3570
- """Create a new checkbox."""
3571
3619
  Control.__init__(self)
3572
3620
 
3573
3621
  qtObject = _QtWidgets.QCheckBox(text)
@@ -3609,7 +3657,6 @@ class CheckBox(Control):
3609
3657
 
3610
3658
  class Slider(Control):
3611
3659
  def __init__(self, orientation=HORIZONTAL, lower=0, upper=100, start=None, function=None):
3612
- """Create a new slider."""
3613
3660
  Control.__init__(self)
3614
3661
 
3615
3662
  start = start if start is not None else ((lower + upper)//2)
@@ -3649,7 +3696,6 @@ class Slider(Control):
3649
3696
 
3650
3697
  class DropDownList(Control):
3651
3698
  def __init__(self, items=[], function=None):
3652
- """Create a new dropdown list."""
3653
3699
  Control.__init__(self)
3654
3700
 
3655
3701
  qtObject = _QtWidgets.QComboBox()
@@ -3690,7 +3736,6 @@ class DropDownList(Control):
3690
3736
 
3691
3737
  class TextField(Control):
3692
3738
  def __init__(self, text="", columns=8, function=None):
3693
- """Create a new text field."""
3694
3739
  Control.__init__(self)
3695
3740
 
3696
3741
  self._qtObject = _QtWidgets.QLineEdit(str(text))
@@ -3782,7 +3827,6 @@ class TextField(Control):
3782
3827
 
3783
3828
  class TextArea(Control):
3784
3829
  def __init__(self, text="", columns=8, rows=5):
3785
- """Create a new text field."""
3786
3830
  Control.__init__(self)
3787
3831
 
3788
3832
  self._qtObject = _QtWidgets.QTextEdit(str(text))
@@ -3848,7 +3892,6 @@ class TextArea(Control):
3848
3892
 
3849
3893
  class Menu():
3850
3894
  def __init__(self, menuName):
3851
- """Create a new menu."""
3852
3895
  self._qtObject = _QtWidgets.QMenu(menuName)
3853
3896
  self._name = menuName
3854
3897