Skip to main content

A Python utility library for keyboard shortcuts, file tools, audio helpers and workflow utilities

Project description

============Abdo☆code===============

مكتبة abdocode توفر أدوات مساعدة قوية لتطبيقات بايثون، خاصة العمليات المرتبطة بالاختصارات، إدارة الملفات، الصوت، والمزيد.

المميزات:

  • نظام اختصارات لوحة مفاتيح سهل الاستخدام مع إدارة تشغيل الأحداث.
  • أدوات تعديل الحافظة ونسخ/لصق تاريخي.
  • وظائف قراءة وكتابة ملفات نصية، والبحث عن الملفات.
  • تحويل نصوص وحسابات سريعة، بالإضافة إلى أدوات الوقت والتاريخ.
  • دعم صوتي ذكي لتشغيل نغمات ومقاطع موسيقية باستخدام sounddevice.
  • أدوات HTTP بسيطة لتنزيل وقراءة JSON من الإنترنت.
  • مدير إعدادات وقيم مع وظائف مساعدة لتهيئة واستخدام الإعدادات.
  • نظام تسجيل وتدفق أحداث مع EventBus ومحرّك لوغاريتمي للتطبيقات البسيطة.

التثبيت:


pip install abdocode

الكاتب

  • name: abdalla emad
  • age: 13 years

توضيح تعديلات النوافذ المنبثقة (آخر التحديثات)

  • تم تحديث سلوك النوافذ المنبثقة المتعلقة بالاختصارات والأصوات لتكون تفاعلية ومناسبة للاستخدام كمكتبة:
    • النقر بزر الفأرة الأيمن (Button-3) يعرض نافذة منبثقة لقائمة الاختصارات القابلة للبحث.
    • الضغط المتسلسل Ctrl+S ثم . يفتح نافذة منبثقة للأصوات المسجّلة.
    • عناصر القوائم تُعرض كأزرار قابلة للنقر: النقر على زر الاختصار يجري تشغيل الحدث المسجّل، والنقر على زر الصوت يشغل نغمة (في خيط منفصل لتجنب تجميد الواجهة).
    • الربط غير مفعل تلقائيًا عند استيراد المكتبة — استخدم enable_shortcuts_ui(root) لربط النوافذ بجذر tkinter عندما تريد تفعيل السلوك داخل تطبيقك.

ملاحظة: صُممت هذه الميزات لتكون صديقة للمكتبات؛ لا تفرض تغييرات على تطبيق المستخدم إلا بعد استدعاء التهيئة اليدوية.

3. لوحة الحافظة والملفات

  • write_clipboard(root, text): يضع نصًا في الحافظة.
  • read_clipboard(root): يقرأ نصًا من الحافظة.
  • clear_clipboard(root): ينظف الحافظة.
  • read_text_file(path, encoding='utf-8'): يقرأ ملفًا نصيًا.
  • write_text_file(path, text, encoding='utf-8'): يكتب إلى ملف نصي.
  • append_text_file(path, text, encoding='utf-8'): يلحق نصًا في نهاية ملف.
  • list_files(folder, extension=None, recursive=False): يسرد الملفات في مجلد.
  • find_files(folder, pattern, recursive=True, extension=None): يبحث عن ملفات بنمط مع دعم التكرار.

4. أدوات النص

  • normalize_whitespace(text): ينظف الفراغات المتكررة.
  • count_words(text): يعد الكلمات في النص.
  • to_title_case(text): يحول النص إلى حالة العنوان.
  • snake_to_camel(text) و camel_to_snake(text): تحويل أسماء المتغيرات.
  • remove_punctuation(text): يزيل علامات الترقيم.

5. مؤقتات وجدولة

  • set_timeout(callback, delay, *args, **kwargs): ينفّذ وظيفة بعد تأخير.
  • set_interval(callback, interval, *args, **kwargs): ينفّذ وظيفة بشكل متكرر.
  • cancel_timer(timer_id): يوقف مؤقتًا مسجّلًا.
  • active_timers(): يعرض المؤقتات الحالية.

6. معلومات النظام

  • get_system_info(): يسترجع معلومات النظام الأساسية.
  • get_environment_variables(): يقرأ متغيرات البيئة.
  • open_folder(path): يفتح مجلدًا في مدير الملفات.
  • get_file_size(path): يعرض حجم الملف.

7. واجهات المستخدم المبسطة

  • show_info(title, message): يعرض رسالة معلومات.
  • show_warning(title, message): يعرض تحذيرًا.
  • show_error(title, message): يعرض خطأ.
  • ask_yes_no(title, message): يطلب تأكيد نعم/لا.
  • ask_input(title, prompt, default=''): يطلب إدخال نص.
  • simple_popup(root, title, message): يعرض نافذة منبثقة بسيطة.

8. صوت وموسيقى

  • note_to_frequency(note): يحول اسم نغمة إلى تردد صوتي.
  • play_tone(note, duration=0.2, volume=0.5, waveform='sine'): يشغّل نغمة.
  • play_notes(sequence, tempo=120, volume=0.4, waveform='sine'): يشغّل سلسلة نغمات.

9. التحقق من القيم والصيغ

  • is_integer(value), is_float(value), is_string(value), is_list(value), is_dict(value), is_boolean(value): فحوصات نوع القيمة.
  • validate_schema(data, schema, path=''): يتحقق من بنية البيانات.
  • ensure_schema(data, schema): يضمن تطابق البيانات مع المخطط.
  • assert_type(value, expected_type): يؤكد نوع قيمة.

10. JSON وبيانات

  • load_json(path, encoding='utf-8'): يقرأ JSON من ملف.
  • save_json(path, data, encoding='utf-8', indent=4): يحفظ JSON.
  • merge_dicts(*dicts, deep=True): يدمج قواميس عميقًا.
  • deep_get(data, path, default=None, separator='.'): يحصل على قيمة متداخلة.
  • deep_set(data, path, value, separator='.'): يعيّن قيمة متداخلة.

11. طلبات HTTP

  • load_json_url(url, headers=None, timeout=10): يقرأ JSON من URL.
  • http_get(url, headers=None, timeout=10): يرسل طلب GET.
  • http_post(url, data=None, json_data=None, headers=None, timeout=10): يرسل طلب POST.
  • fetch_json(url, headers=None, timeout=10): يجلب JSON من الإنترنت.
  • check_url(url, timeout=5): يتحقق من صلاحية عنوان URL.
  • download_file(url, dest, chunk_size=8192, timeout=10): يحمل ملفًا.

12. الوقت والتاريخ

  • current_timestamp(): يقرأ الطابع الزمني الحالي.
  • format_datetime(value=None, fmt='%Y-%m-%d %H:%M:%S'): ينسق التاريخ.
  • parse_datetime(text, fmt='%Y-%m-%d %H:%M:%S'): يحول نصًا إلى تاريخ.
  • relative_time(value, now=None): يحسب الوقت النسبي.
  • countdown(seconds, callback=None, interval=1): عد تنازلي مع استدعاء.
  • is_weekend(value=None): يتحقق من أن اليوم عطلة.
  • add_business_days(value, days): يضيف أيام عمل.

13. حسابات ومساعدة رياضية

  • clamp(value, minimum, maximum): يقيد قيمة ضمن مدى.
  • lerp(start, end, fraction): ينجز استيفاء خطيًا.
  • remap(value, old_min, old_max, new_min, new_max): يعيد تعيين مدى.
  • mean_values(values), median_values(values), mode_values(values): إحصاءات بسيطة.
  • variance(values, sample=False), stddev(values, sample=False): تباين وانحراف معياري.
  • percent_change(original, new): نسبة التغير.
  • safe_divide(a, b, default=0.0): قسمة آمنة بدون خطأ.
  • random_choice_weighted(choices): اختيار عشوائي مرجح.

14. أوامر النظام والعمليات

  • run_command(command, shell=False, cwd=None, env=None, timeout=None): تشغيل أمر مزامني.
  • run_command_async(command, callback=None, shell=False, cwd=None, env=None, timeout=None): تشغيل أمر غير مزامني.
  • which(program): البحث عن برنامج في المسار.
  • is_process_running(name): التحقق من وجود عملية.
  • kill_process(pid): إنهاء عملية.

15. إدارة الملفات والمجموعات

  • copy_file(src, dst), move_file(src, dst), delete_file(path): إدارة الملفات.
  • chunk_list(sequence, chunk_size): تجزئة قائمة.
  • flatten_list(nested_list): تسطيح قائمة متداخلة.
  • unique_preserve(sequence): إزالة التكرار مع حفظ الترتيب.
  • group_by(sequence, key_function): تجميع عناصر القائمة.
  • coalesce(*values): اختيار أول قيمة غير فارغة.
  • dict_merge(*dicts): دمج القواميس.

16. إعدادات وتكوين

  • load_settings(path, default=None, encoding='utf-8'): تحميل إعدادات JSON.
  • save_settings(path, settings, encoding='utf-8', indent=4): حفظ إعدادات.
  • get_setting(settings, key, default=None): الحصول على قيمة إعداد.
  • set_setting(settings, key, value): تعيين قيمة إعداد.
  • update_settings(settings, updates): تحديث إعدادات موجودة.
  • flatten_settings(settings, separator='.'): تسطيح إعدادات متداخلة.

17. سجل الأحداث ونظام الرسائل

  • EventBus: يدير الاشتراكات والأحداث.
  • subscribe(event_name, listener): الاشتراك في حدث.
  • unsubscribe(event_name, listener=None): إلغاء الاشتراك.
  • emit(event_name, *args, **kwargs): بث حدث.
  • clear(): مسح جميع المستمعين.

18. تسجيل السجلات

  • set_log_file(path, level=logging.INFO, mode='a'): تعيين ملف السجل.
  • log_info(message), log_warning(message), log_error(message), log_debug(message): وظائف تسجيل.
  • get_log_file(): استرجاع مسار ملف السجل.
  • configure_logging(level=logging.INFO, fmt='[%(levelname)s] %(message)s'): إعداد تكوين التسجيل.

19. مساعدة العرض

  • print_table(rows, headers=None, padding=2): طباعة جدول منظم.
  • progress_bar(iterable, prefix='', size=40, fill='█'): شريط تقدم في الطرفية.
  • prompt_choices(root, title, options, default_index=0): اختيار من قائمة.
  • clear_console(): تنظيف الشاشة.
  • confirm_action(message='Proceed?', default=True): نافذة تأكيد.
  • show_progress(title, current, total): عارض نسبة تنفيذ.
  • play(name): تشغيل صوت مسجل.
  • add_sound(name, func): إضافة صوت جديد.

إضافات جديدة (توليد دوال ونظام Beep للأسماء)

  • مولد دوال مفيدة: تم إضافة مولد ديناميكي في hotkey_engine.core يمكنه إنشاء عدد كبير من الدوال المساعدة، يمكن التحكم به عبر generate_extra_functions(count).

    • الاستخدام النموذجي: استدعِ generate_extra_functions(n) لإنشاء n دوال مسماة فريدة تُستخدم لأغراض الاختبار والأدوات.
    • هذه الدوال مُفيدة للاختبار، الأدوات، أو كمولّد يعطي نتائج صغيرة يمكن فحصها برمجياً.
  • نظام "Name Beep": أضفنا نظامًا لتوليد سلسلة صوتية قصيرة تمثل اسمًا بصريًا/سمعيًا.

    • play_name_beep(name): يشغّل توقيعًا صوتيًا قصيرًا يمثل name.
    • register_name_beep(name): يسجّل نغمة باسم تحت المفتاح Beep_<name> في sound_map، بحيث يمكنك استدعاؤها عبر play('Beep_<name>').
    • register_name_beep_group(names): يسجل مجموعة من الأسماء دفعة واحدة.
    • list_registered_name_beeps(): يعيد قائمة بالمفاتيح المسجلة.
    • beep(freq, duration, volume)انشاء نغمة مرة واحدة فقط ملاحظة: جودة التشغيل الصوتي تعتمد على وجود باك-أند صوتي مثل sounddevice أو simpleaudio أو winsound (لويندوز). إذا لم يكن أي منه متاحًا، سيحاول النظام السقوط بهدوء بدلاً من رفع استثناء.

شكرا لكم على وقتكم

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abdocode-2.0.1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abdocode-2.0.1-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file abdocode-2.0.1.tar.gz.

File metadata

  • Download URL: abdocode-2.0.1.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for abdocode-2.0.1.tar.gz
Algorithm Hash digest
SHA256 2faa8948655bf193ff759563c9c884b53ff35c2f7f88186ba83c79b059ee5a51
MD5 049c4d5e5dc08002bdcd16813ae8d50f
BLAKE2b-256 1c663f7dbff91a2d30f44b2a457b50e5cfb877649b66e3ce0e1b791747420794

See more details on using hashes here.

File details

Details for the file abdocode-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: abdocode-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for abdocode-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1a35af3d90bbf292a80d79e7030c4ae6f369725df82dc32195978fed913fc4
MD5 5b290f576c7f5806a579f9c27144900e
BLAKE2b-256 95aa15eb3ec7a7a096824f361156c0b5b83c783898f49b94606bc90e769d22e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page