Giter Site home page Giter Site logo

ryven's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ryven's Issues

Error loading file with rounded slider widget

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...

Proposal for UX ehancement - filtering

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

Where are UI files for Qt Designer?

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

How to run very simple example ?

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

  • OS: Fedora 33, python 3.9.4, PySide2==5.15.2
  • Version: 2.4.2

test_ryven

Workaround suggestion for macos response problems

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!

main_widget used in console and project structure

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

Asyncio support?

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.

"Times" node: change multiplication operation

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!

Unable to install ryven (could be me and poetry)

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:

  • ryven requires Python !=3.10,>=3.6

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.'

Capture

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.

broken import nodes in NodeManager on Linux

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

  • OS: [Manjaro, Ubuntu]

Scaling / high res support

There are some issues on high resolution displays like below. Is there any way to enable/fix scaling? I found these issues in Ryven 2.4.2 on a 15" 4K screen (X1 Extreme).

image

image

Unable to Run M1 Apple Laptop

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

  • OS: macOS
  • Version 11.2.1

Cannot create new node

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...

reload node packages

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

MacOsX 10.13.6: Gui buttons can't be clicked

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!

Trying to run code but qt platform plugin is not found. Using windows.

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

Error handling

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

Put text node open cv

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 :|

Generate executable from flow

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!

Contributions?

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.

Clock node useability improvement

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!

Importing nodes?

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?

python Ryven.py , but no Response on macos 11.0.1

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

  • OS: macos big sur
  • Version [11.0.1]
  • Python3.9.1 and already pip install -r requirements.txt

Feature request: node instance names

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!

PyQtWebEngine Node error

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.

Screenshot from 2021-11-08 17-12-33

Feature request: zooming of workspace

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!

No module named 'ryvencore_qt'

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>

Clock node useability improvement

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!

Feature request: limit visible elements of matrices

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!

flow background repaint in mode 'fast'

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.

Feature request: node groups

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!

Website is not private

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

Feature request: export project to script *.py

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).

Conda Package

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.

i found a little two bugs in the last release.

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:
1442-06-25 16_52_22-Ryven

and this is the second bug:
(this pixely looking because converting the video to gif)
bandicam 2021-02-07 17-26-31-106

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.