typeglide 0.3.3__tar.gz → 0.3.5__tar.gz

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
  MIT License
2
2
 
3
- Copyright (c) 2026 Daksh
3
+ Copyright (c) 2026 Dakshu
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: typeglide
3
- Version: 0.3.3
3
+ Version: 0.3.5
4
4
  Summary: A smooth typewriter text effect library for Python. Works with tkinter too! Made by dakshu.
5
5
  Author-email: Dakshu <dakshumail98@gmail.com>
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "typeglide"
7
- version = "0.3.3"
7
+ version = "0.3.5"
8
8
  description = "A smooth typewriter text effect library for Python. Works with tkinter too! Made by dakshu."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11.14"
@@ -0,0 +1,3 @@
1
+ from .engine import write, erase, save, Glide
2
+
3
+ __version__ = "0.3.5"
@@ -0,0 +1,160 @@
1
+ import sys
2
+ import time
3
+
4
+
5
+ def write(text, delay=0.05, end="\n"):
6
+ """
7
+ Prints text to the console character by character.
8
+
9
+ :param text: The string to print.
10
+ :param delay: Time in seconds between each character.
11
+ :param end: The character to print at the very end (defaults to newline).
12
+ """
13
+ for char in text:
14
+ sys.stdout.write(char)
15
+ sys.stdout.flush()
16
+ time.sleep(delay)
17
+ sys.stdout.write(end)
18
+ sys.stdout.flush()
19
+
20
+
21
+ def erase(text, delay=0.05):
22
+ """
23
+ Erases text character by character using backspaces.
24
+
25
+ :param text: The string to erase (determines how many characters to delete).
26
+ :param delay: Time in seconds between each character deletion.
27
+
28
+ Example:
29
+ typeglide.write("Hello", end="")
30
+ typeglide.erase("Hello")
31
+ """
32
+ for _ in text:
33
+ sys.stdout.write('\b \b')
34
+ sys.stdout.flush()
35
+ time.sleep(delay)
36
+
37
+
38
+ class Glide:
39
+ """
40
+ A saveable typewriter-effect object.
41
+
42
+ Usage:
43
+ glide = typeglide.save("Hello", delay=0.05)
44
+
45
+ # Terminal — animates character by character:
46
+ print(glide)
47
+
48
+ # Erase the text character by character:
49
+ glide.erase()
50
+
51
+ # Type then erase in one go:
52
+ glide.type_and_erase()
53
+
54
+ # Tkinter static text:
55
+ button.config(text=glide.text)
56
+
57
+ # Tkinter animated text:
58
+ glide.animate_widget(label)
59
+ """
60
+
61
+ def __init__(self, text, delay=0.05, end="\n"):
62
+ self.text = text
63
+ self.delay = delay
64
+ self.end = end
65
+
66
+ def __str__(self):
67
+ for char in self.text:
68
+ sys.stdout.write(char)
69
+ sys.stdout.flush()
70
+ time.sleep(self.delay)
71
+ return ""
72
+
73
+ def __repr__(self):
74
+ return f"Glide({self.text!r}, delay={self.delay})"
75
+
76
+ def erase(self):
77
+ """
78
+ Erases the saved text character by character using backspaces.
79
+
80
+ Example:
81
+ glide = typeglide.save("Hello", delay=0.05)
82
+ print(glide, end="") # type it (no newline)
83
+ glide.erase() # then erase it
84
+ """
85
+ for _ in self.text:
86
+ sys.stdout.write('\b \b')
87
+ sys.stdout.flush()
88
+ time.sleep(self.delay)
89
+
90
+ def type_and_erase(self, pause=0.5):
91
+ """
92
+ Types the text out, pauses, then erases it character by character.
93
+
94
+ :param pause: Seconds to wait between finishing typing and starting to erase.
95
+
96
+ Example:
97
+ glide = typeglide.save("Hello!", delay=0.05)
98
+ glide.type_and_erase(pause=1)
99
+ """
100
+ for char in self.text:
101
+ sys.stdout.write(char)
102
+ sys.stdout.flush()
103
+ time.sleep(self.delay)
104
+ time.sleep(pause)
105
+ for _ in self.text:
106
+ sys.stdout.write('\b \b')
107
+ sys.stdout.flush()
108
+ time.sleep(self.delay)
109
+
110
+ def animate_widget(self, widget, attr="text"):
111
+ """
112
+ Animate the text into a tkinter widget one character at a time.
113
+
114
+ :param widget: Any tkinter widget that supports .config().
115
+ :param attr: The config attribute to update (default 'text').
116
+
117
+ Example:
118
+ glide.animate_widget(label)
119
+ glide.animate_widget(button)
120
+ """
121
+ delay_ms = int(self.delay * 1000)
122
+
123
+ def _step(index):
124
+ widget.config(**{attr: self.text[:index]})
125
+ if index < len(self.text):
126
+ widget.after(delay_ms, _step, index + 1)
127
+
128
+ _step(0)
129
+
130
+ def erase_widget(self, widget, attr="text"):
131
+ """
132
+ Erases the text from a tkinter widget one character at a time.
133
+
134
+ :param widget: Any tkinter widget that supports .config().
135
+ :param attr: The config attribute to update (default 'text').
136
+
137
+ Example:
138
+ glide.erase_widget(label)
139
+ """
140
+ delay_ms = int(self.delay * 1000)
141
+ length = len(self.text)
142
+
143
+ def _step(index):
144
+ widget.config(**{attr: self.text[:index]})
145
+ if index > 0:
146
+ widget.after(delay_ms, _step, index - 1)
147
+
148
+ _step(length)
149
+
150
+
151
+ def save(text, delay=0.05, end="\n"):
152
+ """
153
+ Save a typewriter-effect string for later use.
154
+
155
+ :param text: The string to animate.
156
+ :param delay: Time in seconds between each character.
157
+ :param end: End character used when printing (defaults to newline).
158
+ :returns: A Glide object.
159
+ """
160
+ return Glide(text, delay=delay, end=end)
@@ -1,3 +0,0 @@
1
- from .engine import write, save, Glide
2
-
3
- __version__ = "0.3.3"
@@ -1,83 +0,0 @@
1
- import sys
2
- import time
3
-
4
-
5
- def write(text, delay=0.05, end="\n"):
6
- """
7
- Prints text to the console character by character.
8
-
9
- :param text: The string to print.
10
- :param delay: Time in seconds between each character.
11
- :param end: The character to print at the very end (defaults to newline).
12
- """
13
- for char in text:
14
- sys.stdout.write(char)
15
- sys.stdout.flush()
16
- time.sleep(delay)
17
- sys.stdout.write(end)
18
- sys.stdout.flush()
19
-
20
-
21
- class Glide:
22
- """
23
- A saveable typewriter-effect object.
24
-
25
- Usage:
26
- glide = typeglide.save("Hello", delay=0.05)
27
-
28
- # Terminal — animates character by character:
29
- print(glide)
30
-
31
- # Tkinter static text:
32
- button.config(text=glide.text)
33
-
34
- # Tkinter animated text:
35
- glide.animate_widget(button)
36
- """
37
-
38
- def __init__(self, text, delay=0.05, end="\n"):
39
- self.text = text
40
- self.delay = delay
41
- self.end = end
42
-
43
- def __str__(self):
44
- for char in self.text:
45
- sys.stdout.write(char)
46
- sys.stdout.flush()
47
- time.sleep(self.delay)
48
- return ""
49
-
50
- def __repr__(self):
51
- return f"Glide({self.text!r}, delay={self.delay})"
52
-
53
- def animate_widget(self, widget, attr="text"):
54
- """
55
- Animate the text into a tkinter widget one character at a time.
56
-
57
- :param widget: Any tkinter widget that supports .config().
58
- :param attr: The config attribute to update (default 'text').
59
-
60
- Example:
61
- glide.animate_widget(button)
62
- glide.animate_widget(label)
63
- """
64
- delay_ms = int(self.delay * 1000)
65
-
66
- def _step(index):
67
- widget.config(**{attr: self.text[:index]})
68
- if index < len(self.text):
69
- widget.after(delay_ms, _step, index + 1)
70
-
71
- _step(0)
72
-
73
-
74
- def save(text, delay=0.05, end="\n"):
75
- """
76
- Save a typewriter-effect string for later use.
77
-
78
- :param text: The string to animate.
79
- :param delay: Time in seconds between each character.
80
- :param end: End character used when printing (defaults to newline).
81
- :returns: A Glide object.
82
- """
83
- return Glide(text, delay=delay, end=end)
File without changes