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.
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/METADATA +3 -3
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/RECORD +7 -7
- gui.py +52 -9
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/WHEEL +0 -0
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/licenses/LICENSE +0 -0
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/licenses/LICENSE-PSF +0 -0
- {creativepython-0.3.0.dist-info → creativepython-0.3.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: CreativePython
|
|
3
|
-
Version: 0.3.
|
|
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:
|
|
80
|
-
- [Request a Feature (email link)](mailto:
|
|
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=
|
|
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.
|
|
100
|
-
creativepython-0.3.
|
|
101
|
-
creativepython-0.3.
|
|
102
|
-
creativepython-0.3.
|
|
103
|
-
creativepython-0.3.
|
|
104
|
-
creativepython-0.3.
|
|
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.
|
|
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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|