Skip to content

Commit 2b1f4dd

Browse files
committed
Criado um plugn de flash cards para inagurar a nova funcionalidade do app e criado um plugin_libs.py com a importação das libs para facilitar a criação de plugs :)
1 parent 837f0b9 commit 2b1f4dd

File tree

8 files changed

+1728
-58
lines changed

8 files changed

+1728
-58
lines changed

loaded_plugins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"plugins": [
33
"C:\\Users\\joao2\\NoteFlow\\plugins\\paint_plugin\\main.py",
4+
"C:\\Users\\joao2\\NoteFlow\\plugins\\plugin_flashcards\\main.py",
45
"C:\\Users\\joao2\\NoteFlow\\plugins\\plugin_help\\main.py"
56
]
67
}

main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
from day_notes_dialog import DayNotesDialog
4040
from kanban_tab import KanbanTab
4141
from mind_map_tab import MindMapTab
42+
from plugin_libs import QtWidgets, np, pd, plt, requests
4243

4344
# Importa a classe base para plugins
4445
from plugin_base import PluginTab

pet_game.db

36 KB
Binary file not shown.

plugin_libs.py

Lines changed: 280 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
1+
"""
2+
plugin_libs.py
3+
4+
Este módulo reúne diversas bibliotecas e funções utilitárias para auxiliar
5+
o desenvolvimento de plugins para o seu aplicativo.
6+
7+
Exemplo de uso:
8+
from plugin_libs import QtWidgets, np, pd, plt, requests, logging, functools, itertools, math, Path
9+
"""
10+
11+
# Importações padrão e utilitárias
12+
import sys
13+
import os
14+
import json
15+
import re
16+
import random
17+
import datetime
18+
import base64
19+
import sqlite3
20+
import tempfile
21+
from pathlib import Path
22+
import logging
23+
24+
# Bibliotecas para processamento de dados
25+
import numpy as np
26+
try:
27+
import pandas as pd
28+
except ImportError:
29+
pd = None # Caso o pandas não esteja instalado
30+
31+
# Bibliotecas para gráficos
32+
import matplotlib.pyplot as plt
33+
34+
# Biblioteca para requisições HTTP
35+
try:
36+
import requests
37+
except ImportError:
38+
requests = None
39+
40+
# Outras bibliotecas utilitárias
41+
import math
42+
import itertools
43+
import functools
44+
import calendar
45+
46+
# ------------------------------
47+
# Bibliotecas adicionais
48+
# ------------------------------
49+
try:
50+
import altgraph
51+
except ImportError:
52+
altgraph = None
53+
54+
try:
55+
import asteval
56+
except ImportError:
57+
asteval = None
58+
59+
try:
60+
from bs4 import BeautifulSoup
61+
except ImportError:
62+
BeautifulSoup = None
63+
64+
try:
65+
import certifi
66+
except ImportError:
67+
certifi = None
68+
69+
try:
70+
import cffi
71+
except ImportError:
72+
cffi = None
73+
74+
try:
75+
import charset_normalizer
76+
except ImportError:
77+
charset_normalizer = None
78+
79+
try:
80+
import comtypes
81+
except ImportError:
82+
comtypes = None
83+
84+
try:
85+
import contourpy
86+
except ImportError:
87+
contourpy = None
88+
89+
try:
90+
import cryptography
91+
except ImportError:
92+
cryptography = None
93+
94+
try:
95+
import cycler
96+
except ImportError:
97+
cycler = None
98+
99+
try:
100+
import docstring_to_markdown
101+
except ImportError:
102+
docstring_to_markdown = None
103+
104+
try:
105+
import et_xmlfile
106+
except ImportError:
107+
et_xmlfile = None
108+
109+
# Removido: importação do fonttools
110+
111+
try:
112+
import fpdf
113+
except ImportError:
114+
fpdf = None
115+
116+
try:
117+
import idna
118+
except ImportError:
119+
idna = None
120+
121+
try:
122+
import jedi
123+
except ImportError:
124+
jedi = None
125+
126+
try:
127+
import kiwisolver
128+
except ImportError:
129+
kiwisolver = None
130+
131+
try:
132+
import lupa
133+
except ImportError:
134+
lupa = None
135+
136+
try:
137+
import markdown
138+
except ImportError:
139+
markdown = None
140+
141+
try:
142+
import openpyxl
143+
except ImportError:
144+
openpyxl = None
145+
146+
try:
147+
import packaging
148+
except ImportError:
149+
packaging = None
150+
151+
try:
152+
import parso
153+
except ImportError:
154+
parso = None
155+
156+
try:
157+
import pefile
158+
except ImportError:
159+
pefile = None
160+
161+
try:
162+
from PIL import Image
163+
except ImportError:
164+
Image = None
165+
166+
try:
167+
import pluggy
168+
except ImportError:
169+
pluggy = None
170+
171+
try:
172+
import pycparser
173+
except ImportError:
174+
pycparser = None
175+
176+
try:
177+
import pygame
178+
except ImportError:
179+
pygame = None
180+
181+
# Removido: importação do pyinstaller
182+
# Removido: importação do pyinstaller_hooks_contrib
183+
184+
try:
185+
import pyparsing
186+
except ImportError:
187+
pyparsing = None
188+
189+
try:
190+
import win32api # Proveniente do pypiwin32
191+
except ImportError:
192+
win32api = None
193+
194+
try:
195+
import dateutil
196+
except ImportError:
197+
dateutil = None
198+
199+
try:
200+
import jsonrpc # Possível módulo da python-lsp-jsonrpc
201+
except ImportError:
202+
jsonrpc = None
203+
204+
# Removido: importação do vlc
205+
206+
try:
207+
import pytz
208+
except ImportError:
209+
pytz = None
210+
211+
try:
212+
import setuptools
213+
except ImportError:
214+
setuptools = None
215+
216+
try:
217+
import six
218+
except ImportError:
219+
six = None
220+
221+
try:
222+
import soupsieve
223+
except ImportError:
224+
soupsieve = None
225+
226+
try:
227+
import tzdata
228+
except ImportError:
229+
tzdata = None
230+
231+
try:
232+
import ujson
233+
except ImportError:
234+
ujson = None
235+
236+
try:
237+
import urllib3
238+
except ImportError:
239+
urllib3 = None
240+
241+
# Importações do PyQt5 (já incluídas anteriormente, mas vamos repassar para facilitar o acesso)
242+
from PyQt5 import QtWidgets, QtCore, QtGui
243+
from PyQt5.QtWidgets import (
244+
QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QLineEdit,
245+
QComboBox, QInputDialog, QMessageBox, QTableWidget, QTableWidgetItem
246+
)
247+
from PyQt5.QtCore import QUrl, QDate, Qt
248+
from PyQt5.QtGui import QIcon, QPixmap
249+
250+
# Lista de objetos exportados para facilitar a importação
251+
__all__ = [
252+
# Utilitários
253+
"sys", "os", "json", "re", "random", "datetime", "base64", "sqlite3", "tempfile", "Path",
254+
"logging",
255+
# Processamento de dados
256+
"np", "pd",
257+
# Gráficos
258+
"plt",
259+
# Requisições HTTP
260+
"requests",
261+
# Outras bibliotecas utilitárias
262+
"math", "itertools", "functools", "calendar",
263+
# Bibliotecas adicionais
264+
"altgraph", "asteval", "BeautifulSoup", "certifi", "cffi", "charset_normalizer", "comtypes",
265+
"contourpy", "cryptography", "cycler", "docstring_to_markdown", "et_xmlfile", "fpdf",
266+
"idna", "jedi", "kiwisolver", "lupa", "markdown", "openpyxl", "packaging", "parso", "pefile", "Image",
267+
"pluggy", "pycparser", "pygame", "pyparsing", "win32api",
268+
"dateutil", "jsonrpc", "pytz", "setuptools", "six", "soupsieve", "tzdata", "ujson", "urllib3",
269+
# PyQt5 e componentes
270+
"QtWidgets", "QtCore", "QtGui",
271+
"QWidget", "QVBoxLayout", "QHBoxLayout", "QLabel", "QPushButton", "QLineEdit",
272+
"QComboBox", "QInputDialog", "QMessageBox", "QTableWidget", "QTableWidgetItem",
273+
"QUrl", "QDate", "Qt", "QIcon", "QPixmap"
274+
]
275+
276+
if __name__ == "__main__":
277+
print("Este módulo fornece diversas bibliotecas úteis para o desenvolvimento de plugins.")
278+
print("Bibliotecas disponíveis:")
279+
for lib in __all__:
280+
print(f" - {lib}")

plugins/plugin_flashcards/main.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# plugins/plugin_help/main.py
2+
3+
import sys
4+
import os
5+
6+
# Para execução independente, adiciona o diretório pai ao sys.path
7+
current_dir = os.path.dirname(os.path.abspath(__file__))
8+
root_dir = os.path.abspath(os.path.join(current_dir, "..", ".."))
9+
if root_dir not in sys.path:
10+
sys.path.insert(0, root_dir)
11+
12+
from plugin_flashcards import PluginFlashCards
13+
14+
# Define a variável global que será usada como ponto de entrada do plugin
15+
plugin_class = PluginFlashCards
16+
17+
# Se desejar, você pode definir também uma função para testar o plugin de forma independente:
18+
def main():
19+
from PyQt5.QtWidgets import QApplication
20+
app = QApplication(sys.argv)
21+
window = PluginFlashCards()
22+
window.setWindowTitle("Flash cards")
23+
window.show()
24+
sys.exit(app.exec_())
25+
26+
if __name__ == "__main__":
27+
main()

0 commit comments

Comments
 (0)