abdocode 1.2.0__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.
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abdocode
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: A Python utility library for keyboard shortcuts, file tools, audio helpers and workflow utilities
|
|
5
|
+
Author-email: Abdalla Emad <19abdo9123@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Keywords: hotkey,utility,audio,workflow,tkinter
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Requires-Python: >=3.6
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: numpy
|
|
15
|
+
Requires-Dist: sounddevice
|
|
16
|
+
Dynamic: license-file
|
|
17
|
+
|
|
18
|
+
# ============/Abdo☆code\===============
|
|
19
|
+
|
|
20
|
+
مكتبة `abdocode` توفر أدوات مساعدة قوية لتطبيقات بايثون، خاصة العمليات المرتبطة بالاختصارات، إدارة الملفات، الصوت، والمزيد.
|
|
21
|
+
|
|
22
|
+
## المميزات:
|
|
23
|
+
- نظام اختصارات لوحة مفاتيح سهل الاستخدام مع إدارة تشغيل الأحداث.
|
|
24
|
+
- أدوات تعديل الحافظة ونسخ/لصق تاريخي.
|
|
25
|
+
- وظائف قراءة وكتابة ملفات نصية، والبحث عن الملفات.
|
|
26
|
+
- تحويل نصوص وحسابات سريعة، بالإضافة إلى أدوات الوقت والتاريخ.
|
|
27
|
+
- دعم صوتي ذكي لتشغيل نغمات ومقاطع موسيقية باستخدام `sounddevice`.
|
|
28
|
+
- أدوات HTTP بسيطة لتنزيل وقراءة JSON من الإنترنت.
|
|
29
|
+
- مدير إعدادات وقيم مع وظائف مساعدة لتهيئة واستخدام الإعدادات.
|
|
30
|
+
- نظام تسجيل وتدفق أحداث مع `EventBus` ومحرّك لوغاريتمي للتطبيقات البسيطة.
|
|
31
|
+
|
|
32
|
+
## التثبيت:
|
|
33
|
+
```bash
|
|
34
|
+
pip install abdocode
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## شرح الدوال الرئيسية
|
|
38
|
+
فيما يلي أهم دوال المكتبة ومجالات استخدامها:
|
|
39
|
+
|
|
40
|
+
### 1. إدارة الاختصارات
|
|
41
|
+
- `add_shortcut(root, key, event)`: يسجّل اختصار لوحة مفاتيح إلى حدث مع واجهة `tkinter`.
|
|
42
|
+
- `remove_shortcut(root, key)`: يزيل اختصارًا مسجّلًا.
|
|
43
|
+
- `disable_all()`: يعطّل جميع الاختصارات النشطة.
|
|
44
|
+
- `enable_all()`: يعيد تفعيل جميع الاختصارات.
|
|
45
|
+
- `reset_all(root)`: يعيد تهيئة ملحقات الاختصارات في النافذة.
|
|
46
|
+
- `list_shortcuts()`: يعرض قائمة الاختصارات المفعلة.
|
|
47
|
+
|
|
48
|
+
### 2. اختصارات جاهزة
|
|
49
|
+
توفر المكتبة اختصارات جاهزة مثل:
|
|
50
|
+
- `copy(root)`, `paste(root)`, `cut(root)`
|
|
51
|
+
- `select_all(root)`, `undo(root)`, `redo(root)`
|
|
52
|
+
- `save(root)`, `open_file(root)`, `new_file(root)`
|
|
53
|
+
- `refresh(root)`, `print_file(root)`
|
|
54
|
+
|
|
55
|
+
### 3. لوحة الحافظة والملفات
|
|
56
|
+
- `write_clipboard(root, text)`: يضع نصًا في الحافظة.
|
|
57
|
+
- `read_clipboard(root)`: يقرأ نصًا من الحافظة.
|
|
58
|
+
- `clear_clipboard(root)`: ينظف الحافظة.
|
|
59
|
+
- `read_text_file(path, encoding='utf-8')`: يقرأ ملفًا نصيًا.
|
|
60
|
+
- `write_text_file(path, text, encoding='utf-8')`: يكتب إلى ملف نصي.
|
|
61
|
+
- `append_text_file(path, text, encoding='utf-8')`: يلحق نصًا في نهاية ملف.
|
|
62
|
+
- `list_files(folder, extension=None, recursive=False)`: يسرد الملفات في مجلد.
|
|
63
|
+
- `find_files(folder, pattern, recursive=True, extension=None)`: يبحث عن ملفات بنمط مع دعم التكرار.
|
|
64
|
+
|
|
65
|
+
### 4. أدوات النص
|
|
66
|
+
- `normalize_whitespace(text)`: ينظف الفراغات المتكررة.
|
|
67
|
+
- `count_words(text)`: يعد الكلمات في النص.
|
|
68
|
+
- `to_title_case(text)`: يحول النص إلى حالة العنوان.
|
|
69
|
+
- `snake_to_camel(text)` و `camel_to_snake(text)`: تحويل أسماء المتغيرات.
|
|
70
|
+
- `remove_punctuation(text)`: يزيل علامات الترقيم.
|
|
71
|
+
|
|
72
|
+
### 5. مؤقتات وجدولة
|
|
73
|
+
- `set_timeout(callback, delay, *args, **kwargs)`: ينفّذ وظيفة بعد تأخير.
|
|
74
|
+
- `set_interval(callback, interval, *args, **kwargs)`: ينفّذ وظيفة بشكل متكرر.
|
|
75
|
+
- `cancel_timer(timer_id)`: يوقف مؤقتًا مسجّلًا.
|
|
76
|
+
- `active_timers()`: يعرض المؤقتات الحالية.
|
|
77
|
+
|
|
78
|
+
### 6. معلومات النظام
|
|
79
|
+
- `get_system_info()`: يسترجع معلومات النظام الأساسية.
|
|
80
|
+
- `get_environment_variables()`: يقرأ متغيرات البيئة.
|
|
81
|
+
- `open_folder(path)`: يفتح مجلدًا في مدير الملفات.
|
|
82
|
+
- `get_file_size(path)`: يعرض حجم الملف.
|
|
83
|
+
|
|
84
|
+
### 7. واجهات المستخدم المبسطة
|
|
85
|
+
- `show_info(title, message)`: يعرض رسالة معلومات.
|
|
86
|
+
- `show_warning(title, message)`: يعرض تحذيرًا.
|
|
87
|
+
- `show_error(title, message)`: يعرض خطأ.
|
|
88
|
+
- `ask_yes_no(title, message)`: يطلب تأكيد نعم/لا.
|
|
89
|
+
- `ask_input(title, prompt, default='')`: يطلب إدخال نص.
|
|
90
|
+
- `simple_popup(root, title, message)`: يعرض نافذة منبثقة بسيطة.
|
|
91
|
+
|
|
92
|
+
### 8. صوت وموسيقى
|
|
93
|
+
- `note_to_frequency(note)`: يحول اسم نغمة إلى تردد صوتي.
|
|
94
|
+
- `play_tone(note, duration=0.2, volume=0.5, waveform='sine')`: يشغّل نغمة.
|
|
95
|
+
- `play_notes(sequence, tempo=120, volume=0.4, waveform='sine')`: يشغّل سلسلة نغمات.
|
|
96
|
+
|
|
97
|
+
### 9. التحقق من القيم والصيغ
|
|
98
|
+
- `is_integer(value)`, `is_float(value)`, `is_string(value)`, `is_list(value)`, `is_dict(value)`, `is_boolean(value)`: فحوصات نوع القيمة.
|
|
99
|
+
- `validate_schema(data, schema, path='')`: يتحقق من بنية البيانات.
|
|
100
|
+
- `ensure_schema(data, schema)`: يضمن تطابق البيانات مع المخطط.
|
|
101
|
+
- `assert_type(value, expected_type)`: يؤكد نوع قيمة.
|
|
102
|
+
|
|
103
|
+
### 10. JSON وبيانات
|
|
104
|
+
- `load_json(path, encoding='utf-8')`: يقرأ JSON من ملف.
|
|
105
|
+
- `save_json(path, data, encoding='utf-8', indent=4)`: يحفظ JSON.
|
|
106
|
+
- `merge_dicts(*dicts, deep=True)`: يدمج قواميس عميقًا.
|
|
107
|
+
- `deep_get(data, path, default=None, separator='.')`: يحصل على قيمة متداخلة.
|
|
108
|
+
- `deep_set(data, path, value, separator='.')`: يعيّن قيمة متداخلة.
|
|
109
|
+
|
|
110
|
+
### 11. طلبات HTTP
|
|
111
|
+
- `load_json_url(url, headers=None, timeout=10)`: يقرأ JSON من URL.
|
|
112
|
+
- `http_get(url, headers=None, timeout=10)`: يرسل طلب GET.
|
|
113
|
+
- `http_post(url, data=None, json_data=None, headers=None, timeout=10)`: يرسل طلب POST.
|
|
114
|
+
- `fetch_json(url, headers=None, timeout=10)`: يجلب JSON من الإنترنت.
|
|
115
|
+
- `check_url(url, timeout=5)`: يتحقق من صلاحية عنوان URL.
|
|
116
|
+
- `download_file(url, dest, chunk_size=8192, timeout=10)`: يحمل ملفًا.
|
|
117
|
+
|
|
118
|
+
### 12. الوقت والتاريخ
|
|
119
|
+
- `current_timestamp()`: يقرأ الطابع الزمني الحالي.
|
|
120
|
+
- `format_datetime(value=None, fmt='%Y-%m-%d %H:%M:%S')`: ينسق التاريخ.
|
|
121
|
+
- `parse_datetime(text, fmt='%Y-%m-%d %H:%M:%S')`: يحول نصًا إلى تاريخ.
|
|
122
|
+
- `relative_time(value, now=None)`: يحسب الوقت النسبي.
|
|
123
|
+
- `countdown(seconds, callback=None, interval=1)`: عد تنازلي مع استدعاء.
|
|
124
|
+
- `is_weekend(value=None)`: يتحقق من أن اليوم عطلة.
|
|
125
|
+
- `add_business_days(value, days)`: يضيف أيام عمل.
|
|
126
|
+
|
|
127
|
+
### 13. حسابات ومساعدة رياضية
|
|
128
|
+
- `clamp(value, minimum, maximum)`: يقيد قيمة ضمن مدى.
|
|
129
|
+
- `lerp(start, end, fraction)`: ينجز استيفاء خطيًا.
|
|
130
|
+
- `remap(value, old_min, old_max, new_min, new_max)`: يعيد تعيين مدى.
|
|
131
|
+
- `mean_values(values)`, `median_values(values)`, `mode_values(values)`: إحصاءات بسيطة.
|
|
132
|
+
- `variance(values, sample=False)`, `stddev(values, sample=False)`: تباين وانحراف معياري.
|
|
133
|
+
- `percent_change(original, new)`: نسبة التغير.
|
|
134
|
+
- `safe_divide(a, b, default=0.0)`: قسمة آمنة بدون خطأ.
|
|
135
|
+
- `random_choice_weighted(choices)`: اختيار عشوائي مرجح.
|
|
136
|
+
|
|
137
|
+
### 14. أوامر النظام والعمليات
|
|
138
|
+
- `run_command(command, shell=False, cwd=None, env=None, timeout=None)`: تشغيل أمر مزامني.
|
|
139
|
+
- `run_command_async(command, callback=None, shell=False, cwd=None, env=None, timeout=None)`: تشغيل أمر غير مزامني.
|
|
140
|
+
- `which(program)`: البحث عن برنامج في المسار.
|
|
141
|
+
- `is_process_running(name)`: التحقق من وجود عملية.
|
|
142
|
+
- `kill_process(pid)`: إنهاء عملية.
|
|
143
|
+
|
|
144
|
+
### 15. إدارة الملفات والمجموعات
|
|
145
|
+
- `copy_file(src, dst)`, `move_file(src, dst)`, `delete_file(path)`: إدارة الملفات.
|
|
146
|
+
- `chunk_list(sequence, chunk_size)`: تجزئة قائمة.
|
|
147
|
+
- `flatten_list(nested_list)`: تسطيح قائمة متداخلة.
|
|
148
|
+
- `unique_preserve(sequence)`: إزالة التكرار مع حفظ الترتيب.
|
|
149
|
+
- `group_by(sequence, key_function)`: تجميع عناصر القائمة.
|
|
150
|
+
- `coalesce(*values)`: اختيار أول قيمة غير فارغة.
|
|
151
|
+
- `dict_merge(*dicts)`: دمج القواميس.
|
|
152
|
+
|
|
153
|
+
### 16. إعدادات وتكوين
|
|
154
|
+
- `load_settings(path, default=None, encoding='utf-8')`: تحميل إعدادات JSON.
|
|
155
|
+
- `save_settings(path, settings, encoding='utf-8', indent=4)`: حفظ إعدادات.
|
|
156
|
+
- `get_setting(settings, key, default=None)`: الحصول على قيمة إعداد.
|
|
157
|
+
- `set_setting(settings, key, value)`: تعيين قيمة إعداد.
|
|
158
|
+
- `update_settings(settings, updates)`: تحديث إعدادات موجودة.
|
|
159
|
+
- `flatten_settings(settings, separator='.')`: تسطيح إعدادات متداخلة.
|
|
160
|
+
|
|
161
|
+
### 17. سجل الأحداث ونظام الرسائل
|
|
162
|
+
- `EventBus`: يدير الاشتراكات والأحداث.
|
|
163
|
+
- `subscribe(event_name, listener)`: الاشتراك في حدث.
|
|
164
|
+
- `unsubscribe(event_name, listener=None)`: إلغاء الاشتراك.
|
|
165
|
+
- `emit(event_name, *args, **kwargs)`: بث حدث.
|
|
166
|
+
- `clear()`: مسح جميع المستمعين.
|
|
167
|
+
|
|
168
|
+
### 18. تسجيل السجلات
|
|
169
|
+
- `set_log_file(path, level=logging.INFO, mode='a')`: تعيين ملف السجل.
|
|
170
|
+
- `log_info(message)`, `log_warning(message)`, `log_error(message)`, `log_debug(message)`: وظائف تسجيل.
|
|
171
|
+
- `get_log_file()`: استرجاع مسار ملف السجل.
|
|
172
|
+
- `configure_logging(level=logging.INFO, fmt='[%(levelname)s] %(message)s')`: إعداد تكوين التسجيل.
|
|
173
|
+
|
|
174
|
+
### 19. مساعدة العرض
|
|
175
|
+
- `print_table(rows, headers=None, padding=2)`: طباعة جدول منظم.
|
|
176
|
+
- `progress_bar(iterable, prefix='', size=40, fill='█')`: شريط تقدم في الطرفية.
|
|
177
|
+
- `prompt_choices(root, title, options, default_index=0)`: اختيار من قائمة.
|
|
178
|
+
- `clear_console()`: تنظيف الشاشة.
|
|
179
|
+
- `confirm_action(message='Proceed?', default=True)`: نافذة تأكيد.
|
|
180
|
+
- `show_progress(title, current, total)`: عارض نسبة تنفيذ.
|
|
181
|
+
- `play(name)`: تشغيل صوت مسجل.
|
|
182
|
+
- `add_sound(name, func)`: إضافة صوت جديد.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## ملاحظة
|
|
187
|
+
يمكنك استيراد المكتبة كالتالي:
|
|
188
|
+
```python
|
|
189
|
+
from hotkey_engine import core
|
|
190
|
+
```
|
|
191
|
+
ثم استخدام الدوال مباشرة مثل:
|
|
192
|
+
```python
|
|
193
|
+
core.play('note_C4')
|
|
194
|
+
core.add_shortcut(root, '<Control-s>', '<<Save>>')
|
|
195
|
+
```
|
|
196
|
+
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
abdocode-1.2.0.dist-info/licenses/LICENSE,sha256=_iln7YVY1HpOwzqd8I4K8weX_lOqDnRq3RUlVcOD_no,1095
|
|
2
|
+
hotkey_engine/__init__.py,sha256=79Ih1151rfcqZdr7F8HSZSTs_iT2SKd1xCkehMsXeXs,19
|
|
3
|
+
hotkey_engine/core.py,sha256=ddO_z8MMHmYRDxzkzMDw2Wu1pD-VK6sUX4px8Yswq40,47168
|
|
4
|
+
abdocode-1.2.0.dist-info/METADATA,sha256=LJ_eOPzNnBaFuIFR8TeC91gMwZ08X5gYVeJg0I-qoqo,11234
|
|
5
|
+
abdocode-1.2.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
6
|
+
abdocode-1.2.0.dist-info/top_level.txt,sha256=WeQHr6G36VuhfDXTLnVA9covOIFQNMihBJ6oVtg7RCw,14
|
|
7
|
+
abdocode-1.2.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Abdullah (abdocode)
|
|
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
|
+
hotkey_engine
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .core import *
|