leon-thomm / ryven Goto Github PK
View Code? Open in Web Editor NEWFlow-based visual scripting for Python
Home Page: https://ryven.org
License: MIT License
Flow-based visual scripting for Python
Home Page: https://ryven.org
License: MIT License
When the nodes is imported multiple times, there will be duplicate content
This might be for the long term, but allowing packaging of node graphs together into new nodes (ie node module hierarchies) would allow full scale development and efficient management of graph complexity, as well as re-use of node graphs.
Thanks!
Tried importing module Linalg, had no modules numpy, scipy installed, so software crashed.
Great idea, cool interface.
But it loses its meaning if is not possible to save (export) a created program as a python script.
I think it would be logical to add this possibility (File => Export => Python script).
The clock node could perhaps be made more useable by having some sort of on/off switch. It would also be helpful if the help-text mentioned that it is necessary to turn it on for it to work.
Thanks!
In the context of simulation use cases where different instances of a node represent different parts of a simulated system, It would be useful to be able to explicitly name instances (e.g. when simulating brain networks, node instances correspond to anatomical areas in the brain).
Thanks!
Using python 3.6 and 3.8 under OsX 10.13.6, gui starts, but nothing happens if buttons are clicked in either Ryven.py (trying to click on "new project" or "load project") or the nodemanager (trying to click on "add new", "import nodes", "save")
Thank you!
This is what I get when I try to run the program. I did pep install -r requirements and everything looked fine but when I go running it, I get this message.
PS C:\Users\phdstudio\Downloads\Ryven-master\Ryven-master\Ryven> python Ryven.py
qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are direct2d, minimal, offscreen, windows.
I am using:
Windows 10 education version 2004
I know this isn't a bug but couldn't find anywhere else to ask.
as for the question, I was wondering if it was possible to import nodes from modules without having to define or create them from scratch?
The list of possible nodes to insert is a bit long, and I expect will get longer as more libraries are written.
I propose we add some kind of filtering. Some example filters could be:
"show me just the node types that are inputs"
"show me just the node types that came from the linalg library"
"show me just the node types that are outputs"
maybe a search by parameter and result type? Like:
"show me all node types that accept at least one parameter of type 'matrix'"
and "show me all node types that accept at least one parameter of type string"?
Just a thought
On smaller screens, large graphs can quickly become unwieldy and maintaining an overview becomes difficult. A zooming feature would be very helpful in this regard.
Thank you!
The clock node could perhaps be made more useable by having some sort of on/off switch. It would also be helpful if the help-text mentioned that it is necessary to turn it on for it to work.
Thanks!
Description
Firstly: python Ryven.py
qt.qpa.fonts: Populating font family aliases took 1107 ms. Replace uses of missing font family "Corbel" with one that exists to avoid this cost.
But, There is no response in program, There is just a white small windows. I don't what's happend, so confused.
System, version
Hi,
I'm trying to understand your code and there are some UI files that report a header like this:
################################################################################
## Form generated from reading UI file 'main_window.ui'
##
## Created by: Qt User Interface Compiler version 5.15.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
Still, it seems these UI files are not in this repository. Where do I find them?
Thank you,
Giovanni
When using matrices with more than ca 10x10 elements (I tried 30x30 and 300x300), the matrix nodes becomes very large, and the Ryven window becomes hard to use.
Adding e.g. a max node size and scrollbars would be helpful in these cases.
Thanks!
Hello,
I have a new Mac M1 laptop. I've cloned the repo and pip installed the requirements but when executing Ryven.py I get the following:
==========================================================================================
;python3 Ryven.py (base)
objc[21131]: Class RunLoopModeTracker is implemented in both /opt/anaconda3/lib/python3.8/site-packages/PySide2/Qt/lib/QtCore.framework/Versions/5/QtCore (0x15951b288) and /opt/anaconda3/lib/libQt5Core.5.9.7.dylib (0x163b48a80). One of the two will be used. Which one is undefined.
QObject::moveToThread: Current thread (0x7fea9767a1c0) is not the object's thread (0x7fea9744de10).
Cannot move to target thread (0x7fea9767a1c0)
You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: cocoa, minimal, offscreen.
fish: 'python3 Ryven.py' terminated by signal SIGABRT (Abort)
==========================================================================================
I've read issues for other projects that the version of cv was bad, I tried opencv-python==4.2.0.32 to no avail. I do have QT installed assuming this may be some sort of issue specific to the new M1 Macs?
Reproduction
CD /Ryven
python3 Ryven.py
System, version
I don't know if I'm missing something, but it would be really helpful, to delete placed nodes. Since no related command is listed in the command list, I assume this is not possible at the moment.
I would like to check if there is any way to export/generate/produce an executable file, or even a runnable *.py file from the flow that I've created. I'm wondering if there's any logical way to go about this as I would like to obtain an executable from the flows I've made in Ryven. Thanks!
Although there is instructions for creating nodes at the website, it would be useful to have short videos showing how to get started programming simple nodes, and importing them into Ryven.
Thanks!
This is neat.
To get more contributions, I think you need to get more people involved.
To help this I've added a way for users to quickly understand what Ryven is like, before getting hit with all the details (added to the readme here: https://github.com/ddevz/Ryven/pull/1 )
Also, i recommend adding your project to wiki.python.org
I right-click in the canvas, and I see the dropdown list of available nodes. However, I cannot find a way to create a node. I have tried, enter, right-click, left-click, etc.. and nothing...
I have downloaded the latest version of ryven today directly from github...
Line 27: Currently a "*=" operation is used; this should be changed to:
sum_val = sum_val * self.input(i)
otherwise the value accumulates and value may propagate backwards to the first input node (e.g. when using numpy arrays as input instead of single values).
Thanks!
i am using windows 7
the first one:
when i move a node in the window do not clear in a right way.
this is a photo:
and this is the second bug:
(this pixely looking because converting the video to gif)
and a little suggestion:
for the (+) node and the others, it will be better to make their interaction boxes a little bigger.
and thanks for making this tool, it's amazing.
I tried to build a Conda Package for ryven to simplify the installation process. So it can now be installed using:
conda install -c conda-forge ryven
So far it works fine on Mac OS X with python 3.9 - it fails with python 3.10. But maybe somebody can test it with Linux and Windows.
Hi - I have a virtual environment based on python 3.8, and I am using poetry to help me install packages. I get the following error message when I try to add ryven.
'[SolverProblemError]
The current project's Python requirement (^3.8) is not compatible with some of the required packages Python requirement:
Because ryven (3.1.1) requires Python !=3.10,>=3.6 and no versions of ryven match >3.1.1,<4.0.0, ryven is forbidden.
So, because project-701-ryven depends on ryven (^3.1.1), version solving failed.'
I have searched google for equivalent issues, but nothing specific to my problem. The message suggests I have my version correct so that it might be a poetry issue. Feel free to close if this issue is not considered ryven driven.
I tried creating a PyQtWebEngine widget to display html in a node. I did it with the following code:
class HTMLDisplay_MainWidget(MWB, QWebEngineView): def __init__(self, params): MWB.__init__(self, params) QWebEngineView.__init__(self) #self.setLayout(QVBoxLayout()) #self.html_view = QWebEngineView() #self.layout().addWidget(self.html_view) raw_html = "<html><head></head><body style=""><div style=""><h1>This is an html</h1></div></body></html>" self.setHtml(raw_html)
I get the following error
"Qt WebEngine seems to be initialized from a plugin. Please set Qt::AA_ShareOpenGLContexts using QCoreApplication::setAttribute before constructing QGuiApplication.
Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.
LaunchProcess: failed to execvp:
/usr/local/lib/python3.8/dist-packages/PySide2-5.15.2-py3.8-linux-x86_64.egg/PySide2/Qt/libexec/QtWebEngineProcess
LaunchProcess: failed to execvp:
/usr/local/lib/python3.8/dist-packages/PySide2-5.15.2-py3.8-linux-x86_64.egg/PySide2/Qt/libexec/QtWebEngineProcess
Trace/breakpoint trap (core dumped)
"
please advice.
it's hard to edit node in node_manager but restart the Ryven evert time after node_manager export the node.
is it possibile to add a button to hotreload the *.rpc , or reload module automaticaly
So, I recently found your program through a web search (or youtube video, I can't remember) and I decided I'd like to help in possibly contributing to the project.
With my projects I mainly do JS programming, though I've dabbled within Python quite a bit.
I didn't see a contribution section within your README or site (unless I missed something), and I was wondering if you're welcome to contributions or not.
On Windows 7 with Python 3.8.3. When following the instructions, the following occurs:
C:\leon-thomm-Ryven-b8ba1fb>pip install -r requirements.txt
Requirement already satisfied: Jinja2 in c:\python38\lib\site-packages (from -r requirements.txt (line 2)) (2.11.2)
Requirement already satisfied: Pygments in c:\python38\lib\site-packages (from -r requirements.txt (line 3)) (2.6.1)
Requirement already satisfied: MarkupSafe>=0.23 in c:\python38\lib\site-packages (from Jinja2->-r requirements.txt (line 2)) (1.1.1)
Collecting ryvencore-qt
Downloading ryvencore_qt-0.0.0-py3-none-any.whl (1.2 kB)
Collecting PySide2
Downloading PySide2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl (136.3 MB)
|████████████████████████████████| 136.3 MB 6.3 kB/s
Collecting shiboken2==5.15.2
Downloading shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl (2.3 MB)
|████████████████████████████████| 2.3 MB 6.4 MB/s
Installing collected packages: shiboken2, PySide2, ryvencore-qt
Successfully installed PySide2-5.15.2 ryvencore-qt-0.0.0 shiboken2-5.15.2
WARNING: You are using pip version 20.3.1; however, version 21.1.2 is available.
You should consider upgrading via the 'c:\python38\python.exe -m pip install --upgrade pip' command.
C:\leon-thomm-Ryven-b8ba1fb>cd Ryven\src
C:\leon-thomm-Ryven-b8ba1fb\Ryven\src>Ryven.py
Traceback (most recent call last):
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\Ryven.py", line 83, in <module>
main()
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\Ryven.py", line 79, in main
start_ryven()
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\Ryven.py", line 17, in start_ryven
from MainConsole import init_main_console
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\MainConsole.py", line 5, in <module>
from code_editor.CodeEditorWidget import CodeEditorWidget
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\code_editor\CodeEditorWidget.py", line 1, in <module>
from qtpy.QtWidgets import QTextEdit, QShortcut
ModuleNotFoundError: No module named 'qtpy'
C:\leon-thomm-Ryven-b8ba1fb\Ryven\src>pip install qtpy
Collecting qtpy
Downloading QtPy-1.9.0-py2.py3-none-any.whl (54 kB)
|████████████████████████████████| 54 kB 916 kB/s
Installing collected packages: qtpy
Successfully installed qtpy-1.9.0
WARNING: You are using pip version 20.3.1; however, version 21.1.2 is available.
You should consider upgrading via the 'c:\python38\python.exe -m pip install --upgrade pip' command.
C:\leon-thomm-Ryven-b8ba1fb\Ryven\src>python Ryven.py
Traceback (most recent call last):
File "Ryven.py", line 83, in <module>
main()
File "Ryven.py", line 79, in main
start_ryven()
File "Ryven.py", line 19, in start_ryven
from MainWindow import MainWindow
File "C:\Python38\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\MainWindow.py", line 9, in <module>
from ScriptUI import ScriptUI
File "C:\Python38\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "C:\leon-thomm-Ryven-b8ba1fb\Ryven\src\ScriptUI.py", line 3, in <module>
from ryvencore_qt import GUI
File "C:\Python38\Lib\site-packages\shiboken2\files.dir\shibokensupport\__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'ryvencore_qt'
C:\leon-thomm-Ryven-b8ba1fb\Ryven\src>
Description
I'm very sorry for stupid question. I found your software absolutely fantastic as idea.
But actually I just could not run it.
Once the flow is created, how to run it?
I created a very simple flow : basically the copy of one of example.
But, once finished, it do nothing. There is no execution, no output.
I could imagine that there is some button, to Run the flow, but in your documentation I didn't see anything like this.
I attach a small screenshot of my flow.
If applicable, add screenshots to help explain the problem.
I understand that the question is silly, probably I just don't understand some basic concept. I tried to find some very simpole step-by-step example it in the project documentation, but without success.
System, version
I do not know,it is a buge about Ryven or about python.
Could anyone get it?
When workin in NodeManager and trying to import Nodes no File Dialog is shown.
I was able to narrow it down to the filter argument of MainWindow.py:getOpenFileName. This causes the failure.
Hotfix:
change last argument to 'Ryven Packages(*.rpc)'
Somehow there are no such problems on windows
System, version
1.the first issue is that i use the ryven_console, and i use a lot of self.main_widget to get the text from widget, and it list the error:
LogPython: EXCEPTION in
LogPython: UE4ActorClass
LogPython: 'function' object has no attribute 'currentText'
LogPython: 'NoneType' object is not iterable
LogPython: EXCEPTION in
LogPython: UE4ActorClass
LogPython: 'function' object has no attribute 'currentText'
LogPython: 'NoneType' object is not iterable
LogPython: EXCEPTION in
LogPython: UE4GetMap
LogPython: 'function' object has no attribute 'currentText'
LogPython: EXCEPTION in
LogPython: UE4ActorClass
LogPython: 'function' object has no attribute 'currentText'
LogPython: 'NoneType' object is not iterable
LogPython: The flow has been successfully created. What to do next?
the main_widget called from node_instance is not current in ryven_console, but work well in Ryven.、
i decouple the node_instance and main_widget by setting the parameters of node_instance by main_widget, not get from main_widget anymore.
2.and the other thing is that the project file has a lot of Repeated class naming, like 'flow',
the class of flow is different in both ryven and ryven_console, but the name is the same,
i can run each of them safely in different application-loop, but it is hard to run both in one remain app-loop.
and also there is a lot of Relative path which is base on the path of application running from, it is more safely if it was base on the
os.path.split(__file__)[0],
which is the path of the current module.
all above has be fixed by myself,
and i see your are in plan of Ryven3, maybe these can be changed in the future
originally #43
I didn't find out yet how to properly force immediate QGraphicsView background repaint for the flows. This results in ugly artifacts when running in mode fast. When running in pretty the foreground is repainted every frame (thus being really slow) which apparently causes the background to repaint too.
Hello,
when I load a *.json
project file where a slider with its "round" checkbox checked is inside, I get this error :
OSError : could not find class definition
Also : I can't set the slider to more than 99, how can we change it? I tried to look to its definition (widget and node) without success...
I am using macOS cataline 10.15.7
HI, such a nice concept of visual programming I am a beginner and this is a great tool for me, so I tried Put Text node from OpenCV and can't get it to work could you help me maybe I am doing something wrong :|
Heya,
I actually have no issue, I saw your project and I did like it, and I would like to add the Arabic language. =)
When saving a project with two scripts, only the first script appears on reload.
Thanks!
When trying to access the website, I get the following message:
Your connection is not private
Attackers might be trying to steal your information from ryven.org (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_DATE_INVALID
Hi! Thanks a lot for building this app, it looks cool!
I would like to ask you about how errors should be handled? Python uses exceptions by default, which are not very pleasant to work with in nocode platforms.
Maybe you can consider using Result
(or Either
) monad for handling errors?
In my experience (I did a similar project 5 years ago) this works great!
I use https://github.com/dry-python/returns to work with Result
, it is pretty neat.
I would love to hear your feedback.
P.S. I am going to share your project tomorrow in https://t.me/opensource_findings
A small issue but in readme:
"a guide can be found here" links to incorrect page on firefox
should probably link to:
https://ryven.org/guide#/
Ryven and NodeManager do not respond to mouseclicks out of the box on MacOs. A workaround is to change
the appstyle to "Fusion" instead of the default mac style:
app = QApplication(sys.argv)
app.setStyle('Fusion')
sw = StartupDialog()
I suggest that Fusion becomes the default mode for mac, or that information about this workaround is added to the Readme.md file.
Thanks!
Could there be Async ryven nodes?
If its possible, how would they work with asnycio based frameworks that dispatch events by calling callback/functions?
Im mainly asking to determine whether it would be possible to implement discord.py nodes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.