← Back to team overview

sikuli-driver team mailing list archive

[Bug 777037] Re: X-1.0rc2: findAll() fails instead of returning None --- doc updated

 

http://sikuli.org/docx/region.html#Region.findAll
There is a mistake - returns 'one ore more'. Like when Sikuli is used to control mines, it results in more ore extracted. =)

I'd rewrite this statement as `Returns: matched objects as an iterator
or fails`with `fails` as a link. Less text - easier to read - makes
Sikuli more intuitive, i.e. more awesome.

For me returning None when nothing is found is perfectly fine for a
scripting language. Exceptions seriously complicate stuff, especially in
findAll() case. IMO it should not be default if the default is not
publicly grounded (e.g. like
http://www.pyside.org/docs/pseps/psep-0100.html). I see the reasoning
behind debug, but I believe there is a much better way - by producing
debug messages about how much results findAll() returns for certain
debug log level. Then, using transparent log window that's always on top
(and global shortcuts), it will be possible to debug execution more
conveniently.

Maybe it is useful to add parameter for raising exception into
findAll()?

http://sikuli.org/docx/region.html#patternnotfound
Is there any difference between "as a default" and "by default"?

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/777037

Title:
  X-1.0rc2: findAll() fails instead of returning None --- doc updated

Status in Sikuli:
  Fix Released

Bug description:
  the docs have been updated to clearly describe the current behavior of findAll()
  --------------------------------------------------------------------------

  According to docs, findAll() should return None if images are not found, but it fails instead.
  Docs: http://sikuli.org/docx/region.html#Region.findAll
  Command: fields = findAll([image here])

  [profile] Finder.findAll START
  [profile] Finder.findAll END: 1074ms
  [error] Stopped
  [error] An error occurs at line 6
  [error] Error message: Traceback (most recent call last):
    File "C:\Users\useri\AppData\Local\Temp\sikuli-tmp2446174342086249181.py", line 6, in
      lettu_fields = findAll("1304497590779.png")
    File "C:\SikuliX\sikuli-script.jar\Lib\sikuli\Region.py", line 76, in findAll
    Line 14, in file C:\Users\useri\AppData\Local\Temp\sikuli-tmp2446174342086249181.py

     at org.sikuli.script.Region.handleFindFailed(Region.java:349)
    at org.sikuli.script.Region.findAll(Region.java:386)
    at org.python.proxies.sikuli.Region$Region$1.super__findAll(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

     org.sikuli.script.FindFailed: FindFailed: can not find 1304497590779.png
    Line 14
  , in file C:\Users\useri\AppData\Local\Temp\sikuli-tmp2446174342086249181.py


References