Installing via pip fails

Hi!
I try to use ESP_Flasher but I get an error while installing via pip:
pip install esp-flasher
Defaulting to user installation because normal site-packages is not writeable
Collecting esp-flasher
  Using cached esp_flasher-1.4.1-py3-none-any.whl (111 kB)
Requirement already satisfied: requests<3,>=2.24.0 in /home/jeroen/.local/lib/python3.8/site-packages (from esp-flasher) (2.27.1)
Collecting wxpython<5.0,>=4.0
  Using cached wxPython-4.2.0.tar.gz (71.0 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-zyftjlzj/wxpython_11e66a7a8d8f422ab83c39fad694ad67/setup.py", line 27, in <module>
          from buildtools.config import Config, msg, opj, runcmd, canGetSOName, getSOName
        File "/tmp/pip-install-zyftjlzj/wxpython_11e66a7a8d8f422ab83c39fad694ad67/buildtools/config.py", line 30, in <module>
          from attrdict import AttrDict
      ModuleNotFoundError: No module named 'attrdict'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Which OS and version?

Linux Mint 20.3 Cinnamon

pip3 install attrdict solves this error but now I got this:
pip install esp-flasher
Defaulting to user installation because normal site-packages is not writeable
Collecting esp-flasher
Using cached esp_flasher-1.4.1-py3-none-any.whl (111 kB)
Requirement already satisfied: requests<3,>=2.24.0 in ./.local/lib/python3.8/site-packages (from esp-flasher) (2.27.1)
Requirement already satisfied: pyserial>=3.5 in ./.local/lib/python3.8/site-packages (from esp-flasher) (3.5)
Collecting wxpython<5.0,>=4.0
Using cached wxPython-4.2.0.tar.gz (71.0 MB)
Preparing metadata (setup.py) ... done
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.local/lib/python3.8/site-packages (from requests<3,>=2.24.0->esp-flasher) (1.26.5)
Requirement already satisfied: idna<4,>=2.5 in /usr/lib/python3/dist-packages (from requests<3,>=2.24.0->esp-flasher) (2.8)
Requirement already satisfied: charset-normalizer~=2.0.0 in ./.local/lib/python3.8/site-packages (from requests<3,>=2.24.0->esp-flasher) (2.0.12)
Requirement already satisfied: certifi>=2017.4.17 in /usr/lib/python3/dist-packages (from requests<3,>=2.24.0->esp-flasher) (2019.11.28)
Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from wxpython<5.0,>=4.0->esp-flasher) (7.0.0)
Requirement already satisfied: six in ./.local/lib/python3.8/site-packages (from wxpython<5.0,>=4.0->esp-flasher) (1.16.0)
Requirement already satisfied: numpy in ./.local/lib/python3.8/site-packages (from wxpython<5.0,>=4.0->esp-flasher) (1.24.2)
Building wheels for collected packages: wxpython
Building wheel for wxpython (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [142 lines of output]
running bdist_wheel
running build
WARNING: Building this way assumes that all generated files have been
generated already.  If that is not the case then use build.py directly
to generate the source and perform the build stage.  You can use
--skip-build with the bdist_* or install commands to avoid this
message and the wxWidgets and Phoenix build steps in the future.
  "/usr/bin/python3" -u build.py build
  Will build using: "/usr/bin/python3"
  3.8.10 (default, Nov 14 2022, 12:59:47)
  [GCC 9.4.0]
  Python's architecture is 64bit
  cfg.VERSION: 4.2.0

  Running command: build
  Running command: build_wx
  wxWidgets build options: ['--wxpython', '--unicode', '--gtk3']
  Configure options: ['--enable-unicode', '--with-gtk=3', '--enable-sound', '--enable-graphics_ctx', '--enable-display', '--enable-geometry', '--enable-debug_flag', '--enable-optimise', '--disable-debugreport', '--enable-uiactionsim', '--enable-autoidman', '--with-sdl']
  /tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/ext/wxWidgets/configure --enable-unicode --with-gtk=3 --enable-sound --enable-graphics_ctx --enable-display --enable-geometry --enable-debug_flag --enable-optimise --disable-debugreport --enable-uiactionsim --enable-autoidman --with-sdl
  checking build system type... x86_64-pc-linux-gnu
  checking host system type... x86_64-pc-linux-gnu
  checking for toolkit... gtk
  checking for gcc... gcc
  checking whether the C compiler works... yes
  checking for C compiler default output file name... a.out
  checking for suffix of executables...
  checking whether we are cross compiling... no
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking whether we are using the Intel C compiler... no
  checking how to run the C preprocessor... gcc -E
  checking for grep that handles long lines and -e... /usr/bin/grep
  checking for egrep... /usr/bin/grep -E
  checking whether gcc needs -traditional... no
  checking for g++... g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether g++ accepts -g... yes
  checking whether we are using the Intel C++ compiler... no
  checking whether we are using the Sun C++ compiler... no
  checking for ar... ar
  checking for ANSI C header files... yes
  checking for sys/types.h... yes
  checking for sys/stat.h... yes
  checking for stdlib.h... yes
  checking for string.h... yes
  checking for memory.h... yes
  checking for strings.h... yes
  checking for inttypes.h... yes
  checking for stdint.h... yes
  checking for unistd.h... yes
  checking for langinfo.h... yes
  checking for wchar.h... yes
  checking for sys/select.h... yes
  checking for cxxabi.h... yes
  checking for an ANSI C-conforming const... yes
  checking for inline... inline
  checking size of short... 2
  checking size of void *... 8
  checking size of int... 4
  checking size of long... 8
  checking size of size_t... 8
  checking size of long long... 8
  checking size of wchar_t... 4
  checking for va_copy... yes
  checking for _FILE_OFFSET_BITS value needed for large files... 64
  checking if large file support is available... yes
  checking for _LARGEFILE_SOURCE value needed for large files... no
  checking whether byte ordering is bigendian... no
  checking for std::wstring in <string>... yes
  checking for std::istream... yes
  checking for std::ostream... yes
  checking for type_traits... yes
  checking for __sync_xxx_and_fetch builtins... yes
  checking for libraries directories... /usr/lib/x86_64-linux-gnu /usr/lib
  checking for cos... no
  checking for floor... no
  checking if floating point functions link without -lm... no
  checking for sin... yes
  checking for ceil... yes
  checking if floating point functions link with -lm... yes
  checking for strtoull... yes
  checking for pkg-config... /usr/bin/pkg-config
  checking pkg-config is at least version 0.9.0... yes
  checking for LIBPCRE... yes
  checking for zlib.h >= 1.1.4... yes
  checking for zlib.h... (cached) yes
  checking for deflate in -lz... yes
  checking for png.h > 0.90... no
  checking for png.h... (cached) no
  configure: WARNING: system png library not found or too old, will use built-in instead
  checking whether png.c file exists... yes
  checking for jpeglib.h... no
  configure: WARNING: system jpeg library not found, will use built-in instead
  checking whether jpeglib.h file exists... yes
  checking for jbg_dec_init in -ljbig... no
  checking for LIBTIFF... not found via pkg-config
  checking for tiffio.h... no
  configure: WARNING: system tiff library not found, will use built-in instead
  checking whether tiff.h file exists... yes
  checking for expat.h... yes
  checking if expat.h is valid C++ header... yes
  checking for XML_ParserCreate in -lexpat... yes
  checking for LIBCURL... not found
  checking for GTK+ version...
  checking for pkg-config... (cached) /usr/bin/pkg-config
  checking pkg-config is at least version 0.16... yes
  checking for GTK+ - version >= 3.0.0... Package gtk+-3.0 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gtk+-3.0.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'gtk+-3.0' found
  Package gthread-2.0 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gthread-2.0.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'gthread-2.0' found
  no
  *** Could not run GTK+ test program, checking why...
  *** The test program failed to compile or link. See the file config.log for the
  *** exact error that occurred. This usually means GTK+ is incorrectly installed.
  configure: error:
  The development files for GTK+ were not found. For GTK+ 2, please
  ensure that pkg-config is in the path and that gtk+-2.0.pc is
  installed. For GTK+ 1.2 please check that gtk-config is in the path,
  and that the version is 1.2.3 or above. Also check that the
  libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
  --libs' are in the LD_LIBRARY_PATH or equivalent.

  Error running configure
  ERROR: failed building wxWidgets
  Traceback (most recent call last):
    File "build.py", line 1563, in cmd_build_wx
      wxbuild.main(wxDir(), build_options)
    File "/tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/buildtools/build_wxwidgets.py", line 379, in main
      exitIfError(wxBuilder.configure(dir=wxRootDir, options=configure_opts),
    File "/tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/buildtools/build_wxwidgets.py", line 72, in exitIfError
      raise builder.BuildError(msg)
  buildtools.builder.BuildError: Error running configure
  Finished command: build_wx (0m3.747s)
  Finished command: build (0m3.747s)
  Command '"/usr/bin/python3" -u build.py build' failed with exit code 1.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for wxpython
Running setup.py clean for wxpython
Failed to build wxpython
Installing collected packages: wxpython, esp-flasher
Running setup.py install for wxpython ... error
error: subprocess-exited-with-error
× Running setup.py install for wxpython did not run successfully.
│ exit code: 1
╰─> [142 lines of output]
running install
running build
WARNING: Building this way assumes that all generated files have been
generated already.  If that is not the case then use build.py directly
to generate the source and perform the build stage.  You can use
--skip-build with the bdist_* or install commands to avoid this
message and the wxWidgets and Phoenix build steps in the future.
  "/usr/bin/python3" -u build.py build
  Will build using: "/usr/bin/python3"
  3.8.10 (default, Nov 14 2022, 12:59:47)
  [GCC 9.4.0]
  Python's architecture is 64bit
  cfg.VERSION: 4.2.0

  Running command: build
  Running command: build_wx
  wxWidgets build options: ['--wxpython', '--unicode', '--gtk3']
  Configure options: ['--enable-unicode', '--with-gtk=3', '--enable-sound', '--enable-graphics_ctx', '--enable-display', '--enable-geometry', '--enable-debug_flag', '--enable-optimise', '--disable-debugreport', '--enable-uiactionsim', '--enable-autoidman', '--with-sdl']
  /tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/ext/wxWidgets/configure --enable-unicode --with-gtk=3 --enable-sound --enable-graphics_ctx --enable-display --enable-geometry --enable-debug_flag --enable-optimise --disable-debugreport --enable-uiactionsim --enable-autoidman --with-sdl
  checking build system type... x86_64-pc-linux-gnu
  checking host system type... x86_64-pc-linux-gnu
  checking for toolkit... gtk
  checking for gcc... gcc
  checking whether the C compiler works... yes
  checking for C compiler default output file name... a.out
  checking for suffix of executables...
  checking whether we are cross compiling... no
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking whether we are using the Intel C compiler... no
  checking how to run the C preprocessor... gcc -E
  checking for grep that handles long lines and -e... /usr/bin/grep
  checking for egrep... /usr/bin/grep -E
  checking whether gcc needs -traditional... no
  checking for g++... g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether g++ accepts -g... yes
  checking whether we are using the Intel C++ compiler... no
  checking whether we are using the Sun C++ compiler... no
  checking for ar... ar
  checking for ANSI C header files... yes
  checking for sys/types.h... yes
  checking for sys/stat.h... yes
  checking for stdlib.h... yes
  checking for string.h... yes
  checking for memory.h... yes
  checking for strings.h... yes
  checking for inttypes.h... yes
  checking for stdint.h... yes
  checking for unistd.h... yes
  checking for langinfo.h... yes
  checking for wchar.h... yes
  checking for sys/select.h... yes
  checking for cxxabi.h... yes
  checking for an ANSI C-conforming const... yes
  checking for inline... inline
  checking size of short... 2
  checking size of void *... 8
  checking size of int... 4
  checking size of long... 8
  checking size of size_t... 8
  checking size of long long... 8
  checking size of wchar_t... 4
  checking for va_copy... yes
  checking for _FILE_OFFSET_BITS value needed for large files... 64
  checking if large file support is available... yes
  checking for _LARGEFILE_SOURCE value needed for large files... no
  checking whether byte ordering is bigendian... no
  checking for std::wstring in <string>... yes
  checking for std::istream... yes
  checking for std::ostream... yes
  checking for type_traits... yes
  checking for __sync_xxx_and_fetch builtins... yes
  checking for libraries directories... /usr/lib/x86_64-linux-gnu /usr/lib
  checking for cos... no
  checking for floor... no
  checking if floating point functions link without -lm... no
  checking for sin... yes
  checking for ceil... yes
  checking if floating point functions link with -lm... yes
  checking for strtoull... yes
  checking for pkg-config... /usr/bin/pkg-config
  checking pkg-config is at least version 0.9.0... yes
  checking for LIBPCRE... yes
  checking for zlib.h >= 1.1.4... yes
  checking for zlib.h... (cached) yes
  checking for deflate in -lz... yes
  checking for png.h > 0.90... no
  checking for png.h... (cached) no
  configure: WARNING: system png library not found or too old, will use built-in instead
  checking whether png.c file exists... yes
  checking for jpeglib.h... no
  configure: WARNING: system jpeg library not found, will use built-in instead
  checking whether jpeglib.h file exists... yes
  checking for jbg_dec_init in -ljbig... no
  checking for LIBTIFF... not found via pkg-config
  checking for tiffio.h... no
  configure: WARNING: system tiff library not found, will use built-in instead
  checking whether tiff.h file exists... yes
  checking for expat.h... yes
  checking if expat.h is valid C++ header... yes
  checking for XML_ParserCreate in -lexpat... yes
  checking for LIBCURL... not found
  checking for GTK+ version...
  checking for pkg-config... (cached) /usr/bin/pkg-config
  checking pkg-config is at least version 0.16... yes
  checking for GTK+ - version >= 3.0.0... Package gtk+-3.0 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gtk+-3.0.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'gtk+-3.0' found
  Package gthread-2.0 was not found in the pkg-config search path.
  Perhaps you should add the directory containing `gthread-2.0.pc'
  to the PKG_CONFIG_PATH environment variable
  No package 'gthread-2.0' found
  no
  *** Could not run GTK+ test program, checking why...
  *** The test program failed to compile or link. See the file config.log for the
  *** exact error that occurred. This usually means GTK+ is incorrectly installed.
  configure: error:
  The development files for GTK+ were not found. For GTK+ 2, please
  ensure that pkg-config is in the path and that gtk+-2.0.pc is
  installed. For GTK+ 1.2 please check that gtk-config is in the path,
  and that the version is 1.2.3 or above. Also check that the
  libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
  --libs' are in the LD_LIBRARY_PATH or equivalent.

  Error running configure
  ERROR: failed building wxWidgets
  Traceback (most recent call last):
    File "build.py", line 1563, in cmd_build_wx
      wxbuild.main(wxDir(), build_options)
    File "/tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/buildtools/build_wxwidgets.py", line 379, in main
      exitIfError(wxBuilder.configure(dir=wxRootDir, options=configure_opts),
    File "/tmp/pip-install-x1sgfktd/wxpython_b9652ea1547946a393162e6a5fea9a72/buildtools/build_wxwidgets.py", line 72, in exitIfError
      raise builder.BuildError(msg)
  buildtools.builder.BuildError: Error running configure
  Finished command: build_wx (0m3.703s)
  Finished command: build (0m3.703s)
  Command '"/usr/bin/python3" -u build.py build' failed with exit code 1.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> wxpython
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Can you try latest version?

pip install esp-flasher gives the same error. Do I need to execute another command to install the latest version?

The problem is installing wxpython. It is the gfx module dependency. On which Linux platform is Linux Mint 20.3 Cinnamon based?

this prerequisites
sudo apt install python3-pip make gcc libgtk-3-dev libgstreamer-gl1.0-0 freeglut3 freeglut3-dev python3-gst-1.0 libglib2.0-dev ubuntu-restricted-extras libgstreamer-plugins-base1.0-dev

and after that it should be possible to build wxPython
pip3 install -v --user wxPython

When wxpython is successful installing ESP Flasher should work.

Sorry that it took so long before my reply, but I can confirm your prerequisites works for linux mint correctly.
I can now run esp flasher.
Thank you!


Bug: item drag preview effected by canvas layer position.

Help! :pray:
If I have my ctrl_inventory_grid_ex control not at position 0,0 I get the following behaviour of drag preview not working in the whole grid: https://github.com/user-attachments/assets/b99e61a9-0969-4fc2-894d-16f0225a6898
The drag preview is working in the whole grid only if I position it at the origin of the canvas layer Vector2(0,0) (or perhaps the root node of the scenes position). This is evident because If I set the canvas_layer with an offset whilst keeping the ctrl_inventory_grid_ex position at 0,0 it still works. (therefore my player inventory drag preview in bottom right not work at all).
My node hierachy; I have it nested in a canvas layer so it doesn't rotate with my player); In this screenshot the inventory works because I offset the canvas layers transform, but if I kept it at 0,0 and moved the ctrl_inventory_grid_ex instead you end up with behaviour in video...

So, I guess it needs to calculate drag preview from the controls position rather than whatever its calculating from? , Or maybe its more complicated :shrug:

Update: Commenting out this line fixes this issue for me. Is this actually doing anything because it seems to reset to field style when not hovering anyway?
https://github.com/peter-kish/gloot/blob/d05decba6495e4f6da498689545e34e127160022/addons/gloot/ui/ctrl_inventory_grid_ex.gd#L368-L370

I was able to reproduce this partially. I see an issue with the missing background highlights, but the drag preview seems to work fine:

The missing highlights should be fixed in 7c69809030907703279fc21e6ffba4c60b000f91. You can give it a try, maybe it fixes your issue. If not, I'll keep investigating.

The missing highlights should be fixed in https://github.com/peter-kish/gloot/commit/7c69809030907703279fc21e6ffba4c60b000f91. You can give it a try, maybe it fixes your issue. If not, I'll keep investigating.

Yep, that fixed it! nice one!.
What do you think of adding an option for field highlighted style? say for two colors, one for if the item is swappable (green by default) and one for if its not swappable (red by default) and/or making the cursor a cross if the item isn't swappable? because it can be confusing when part of your item is transparent...

What do you think of adding an option for field highlighted style?

At some point yeah, why not. It's just that that I'm not sure if I will squeeze it in v2. Mostly because I'm trying to only do bugfixes and maintenance on v2, while I implement the new features in v3.
I created a separate issue for this without any milestones set. If it turns out to be simple enough, I'll include it in v2.

At some point yeah, why not. It's just that that I'm not sure if I will squeeze it in v2. Mostly because I'm trying to only do bugfixes and maintenance on v2, while I implement the new features in v3.

Cool, I'm going to try porting to v3 anyway; I just ported my protoset to json using macros. Hopefully its not too painful...


JavaClient ot convert HTML to PDF

I am not sure if this can be of any interest, but I did not found any example how to trigger the Gotenberg service from Java.
So the following code is a pure java client which can be used to access this service from a java application. Maybe this code can be added to the examples / documentation for java clients?
package org.rsoika;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

/**
 * Gotenberg is a Docker-powered stateless API for converting HTML, Markdown and
 * Office documents to PDF.
 *

 * This java client can be used to send a HTML file to the docker service to
 * receive a PDF file based on the Gotenberg API. This implementation uses pure
 * java based on JDK 1.8 and did not depend on any external library. You can use
 * this client on your own code base or as a scaffold for a custom
 * implementation.
 *

 * The data is expected in UTF-8 encoding
 *
 * @author rsoika
 * @version 1.0
 * @see https://github.com/thecodingmachine/gotenberg/
 * @see https://www.codejava.net/java-se/networking/upload-files-by-sending-multipart-request-programmatically
 *
 */
public class GotenbergClient {

    private static final String LINE_FEED = "\r\n";

    public static byte[] convertHTML(String gotenbertEndpoint, InputStream inputStream) throws IOException {
        byte[] pdfResult;
        String boundary;
        // creates a unique boundary based on time stamp
        boundary = "------------------------" + System.currentTimeMillis();
        if (!gotenbertEndpoint.endsWith("/")) {
            gotenbertEndpoint = gotenbertEndpoint + "/";
        }

        URL url = new URL(gotenbertEndpoint + "convert/html");
        HttpURLConnection  httpConn = (HttpURLConnection) url.openConnection();
        httpConn.setUseCaches(false);
        httpConn.setDoOutput(true);    // indicates POST method
        httpConn.setDoInput(true);
        httpConn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
        OutputStream outputStream = httpConn.getOutputStream();
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8), true);

        // add html file...
        writer.append("--" + boundary).append(LINE_FEED);
        writer.append("Content-Disposition: form-data; name=\"fileUpload\"; filename=\"index.html\"").append(LINE_FEED);
        writer.append("Content-Type: text/html").append(LINE_FEED);
        writer.append("Content-Transfer-Encoding: binary").append(LINE_FEED);
        writer.append(LINE_FEED);
        writer.flush();

        byte[] buffer = new byte[4096];
        int bytesRead = -1;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        outputStream.flush();
        inputStream.close();
        writer.append(LINE_FEED);
        writer.flush();
        writer.append("--" + boundary + "--").append(LINE_FEED);
        writer.close();

         // checks server's status code first
        int status = httpConn.getResponseCode();
        System.out.println("http con response code=" + status);
        if (status == HttpURLConnection.HTTP_OK) {
            InputStream in = null;
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            in = httpConn.getInputStream();
            byte[] block = new byte[1024];
            int length;
            while ((length = in.read(block)) != -1) {
                bout.write(block, 0, length);
            }
            in.close();
            pdfResult=  bout.toByteArray();
            httpConn.disconnect();
        } else {
            throw new IOException("Server connection failed - status: " + status);
        }

        return pdfResult;
    }

}

Hello @rsoika! I've created the awesome list if you want to add a Gist :)

@gulien  I have now created a small Gist entry here:
https://gist.github.com/rsoika/0cae2fa63a565ec4698bce13f243118d

Thanks @rsoika! I've added to the awesome list 👍 thanks! 😄


Replace message input box and send button with custom component.

I'm using this super cool chatbot. But I couldn't found any custom component feature for message box and send button. Help me if there is a way to do so. If it's there, I convert the input box into different type, like, textarea, email, image etc.
There might me different solution for my use case. Please have a look into my usecase.

I need a button beside the inbox box which will take an image and send it to the server along with the message.
I need to convert the text input to a textarea field so that user can easily give a long text input.

Im looking for exact same!

I have added a mic button beside my send button in the input container for audio input, and it is working. Try to make changes using getElementsByClassName().

Also ran into this issue and hope that it can be fixed in future!
In the meantime a temporary fix I used is to clone the repo, make the required changes and then create a local npm package for my own use:
To create the local package:

nvm use 16..0
npm install --global yarn
export PATH="$PATH:$(yarn global bin)"
npm pack

To use the local package:

npm install path/to/package.tgz

Hope this helps somebody!


Using templated operator== inside TEST_CASE changes deduced types of forwarding references

I was writing some generic code that among other things allows customization of operators for user provided classes. This involved a lot of templates and forwarding references, so my tests also included cases that ensured that my templates are deducing the types that I wanted. However, it looked like the behavior was subtly different between the test code and production code which was very confusing. Ultimately, I manged to reduce my working example to the following (dummy implementations for brevity):
  template <typename T>
  bool operator==(T&&, T&&)
  {
    return true;
  }

  struct X {};

  TEST_CASE("test")
  {
    X x{};
    CHECK(x == X{});
  }

This code compiles (doctest 2.4.0 with gcc 10.0.1), but it should not. Indeed, if I use the comparison x == X{} outside of TEST_CASE, gcc says deduced conflicting types for parameter ‘T’ (‘X&’ and ‘X’) which sounds exactly right to me. The same thing happens with other comparison operators like operator<, but nothing else as far as I can tell.
I assume that doctest does some magic behind the scenes to parse expressions inside CHECK which is a cause of this and I can appreciate that it might be difficult to eliminate this side effect. But it would be great if there was a way to fix this or at least have some workaround.

Sorry for the late reply. This issue is not present in Catch2 and thus it should be fixed in doctest as well. However I cannot promise when... Thanks for reporting!

closed thanks to #468 (merged in dev)


How do we increase retry attempts and timeout for read_parquet?

If you are referring to the retries from the botocore configuration, please follow this tutorial (botocore_config). Otherwise please provide more details

Yup ! t

Yup, thanks!


openmm-6.2-py27_0.tar.bz2 contains some erroneous files

If you look in the openmm linux py27 package, there are some erroneous files.
$ wget https://binstar.org/omnia/openmm/6.2/download/linux-64/openmm-6.2-py27_0.tar.bz2
$ tar -tjvf openmm-6.2-py27_0.tar.bz2

In lib/python2.7/site-packages/, there's a full copy of sphinx and sphinxcontrib-bibtex. I don't think this is terrible, but it's not what we want.

Also the case with the osx packages.

OK, it's also happening in my manual builds, so it's gotta build our build script?

Yeah. I will look into it. It makes sense how they'd get there, from being installed through the build: requires, but it's not obvious to me what we're doing wrong. I looked at the files in the msmbuilder  and mdtraj packages, and there's nothing extra there, even though they obviously have build: requires sections.

Ohh. I know what it is.

Well, maybe. Will fix soon.


When I upload a gpx file, a fatal error occurs.

root@racknerd-6ce5c6:/opt/strava-to-fittrackee# poetry run python -m strava_to_fittrackee.s2f --upload-all-fittrackee
Uploading GPX files:   0%|                                                                                | 0/353 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/opt/strava-to-fittrackee/strava_to_fittrackee/s2f.py", line 1185, in <module>
    upload_all_fittrackee(args.input_folder)
  File "/opt/strava-to-fittrackee/strava_to_fittrackee/s2f.py", line 1045, in upload_all_fittrackee
    fittrackee.upload_gpx(f)
  File "/opt/strava-to-fittrackee/strava_to_fittrackee/s2f.py", line 832, in upload_gpx
    activity_dict = json.loads(gpx.tracks[0].comment)
  File "/usr/lib/python3.10/json/__init__.py", line 339, in loads
    raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not NoneType

Hard to say what the issue could be without more detail... is it possible for you to debug a little, or share the gpx file that's causing an issue?

I downloaded all the strava gpx and then uploaded it to fittrackee, maybe some gpx formats are not supported. Later on, I just sync and it ignores some gpx files that don't match the format.

Glad you figured out a workaround. GPX files can have a lot of particularities, so I'm sure not every type of workout file is well-supported.


Info update regarding minikube

This is a Bug Report

Problem: In the last paragraph for the page https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/ it's mentioned that the Minikube is a lightweight Kubernetes implementation that creates a VM on your local machine but instead it creates a single node cluster that runs on a VM which has to be present on the local machine. Users can misinterpret this and forget to install a VM like hyperkit/VirtualBox on their local machine.
Proposed Solution:
We should update this line to clarify that the user has to install a hypervisor on their host and only then they can run minikube.
Page to Update:
https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/

I would like to work on this.

/assign

/close
We are not supposed to add detailed information about those tools.
What we can do and what we did do is to provide links to those tools.
The same documentation content is not supposed to be dual-hosted.

Can we just replace the word 'creates' with 'runs' on a VM because the former sounds a bit misleading. No need to add extra information but just writing that it runs on a VM, I guess would be a better thing.


Replies don't show up immediately

If a user replies to a note, it is not displayed immediately and the response counter is not incremented; so the user is unable to see it in the proper context.
This problem is compounded by the fact that the popup about submission auto hide (that is fine, if the submission success), so there are no clues about the posting status.

Fix in 77e104135fc684b1b1b0a6cc0075a4ec070d9117


[DT] fix next-pylint

Also temporarily disabling samples for now. Tracking here: https://github.com/Azure/azure-sdk-for-python/issues/26807

API change check
API changes are not detected in this pull request.


[Signature] Add more Error Infomation when read files failed.

At present, in the signature module, when reading various files (such as sigstore configuration file, signature file, etc.), if the reading fails, the caller cannot know which file has the problem. We should add error return prompt in all operations of reading files.

Resolved by https://github.com/confidential-containers/image-rs/commit/273cbb49e33a6366d44a04c54efdfa7becd655c8


First version of Pachyderm Enablement Doc

Thank you for the review @abigaeljamie! We should be all set.

Pachyderm is shown up in the operatorhub/marketplace so we need to merge this PR.
I checked it on my local and I confirm that it is working proproly. @jeff-phillips-18 Please review it.

Pachyderm is now up on Marketplace so we need to merge this PR.
So please review and merge this pr if there are no issues.
@jeff-phillips-18

Associated JIRA: https://issues.redhat.com/browse/RHODS-696


fix: coinbase outputs

@lgalabru Ah yes, you'll have to either rebase from develop to pull the CI changes in, or cherry-pick the merge commit into this branch.

Oh I see, ok thanks!


Updating for effect modified SQ-LNS and setting up for Model 15 Run

Title: Summary, imperative, start upper case, don't end with a period
Updating for effect modified SQ-LNS
Description
Updating for effect modified SQ-LNS and setting up for Model 15 Run

Category: Implementation
Research reference:

Changes and notes

Updated to have standard and effect modified data in the SQ-LNS risk ratio artifact
Created and added fake, dummy data that included the different SQ-LNS options (v2)
Included SQ-LNS effect as a line in the model spec and the branches file
Added SQ-LNS effect to the output files
Added a new scenario that is baseline with SQ-LNS (scenario 18)
Updated the branches file so that it has the scenarios now needed with SQ-LNS effects defined
Changed it to force select one subnational location in prep for Model 15 runs

Verification and Testing

Checked that the artifact data has standard and modified SQ-LNS risk ratios now
Ran both (very small!) simulate and psimulate runs to ensure things run and that we can make results
Checked results to ensure that the correct scenarios are present and that the SQ-LNS effect modification column shows up

I want to clarify that I did testing without the subnational hack in population.py! If you could check that the code there looks correct that would be great :)


Make command in ibex processor crashes after 70%

Describe the bug
OpenROAD crashed after 70% with a lot of violations for the Ibex Controller..
Expected Behavior
OpenROAD should not crash and the no. of violations should be less.
Environment
To Reproduce
Run make "DESIGN_CONFIG=./designs/asap7/ibex/config.mk" in the OpenROAD flow scripts.
Relevant log output
No response
Screenshots

Additional Context
Bug reported by Subhradip Chakraborty.

The design passes in the nightly CI so it is likely a local problem.  This report is too vague to be actionable.  What commit id?  What platform?  Are you running out of memory?

@Eyantra698Sumanto
Please follow the Issue template closely. There are instructions that must be followed to help us understand the problem:

As per slack channel discussion with user, in VM they had only 4GB RAM. So once it reaches peak it got exited.
Increase the swap memory for your system and try again.


Command location

Describe the feature

Add commands, or groups of commands, in positions 1 and 2
Does this fix a problem? If so, specify.
I don't know
Did you consider other alternatives?
No response
Screenshots and recordings
No response


python310Packages.cron-descriptor: 1.2.24 -> 1.2.27

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.cron-descriptor is: "Library that converts cron expressions into human readable strings"
meta.homepage for python310Packages.cron-descriptor is: "https://github.com/Salamek/cron-descriptor"
meta.changelog for python310Packages.cron-descriptor is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.27 with grep in /nix/store/grh0fwrjgm240668i59wza7mda3y19q2-python3.10-cron_descriptor-1.2.27
found 1.2.27 in filename of file in /nix/store/grh0fwrjgm240668i59wza7mda3y19q2-python3.10-cron_descriptor-1.2.27

Rebuild report (if merged into master) (click to expand)

6 total rebuild path(s)

3 package rebuild(s)

3 x86_64-linux rebuild(s)
3 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
healthchecks
python310Packages.cron-descriptor
python39Packages.cron-descriptor

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/grh0fwrjgm240668i59wza7mda3y19q2-python3.10-cron_descriptor-1.2.27 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.cron-descriptor https://github.com/r-ryantm/nixpkgs/archive/56c5f3f36672a71a00dc498cfbd90f1d9ff47ad2.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/grh0fwrjgm240668i59wza7mda3y19q2-python3.10-cron_descriptor-1.2.27
ls -la /nix/store/grh0fwrjgm240668i59wza7mda3y19q2-python3.10-cron_descriptor-1.2.27/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

healthchecks
python310Packages.cron-descriptor
python39Packages.cron-descriptor

Maintainer pings
cc @phaer for testing.

Result of nixpkgs-review pr 179712 run on x86_64-linux 1

3 packages built:

healthchecks
python310Packages.cron-descriptor
python39Packages.cron-descriptor


Refactor GitHub Actions CI to a single workflow

Motivation

current GitHub Actions based CI contains multiple GitHub Actions workflows which are duplicates. Maintaining the workflow is not convenient because of the duplication and multiple files.

multiple workflows were useful when GitHub Actions didn't yet support re-running individual failed jobs

Modifications

merge all checks to a single workflow.
add ssh access to be used for debugging failures when CI jobs are run in a forked repository

Verifying this change

[ ] Make sure that the change passes the CI checks.

Thank you for your work on this @lhotari!


Keymap trigger throws Not allowed to change text or window when trying to expand a snippet

Make sure you have done the following

[X] I have updated to the latest version of blink.cmp
[X] I have read the README

Bug Description
I have the keymap:
{j
-- ...
      ['<C-l>'] = {
        function(cmp)
          if require('luasnip').expand_or_locally_jumpable() then
            require('luasnip').expand_or_jump()
            return true
          elseif cmp.is_visible() and require('blink.cmp.completion.list').items[1].source_id == 'luasnip' then
            cmp.accept { index = 1 }
            return true
          end
        end,
      },
-- ...
}

that tries to expand a snippet if it is the first item, but only if there is no jump in the snippet. However, when triggering the keymap if there is a snippet at the first index in the item list, I get the following error:
E5108: Error executing lua: ...atko/.local/share/nvim/lazy/LuaSnip/lua/luasnip/init.lua:262: E565: Not allowed to change text or change window
stack traceback:
        [C]: in function 'nvim_buf_set_text'
        ...atko/.local/share/nvim/lazy/LuaSnip/lua/luasnip/init.lua:262: in function 'snip_expand'
        ...atko/.local/share/nvim/lazy/LuaSnip/lua/luasnip/init.lua:341: in function 'expand'
        ...atko/.local/share/nvim/lazy/LuaSnip/lua/luasnip/init.lua:384: in function 'expand_or_jump'
        /home/kunzaatko/.config/nvim/lua/plugins/blink_cmp.lua:40: in function 'command'
        ...share/nvim/lazy/blink.cmp/lua/blink/cmp/keymap/apply.lua:26: in function <...share/nvim/lazy/blink.cmp/lua/blink/cmp/keymap/apply.lua:18>

which is thrown by this line. Is it possible to define it within the configuration or should I define it else where with:
  local ls = require'luasnip'
  vim.keymap.set({ 'i', 's' }, '<C-l>', function()
    if ls.expand_or_locally_jumpable() then
      ls.expand_or_jump()
    elseif
      require('blink.cmp').is_visible() and require('blink.cmp.completion.list').items[1].source_id == 'luasnip'
    then
      require('blink.cmp').accept { index = 1 }
    end
  end, { silent = true, desc = 'jump forward or expand snippet' })

which works just fine?
Relevant configuration
No response
neovim version
NVIM v0.10.2 Build type: Release LuaJIT 2.1.1713484068
blink.cmp version: branch, tag, or commit
f9b72e3c1a1b61984b9128fb3e024fdf8a3d07fa

This sounds too much convoluted and the behavior you try to achieve looks a lot like the default.
Have you first considered using the following?
        keymap = {
            -- ...
            ['<C-l>'] = { 'accept', 'snippet_forward', 'fallback' },
        },
        snippets = {
            expand = function(snippet) require('luasnip').lsp_expand(snippet) end,
            active = function(filter)
                if filter and filter.direction then
                    return require('luasnip').jumpable(filter.direction)
                end
                return require('luasnip').in_snippet()
            end,
            jump = function(direction) require('luasnip').jump(direction) end,
        },

You should wrap your function in vim.schedule, via vim.schedule_wrap(your_function)


WIP: First pass at a CLI for analyzing mirror logs

As the maintainer of the conda-mirror infrastructure (at MaxPoint) I want a way to easily
evaluate the conda-mirror logs from the command line. Things that are important
to me:

I want to see the logs separated by run execution time/date

I only want to see the last N runs of conda-mirror

I want to be able to drill down into individual executions by run number

I want to be able to show the lines from the logs that correspond to the
four logging levels: "Debug", "Info", "Warning" and "Error". All other lines
should be bucketed into an "Other" group.

I think a better solution here would be to extend conda_mirror with callbacks on specific events. Log analysis does not feel like the correct solution


add module in package.json

Module aware bundlers will use the more modern & performant code while legacy bundlers will keep working as usual with the compiled code.

Thanks :+1:


[Collab] Bug fixes for animation disposal with InventoryComponent

Description
Task:
Implement unequip for weapon/armour
Feature:
[Inventory interactions and refinements] (#149 )
Milestones
List of things completed for this collaboration

[x] Fix drop weapon bug where animation is not properly disposed and retains on player. (2nd October)
[x] Fix unequip weapon bug where animation becomes a static image on the map. (2nd October)

Completion Date: October 2nd
Members

Li-Sung Ou (@PeterOu8) (Li-Sung Ou)
Lachlan Benson (@LachlanBenson ) (Lachlan.Benson#4926)
Eugene Chong (@eugene2341 ) (gene#0005)

@PeterOu8 thanks for working with us on this one!


README improvements for PostBox

The README of the PostBox project must be extended.
Use the CartJets project as a reference.

done


Cast regex to string to allow searching of numerical values

When using this with Django and searching for numerical values, this error arises:
Traceback (most recent call last):
  ...
  File "/usr/local/lib/python2.7/dist-packages/datatables/__init__.py", line 172, in __init__
    self.run()
  File "/usr/local/lib/python2.7/dist-packages/datatables/__init__.py", line 223, in run
    self.filtering()
  File "/usr/local/lib/python2.7/dist-packages/datatables/__init__.py", line 319, in filtering
    regex = clean_regex(searchValue)
  File "/usr/local/lib/python2.7/dist-packages/datatables/__init__.py", line 62, in clean_regex
    ret_regex = ret_regex.replace('\\','')
AttributeError: 'int' object has no attribute 'replace'

This casts the regex to a string to avoid this error.

Coverage remained the same at 87.156% when pulling 4e298f86829fdc0d5de48351012ad6fdf0dba009 on Chris7:cast-search-regex into 096ace624a3ca68f2d4aad6721547777ed38a98e on Pegase745:master.

This is fixed already in pull request #55

@louking Thanks for the heads up. Personally, I would remove the version changes in your PR as I would never accept a PR to my own projects that updated my versioning.

Thanks @Chris7 . @Pegase745 has taken other similarly vesioned changes from me, and updated the version himself. However if he wants these removed I'd be happy to. I use it in my personal fork so that I can tell the difference from the source version. There may be a better way to do this, though.

I am closing the PR as this should be covered in >1.0.0

Any idea when the latest will be put on pypi?

The latest is already on pypi. The few commits after the 1.2.0 are
example/doc related so no real impact on the lib usage.
Le 13 avr. 2017 7:09 PM, "Chris Mitchell"<EMAIL_ADDRESS>a
écrit :

Any idea when the latest will be put on pypi?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Pegase745/sqlalchemy-datatables/pull/61#issuecomment-293960331,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABmd0e55lcyzQM-x1jJwB_QAymZPJvpQks5rvlRAgaJpZM4JuGkO
.


Management Events Pages

Signed-off-by: Suneel Nadipalli<EMAIL_ADDRESS>Fixes #70

Added event page for Visleshana along with route and links from Schedule page

Heh..sorry, the second commit is for the Pitch Peak page, my bad guys

@aravindvnair99 @VinayakTekade  And that's it folks! I've added all the content for the Management Events, only posters left to add


C++ symbols map

Thanks @dpocock!
Fixing this issue, #828, and #830 may require us changing other systems that depend on this library, which we can't do overnight. It's not our top priority to look into this at the moment. Please bear with us and feel free to contribute a patch to your own fork. I'll keep the PRs open to revisit when we have some free cycles.

Hi and sorry for the late turnaround,
Would you mind filing and issue describing what the problem is that this PR attempts to fix?

I'm closing as this issue is infeasible for us to fix at this point. Please re-open if you respond so we pick up on it.


Renamed some files.

Also removed a testing reference and unused project from testing sln

Please name it "UnitTest" not "Unit".  "Unit" sounds like it's a part of the project.

Oops forget the "Test"

No code was changed, app compiles, unit-tests pass.  I see no reason not to merge this immediately.


Fixed the navbar

Signed-off-by: debjani1413<EMAIL_ADDRESS>Description
Fixed the navbar-logo for Ipad-pro and laptop-view and changed the font.
This PR fixes #42
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@debjani1413 did you want to add anything else to this or is this good to merge?


isort creates a syntaxically incorrect "import import" statement

There is a file with somewhat specific formatting, which makes isort generate syntactically invalid output.
$ cat test.py
from os.path \
    import (join, split)

$ isort -d test.py
from os.path import import, join, split

Naturally, I would expect to have
from os.path import join, split

isort version: VERSION 4.3.4
python version. Reproduced with Python 2.7 and Python 3.7 on Linux and MacOS.

Will let myself to add a yet another example to the same issue.
from os.\
        path import (join, split)

turned into
from os. import import, join, path, split

For the record, examples are not artificially crafted. It's a result of post-processing of some old code with some automatic formatters.

Thanks for reporting this! This is a pretty major issue! I've implemented a new test case and applied the necessary fix for it to pass - with an intended release later today.
Thanks!
~Timothy

Thanks a lot, Timothy! 🙌


Photos not updating, getting error when changing sets

Several days ago photos stopped rotating. When trying to change sets that are in use, or switch to defult photo set I get an excetion "TypeError: NetworkError when attempting to fetch resource." as a red popup within settings for plugin.
The rest of browser works, stellar photos is the only part of browser that stopped working.
How can I debug further?
My env:
FF 96.0.2
macOS 12.1

Sorry, it's a server issue. I'll deploy a fix shortly

I just released an updated on all the platforms, it should come through to you soonest. Thanks!

Thanks! Its gone now :)


How to evaluate the JSON dump created by the task3/src/test.py ?

Readme of the repo mentions the metrics on task 3.
The test.py for task3 only outputs the json dump of entities extracted. How can I get the metrics on the test data?
Also since the test_dict.pth only contains the text strings and not the actual labels.

For future reference: Test set annotations are not publicly available.
For evaluation, a zip file of json dumps has to be uploaded here: https://rrc.cvc.uab.es/?ch=13&com=mymethods&task=1.


[23] Add contact details form

Context

https://trello.com/c/M7Jhkztn/23-m-add-contact-details-form

Changes proposed in this pull request

Add contact details form so data can be added to trainee

Guidance to review

Create or find a trainee
Add their contact details
Should see data inside database
Or reload the page after saving and info should be displayed on the form

 [M] Add contact details form


scroll_to() behaviour

Hi all,
I'm using the scroll_to function in my kv-file. It scrolls properly as I wanted, but if I turn the mouse-wheel it will jump back where it was, before the scroll_to().
Any ideas, how could I improve my code?
snipplet of my kv-file:
MyButton:
text: 'jump'
on_release: scroll_content.scroll_to(jump_id_2, padding=0, animate=True)
ScrollView:
id: scroll_content
blah, blah, blah.......
# values of the devices
GridLayout:

    BoxLayout:
        id: jump_id_0
        blah, blah, blah.......

    BoxLayout:
        id: jump_id_1
        blah, blah, blah.......

    BoxLayout:
        id: jump_id_2
        blah, blah, blah.......

Thank you for your help....

maybe related to #1078 ?
there is also a working fix mentioned there!

Yes, it is related.
I just installed the latest Nightly wheel...  but the issue is still there.


Changing Yektanet with sendingBlue

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
we have to open an account on the sendingBlue website and change it with the previous token.
Describe alternatives you've considered
as an alternative solution, we can use Google SMTP in test env.

fix yektanet email configuration


[11.x] Allow using hashed index names in schema builder

Hello,
The current index name generation is based on table, columns, and index type. This is fine in most cases, but when multiple columns build up the indexes, the name for that index can get very large. Databases have a limited number of characters for storing index names:

MySQL: 64
PostgreSQL: 63
MSSQL: 128

This PR proposes a solution that hashes the table and column names and prefixes it with the index type. For example:

unique_9a495ca8d66df444bf4a2feab1a44f98
foreign_5c59867eab5e61f82dd21674fb7e4349

The solution is an opt-in one, so no breaking changes are introduced.
It can be activated using the Schema facade:
Schema::useHashedDefaultIndexNames();

and can be deactivated by:
Schema::usePlainDefaultIndexNames();

Other ORM tools, such as TypeORM inspired this.
Issues and ideas from the past:

https://github.com/laravel/framework/issues/44947
https://github.com/laravel/framework/issues/13512
https://github.com/laravel/ideas/issues/814

Thanks,
Otto

How would you drop that index again if they are hashed? Encrypted seems like a better option here sense that's reversible.

How would you drop that index again if they are hashed? Encrypted seems like a better option here sense that's reversible.

Dropping indexes can be done by specifying columns in an array, not the index name:
$table->dropIndex(['column_1', 'column_2']);

Encryption suffers from the same problem since its size will grow with the input's size.

If I understand the problem correctly, this can already be solved in Laravel, we just need to inform the index name as follows:
public function up(): void
{
    Schema::create('test_table_with_some_long_name', function (Blueprint $table) {
        $table->id();
        $table->string('column_of_a_table_with_a_long_name');
        $table->string('column_of_a_table_with_a_long_name_two');
        $table->string('column_of_a_table_with_a_long_name_three')->index('idx_column_three');
        $table->timestamps();

        $table->index(['column_of_a_table_with_a_long_name', 'column_of_a_table_with_a_long_name_two'], 'idx_something');
    });
}

The default name that Laravel would create is test_table_with_some_long_name_column_of_a_table_with_a_long_name_column_of_a_table_with_a_long_name_two_idx

@jeanmarinho529 Absolutely, custom index names can be defined as well. However, the problem I am trying to solve is the default index name generation, without having to set them explicitly.

I'm for it. Had many times where it throws about the generated index being too long and you have to come up with own index name, and sometimes even the name you give already exists in another table (FK). I don't think knowing the name of the index to drop was ever a problem as they're deterministic so you can just copy paste the name from your DBMS.

I'm not completely sold on this, but if we are going to merge this, I would suggest 2 changes:

index names are in table_columns_type format by default, I think it's better to keep the same format, I mean table_md5(columns)_type instead of type_md5(table_columns).
instead of Schema::$useHashedDefaultIndexNames boolean property we can have Schema::$constarintNameLengthLimit as an integer, and use the hashed name only if the default one exceeds this length.

I feel the thought behind this is good but as others have said we already have a way to solve this by passing a custom name for the index. I feel like we're solving an issue that doesn't really exist. Appreciate the attempt though!

@driesvints Yes, we are also using this workaround. This could feel more automatic and natural, without having to create custom index names, keeping the default naming convention consistent.
If you consider this is not necessary, feel free to close the PR.

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


[BEAM-10670] Update Twister2Runner.runTest with the same logic as Twiter2Runner.run

Please add a meaningful description for your change here

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

One more fixup. Sorry for the inconvenience.

LGTM. Thanks!

@boyuanzz would you be able to create a cherry-pick PR too?

Yes! Done.


correct url passed through in responses

Fix for #421

The problem still exists in v0.6.4 @reinink, please merge the commits.

This works for me too! I've been using a custom algorithm to bypass this error but this was it. You should merge it ASAP

Thanks for the PR, and I'm sorry for the delay! Unfortunately, this PR would have re-introduced the bug that https://github.com/inertiajs/inertia-laravel/pull/333 was trying to fix, so I've merged https://github.com/inertiajs/inertia-laravel/pull/592 which should address both use cases.


Error parsing text-format mediapipe.CalculatorGraphConfig could not find type in google.protobuf.Any.

i try to run the face_mesh desktop .and i copy iris code and changed some configuration, It's working very well in ubuntu, but get error in windows10. here is error log:
[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/text_format.cc:309] Error parsing text-format mediapipe.CalculatorGraphConfig: 38:74: Could not find type
"type.googleapis.com/mediapipe.ConstantSidePacketCalculatorOptions" stored in google.protobuf.Any.
F20210429 16:30:01.449714  2212 parse_text_proto.h:32] Check failed: ParseTextProto(input, &result)

*** Check failure stack trace: ***
    @   00007FFDB04B598B  public: void __cdecl google::LogMessage::Flush(void) __ptr64
    @   00007FFDB04B4729  public: __cdecl google::LogMessageFatal::~LogMessageFatal(void) __ptr64
    @   00007FFDB0349E69  public: class std::basic_ostream<char,struct std::char_traits<char> > * __ptr64 __cdecl google::base::CheckOpMessageBuilder::ForVar1(void) __ptr64
   @   00007FFDB034A39D  public: class std::basic_ostream<char,struct std::char_traits<char> > * __ptr64 __cdecl google::base::CheckOpMessageBuilder::ForVar1(void) __ptr64
    @   00007FFDB034CC5B  public: void __cdecl google::LogMessage::LogStream::set_ctr(int) __ptr64
    @   00007FFDB034D6EE  test_process
    @   00007FF781A810F2  (unknown)
    @   00007FF781A81374  (unknown)
    @   00007FFDF34B7034  BaseThreadInitThunk
    @   00007FFDF4602651  RtlUserThreadStart

I don't understand what‘s wrong,i try to copy file under the path,but i noticed that is the lib not exist path,  ,plz help me.

Hi @aoxipo, Could you help with the steps performed to reproduce the above error in windows10.

Hi @aoxipo, Could you help with the steps performed to reproduce the above error in windows10.

ok， here is my steps ：
I follow the tutorial https://github.com/bazelbuild/bazel/tree/master/examples/windows/dll to build a dll
which can be used by
load_dll_at_run_time.cpp
windows_dll_library(
    name = "MediapipeTest",
    srcs = ["face_mesh_out.cc"],
    hdrs = ["face_mesh_out.h"],
    # Define COMPILING_DLL to export symbols during compiling the DLL.
    # See hello-library.h
    copts = ["/DCOMPILING_DLL"],
    deps = [
        "//mediapipe/calculators/util:landmarks_to_render_data_calculator",
        "//mediapipe/framework/formats:landmark_cc_proto",
        "//mediapipe/framework:calculator_framework",
        "//mediapipe/framework/formats:image_frame",
        "//mediapipe/framework/formats:image_frame_opencv",
        "@com_google_absl//absl/flags:flag",
        "@com_google_absl//absl/flags:parse",
        "//mediapipe/framework/port:file_helpers",
        "//mediapipe/framework/port:opencv_highgui",
        "//mediapipe/framework/port:opencv_imgproc",
        "//mediapipe/framework/port:opencv_video",
        "//mediapipe/framework/port:parse_text_proto",
        "//mediapipe/framework/port:status",
    ],
)

cc_binary(
    name = "load_dll_at_run_time",
    srcs = ["load_dll_at_run_time.cpp"],
    data = [":MediapipeTest.dll"],
)

i using command
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="D:\Anaconda3\envs\my_test_mp\python.exe" mediapipe/examples/desktop/face_mesh:load_dll_at_run_time
and i  get  load_dll_at_run_time.exe 、MediapipeTest.dll
i run load_dll_at_run_time.exe in the mediapipe root directory
and then  i get the error .
Thank you for your help！！！！！！！！！！！！
i try to sovle this question this few days but i fail a lot，i hope can get some constructive suggestion.
by the way ， it work well when i just using cc_binary to build a face_mesh ,but error in build a dll,
and also work well in ubuntu whatever build binary or build so

I never built mediapipe windows dll. However, I think you need to put all face mesh calculators in the deps field of the "MediapipeTest" windows_dll_library rule. Probably you need to add either
https://github.com/google/mediapipe/blob/ecb5b5f44ab23ea620ef97a479407c699e424aa7/mediapipe/graphs/face_mesh/BUILD#L25
or
https://github.com/google/mediapipe/blob/ecb5b5f44ab23ea620ef97a479407c699e424aa7/mediapipe/graphs/face_mesh/BUILD#L36
into the deps field.

Think you！！！！！！！！！！！！！！
！！！！！！！
if you have interested about mediapipe to build dll in win10，please let me know， i can help you！！！！！！！！！


refactor CLI argument processing

[ ] argument processing is spread between multiple files, and should be consolidated
[ ] methods corresponding to CLI flags are defined on the Cask namespace, and should probably be isolated into Cask::Opt namespace
[ ] global flags should be differentiated from flags to subcommands
[ ] subcommands should have a common interface for defining which flags they will accept
[ ] the global ARGV should be processed only once, and thereafter not consulted directly
[ ] all arguments should be processed to completion.  Currently, unknown or misspelled flags such as --verrbose typically go unprocessed and are silently ignored. BUG
[ ] much of the desired functionality may be available in a library, but (to be useful) the library must work across Ruby 1.8 - 2.0, and must also support the subcommand model

Misspelled commands still an issue.

@TechZen None of the points in the issue is marked as done and the issue is still open; it’s natural the problems still exists. Still, your example doesn’t apply at all — misspelling install as instal works withou a problem, the issue in your case is a cask toke misspelling.

Done in https://github.com/Homebrew/brew/pull/2654.


[Feture Request] Some sort of blacklist for don't-format-in-those-cases.

Thanks for the brilliant plugin. The idea of formatting a segment instead of instant converting does saved IME users. Also converting rules are really easy to understand and compose.
One critical missing part would be a blacklist for patterns don't need formatting. Examples include url, period separated date or measurement, math (#10 ). Try typing '2022.08.05, 3.56kg, http://www.google.com' and see what happened.
Something like 'User-Defined Regular Expressions' setting as in Yaozhuwa/easy-typing-obsidian might be a good start point. To go further, we always wish software to be more smart understanding 'what I am gonna do' 😄

This is an important problem, I have been always thinking about it.
First of all, if the auto format doesn't work as you expected, add an inline code block like 3.56kg, or let it go at first, when you write the next segment, you can tweak the formatted content manully. I bet you know this already.
I'm not a big fan of regular expressions, it is powerful but not human-readable. At first, I wanted to modify Easy Typing, but its complex usage of regular expressions and keyboard events intimidated me.
How to format without using regular expressions directly? A generated parser is used in this plugin.
Description can be found in this doc:
https://github.com/aptend/typing-transformer-obsidian/blob/55d7e9372a9cfb7c985049715fda098a9113fd50/How it works.md?plain=1#L1-L24
And parser rules are in https://github.com/aptend/typing-transformer-obsidian/blob/65bd6d0f66b21d4daef3704d03bea2b83e687e01/charliberty/src/liberty.pest#L1-L48
I think that the syntax of pest.rs is more readable than regular expressions.
If I want to exclude http://www.google.com/ from auto-formatting, I will define a URL rule and add it to the SpecialBlock group like this:
// Define URL pattern
urlSchema = {("http" ~ "s"?) | "ftp" ~ "://"}
urlBody = _{!(WHITESPACE | FWPunct) ~ ANY}
URL = @{urlSchema ~ urlBody*}

SpecialBlock = {
	InlineCode
	| InlineMath
	| InlineEm
	| DocLink
        | URL       // Add URL to SpecialBlock
	| ^"a.m"
	| ^"p.m"
}

that's all, and 2022.08.05, 3.56kg can be done similarly.
How about your first impression? If the pest rules are published as a plugin setting, will you learn it and write your own rules?
I said a lot and assumed you had programming experience, it might be overwhelming. thank you if you read through 😹

Thank you for the detailed yet understandable explanation. The example is quit convincing.

How about your first impression? If the pest rules are published as a plugin setting, will you learn it and write your own rules?

While I don't mind writing regular expressions, pest.rs does seem more friendly and much easier to get started. I would love to write custom rules for my personalized cases when it's applicable.
Further more, it would be more appealing if we have sharable rule snippets. As to those general ones, mail, url, date string etc., there are bunch of regular expression cheatsheets. I guess pest.rs would do too. As to personalized cases, a discussion thread for people to request and help would probably serve.
Let me know if I could help in some way. I am a programer 🤓.

Url case is added in commit https://github.com/aptend/typing-transformer-obsidian/commit/e2c7c5b025f893e3c693161a41c8e1605b332b77.  Time case like 12:30:45 a.m is also solved in this commit. For date case 2022.08.05，I would recommend using 2022-08-05, then nothing needs to be changed,  haha

After pr #44, 3.5kg will become 3.5 kg instead of 3. 5 kg

Math case #10 is fixed by pr #45

Now I am working on making a setting tab for pest.rs and it might take some time. If you need to write your pest now, you could try compiling the plugin from source. Let me know if you have trouble in compiling or writing pest

Oh I forgot to mention before, if you found any unexpected behaviors in formatting, feel free to open an issue, if it is common, I will fix it in the default pest.rs rules. Thank you!


Misleading bullet points

Hi,
The three bullet points at the top of this article are intended to be alternatives: only one of them will be true for a given data source.
I think this is not very clear from the wording.  The natural reading is that all three bullet points will be true.  The text would be a lot clearer if it was made explicit that these were alternatives, eg:

Depending on the data source, committing or rolling back a transaction will have one of the following effects on cursors and access plans:

All cursors are closed, and access plans for prepared statements on that connection are deleted; OR
All cursors are closed, and access plans for prepared statements on that connection remain intact; OR
All cursors remain open, and access plans for prepared statements on that connection remain intact.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8f479634-bff2-0f37-ed42-578478f05b10
Version Independent ID: 4469052f-5f65-a799-418a-ddeea342bd99
Content: Effect of Transactions on Cursors and Prepared Statements - SQL Server
Content Source: docs/odbc/reference/develop-app/effect-of-transactions-on-cursors-and-prepared-statements.md
Product: sql
Technology: connectivity
GitHub Login: @David-Engel
Microsoft Alias: v-daenge

@lukedd -- Luke, thank you for your feedback.  I am looking into this article.


Also proxy replies

When discord.py 1.6 gets released, there'll be a reference kwarg for TextChannel.send and conversely a reference field on Messages. Using this we can proxy replies correctly.

Has long been implemented


Certain jewels not being filtered properly

So for the most part it seems to work but when testing, these jewels will always fall through the filter.
Chipped
25 Size, 6% trap
27 Size, 557 dura
25 Size, +6.9 mining
32 Size 2.1% copious
I tested with the filters set to DENY not chipped and <=18 or all FILTER (ALL) only chipped and >18.
(note >18 seems to still include Size 18 but that's not an issue I can't work around)
I've tested in a system as simple as a chest with these jewels over a smart hopper and they keep going through.
I'm sure there are other examples but it's 90% accurate in my filtering.  At least no good jewels are being recycled.
EDIT: Going through jewels when I have time looking for things that didn't get filtered properly.
Not Chipped Example
Flawed
25 Size, +7.4 Mining Speed, +0.24 Reach
Test with ALLOWS only flawed and >23  Filter set to Filter ALL

You're in the wrong repo btw, this is the CC Vault repo not the vault filters repo but ill still try to help.
All those conditions are very difficult to understand by text, can you send a screenshot of the attribute filter's UI when ur hovering over the nametag icon so i can see the settings, as well as a screenshot of the jewel thats expected to go through but is not?

I think you can ignore this for now, I'll let you know if I encounter it again but after going through this for a while, after coming back from breakfast, i hit F3+a to reload chunk and it filtered properly.  Which is strange since there hasn't been a server restart of anything.
Thanks though, I'll post in the correct repo in the future!


Type hierarchy is recursive for CRTP class

In the following code:
template <typename Derived>
class Base {};

class Derived : public Base<Derived> {};

If type hierarchy is invoked on Derived, the result clangd gives shows Derived being its own child again and again recursively, until the resolve limit in the request is reached.

This is not an issue at the clangd layer -- libIndex is telling us, for some reason, that Derived is a child of itself.

libIndex's behaviour here just seems really broken -- it looks like it records a base-derived edge from every TypeLoc that appears in a base-specifier (in this case, from the Derived in Base<Derived>)?

Proposed fix


Add spmi experiment to read rtc clock

This is a small experiment to read RTC time from Sera PMU using SPMI bus.
Signed-off-by: Jean-Francois Bortolotti<EMAIL_ADDRESS>

There's an SPMI class these days here; any chance you could rewrite this on top of that, or close it if no longer relevalt?
Thanks :)

Not sure it is really useful anymore as now RTC is supported over SMC and lina implemented a more comprehensive SPMI class.
Closing it.


Action.Url is missing some query parameters

I have been going through my 46 controllers, matching up the Typewriter Url generation vs the NTypewriter Url generation.
There are cases where NTypewriter drops arguments. Here is what I have noticed:
The argument is dropped when:

the argument is an enum
the argument is marked as optional. (Verified that if I change int? to int, the param shows up.)

I have anther 40 controllers to go through, but these are definitely issues.

I decided to make it easy on myself and created a typewriter script to output just the list of Urls for the methods of each Controller.
I then did the same for NTypewriter. I was then able to diff all the files in the two directories to see the differences. Here is a summary of all the differences. Some of these are my problem and I will go clean up my api.

Enums are not being put into the url

they should be, they are just numbers or strings, all of mine are numbers

The argument that is marked optional is not being put in the url and it should be

although I can easily fix my code and I will by removing it and assigning it a default value
I guess if it is optional, then the url should consider it optional too, but this makes the .nt script and the resulting TS code more complicated

DateTime and DateTimeOffset parameters are not being shown in the url in NTypewriter

I beleive this is my problem. These types should not be part of a url
they should be proper designated as strings and parsed in my back end code)

NTypewriter spits out the controller Url when called on a private method

Typewriter just doesn't list the private methods.
I don't view this as a problem, but rather something I have to deal with in my .nt script.

I have a end point that takes a List that isn't being put in the Url with NTypewriter

Typewriter put this in the Url and it is probably not a good idea. It is likely just a sign of a poorly designed API, where this list and the other parameters should be part of the body.

I have an End point with a decimal and a DateTimeOffset. Neither of these made it into the url

The DateTimeOffest is fine, that should be a string
But the decimal should be part of the url.

Typewriter was leaving trailing /s where NTypewriter removes them

I think NTypewriter's behaviour is correct. I will be removing the trailing / from my route attributes.

That's it. I would say, I have over 514 end points and with your latest fix, the only real issue is the missing psuedo-complex types like Enums and decimal.
The other differences area really pointing out issues with my code that need to get fixed up.

I have tried this change on my code base and it worked great! Thank you.


DLS-7733 added contact person add page

https://github.com/hmrc/soft-drinks-industry-levy-ui-tests/pull/65


Fix a bug in idm.GetIDInRange()

The mapping from id range to bit range was wrong.
Signed-off-by: Alessandro Boch<EMAIL_ADDRESS>

LGTM


Markers not removing after being drawn on map

Hello,
I have an issue where i have 3 types of markers store in 3 list and i display them one at a time by calling clusterManager.setItems(list)
It works very well but some of the markers once they have been drawn on the map (i.e not in a cluster anymore) are not removed when i change the cluster array.
Here is a video showing some markers (blue) being removed when in a cluster but not anymore when they have been drawn on the map.
Video showing the bug
And here the code how i switch between the lists :
clusterManager.setItems(new ArrayList<>());
clusterManager.onCameraIdle();
clusterManager.setItems(newList);

If i remove the call to onCameraIdle more markers stay on the map.
I have more than 10 000 markers.
Since your library hasn't been updated since 2 years i have search for alternative but haven't found any as good as yours for clustering thousands of markers.

So i found a workaround is to clear the map.
I call googleMap.clear() at the same time as setItems(new ArrayList<>()) and it's working.


Transaction analytics by transaction replay

This in an introductory project designed to find some very useful information and perhaps optimisation opportunities for Silkworm execution, at the same time requiring understanding of the code and some aspect of Turbo-Geth/Silkworm data model.
Carrying out this task will require the database obtained by fully syncing a Turbo-Geth node, which should be compatible with the silkworm code. This is because the task requires replaying all transactions from the mainnet history. Of course, for most debugging and testing, only a small subset of transaction should be replayed.
Goals
Here are 3 high-level goals:

Find number of transactions that fail and consume the entire allotted gas. These are "Out of Gas" errors, hitting unrecognised instruction, making invalid jump, or explicitly calling INVALID instruction. These transactions do not make any changes in Ethereum state, except for deducting the ETH (gasprice * tx gaslimit) from the sender's balance of the transaction, and adding the same amount to the miner's balance.
Think about data structure (for example, compressed bitmap) that would allow us to mark the transactions found in 1. so that we can use this data structure as one of the inputs to replay
Using the data structure from 2., see if there is a benefit in skipping the execution of these transactions entirely, and how much benefits that could bring.
Also using data structure from 2., see if we can simplify the configuration of EVM, by retrofitting some opcodes that did not exist from the beginning, and "pretend" that they existed from the very beginning of Ethereum in 2015. For example, bit shifting opcodes, if used prior to Byzantium hard fork where they were introduced, would produce failure of the type described in 1., and if we skip these transactions, we can simply pretend that the bit shifting opcodes were always around. Find all such opcodes and see how this can simplify the EVM configuration.

Tools
Apart from having the synced database, you will need the code that is capable of re-executing any historical transactions at will. Such code exists in Silkworm, in the silkworm/cmd/check_changes.cpp file. This command line utility can be used as a starting point, it accept parameters that specify the database, as well as range of historical block numbers for which to re-play transactions.
The way this program works is similar to how transaction replay is done in the "live" mode. The difference here is that instead of reading state items (accounts with their balances and nonces, contract storage items) from the PLAIN-CST2 table, this historical replay uses the combination of change set tables PLAIN-ACS and PLAIN-SCS, and history index tables hAT and hST to read historical state. Unlike the "live" execution, it does not modify the database and is totally read-only, so it is very good for repetitive experiments and learning. If you want to dig deeper how it works, you can refer to the file silkworm/silkworm/db/buffer.cpp, which defines the type Buffer. An instance of this type is passed into the execute function, and this buffer is used to access historical state. Going  even deeper, look at the file silkworm/silkworm/db/access_layer.cpp, specifically at functions read_account and read_storage

Find number of transactions that fail and consume the entire allotted gas.

Do we have an estimate of how many of these there are?

... see if there is a benefit in skipping the execution of these transactions entirely, and how much benefits that could bring

Which depends in part on how many there are.

...  if we skip these transactions, we can simply pretend that the bit shifting opcodes were always around.

Do you mean that for any transaction in the set found in step 1 those failing by hitting an invalid opcode will (like all the others) be skipped, so the clients don't need to check for the block number to know how to handle it?  If they hit that instruction it must be valid.
This sounds like a very promising line of investigation.

Find number of transactions that fail and consume the entire allotted gas.

Do we have an estimate of how many of these there are?

Not at the moment, but I think it is not very high. It would be much higher before Byzantium (block 4'730'000), where REVERT opcode was introduced. But on the upside, if it is not very high, the structure marking these transaction might be not very large :)

...  if we skip these transactions, we can simply pretend that the bit shifting opcodes were always around.

Do you mean that for any transaction in the set found in step 1 those failing by hitting an invalid opcode will (like all the others) be skipped, so the clients don't need to check for the block number to know how to handle it? If they hit that instruction it must be valid.
This sounds like a very promising line of investigation.

Precisely, the idea is not to check the block number to handle it, and pretend it always existed.

(I'll note that static analysis can identify some range of contracts that are certain to fail and refuse to deploy them.)

(I'll note that static analysis can identify some range of contracts that are certain to fail and refuse to deploy them.)

Yes. When our static analysis code is integrated and matured, we might be able to use it for it. Since it computes Control Flow Graph, it can check whether the control flow inevitably terminates in failure

So if we can skip failing transactions then

... any transaction failing by hitting an invalid opcode will be skipped, so the clients don't need to check for the block number. If they hit that instruction it must be valid.

That means simpler clients, even if doesn't save much execution time.

As part of my previous work, we did exactly the calc you're describing in part 1. I can give you a pretty accurate count of both pre-Byzantium and post-Byzantium. Our code first checks to see if gas == gasUsed and then, if so, pulls all traces (using Parity) and checks for any errors. We do this only for pre-Byzantium because we can just check the status code afterwards, but I can extend it to include post-Byzantium.
I'll post numbers here shortly.
Also, I'm very interested in the code you mention above. I've been experimenting with silkworm and lmdb, so maybe I'll try to match the numbers produced by Parity as a learning experience.

I started a branch to work on this here: https://github.com/torquem-ch/silkworm/tree/078-tx-analysis.
I used TrueBlocks as a double check of the results. This pseudo-code:
for every block
    countBlocks++
    for every transaction in block
        countTxs++
        if (gas == receipt.gasUsed && traces contain error)
            countErrors++

produces these results:

This will give me a baseline to try to duplicate.

Preliminary results: https://docs.google.com/spreadsheets/d/13omV5sfpKa6dI-2nB7PgbHEqtKvymCpdcZifv1TlDlU/edit?usp=sharing.
I'll update with more results when available.

@AlexeyAkhunov @tjayrush Is it still an issue or can we close it?


Is this module still a work in progress, or has it been abandoned?

This repo came up in a list of repos that need to be migrated off Drone. I observed that you have a fork and an open pull request for that fork.
Before I do anything with this, I want to determine if there is work in your fork that needs to be merged to master first. Thanks.

This fork can be abandoned/deleted.  Thanks for checking with us.

@gordonj7, thank you. I closed the pull request, but you'll have to delete your fork, or at least the branch you were working on, and any working copies that point to it.
I should have also asked whether this module as a whole (i.e., the master branch) is still in use, or if it too has been abandoned. Thanks!

@JonRoma I have deleted my fork.  As far as Scrum Team D is concerned, this entire repo can also be deleted.

Thanks, @gordonj7. Please ask Andy to delete the repo. I do not have admin access. I'm happy to have one less repo to think about. :-)

@JonRoma and @argherna I'm still interested in this work so please let's talk it through before deleting this repo.
@gordonj7 does Maiko no longer have any interest in moving EDE over to a lambda function, or did you go with a different approach for deployment?
@JonRoma do you have no interest in deploying Python applications to Lambda using Terraform?

@ddriddle, I am not making a statement regarding my interest or disinterest in deploying Python applications to Lambda using Terraform, and in fact I have so much going on that I'm oblivious to much of the work that Scrum Team D is engaged in, and the technology stack they're using.
The repo can be kept around if there's a likelihood of it being useful in the future. I note that it has no documentation, which is part of the reason I asked about its status.

Let's leave the repo as is.
I'll migrate it off Drone, which is the reason I posed the question in the first place. @ddriddle, would you be interested in producing a README.md so this module is documented?
This is our next-to-last Terraform module still in Drone – yay!

OK, the plot thickens, @ddriddle and @gordonj7. Turns out that there was no code (other than the copied template) in the master branch, which also explains why there was no documentation. Any code that was developed for this project is/was in a fork that was never merged into master. Maybe @gordonj7 still has this code; maybe not.


Add support for multiple server permanent keys

Refs https://github.com/saltyrtc/saltyrtc-meta/pull/113.
Work in progress.

Should be ready to merge now.


Why should we set different seed per gpu with DDP?

https://github.com/facebookresearch/deit/blob/35cd4556c06929c59247b828d7dd778b44328fd4/main.py#L182
Hi!
I recently referenced this project to implement DDP training code, and I can successfully implement and reproduce the performance of our model, thanks to this project.
I have one question related to DDP.
Why should we set different seed per gpu with DDP?

Hi @developer0hye,
Thanks for your question,
It is to be sure that the operations where we can be led to draw random values as for instance for data-augmentations will not be exactly the same between the different GPUs.
Best,
Hugo

@TouvronHugo
Hi @TouvronHugo
I got it! Thanks!


Error: NoSuchMethodError: '[]' Dynamic call of null. Receiver: null

When trying to make an API Call, i get an error of Error: NoSuchMethodError: '[]'
Dynamic call of null.
Receiver: null
Is there a solution to this?
`import 'package:dunninvestment/stockscreen.dart';
import 'package:dunninvestment/theme.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'dart:async';
class StockInput extends StatefulWidget {
@override
_StockInput createState() => _StockInput();
}
class _StockInput extends State {
final namedTicker = TextEditingController();
final String apiKey = 'a3d4cdaedb3617fa0a828bdb0d6a0c03';
double data;
Future getDCF() async {
var response = await http.get(
'URL',
);
setState(
() {
data = json.decode(response.body)[0]['data'];
data.toString();
print(data);
},
);
}
@override
void initState() {
super.initState();
namedTicker.addListener(() {
print(namedTicker.text);
});
this.getDCF();
}
@override
void dispose() {
namedTicker.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: Text("Stock Screener"),
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Expanded(
child: TextEntryText(
namedTicker,
'Enter the Ticker You Would Like to Analyze',
),
),
ReusableBox2(
cardChild: Column(
children: [
GestureDetector(
child: Text(
'ANALYZE',
style: cardText,
),
onTap: () {
namedTicker.toString();
getDCF();
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ReusableBox2(
cardChild: Text(
data.toStringAsFixed(2),
style: cardText,
),
),
],
),
);
},
),
],
),
),
SizedBox(
height: 15,
),
],
),
);
}
}
`
Here is my code that is currently producing the issue. Below is the run error I receive. I am currently running the most up to date flutter in Android Studio and currently have my application running through Chrome(Web).
Performing hot restart...
Syncing files to device Chrome...
Restarted application in 220ms.
Error: NoSuchMethodError: '[]'
Dynamic call of null.
Receiver: null
Arguments: ["dcf"]
at Object.throw_ [as throw] (http://localhost:60868/dart_sdk.js:4322:11)
at Object.defaultNoSuchMethod (http://localhost:60868/dart_sdk.js:4760:15)
at Object.noSuchMethod (http://localhost:60868/dart_sdk.js:4755:27)
at callNSM (http://localhost:60868/dart_sdk.js:4495:19)
at Object._checkAndCall (http://localhost:60868/dart_sdk.js:4497:27)
at Object.callMethod (http://localhost:60868/dart_sdk.js:4575:17)
at Object.dsend (http://localhost:60868/dart_sdk.js:4578:17)
at http://localhost:60868/packages/dunninvestment/stockinput.dart.lib.js:539:41
at stockinput._StockInput.new.setState (http://localhost:60868/packages/flutter/src/widgets/widget_span.dart.lib.js:13380:22)
at stockinput._StockInput.new.getDCF (http://localhost:60868/packages/dunninvestment/stockinput.dart.lib.js:538:14)
at getDCF.next ()
at http://localhost:60868/dart_sdk.js:37211:33
at _RootZone.runUnary (http://localhost:60868/dart_sdk.js:37065:58)
at _FutureListener.thenAwait.handleValue (http://localhost:60868/dart_sdk.js:32049:29)
at handleValueCallback (http://localhost:60868/dart_sdk.js:32596:49)
at Function._propagateToListeners (http://localhost:60868/dart_sdk.js:32634:17)
at _Future.new.[_completeWithValue] (http://localhost:60868/dart_sdk.js:32477:23)
at async._AsyncCallbackEntry.new.callback (http://localhost:60868/dart_sdk.js:32499:35)
at Object._microtaskLoop (http://localhost:60868/dart_sdk.js:37326:13)
at _startMicrotaskLoop (http://localhost:60868/dart_sdk.js:37332:13)
at http://localhost:60868/dart_sdk.js:32851:9
Thank you for any help!

The Github issue tracker is for bugs and features requests for the Flutter SDK. Help and support questions like these are better suited for Q&A sites like StackOverflow or on one of the flutter community sites at https://flutter.dev/community .


ColSpan default should be 1.

The default value for ColumnSpan on a Table Data (TD) element the default value should be 1, not 0. The meaning of a colspan with a value of zero is not well defined (same as 1? hidden?).
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/td
colspan
This attribute contains a non-negative integer value that indicates for how many columns the cell extends. Its default value is 1. Values higher than 1000 will be considered as incorrect and will be set to the default value (1).

Yep great catch. Any contribution welcome!


pyodbc execute not supporting insert special symbols like trademark(™) symbol and other unicode( ’ ) , others

Please first make sure you have looked at:

Documentation: https://github.com/mkleehammer/pyodbc/wiki
Other issues

Environment
To diagnose, we usually need to know the following, including version numbers.  On Windows, be
sure to specify 32-bit Python or 64-bit:

Python: 3.9.12
pyodbc:  4.0.34
OS:  Windows 64-bit
DB: IBM i access server
driver: IBM i access ODBC Driver

Issue
When I try to insert a value "BÂ™¥RÂ™ Z" using pyodbc execute, it stores in db as "BÂ¥RÂ Z"
The same insert works good with plain insert command in dB.
Seeing the forum, here i tried, multiple encoding and decoding methods, but none worked for me.
Is there a way to skip the decoding or encoding performed by connection to execute the query.
Thanks.

What's the ODBC driver being used?

IBM i Access ODBC Driver

I think somewhere in the process there is a confusion between CP1252 and ISO-8859-1 encoding. The 'TM' character is present in the former (at location 99h) but not the latter.

@v-chojas : The issue is not only with 'TM' other chars like ’  in HMF Women**’**s Daily are displayed like HMF Womens Daily

That is consistent with the confusion between CP1252 and ISO-8859-1, as that character is not present in the latter either.
What encoding settings have you tried?

cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-32le')
cnxn.setencoding(encoding='utf-8')
Also tried similarly with iso-8859-1

from the driver documentation, https://www.ibm.com/docs/en/db2/11.5?topic=managers-datadirect-odbc-driver-manager, it uses UTF-8, I tried with CP1252 and Windows-1252, but no luck.

pyODBC on Windows wouldn't be using DataDirect's driver manager, but the Windows one.
Set the SQL_WCHAR encoding to UCS-2 or UTF-16 and try again.

I tried with options:
setdecoding(po.SQL_WCHAR, encoding='UCS-2')
ValueError: not a registered codec: 'UCS-2'
and with UTF-16, no luck, same boxes

@v-chojas , @v-makouz , @mkleehammer : Any recommendations here, thanks

Can you locate an existing row in the table that contains either '™' or '’' and displays correctly in a DB2-specific tool (akin to psql or PGAdmin4 for Postgresql)? If so, what do you get when you try to retrieve that row with pyodbc's default encoding settings?

Just a thought, but if this is an IBM database, perhaps the database is expecting EBCDIC-encoded values.
Also, as a workaround, perhaps you can provide the TM symbol as an EBCDIC_CHAR function, e.g. "BÂ" + EBCDIC_CHAR(175) + "¥RÂ" + EBCDIC_CHAR(175) + " Z" (I may have the wrong syntax there).

(Ha! I had completely forgotten about EBCDIC. :smile:)

Thanks a lot for all the recommendations, Finally I got through this by passing the values in a tuple like below:
cursor.execute(insert_query, insert_query_values)
insert_query = insert into table values (?, ?, ?)
insert_query_values = (id, name, description)


doesnt work

its probably a problem with python but it just doesnt work after i did the config it crashes when i open it on 2.* adn <IP_ADDRESS>

also #150


Make sure to require tmpdir before using mktmpdir

I was running into this problem when upgrading to the latest packs (0.0.24 to 0.0.29):
❯ DISABLE_SPRING=1 bin/packs lint_package_todo_yml_files
📦 Packwerk is inspecting 30396 files
............

✅ `package_todo.yml` has been updated.
/Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/packs-0.0.29/lib/packs/private.rb:438:in `diff_package_todo_yml': undefined method `mktmpdir' for Dir:Class (NoMethodError)

      dir_containing_contents_before = Dir.mktmpdir
                                          ^^^^^^^^^
Did you mean?  mkdir
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `bind_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `validate_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/packs-0.0.29/lib/packs/private.rb:528:in `lint_package_todo_yml_files!'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `bind_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `validate_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/packs-0.0.29/lib/packs.rb:229:in `lint_package_todo_yml_files!'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `bind_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `validate_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/packs-0.0.29/lib/packs/cli.rb:104:in `lint_package_todo_yml_files'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `bind_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/call_validation.rb:256:in `validate_call'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/sorbet-runtime-0.5.10983/lib/types/private/methods/_methods.rb:275:in `block in _on_method_added'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
        from /Users/josh.nichols/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/packs-0.0.29/bin/packs:9:in `<top (required)>'
        from bin/packs:27:in `load'
        from bin/packs:27:in `<main>'

Weirdly, adding a binding.irb at the line before that call let's it work. Turns out, tmpdir is what provides this method and it has to be required first. irb must require that for that to have work.

As to why this wasn't caught by CI, I would bet even if this is covered, that some development dependencies require it already.