Uranus-IDE 1.0.0a1__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.
Files changed (90) hide show
  1. uranus_ide-1.0.0a1/LICENSE +36 -0
  2. uranus_ide-1.0.0a1/MANIFEST.in +10 -0
  3. uranus_ide-1.0.0a1/PKG-INFO +44 -0
  4. uranus_ide-1.0.0a1/README.md +28 -0
  5. uranus_ide-1.0.0a1/README.txt +37 -0
  6. uranus_ide-1.0.0a1/docs/index.md +54 -0
  7. uranus_ide-1.0.0a1/pyproject.toml +35 -0
  8. uranus_ide-1.0.0a1/requirements.txt +10 -0
  9. uranus_ide-1.0.0a1/setup.cfg +43 -0
  10. uranus_ide-1.0.0a1/src/Uranus/AboutWindow.py +81 -0
  11. uranus_ide-1.0.0a1/src/Uranus/Cell.py +571 -0
  12. uranus_ide-1.0.0a1/src/Uranus/CodeEditor.py +459 -0
  13. uranus_ide-1.0.0a1/src/Uranus/CodeHighlight.py +354 -0
  14. uranus_ide-1.0.0a1/src/Uranus/DataOutputEditor.py +112 -0
  15. uranus_ide-1.0.0a1/src/Uranus/DocumentEditor.py +742 -0
  16. uranus_ide-1.0.0a1/src/Uranus/ImageOutput.py +69 -0
  17. uranus_ide-1.0.0a1/src/Uranus/MainWindow.py +484 -0
  18. uranus_ide-1.0.0a1/src/Uranus/OutputEditor.py +114 -0
  19. uranus_ide-1.0.0a1/src/Uranus/PythonTemplate.py +160 -0
  20. uranus_ide-1.0.0a1/src/Uranus/SettingWindow.py +299 -0
  21. uranus_ide-1.0.0a1/src/Uranus/WorkWindow.py +1039 -0
  22. uranus_ide-1.0.0a1/src/Uranus/__init__.py +5 -0
  23. uranus_ide-1.0.0a1/src/Uranus/__main__.py +6 -0
  24. uranus_ide-1.0.0a1/src/Uranus/core.py +76 -0
  25. uranus_ide-1.0.0a1/src/Uranus/font/FiraCode-VariableFont_wght.ttf +0 -0
  26. uranus_ide-1.0.0a1/src/Uranus/font/JetBrainsMono-Light.ttf +0 -0
  27. uranus_ide-1.0.0a1/src/Uranus/font/JetBrainsMono-Medium.ttf +0 -0
  28. uranus_ide-1.0.0a1/src/Uranus/font/ShareTechMono-Regular.ttf +0 -0
  29. uranus_ide-1.0.0a1/src/Uranus/font/SpaceMono-Regular.ttf +0 -0
  30. uranus_ide-1.0.0a1/src/Uranus/font/Technology.ttf +0 -0
  31. uranus_ide-1.0.0a1/src/Uranus/font/UbuntuMono-Regular.ttf +0 -0
  32. uranus_ide-1.0.0a1/src/Uranus/font/__init__.py +0 -0
  33. uranus_ide-1.0.0a1/src/Uranus/image/File_Tree.png +0 -0
  34. uranus_ide-1.0.0a1/src/Uranus/image/Uranus.png +0 -0
  35. uranus_ide-1.0.0a1/src/Uranus/image/a sleek futuristic2 i.png +0 -0
  36. uranus_ide-1.0.0a1/src/Uranus/image/add_file.png +0 -0
  37. uranus_ide-1.0.0a1/src/Uranus/image/add_folder.png +0 -0
  38. uranus_ide-1.0.0a1/src/Uranus/image/bold.png +0 -0
  39. uranus_ide-1.0.0a1/src/Uranus/image/center.png +0 -0
  40. uranus_ide-1.0.0a1/src/Uranus/image/color.png +0 -0
  41. uranus_ide-1.0.0a1/src/Uranus/image/create_project.png +0 -0
  42. uranus_ide-1.0.0a1/src/Uranus/image/csv.png +0 -0
  43. uranus_ide-1.0.0a1/src/Uranus/image/db.png +0 -0
  44. uranus_ide-1.0.0a1/src/Uranus/image/delete_file.png +0 -0
  45. uranus_ide-1.0.0a1/src/Uranus/image/delete_folder.png +0 -0
  46. uranus_ide-1.0.0a1/src/Uranus/image/delete_page.png +0 -0
  47. uranus_ide-1.0.0a1/src/Uranus/image/doc_Type.png +0 -0
  48. uranus_ide-1.0.0a1/src/Uranus/image/doc_delete.png +0 -0
  49. uranus_ide-1.0.0a1/src/Uranus/image/down.png +0 -0
  50. uranus_ide-1.0.0a1/src/Uranus/image/file_unknown.png +0 -0
  51. uranus_ide-1.0.0a1/src/Uranus/image/folder.png +0 -0
  52. uranus_ide-1.0.0a1/src/Uranus/image/font.png +0 -0
  53. uranus_ide-1.0.0a1/src/Uranus/image/image.png +0 -0
  54. uranus_ide-1.0.0a1/src/Uranus/image/insert_image.png +0 -0
  55. uranus_ide-1.0.0a1/src/Uranus/image/ipynb_icon.png +0 -0
  56. uranus_ide-1.0.0a1/src/Uranus/image/ipynb_icon1.png +0 -0
  57. uranus_ide-1.0.0a1/src/Uranus/image/italic.png +0 -0
  58. uranus_ide-1.0.0a1/src/Uranus/image/json.png +0 -0
  59. uranus_ide-1.0.0a1/src/Uranus/image/justify.png +0 -0
  60. uranus_ide-1.0.0a1/src/Uranus/image/left.png +0 -0
  61. uranus_ide-1.0.0a1/src/Uranus/image/load_file.png +0 -0
  62. uranus_ide-1.0.0a1/src/Uranus/image/ltr.png +0 -0
  63. uranus_ide-1.0.0a1/src/Uranus/image/memory.png +0 -0
  64. uranus_ide-1.0.0a1/src/Uranus/image/move_down.png +0 -0
  65. uranus_ide-1.0.0a1/src/Uranus/image/move_up.png +0 -0
  66. uranus_ide-1.0.0a1/src/Uranus/image/prj_folder.png +0 -0
  67. uranus_ide-1.0.0a1/src/Uranus/image/python1_icon.png +0 -0
  68. uranus_ide-1.0.0a1/src/Uranus/image/python_icon.png +0 -0
  69. uranus_ide-1.0.0a1/src/Uranus/image/resize.png +0 -0
  70. uranus_ide-1.0.0a1/src/Uranus/image/right.png +0 -0
  71. uranus_ide-1.0.0a1/src/Uranus/image/rtl.png +0 -0
  72. uranus_ide-1.0.0a1/src/Uranus/image/run_all.png +0 -0
  73. uranus_ide-1.0.0a1/src/Uranus/image/run_cell.png +0 -0
  74. uranus_ide-1.0.0a1/src/Uranus/image/save.png +0 -0
  75. uranus_ide-1.0.0a1/src/Uranus/image/table.png +0 -0
  76. uranus_ide-1.0.0a1/src/Uranus/image/text_color.png +0 -0
  77. uranus_ide-1.0.0a1/src/Uranus/image/text_direction.png +0 -0
  78. uranus_ide-1.0.0a1/src/Uranus/image/text_direction1.png +0 -0
  79. uranus_ide-1.0.0a1/src/Uranus/image/txt.png +0 -0
  80. uranus_ide-1.0.0a1/src/Uranus/image/underline.png +0 -0
  81. uranus_ide-1.0.0a1/src/Uranus/image/undo_cell.png +0 -0
  82. uranus_ide-1.0.0a1/src/Uranus/image/up.png +0 -0
  83. uranus_ide-1.0.0a1/src/Uranus/utils.py +437 -0
  84. uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/PKG-INFO +44 -0
  85. uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/SOURCES.txt +94 -0
  86. uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/dependency_links.txt +1 -0
  87. uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/entry_points.txt +2 -0
  88. uranus_ide-1.0.0a1/src/Uranus_IDE.egg-info/top_level.txt +1 -0
  89. uranus_ide-1.0.0a1/tests/test_core.py +1 -0
  90. uranus_ide-1.0.0a1/tests/test_utils.py +1 -0
@@ -0,0 +1,36 @@
1
+ 📄 LICENSE — Uranus IDE
2
+ Custom License by Atila Ghashghaie
3
+ Copyright © 2025 Atila Ghashghaie
4
+
5
+ 📘 Permissions
6
+ You are permitted to:
7
+ - ✅ Use this software for personal, educational, research, and organizational purposes
8
+ - ✅ View, run, and modify the source code for non-commercial use
9
+ - ✅ Integrate the software into internal systems or workflows
10
+
11
+ 🚫 Restrictions
12
+ You are not permitted to:
13
+ - ❌ Use this software or any derivative work for commercial purposes, resale, or inclusion in paid products without explicit written permission from the author
14
+ - ❌ Change, obscure, or remove the original project name “Uranus” in any form
15
+ - ❌ Remove or alter the author’s name “Atila Ghashghaie” from any file, documentation, or interface
16
+ - ❌ Redistribute modified or unmodified versions publicly without written consent from the author
17
+ - ❌ Claim ownership or authorship of this software or any part of it
18
+
19
+ 📌 Attribution
20
+ All uses must clearly and visibly credit the original author:
21
+ Uranus IDE by Atila Ghashghaie
22
+
23
+ This credit must appear in documentation, user interfaces, and any derivative work.
24
+
25
+ ⚠️ Disclaimer
26
+ This software is provided “AS IS”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement.
27
+ The author shall not be held liable for any damages or losses arising from the use of this software.
28
+
29
+ 🌐 License Summary
30
+ This is a custom license designed to protect the author's intellectual and creative rights while allowing free non-commercial use.
31
+ Commercial use, redistribution, or rebranding is strictly prohibited without written permission.
32
+ To request commercial licensing or redistribution rights, contact:
33
+ 📧 atila.gh@gmail.com
34
+ 📞 +98 912 319 4008
35
+ WWW.puyeshmashin.ir
36
+ https://github.com/atila1358
@@ -0,0 +1,10 @@
1
+ include README.md
2
+ include LICENSE
3
+ include requirements.txt
4
+ include pyproject.toml
5
+ include setup.cfg
6
+
7
+ recursive-include docs *.md
8
+ recursive-include src/Uranus/image *.png *.jpg *.svg
9
+ recursive-include src/Uranus/font *.ttf *.otf
10
+ recursive-include src/Uranus *.json
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.4
2
+ Name: Uranus-IDE
3
+ Version: 1.0.0a1
4
+ Summary: A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5.
5
+ Home-page: https://github.com/atila1358/uranus
6
+ Author: Atila Ghashghaie
7
+ Author-email: Atila Ghashghaie <atila.gh@gmail.com>
8
+ License-Expression: LicenseRef-Atila
9
+ Project-URL: Homepage, https://github.com/atila1358/uranus
10
+ Project-URL: Documentation, https://github.com/atila1358/uranus/wiki
11
+ Project-URL: Issues, https://github.com/atila1358/uranus/issues
12
+ Requires-Python: >=3.8
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Dynamic: license-file
16
+
17
+ # Uranus IDE
18
+
19
+ Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
20
+
21
+ > 🔥 **Uranus IDE is the first modular Python IDE with full RTL support across all editing modes.**
22
+
23
+ ## Features
24
+
25
+ - 🧠 Code and Markdown cells with live execution
26
+ - 📊 Output viewers for text, tables, and images
27
+ - 🧰 Customizable toolbar and editor settings
28
+ - 🧾 Project scaffolding with license and metadata
29
+ - 🧱 File explorer with context menu and keyboard shortcuts
30
+
31
+
32
+ ### ✨ Key Features
33
+
34
+ - ✅ Cell-based editing with IPython kernel
35
+ - ✅ Modular architecture with PyQt5
36
+ - ✅ **Full RTL (Right-to-Left) support** for Persian, Arabic, and other RTL languages
37
+ - ✅ Custom file explorer with inline editing
38
+ - ✅ Project creation and metadata management
39
+
40
+ ## Installation
41
+
42
+ ```bash
43
+ pip install -r requirements.txt
44
+ python core.py
@@ -0,0 +1,28 @@
1
+ # Uranus IDE
2
+
3
+ Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
4
+
5
+ > 🔥 **Uranus IDE is the first modular Python IDE with full RTL support across all editing modes.**
6
+
7
+ ## Features
8
+
9
+ - 🧠 Code and Markdown cells with live execution
10
+ - 📊 Output viewers for text, tables, and images
11
+ - 🧰 Customizable toolbar and editor settings
12
+ - 🧾 Project scaffolding with license and metadata
13
+ - 🧱 File explorer with context menu and keyboard shortcuts
14
+
15
+
16
+ ### ✨ Key Features
17
+
18
+ - ✅ Cell-based editing with IPython kernel
19
+ - ✅ Modular architecture with PyQt5
20
+ - ✅ **Full RTL (Right-to-Left) support** for Persian, Arabic, and other RTL languages
21
+ - ✅ Custom file explorer with inline editing
22
+ - ✅ Project creation and metadata management
23
+
24
+ ## Installation
25
+
26
+ ```bash
27
+ pip install -r requirements.txt
28
+ python core.py
@@ -0,0 +1,37 @@
1
+ # Uranus IDE
2
+
3
+ Uranus is a lightweight, extensible Python IDE inspired by Jupyter. It supports interactive coding, markdown documentation, and modular plugin architecture — all built with PyQt5.
4
+
5
+ ## 🚀 Getting Started
6
+
7
+ To launch the application:
8
+
9
+ ```bash
10
+ python src/Uranus/core.py
11
+
12
+ Uranus/
13
+ ├── src/Uranus/ # Main source code
14
+ │ ├── core.py # Entry point of the application
15
+ │ ├── AboutWindow.py
16
+ │ ├── Cell.py
17
+ │ ├── CodeEditor.py
18
+ │ ├── ...
19
+ │ └── utils.py
20
+ ├── docs/ # Technical documentation
21
+ ├── tests/ # (Empty) Reserved for future test scripts
22
+ ├── LICENSE # Custom license by Atila Ghashghaie
23
+ ├── README.md # Project overview and usage
24
+ ├── pyproject.toml # Project metadata and build config
25
+ ├── requirements.txt # Python dependencies
26
+ ├── .gitignore # Files to exclude from version control
27
+ ├── CONTRIBUTING.md # Guidelines for contributors
28
+
29
+ 📘 License
30
+ This project is licensed under a custom license by Atila Ghashghaie.
31
+ See LICENSE for full terms and restrictions.
32
+ ✉️ Contact
33
+ Developed by Atila Ghashghaie
34
+ 📧 atila.gh@gmail.com
35
+ WWW.puyeshmashin.ir
36
+ https://github.com/atila1358
37
+
@@ -0,0 +1,54 @@
1
+ # Uranus IDE — Technical Overview
2
+
3
+ Uranus is a modular, extensible Python IDE inspired by Jupyter, built with PyQt5. It supports interactive coding, markdown documentation, and structured output visualization — all within a clean, event-safe architecture.
4
+
5
+ ## 🧱 Architecture Summary
6
+
7
+ - `core.py`: Entry point of the application. Initializes MainWindow and global settings.
8
+ - `MainWindow.py`: Hosts the MDI interface, file explorer, and menu system.
9
+ - `WorkWindow.py`: Manages individual notebook tabs and cell containers.
10
+ - `Cell.py`: Represents a code or markdown cell with execution/output logic.
11
+ - `CodeEditor.py`: Handles Python editing with syntax highlighting and smart indentation.
12
+ - `DocumentEditor.py`: Rich text editor for markdown cells.
13
+ - `OutputEditor.py`: Displays execution results (text, image, table).
14
+ - `SettingWindow.py`: Manages appearance and font settings.
15
+ - `ProjectInfoDialog.py`: Creates structured project folders with metadata and license.
16
+ - `utils.py`: Shared helpers and file operations.
17
+
18
+ ## 📦 Folder Structure
19
+ uranus-ide/
20
+ ├── src/Uranus/
21
+ │ ├── core.py │
22
+ ├── MainWindow.py │
23
+ ├── WorkWindow.py │
24
+ ├── Cell.py │
25
+ ├── CodeEditor.py │
26
+ ├── OutputEditor.py │
27
+ ├── SettingWindow.py │
28
+ ├── ProjectInfoDialog.py │
29
+ └── ... ├── docs/ │
30
+ └── index.md
31
+ ├── tests/ # Reserved for future test scripts
32
+
33
+
34
+
35
+ ## 🧠 Design Principles
36
+
37
+ - Modular class-based architecture
38
+ - Event-safe UI logic
39
+ - Explicit docstrings for all major classes
40
+ - Persian-English bilingual support
41
+ - Custom licensing and attribution enforcement
42
+
43
+ ## 📚 Licensing
44
+
45
+ This project is governed by a custom license authored by Atila Ghashghaie.
46
+ Commercial use, redistribution, or rebranding is strictly prohibited without written permission.
47
+ See [LICENSE](../LICENSE) for full terms.
48
+
49
+ ## ✉️ Contact
50
+
51
+ Developed by Atila Ghashghaie
52
+ 📧 atila.gh@gmail.com
53
+ 📞 +98 912 319 4008
54
+ 🌐 www.Puyeshmashin.ir
@@ -0,0 +1,35 @@
1
+ [project]
2
+ name = "Uranus-IDE"
3
+ version = "1.0.0a1"
4
+ description = "A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5."
5
+ authors = [
6
+ { name = "Atila Ghashghaie", email = "atila.gh@gmail.com" }
7
+ ]
8
+ license = "LicenseRef-Atila"
9
+ license-files = ["LICENSE"]
10
+ readme = "README.md"
11
+ requires-python = ">=3.8"
12
+ dependencies = [
13
+
14
+
15
+
16
+ ]
17
+
18
+ [project.urls]
19
+ Homepage = "https://github.com/atila1358/uranus"
20
+ Documentation = "https://github.com/atila1358/uranus/wiki"
21
+ Issues = "https://github.com/atila1358/uranus/issues"
22
+
23
+ [tool.setuptools]
24
+ package-dir = { "" = "src" }
25
+
26
+ [tool.setuptools.packages.find]
27
+ where = ["src"]
28
+
29
+ [build-system]
30
+ requires = ["setuptools>=42", "wheel"]
31
+ build-backend = "setuptools.build_meta"
32
+
33
+ [project.scripts]
34
+ uranus = "Uranus.core:main"
35
+
@@ -0,0 +1,10 @@
1
+ PyQt5>=5.15
2
+ nbformat>=5.9
3
+ IPython>=8.0
4
+ markdown2>=2.4
5
+ html2text>=2020.1.16
6
+
7
+
8
+
9
+
10
+
@@ -0,0 +1,43 @@
1
+ [metadata]
2
+ name = uranus-ide
3
+ version = 1.0.0
4
+ author = Atila Ghashghaie
5
+ author_email = atila.gh@gmail.com
6
+ description = A lightweight, extensible Python IDE inspired by Jupyter, built with PyQt5.
7
+ long_description = file: README.md
8
+ long_description_content_type = text/markdown
9
+ license = Custom License by Atila Ghashghaie
10
+ url = https://github.com/atila1358/uranus
11
+ project_urls =
12
+ Documentation = https://github.com/atila1358/uranus/wiki
13
+ Issues = https://github.com/atila1358/uranus/issues
14
+
15
+ [options]
16
+ packages = find:
17
+ package_dir =
18
+ = src
19
+ include_package_data = True
20
+ python_requires = >=3.8
21
+ install_requires =
22
+ PyQt5>=5.15
23
+ IPython>=8.0
24
+ nbformat>=5.9
25
+ markdown2>=2.4
26
+ html2text>=2020.1.16
27
+
28
+ [options.packages.find]
29
+ where = src
30
+
31
+ [options.package_data]
32
+ Uranus =
33
+ font/*.ttf
34
+ font/*.otf
35
+
36
+ [options.entry_points]
37
+ console_scripts =
38
+ uranus = Uranus.__main__:main
39
+
40
+ [egg_info]
41
+ tag_build =
42
+ tag_date = 0
43
+
@@ -0,0 +1,81 @@
1
+
2
+
3
+ from PyQt5.QtWidgets import QWidget, QLabel, QVBoxLayout, QFrame
4
+ from PyQt5.QtGui import QPixmap, QFont
5
+ from PyQt5.QtCore import Qt
6
+ import os
7
+
8
+ class AboutWindow(QWidget):
9
+ """
10
+ A simple informational window displaying details about the Uranus IDE.
11
+
12
+ Features:
13
+ - Shows application logo, name, version, and description.
14
+ - Includes developer contact information and external links.
15
+ - Uses a clean vertical layout with styled labels and separators.
16
+
17
+ Components:
18
+ - QPixmap logo loaded from local image directory.
19
+ - QLabel elements for name, version, description, and developer info.
20
+ - QFrame separator for visual clarity.
21
+
22
+ Usage:
23
+ Typically invoked from the Help or About section of the Uranus IDE.
24
+ Provides branding and contact context for users and contributors.
25
+ """
26
+
27
+ def __init__(self):
28
+ super().__init__()
29
+ self.setWindowTitle("About Uranus IDE")
30
+ self.setFixedSize(700, 350)
31
+ self.init_ui()
32
+
33
+ def init_ui(self):
34
+ logo_label = QLabel()
35
+ icon_path = os.path.join(os.path.dirname(__file__), "image", "uranus.png")
36
+ pixmap = QPixmap(icon_path)
37
+ logo_label.setPixmap(pixmap.scaled(100, 100, Qt.KeepAspectRatio, Qt.SmoothTransformation))
38
+ logo_label.setAlignment(Qt.AlignCenter)
39
+
40
+ name_label = QLabel("Uranus IDE")
41
+ name_label.setFont(QFont("Arial", 20, QFont.Bold))
42
+ name_label.setAlignment(Qt.AlignCenter)
43
+
44
+ version_label = QLabel("Version 1.0.0")
45
+ version_label.setFont(QFont("Arial", 12))
46
+ version_label.setAlignment(Qt.AlignCenter)
47
+
48
+ separator = QFrame()
49
+ separator.setFrameShape(QFrame.HLine)
50
+ separator.setFrameShadow(QFrame.Sunken)
51
+
52
+ description = QLabel(
53
+ "Uranus IDE is a lightweight, extensible development environment inspired by Jupyter.\n"
54
+ "It supports interactive coding, modular plugin architecture, and a clean UI.\n"
55
+ "Designed for clarity, speed, and educational use."
56
+ )
57
+ description.setWordWrap(True)
58
+ description.setAlignment(Qt.AlignTop)
59
+ description.setAlignment(Qt.AlignCenter)
60
+
61
+ description.setFont(QFont("Arial", 11))
62
+
63
+ developer_info = QLabel(
64
+ "Developed by Attila\n"
65
+ "Contact: attila.gh@outlook.com\n"
66
+ 'GitHub : https://github.com/atila1358/uranus\n'
67
+ "Website: www.Puyeshmashin.ir\n\n"
68
+ )
69
+ developer_info.setFont(QFont("Arial", 10))
70
+
71
+ layout = QVBoxLayout()
72
+ layout.addWidget(logo_label)
73
+ layout.addWidget(name_label)
74
+ layout.addWidget(version_label)
75
+ layout.addWidget(separator)
76
+ layout.addWidget(description)
77
+ layout.addStretch()
78
+ layout.addWidget(developer_info)
79
+
80
+ self.setLayout(layout)
81
+