typio 0.0.0__py3-none-any.whl → 0.1__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.
typio/__init__.py ADDED
@@ -0,0 +1,7 @@
1
+ # -*- coding: utf-8 -*-
2
+ """typio modules."""
3
+ from .params import TYPIO_VERSION, TypeMode
4
+ from .errors import TypioError
5
+ from .functions import type_print, typestyle
6
+
7
+ __version__ = TYPIO_VERSION
typio/__main__.py ADDED
@@ -0,0 +1,5 @@
1
+ # -*- coding: utf-8 -*-
2
+ """typio main."""
3
+
4
+ if __name__ == "__main__":
5
+ pass
typio/errors.py ADDED
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ """typio errors."""
3
+
4
+
5
+ class TypioError(Exception):
6
+ """Base class for errors in Typio."""
7
+
8
+ pass
typio/functions.py ADDED
@@ -0,0 +1,237 @@
1
+ # -*- coding: utf-8 -*-
2
+ """typio functions."""
3
+
4
+ import sys
5
+ import time
6
+ import random
7
+ import re
8
+ from functools import wraps
9
+ from io import TextIOBase
10
+ from typing import Any, Callable, Optional
11
+ from .params import TypeMode
12
+ from .params import INVALID_TEXT_ERROR, INVALID_BYTE_ERROR, INVALID_DELAY_ERROR
13
+ from .params import INVALID_JITTER_ERROR, INVALID_MODE_ERROR, INVALID_FILE_ERROR
14
+ from .errors import TypioError
15
+
16
+
17
+ def _validate(
18
+ text: Any,
19
+ delay: Any,
20
+ jitter: Any,
21
+ mode: Any,
22
+ file: Any,
23
+ ) -> str:
24
+ """
25
+ Validate and normalize inputs for typing operations.
26
+
27
+ :param text: text to be printed
28
+ :param delay: base delay (in seconds) between emitted units
29
+ :param jitter: random jitter added/subtracted from delay
30
+ :param mode: typing mode controlling emission granularity
31
+ :param file: output stream supporting a write() method
32
+ """
33
+ if not isinstance(text, (str, bytes)):
34
+ raise TypioError(INVALID_TEXT_ERROR)
35
+
36
+ if isinstance(text, bytes):
37
+ try:
38
+ text = text.decode()
39
+ except Exception:
40
+ raise TypioError(INVALID_BYTE_ERROR)
41
+
42
+ if not isinstance(delay, (int, float)) or delay < 0:
43
+ raise TypioError(INVALID_DELAY_ERROR)
44
+
45
+ if not isinstance(jitter, (int, float)) or jitter < 0:
46
+ raise TypioError(INVALID_JITTER_ERROR)
47
+
48
+ if not isinstance(mode, TypeMode):
49
+ raise TypioError(INVALID_MODE_ERROR)
50
+
51
+ if file is not None and not hasattr(file, "write"):
52
+ raise TypioError(INVALID_FILE_ERROR)
53
+
54
+ return text
55
+
56
+
57
+ def _sleep(delay: float, jitter: float) -> None:
58
+ """
59
+ Sleep for a given delay with optional random jitter.
60
+
61
+ :param delay: base delay (in seconds) between emitted units
62
+ :param jitter: random jitter added/subtracted from delay
63
+ """
64
+ if delay <= 0:
65
+ return
66
+ if jitter:
67
+ delay += random.uniform(-jitter, jitter)
68
+ delay = max(0, delay)
69
+ time.sleep(delay)
70
+
71
+
72
+ class _TypioPrinter:
73
+ """File-like object that emits text with typing effects."""
74
+
75
+ def __init__(self, *, delay: float, jitter: float, mode: TypeMode, out: TextIOBase) -> None:
76
+ """
77
+ Initialize the typing printer.
78
+
79
+ :param delay: base delay (in seconds) between emitted units
80
+ :param jitter: random jitter added/subtracted from delay
81
+ :param mode: typing mode controlling emission granularity
82
+ :param out: underlying output stream
83
+ """
84
+ self.delay = delay
85
+ self.jitter = jitter
86
+ self.mode = mode
87
+ self.out = out
88
+
89
+ def write(self, text: str) -> None:
90
+ """
91
+ Write text using the configured typing mode.
92
+
93
+ :param text: text to be written
94
+ """
95
+ handler = getattr(self, "_mode_{mode}".format(mode=self.mode.value))
96
+ handler(text)
97
+
98
+ def flush(self) -> None:
99
+ """Flush the underlying output stream."""
100
+ self.out.flush()
101
+
102
+ def _emit(self, part: str, delay: Optional[float] = None) -> None:
103
+ """
104
+ Emit a text fragment and apply delay.
105
+
106
+ :param part: text fragment to write
107
+ :param delay: optional override delay for this fragment
108
+ """
109
+ self.out.write(part)
110
+ self.out.flush()
111
+ _sleep(delay if delay is not None else self.delay, self.jitter)
112
+
113
+ def _mode_char(self, text: str) -> None:
114
+ """
115
+ Emit text character by character.
116
+
117
+ :param text: text to emit
118
+ """
119
+ for c in text:
120
+ self._emit(c)
121
+
122
+ def _mode_word(self, text: str) -> None:
123
+ """
124
+ Emit text word by word, preserving whitespace.
125
+
126
+ :param text: text to emit
127
+ """
128
+ for w in re.findall(r"\S+|\s+", text):
129
+ self._emit(w)
130
+
131
+ def _mode_line(self, text: str) -> None:
132
+ """
133
+ Emit text line by line.
134
+
135
+ :param text: text to emit
136
+ """
137
+ for line in text.splitlines(True):
138
+ self._emit(line)
139
+
140
+ def _mode_sentence(self, text: str) -> None:
141
+ """
142
+ Emit text character by character with longer pauses after sentence-ending punctuation.
143
+
144
+ :param text: text to emit
145
+ """
146
+ for c in text:
147
+ self._emit(c)
148
+ if c in ".!?":
149
+ _sleep(self.delay * 4, self.jitter)
150
+
151
+ def _mode_typewriter(self, text: str) -> None:
152
+ """
153
+ Emit text character by character with longer pauses after newlines.
154
+
155
+ :param text: text to emit
156
+ """
157
+ for c in text:
158
+ self._emit(c)
159
+ if c == "\n":
160
+ _sleep(self.delay * 5, self.jitter)
161
+
162
+ def _mode_adaptive(self, text: str) -> None:
163
+ """
164
+ Emit text with adaptive delays based on character type.
165
+
166
+ :param text: text to emit
167
+ """
168
+ for c in text:
169
+ d = self.delay * (
170
+ 0.3 if c.isspace()
171
+ else 1.5 if not c.isalnum()
172
+ else 1
173
+ )
174
+ self._emit(c, d)
175
+
176
+
177
+ def type_print(
178
+ text: str,
179
+ *,
180
+ delay: float = 0.04,
181
+ jitter: float = 0,
182
+ mode: TypeMode = TypeMode.CHAR,
183
+ file: Optional[TextIOBase] = None):
184
+ """
185
+ Print text with typing effects.
186
+
187
+ :param text: text to be printed
188
+ :param delay: base delay (in seconds) between emitted units
189
+ :param jitter: random jitter added/subtracted from delay
190
+ :param mode: typing mode controlling emission granularity
191
+ :param file: output stream supporting a write() method
192
+ """
193
+ text = _validate(text, delay, jitter, mode, file)
194
+ out = file or sys.stdout
195
+
196
+ printer = _TypioPrinter(
197
+ delay=delay,
198
+ jitter=jitter,
199
+ mode=mode,
200
+ out=out,
201
+ )
202
+ printer.write(text)
203
+ printer.flush()
204
+
205
+
206
+ def typestyle(
207
+ *,
208
+ delay: float = 0.04,
209
+ jitter: float = 0,
210
+ mode: TypeMode = TypeMode.CHAR) -> Callable:
211
+ """
212
+ Apply typing effects to all print() calls inside the decorated function.
213
+
214
+ :param delay: base delay (in seconds) between emitted units
215
+ :param jitter: random jitter added/subtracted from delay
216
+ :param mode: typing mode controlling emission granularity
217
+ """
218
+ _validate("", delay, jitter, mode, sys.stdout)
219
+
220
+ def decorator(func: Callable) -> Callable:
221
+ @wraps(func)
222
+ def wrapper(*args: list, **kwargs: dict) -> Any:
223
+ old_stdout = sys.stdout
224
+ try:
225
+ sys.stdout = _TypioPrinter(
226
+ delay=delay,
227
+ jitter=jitter,
228
+ mode=mode,
229
+ out=old_stdout,
230
+ )
231
+ return func(*args, **kwargs)
232
+ finally:
233
+ sys.stdout = old_stdout
234
+
235
+ return wrapper
236
+
237
+ return decorator
typio/params.py ADDED
@@ -0,0 +1,24 @@
1
+ # -*- coding: utf-8 -*-
2
+ """typio params."""
3
+ from enum import Enum
4
+
5
+ TYPIO_VERSION = "0.1"
6
+
7
+
8
+ class TypeMode(Enum):
9
+ """Type mode enum."""
10
+
11
+ CHAR = "char"
12
+ WORD = "word"
13
+ LINE = "line"
14
+ SENTENCE = "sentence"
15
+ TYPEWRITER = "typewriter"
16
+ ADAPTIVE = "adaptive"
17
+
18
+
19
+ INVALID_TEXT_ERROR = "`text` must be str or bytes."
20
+ INVALID_BYTE_ERROR = "bytes text must be UTF-8 decodable."
21
+ INVALID_DELAY_ERROR = "`delay` must be a non-negative number."
22
+ INVALID_JITTER_ERROR = "`jitter` must be a non-negative number."
23
+ INVALID_MODE_ERROR = "`mode` must be a TypeMode enum value."
24
+ INVALID_FILE_ERROR = "`file` must be a file-like object."
@@ -0,0 +1,209 @@
1
+ Metadata-Version: 2.4
2
+ Name: typio
3
+ Version: 0.1
4
+ Summary: Typio: Make Your Terminal Type Like a Human
5
+ Home-page: https://github.com/sepandhaghighi/typio
6
+ Download-URL: https://github.com/sepandhaghighi/typio/tarball/v0.1
7
+ Author: Sepand Haghighi
8
+ Author-email: me@sepand.tech
9
+ License: MIT
10
+ Project-URL: Source, https://github.com/sepandhaghighi/typio
11
+ Keywords: terminal cli typing typewriter typing-effect console stdout ux
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Natural Language :: English
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
+ Classifier: Intended Audience :: Developers
24
+ Classifier: Intended Audience :: Education
25
+ Classifier: Topic :: Software Development :: Libraries
26
+ Classifier: Topic :: Software Development :: User Interfaces
27
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
+ Classifier: Topic :: Utilities
29
+ Classifier: Topic :: Terminals
30
+ Requires-Python: >=3.8
31
+ Description-Content-Type: text/markdown
32
+ License-File: LICENSE
33
+ License-File: AUTHORS.md
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: download-url
40
+ Dynamic: home-page
41
+ Dynamic: keywords
42
+ Dynamic: license
43
+ Dynamic: license-file
44
+ Dynamic: project-url
45
+ Dynamic: requires-python
46
+ Dynamic: summary
47
+
48
+
49
+ <div align="center">
50
+ <img src="https://github.com/sepandhaghighi/typio/raw/main/otherfiles/logo.png" width="320">
51
+ <h1>Typio: Make Your Terminal Type Like a Human</h1>
52
+ <br/>
53
+ <a href="https://www.python.org/"><img src="https://img.shields.io/badge/built%20with-Python3-green.svg" alt="built with Python3"></a>
54
+ <a href="https://github.com/sepandhaghighi/typio"><img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/sepandhaghighi/typio"></a>
55
+ <a href="https://badge.fury.io/py/typio"><img src="https://badge.fury.io/py/typio.svg" alt="PyPI version"></a>
56
+ </div>
57
+
58
+ ## Overview
59
+
60
+ <p align="justify">
61
+ Typio is a lightweight Python library that prints text to the terminal as if it were being typed by a human. It supports multiple typing modes (character, word, line, sentence, typewriter, and adaptive), configurable delays and jitter for natural variation, and seamless integration with existing code via a simple function or a decorator. Typio is designed to be minimal, extensible, and safe, making it ideal for demos, CLIs, tutorials, and storytelling in the terminal.
62
+ </p>
63
+
64
+ <table>
65
+ <tr>
66
+ <td align="center">PyPI Counter</td>
67
+ <td align="center"><a href="http://pepy.tech/project/typio"><img src="http://pepy.tech/badge/typio"></a></td>
68
+ </tr>
69
+ <tr>
70
+ <td align="center">Github Stars</td>
71
+ <td align="center"><a href="https://github.com/sepandhaghighi/typio"><img src="https://img.shields.io/github/stars/sepandhaghighi/typio.svg?style=social&label=Stars"></a></td>
72
+ </tr>
73
+ </table>
74
+
75
+
76
+
77
+ <table>
78
+ <tr>
79
+ <td align="center">Branch</td>
80
+ <td align="center">main</td>
81
+ <td align="center">dev</td>
82
+ </tr>
83
+ <tr>
84
+ <td align="center">CI</td>
85
+ <td align="center"><img src="https://github.com/sepandhaghighi/typio/actions/workflows/test.yml/badge.svg?branch=main"></td>
86
+ <td align="center"><img src="https://github.com/sepandhaghighi/typio/actions/workflows/test.yml/badge.svg?branch=dev"></td>
87
+ </tr>
88
+ </table>
89
+
90
+ ## Installation
91
+
92
+ ### Source Code
93
+ - Download [Version 0.1](https://github.com/sepandhaghighi/typio/archive/v0.1.zip) or [Latest Source](https://github.com/sepandhaghighi/typio/archive/dev.zip)
94
+ - `pip install .`
95
+
96
+ ### PyPI
97
+
98
+ - Check [Python Packaging User Guide](https://packaging.python.org/installing/)
99
+ - `pip install typio==0.1`
100
+
101
+
102
+ ## Usage
103
+
104
+ ### Function
105
+
106
+ Use `type_print` function to print text with human-like typing effects. You can control the typing speed, randomness, mode, and output stream.
107
+
108
+ ```python
109
+ from typio import type_print
110
+ from typio import TypeMode
111
+
112
+ type_print("Hello, world!")
113
+
114
+ type_print(
115
+ "Typing with style and personality.",
116
+ delay=0.06,
117
+ jitter=0.02,
118
+ mode=TypeMode.ADAPTIVE,
119
+ )
120
+ ```
121
+
122
+ You can also redirect the output to any file-like object:
123
+
124
+ ```python
125
+ with open("output.txt", "w") as file:
126
+ type_print("Saved with typing effects.", file=file)
127
+ ```
128
+
129
+ ### Decorator
130
+
131
+ Use the `@typestyle` decorator to apply typing effects to all `print` calls inside a function, without changing the function's implementation.
132
+
133
+ ```python
134
+ from typio import typestyle
135
+ from typio import TypeMode
136
+
137
+ @typestyle(delay=0.05, mode=TypeMode.TYPEWRITER)
138
+ def intro():
139
+ print("Welcome to Typio.")
140
+ print("Every print is typed.")
141
+
142
+ intro()
143
+ ```
144
+
145
+ ## Issues & Bug Reports
146
+
147
+ Just fill an issue and describe it. We'll check it ASAP!
148
+
149
+ - Please complete the issue template
150
+
151
+ ## Show Your Support
152
+
153
+ <h3>Star This Repo</h3>
154
+
155
+ Give a ⭐️ if this project helped you!
156
+
157
+ <h3>Donate to Our Project</h3>
158
+
159
+ <h4>Bitcoin</h4>
160
+ 1KtNLEEeUbTEK9PdN6Ya3ZAKXaqoKUuxCy
161
+ <h4>Ethereum</h4>
162
+ 0xcD4Db18B6664A9662123D4307B074aE968535388
163
+ <h4>Litecoin</h4>
164
+ Ldnz5gMcEeV8BAdsyf8FstWDC6uyYR6pgZ
165
+ <h4>Doge</h4>
166
+ DDUnKpFQbBqLpFVZ9DfuVysBdr249HxVDh
167
+ <h4>Tron</h4>
168
+ TCZxzPZLcJHr2qR3uPUB1tXB6L3FDSSAx7
169
+ <h4>Ripple</h4>
170
+ rN7ZuRG7HDGHR5nof8nu5LrsbmSB61V1qq
171
+ <h4>Binance Coin</h4>
172
+ bnb1zglwcf0ac3d0s2f6ck5kgwvcru4tlctt4p5qef
173
+ <h4>Tether</h4>
174
+ 0xcD4Db18B6664A9662123D4307B074aE968535388
175
+ <h4>Dash</h4>
176
+ Xd3Yn2qZJ7VE8nbKw2fS98aLxR5M6WUU3s
177
+ <h4>Stellar</h4>
178
+ GALPOLPISRHIYHLQER2TLJRGUSZH52RYDK6C3HIU4PSMNAV65Q36EGNL
179
+ <h4>Zilliqa</h4>
180
+ zil1knmz8zj88cf0exr2ry7nav9elehxfcgqu3c5e5
181
+ <h4>Coffeete</h4>
182
+ <a href="http://www.coffeete.ir/opensource">
183
+ <img src="http://www.coffeete.ir/images/buttons/lemonchiffon.png" style="width:260px;" />
184
+ </a>
185
+
186
+
187
+ # Changelog
188
+ All notable changes to this project will be documented in this file.
189
+
190
+ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
191
+ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
192
+
193
+ ## [Unreleased]
194
+ ## [0.1] - 2026-01-31
195
+ ### Added
196
+ - `type_print` function
197
+ - `typestyle` decorator
198
+ - `CHAR` mode
199
+ - `WORD` mode
200
+ - `LINE` mode
201
+ - `SENTENCE` mode
202
+ - `TYPEWRITER` mode
203
+ - `ADAPTIVE` mode
204
+
205
+ [Unreleased]: https://github.com/sepandhaghighi/typio/compare/v0.1...dev
206
+ [0.1]: https://github.com/sepandhaghighi/typio/compare/750c00e...v0.1
207
+
208
+
209
+
@@ -0,0 +1,11 @@
1
+ typio/__init__.py,sha256=zQwcPifBXaJ-KfZH0xsaWc8yiBYDWLwDi03yma5e2-g,194
2
+ typio/__main__.py,sha256=NXst2kL-xGtI3tNIxh-H3AOL3vyn8SPiR96fER5oxfE,79
3
+ typio/errors.py,sha256=NQbqfcRb4x-7MATeu6gWBqhJyrw5wrRri8eZwO4R6-M,131
4
+ typio/functions.py,sha256=xCu9UH7sYYhYqEtRUH5ksL1GAdLUGpe2VjzwpDc40ak,6675
5
+ typio/params.py,sha256=fxbtHgyHq9IhKwqGVdQl9hNE6tqhIGMJwP4y8OqG4rE,640
6
+ typio-0.1.dist-info/licenses/AUTHORS.md,sha256=MpV5Y8EC8ZhJuALpwydW5BkmpRvxjxFopEHWdyjJ1Q8,181
7
+ typio-0.1.dist-info/licenses/LICENSE,sha256=-eYKcwcJYZNHlmW-GcaTyv0U2goVRxkTf9rH095_EI0,1072
8
+ typio-0.1.dist-info/METADATA,sha256=_Vp8vKhRBhSR_5xtL5MeZ5iT1DNBsKz0Dy3l-m42u1w,6515
9
+ typio-0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
10
+ typio-0.1.dist-info/top_level.txt,sha256=Dp5VGIrBg-Gmk8fSWVXKSpwl-Dltacd0Q4dEoIzcReY,6
11
+ typio-0.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,12 @@
1
+ # Core Developers
2
+ ----------
3
+ - [@sepandhaghighi](http://github.com/sepandhaghighi)
4
+
5
+
6
+ # Other Contributors
7
+ ----------
8
+ - [Gemini](https://gemini.google.com) ++
9
+
10
+ ++ Graphic designer
11
+
12
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sepand Haghighi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ typio
__init__.py DELETED
@@ -1,2 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """typio modules."""
@@ -1,38 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: typio
3
- Version: 0.0.0
4
- Summary: This name has been reserved using Reserver
5
- Home-page: https://url.com
6
- Download-URL: https://download_url.com
7
- Author: Development Team
8
- Author-email: test@test.com
9
- License: MIT
10
- Project-URL: Source, https://github.com/source
11
- Keywords: python3 python reserve reserver reserved
12
- Classifier: Development Status :: 1 - Planning
13
- Classifier: Programming Language :: Python :: 3.6
14
- Classifier: Programming Language :: Python :: 3.7
15
- Classifier: Programming Language :: Python :: 3.8
16
- Classifier: Programming Language :: Python :: 3.9
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
- Requires-Python: >=3.6
21
- Description-Content-Type: text/markdown
22
- Dynamic: author
23
- Dynamic: author-email
24
- Dynamic: classifier
25
- Dynamic: description
26
- Dynamic: description-content-type
27
- Dynamic: download-url
28
- Dynamic: home-page
29
- Dynamic: keywords
30
- Dynamic: license
31
- Dynamic: project-url
32
- Dynamic: requires-python
33
- Dynamic: summary
34
-
35
-
36
- ## Overview
37
- typio is a Python library for doing awesome things.
38
- This name has been reserved using [Reserver](https://github.com/openscilab/reserver).
@@ -1,5 +0,0 @@
1
- __init__.py,sha256=dp1WVGy9szS2t1wXtJJunJ_xkXppAzLm8j592Fkd9ck,44
2
- typio-0.0.0.dist-info/METADATA,sha256=Z-yhuU0OHTK-BYAQQrBGu-6cK4tYFoC0u0Pb7M126Tg,1198
3
- typio-0.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
4
- typio-0.0.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
5
- typio-0.0.0.dist-info/RECORD,,
@@ -1 +0,0 @@
1
-