AppiumForMac doesn’t provide driver logs.

AppiumForMac doesn’t provide driver logs,  'global_diagnostics_directory' folder is also not created.
Environment:

AppiumForMac Version 1.1.0
Mac OS X 10.15.4 Catalina
Xcode Version 11.5

Code:
from appium import webdriver

defaultCookies = [
    {'name': 'loop_delay', 'value': 1.00},
    {'name': 'command_delay', 'value': 0.100},
    {'name': 'implicit_timeout', 'value': 3.000},
    {'name': 'mouse_speed', 'value': 50},
    {'name': 'screen_shot_on_error', 'value': False},
    {'name': 'global_diagnostics_directory',
    'value': '~/Desktop/'}
]
desiredCapabilities = {"implicitly_wait": 30,
                        "platform": "Mac",
                        "platformName": "Mac",
                        "deviceName": "Mac",
                        "app": "Stickies"}

driver = webdriver.Remote(command_executor='http://<IP_ADDRESS>:4622/wd/hub',
                          desired_capabilities=desiredCapabilities)

print(dir(driver))
logs = driver.get_log('driver')

Expected:
See logs about the AppiumForMac session.
Result:
Traceback (most recent call last):
  File "/Users/katya/Desktop/appium_simulator.py", line 23, in <module>
    logs = driver.get_log('driver')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 1262, in get_log
    return self.execute(Command.GET_LOG, {'type': log_type})['value']
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/appium/webdriver/errorhandler.py", line 29, in check_response
    raise wde
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/appium/webdriver/errorhandler.py", line 24, in check_response
    super(MobileErrorHandler, self).check_response(response)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Could not find selector (post_log:data:) for path '/session/wQngMD1T/log'.

Did you provide defaultCookies as cookies to the capability?
https://github.com/appium/appium-for-mac/blob/2356957dc73b6275262c918ca8f4184ef4a25af0/examples/dock_demo.py#L26
Btw, get_log error is expected since this driver haven't provided the command for now.

oh sorry, yes I have added cookies, but see the same error
selenium.common.exceptions.WebDriverException: Message: Could not find selector (post_log:data:) for path '/session/cCNRBVvQ/log'.
from appium import webdriver

defaultCookies = [
    {'name': 'loop_delay', 'value': 1.00},
    {'name': 'command_delay', 'value': 0.100},
    {'name': 'implicit_timeout', 'value': 3.000},
    {'name': 'mouse_speed', 'value': 50},
    {'name': 'screen_shot_on_error', 'value': False},
    {'name': 'global_diagnostics_directory',
    'value': '~/Desktop/'}
]
desiredCapabilities = {"implicitly_wait": 30,
                        "platform": "Mac",
                        "platformName": "Mac",
                        "deviceName": "Mac",
                        "app": "Stickies",
                       'cookies': defaultCookies}

driver = webdriver.Remote(command_executor='http://<IP_ADDRESS>:4622/wd/hub',
                          desired_capabilities=desiredCapabilities)

logs = driver.get_log('driver')

Since this module does not support the command.
We can add 'server' https://github.com/appium/appium-mac-driver/pull/49 log to return Appium server log, but other logs we should add.

I've added #49
Please create a new issue for a new request


Django 1.9 support

I've done some changes to make django-getpaid compatible with django 1.9. This is mainly concerning the removal of the django.models.loading module in favor of the application loading framework introduced in django 1.7`. This breaks django 1.6 support, but I would argue this is the right choice since extended support for django 1.6 stopped April 1, 2015, and django 1.8 being the most recent LTS release.

wow, thanks :+1:

@cypreess how about we drop support for Django 1.6?

yes, go for it, it makes no sens to support archaic django versions ;-)

It may make sense to add namespace #15 too, I'll look into that.

closing since merged with #98


rename RosTimer -> ROSTimer and PushRosNamepsace -> PushROSNamespace

See: https://github.com/ros2/launch_ros/pull/326

This should probably be noted in the Iron release notes, is there not a page for that yet?

This should probably be noted in the Iron release notes, is there not a page for that yet?

There is a page: https://github.com/ros2/ros2_documentation/blob/rolling/source/Releases/Release-Iron-Irwini.rst

I don't know how I missed it the first time, thanks @clalancette. I added a note there about the change.


[C++] Performance profiling and improvement

SELECT image, class FROM oxford_pet WHERE class = 'pud' LIMIT 20 OFFSET 50

Before this PR:  8.1s
After: 0.85s
Closes #292

In comparison, running python/benchmarks/oxford_pet/analytics.py -f parquet s3://eto-public/datasets/oxford_pet
Function filter_data() {'base_uri': 's3://eto-public/datasets/oxford_pet', 'fmt': 'parquet', 'flavor': None} Took 173.1500 seconds


10 Rep: Watch convrtx.com

10 Rep requests the watch of the watch_keyword convrtx\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

convrtx\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


scipy.test() failure in TestInterop.test_splrep_errors

I am running scipy.test() with Python 3.6 and scipy 1.3.1. The failure report is below. Sorry for its length, just trying to be thorough. Let me know whatever other information is needed.
================================================================================================= FAILURES =================================================================================================
______________________________________________________________________________________ TestInterop.test_splrep_errors ______________________________________________________________________________________
self = <scipy.interpolate.tests.test_bsplines.TestInterop object at 0x7f12046f40b8>
@pytest.mark.xfail(NumpyVersion(np.__version__) < '1.14.0',
                   reason='requires NumPy >= 1.14.0')
def test_splrep_errors(self):
    # test that both "old" and "new" splrep raise for an n-D ``y`` array
    # with n > 1
    x, y = self.xx, self.yy
    y2 = np.c_[y, y]
    with assert_raises(ValueError):

      splrep(x, y2)

self       = <scipy.interpolate.tests.test_bsplines.TestInterop object at 0x7f12046f40b8>
x          = array([ 0.        ,  0.31415927,  0.62831853,  0.9424778 ,  1.25663706,
1.57079633,  1.88495559,  2.19911486, ... 10.36725576, 10.68141502,
10.99557429, 11.30973355, 11.62389282, 11.93805208, 12.25221135,
12.56637061])
y          = array([ 1.00000000e+00,  9.51056516e-01,  8.09016994e-01,  5.87785252e-01,
3.09016994e-01,  6.12323400e-17, -3...1, -4.28626380e-16,
3.09016994e-01,  5.87785252e-01,  8.09016994e-01,  9.51056516e-01,
1.00000000e+00])
y2         = array([[ 1.00000000e+00,  1.00000000e+00],
[ 9.51056516e-01,  9.51056516e-01],
[ 8.09016994e-01,  8.0901....09016994e-01,  8.09016994e-01],
[ 9.51056516e-01,  9.51056516e-01],
[ 1.00000000e+00,  1.00000000e+00]])
../../../../.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/interpolate/tests/test_bsplines.py:626:

../../../../.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/interpolate/fitpack.py:289: in splrep
res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)

x = array([ 0.        ,  0.31415927,  0.62831853,  0.9424778 ,  1.25663706,
1.57079633,  1.88495559,  2.19911486, ... 10.36725576, 10.68141502,
10.99557429, 11.30973355, 11.62389282, 11.93805208, 12.25221135,
12.56637061])
y = array([[ 1.00000000e+00,  1.00000000e+00],
[ 9.51056516e-01,  9.51056516e-01],
[ 8.09016994e-01,  8.0901....09016994e-01,  8.09016994e-01],
[ 9.51056516e-01,  9.51056516e-01],
[ 1.00000000e+00,  1.00000000e+00]])
w = array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1.]), xb = 0.0
xe = 12.566370614359172, k = 3, task = 0, s = 0.0
t = array([ 0.        ,  0.        ,  0.        ,  0.        ,  0.62831853,
0.9424778 ,  1.25663706,  1.57079633, ...141502, 10.99557429, 11.30973355, 11.62389282,
11.93805208, 12.56637061, 12.56637061, 12.56637061, 12.56637061])
full_output = 0, per = 0, quiet = 1
def splrep(x, y, w=None, xb=None, xe=None, k=3, task=0, s=None, t=None,
           full_output=0, per=0, quiet=1):
    """
    Find the B-spline representation of 1-D curve.

    Given the set of data points ``(x[i], y[i])`` determine a smooth spline
    approximation of degree k on the interval ``xb <= x <= xe``.

    Parameters
    ----------
    x, y : array_like
        The data points defining a curve y = f(x).
    w : array_like, optional
        Strictly positive rank-1 array of weights the same length as x and y.
        The weights are used in computing the weighted least-squares spline
        fit. If the errors in the y values have standard-deviation given by the
        vector d, then w should be 1/d. Default is ones(len(x)).
    xb, xe : float, optional
        The interval to fit.  If None, these default to x[0] and x[-1]
        respectively.
    k : int, optional
        The order of the spline fit. It is recommended to use cubic splines.
        Even order splines should be avoided especially with small s values.
        1 <= k <= 5
    task : {1, 0, -1}, optional
        If task==0 find t and c for a given smoothing factor, s.

        If task==1 find t and c for another value of the smoothing factor, s.
        There must have been a previous call with task=0 or task=1 for the same
        set of data (t will be stored an used internally)

        If task=-1 find the weighted least square spline for a given set of
        knots, t. These should be interior knots as knots on the ends will be
        added automatically.
    s : float, optional
        A smoothing condition. The amount of smoothness is determined by
        satisfying the conditions: sum((w * (y - g))**2,axis=0) <= s where g(x)
        is the smoothed interpolation of (x,y). The user can use s to control
        the tradeoff between closeness and smoothness of fit. Larger s means
        more smoothing while smaller values of s indicate less smoothing.
        Recommended values of s depend on the weights, w. If the weights
        represent the inverse of the standard-deviation of y, then a good s
        value should be found in the range (m-sqrt(2*m),m+sqrt(2*m)) where m is
        the number of datapoints in x, y, and w. default : s=m-sqrt(2*m) if
        weights are supplied. s = 0.0 (interpolating) if no weights are
        supplied.
    t : array_like, optional
        The knots needed for task=-1. If given then task is automatically set
        to -1.
    full_output : bool, optional
        If non-zero, then return optional outputs.
    per : bool, optional
        If non-zero, data points are considered periodic with period x[m-1] -
        x[0] and a smooth periodic spline approximation is returned. Values of
        y[m-1] and w[m-1] are not used.
    quiet : bool, optional
        Non-zero to suppress messages.
        This parameter is deprecated; use standard Python warning filters
        instead.

    Returns
    -------
    tck : tuple
        (t,c,k) a tuple containing the vector of knots, the B-spline
        coefficients, and the degree of the spline.
    fp : array, optional
        The weighted sum of squared residuals of the spline approximation.
    ier : int, optional
        An integer flag about splrep success. Success is indicated if ier<=0.
        If ier in [1,2,3] an error occurred but was not raised. Otherwise an
        error is raised.
    msg : str, optional
        A message corresponding to the integer flag, ier.

    Notes
    -----
    See splev for evaluation of the spline and its derivatives.

    The user is responsible for assuring that the values of *x* are unique.
    Otherwise, *splrep* will not return sensible results.

    See Also
    --------
    UnivariateSpline, BivariateSpline
    splprep, splev, sproot, spalde, splint
    bisplrep, bisplev

    Notes
    -----
    See splev for evaluation of the spline and its derivatives. Uses the
    FORTRAN routine curfit from FITPACK.

    If provided, knots `t` must satisfy the Schoenberg-Whitney conditions,
    i.e., there must be a subset of data points ``x[j]`` such that
    ``t[j] < x[j] < t[j+k+1]``, for ``j=0, 1,...,n-k-2``.

    References
    ----------
    Based on algorithms described in [1]_, [2]_, [3]_, and [4]_:

    .. [1] P. Dierckx, "An algorithm for smoothing, differentiation and
       integration of experimental data using spline functions",
       J.Comp.Appl.Maths 1 (1975) 165-184.
    .. [2] P. Dierckx, "A fast algorithm for smoothing data on a rectangular
       grid while using spline functions", SIAM J.Numer.Anal. 19 (1982)
       1286-1304.
    .. [3] P. Dierckx, "An improved algorithm for curve fitting with spline
       functions", report tw54, Dept. Computer Science,K.U. Leuven, 1981.
    .. [4] P. Dierckx, "Curve and surface fitting with splines", Monographs on
       Numerical Analysis, Oxford University Press, 1993.

    Examples
    --------

    >>> import matplotlib.pyplot as plt
    >>> from scipy.interpolate import splev, splrep
    >>> x = np.linspace(0, 10, 10)
    >>> y = np.sin(x)
    >>> tck = splrep(x, y)
    >>> x2 = np.linspace(0, 10, 200)
    >>> y2 = splev(x2, tck)
    >>> plt.plot(x, y, 'o', x2, y2)
    >>> plt.show()

    """
    if task <= 0:
        _curfit_cache = {}
    x, y = map(atleast_1d, [x, y])
    m = len(x)
    if w is None:
        w = ones(m, float)
        if s is None:
            s = 0.0
    else:
        w = atleast_1d(w)
        if s is None:
            s = m - sqrt(2*m)
    if not len(w) == m:
        raise TypeError('len(w)=%d is not equal to m=%d' % (len(w), m))
    if (m != len(y)) or (m != len(w)):
        raise TypeError('Lengths of the first three arguments (x,y,w) must '
                        'be equal')
    if not (1 <= k <= 5):
        raise TypeError('Given degree of the spline (k=%d) is not supported. '
                        '(1<=k<=5)' % k)
    if m <= k:
        raise TypeError('m > k must hold')
    if xb is None:
        xb = x[0]
    if xe is None:
        xe = x[-1]
    if not (-1 <= task <= 1):
        raise TypeError('task must be -1, 0 or 1')
    if t is not None:
        task = -1
    if task == -1:
        if t is None:
            raise TypeError('Knots must be given for task=-1')
        numknots = len(t)
        _curfit_cache['t'] = empty((numknots + 2*k + 2,), float)
        _curfit_cache['t'][k+1:-k-1] = t
        nest = len(_curfit_cache['t'])
    elif task == 0:
        if per:
            nest = max(m + 2*k, 2*k + 3)
        else:
            nest = max(m + k + 1, 2*k + 3)
        t = empty((nest,), float)
        _curfit_cache['t'] = t
    if task <= 0:
        if per:
            _curfit_cache['wrk'] = empty((m*(k + 1) + nest*(8 + 5*k),), float)
        else:
            _curfit_cache['wrk'] = empty((m*(k + 1) + nest*(7 + 3*k),), float)
        _curfit_cache['iwrk'] = empty((nest,), intc)
    try:
        t = _curfit_cache['t']
        wrk = _curfit_cache['wrk']
        iwrk = _curfit_cache['iwrk']
    except KeyError:
        raise TypeError("must call with task=1 only after"
                        " call with task=0,-1")
    if not per:
        n, c, fp, ier = dfitpack.curfit(task, x, y, w, t, wrk, iwrk,

                                      xb, xe, k, s)

E           dfitpack.error: failed in converting 3rd argument `y' of dfitpack.curfit to C/Fortran array
_curfit_cache = {'iwrk': array([   55032256,           0,  -547680393,<PHONE_NUMBER>,  -812561380,
1070907834,<PHONE_NUMBER>,  107...00e+000, 4.03087768e-098, 1.00000000e+000,
2.97773432e-100, 1.00000000e+000, 1.97930035e-102, 1.00000000e+000])}
full_output = 0
iwrk       = array([   55032256,           0,  -547680393,<PHONE_NUMBER>,  -812561380,
1070907834,<PHONE_NUMBER>,<PHONE_NUMBER>, ...,   762507841,<PHONE_NUMBER>,
-1122429777,<PHONE_NUMBER>,  -958381132,<PHONE_NUMBER>,           0],
dtype=int32)
k          = 3
m          = 41
nest       = 45
per        = 0
quiet      = 1
s          = 0.0
t          = array([ 0.        ,  0.        ,  0.        ,  0.        ,  0.62831853,
0.9424778 ,  1.25663706,  1.57079633, ...141502, 10.99557429, 11.30973355, 11.62389282,
11.93805208, 12.56637061, 12.56637061, 12.56637061, 12.56637061])
task       = 0
w          = array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1.])
wrk        = array([6.90297340e-310, 6.90297340e-310, 2.98387192e-316, 2.98387192e-316,
0.00000000e+000, 1.66666667e-001, 6....000e+000, 4.03087768e-098, 1.00000000e+000,
2.97773432e-100, 1.00000000e+000, 1.97930035e-102, 1.00000000e+000])
x          = array([ 0.        ,  0.31415927,  0.62831853,  0.9424778 ,  1.25663706,
1.57079633,  1.88495559,  2.19911486, ... 10.36725576, 10.68141502,
10.99557429, 11.30973355, 11.62389282, 11.93805208, 12.25221135,
12.56637061])
xb         = 0.0
xe         = 12.566370614359172
y          = array([[ 1.00000000e+00,  1.00000000e+00],
[ 9.51056516e-01,  9.51056516e-01],
[ 8.09016994e-01,  8.0901....09016994e-01,  8.09016994e-01],
[ 9.51056516e-01,  9.51056516e-01],
[ 1.00000000e+00,  1.00000000e+00]])
../../../../.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/interpolate/_fitpack_impl.py:502: error
------------------------------------------------------------------------------------------- Captured stderr call -------------------------------------------------------------------------------------------
too many axes: 2 (effrank=2), expected rank=1
============================================================================================= warnings summary =============================================================================================
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/distutils/init.py:4
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/distutils/init.py:4: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324: PytestUnknownMarkWarning: Unknown pytest.mark.slow - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
PytestUnknownMarkWarning,
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/_pytest/mark/structures.py:324: PytestUnknownMarkWarning: Unknown pytest.mark.xslow - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
PytestUnknownMarkWarning,
ndimage/tests/test_ndimage.py::TestNdimage::test_geometric_transform_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_geometric_transform_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:262: DeprecationWarning: NPY_ARRAY_UPDATEIFCOPY, NPY_ARRAY_INOUT_ARRAY, and NPY_ARRAY_INOUT_FARRAY are deprecated, use NPY_WRITEBACKIFCOPY, NPY_ARRAY_INOUT_ARRAY2, or NPY_ARRAY_INOUT_FARRAY2 respectively instead, and call PyArray_ResolveWritebackIfCopy before the array is deallocated, i.e. before the last call to Py_DECREF.
extra_keywords)
ndimage/tests/test_ndimage.py::TestNdimage::test_geometric_transform_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_geometric_transform_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:262: DeprecationWarning: UPDATEIFCOPY detected in array_dealloc.  Required call to PyArray_ResolveWritebackIfCopy or PyArray_DiscardWritebackIfCopy is missing
extra_keywords)
ndimage/tests/test_ndimage.py::TestNdimage::test_map_coordinates_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_map_coordinates_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:350: DeprecationWarning: NPY_ARRAY_UPDATEIFCOPY, NPY_ARRAY_INOUT_ARRAY, and NPY_ARRAY_INOUT_FARRAY are deprecated, use NPY_WRITEBACKIFCOPY, NPY_ARRAY_INOUT_ARRAY2, or NPY_ARRAY_INOUT_FARRAY2 respectively instead, and call PyArray_ResolveWritebackIfCopy before the array is deallocated, i.e. before the last call to Py_DECREF.
output, order, mode, cval, None, None)
ndimage/tests/test_ndimage.py::TestNdimage::test_map_coordinates_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_map_coordinates_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:350: DeprecationWarning: UPDATEIFCOPY detected in array_dealloc.  Required call to PyArray_ResolveWritebackIfCopy or PyArray_DiscardWritebackIfCopy is missing
output, order, mode, cval, None, None)
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_1d_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_1d_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:483: DeprecationWarning: NPY_ARRAY_UPDATEIFCOPY, NPY_ARRAY_INOUT_ARRAY, and NPY_ARRAY_INOUT_FARRAY are deprecated, use NPY_WRITEBACKIFCOPY, NPY_ARRAY_INOUT_ARRAY2, or NPY_ARRAY_INOUT_FARRAY2 respectively instead, and call PyArray_ResolveWritebackIfCopy before the array is deallocated, i.e. before the last call to Py_DECREF.
mode, cval)
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_1d_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_1d_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:483: DeprecationWarning: UPDATEIFCOPY detected in array_dealloc.  Required call to PyArray_ResolveWritebackIfCopy or PyArray_DiscardWritebackIfCopy is missing
mode, cval)
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_multi_d_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_multi_d_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:486: DeprecationWarning: NPY_ARRAY_UPDATEIFCOPY, NPY_ARRAY_INOUT_ARRAY, and NPY_ARRAY_INOUT_FARRAY are deprecated, use NPY_WRITEBACKIFCOPY, NPY_ARRAY_INOUT_ARRAY2, or NPY_ARRAY_INOUT_FARRAY2 respectively instead, and call PyArray_ResolveWritebackIfCopy before the array is deallocated, i.e. before the last call to Py_DECREF.
output, order, mode, cval, None, None)
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_multi_d_endianness_with_output_parameter
ndimage/tests/test_ndimage.py::TestNdimage::test_affine_transform_multi_d_endianness_with_output_parameter
/home/swartz/.virtualenvs/dl4cv/lib/python3.6/site-packages/scipy/ndimage/interpolation.py:486: DeprecationWarning: UPDATEIFCOPY detected in array_dealloc.  Required call to PyArray_ResolveWritebackIfCopy or PyArray_DiscardWritebackIfCopy is missing
output, order, mode, cval, None, None)
-- Docs: https://docs.pytest.org/en/latest/warnings.html
============================================== 1 failed, 14525 passed, 1274 skipped, 1225 deselected, 77 xfailed, 8 xpassed, 26 warnings in 234.09s (0:03:54) ==============================================`

This looks very similar to https://github.com/scipy/scipy/issues/9777, and I think the conditional xfail was supposed to handle the matter...

Would this be solved by having specific versions of scipy and numpy as in the 9777 post?

Hi, not sure if this is related, but I'm also getting a similar failure of scipy.test() with SciPy 1.4.0.dev0+a6bd045, numpy 1.17.2. Here's the final output:
scipy/scipy/interpolate/_fitpack_impl.py:502: error
-------------------------------------------------------------------- Captured stderr call --------------------------------------------------------------------
too many axes: 2 (effrank=2), expected rank=1
=============================== 1 failed, 17931 passed, 1289 skipped, 1079 deselected, 76 xfailed, 8 xpassed in 411.44 seconds

Let me know if this is not the right place or if I can help with more info.

Has there been any resolution for this? I'm getting very similar results from scipy.test() as op. I was trying to do cross validation in a jupyter notebook with n_jobs = -1. If I run without n_jobs set, it runs slowly, but it works.
PytestUnknownMarkWarning: Unknown pytest.mark.xslow - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/latest/mark.html
    PytestUnknownMarkWarning,

-- Docs: https://docs.pytest.org/en/latest/warnings.html
= 14529 passed, 1272 skipped, 1225 deselected, 77 xfailed, 7 xpassed, 9 warnings in 255.03s (0:04:15) =
True

@tylerjereddy so this is no longer seen, correct? IIUC it's something related to numpy/f2py and the underlying problem has been fixed in the lowest supported NumPy version.

Sounds right, plus 3.6 is not relevant for the wheels repo master branch anymore of course. So, I'll close.


Support for Paper 1.20.6 with no CB relocation

Is your feature request related to a problem? Please describe.
Since Paper has removed CB relocation in 1.20.6, SpectralDamage cannot detect its nms version and will disable itself.
Describe the solution you'd like
Solutions can be referred to PaperMC fourm: https://forums.papermc.io/threads/important-dev-psa-future-removal-of-cb-package-relocation.1106/

Hello
Thank for your issue
I will start working on this by tomorrow!

Any progress would be very appreciated!

Developer Note :
Hello,
It's been a while!
Minecraft support version 1.21 will be released around August 15
I have read all your suggestions and I will make a version with each of them but it will take me some time as I have other projects to work on at the moment, I will keep you posted


a little refactoring

... that makes the variable name isTopLevelApplication more accurate in pexprs-eval.js. What do you think, @pdubroy?

lgtm, though once you've moved the check for applySpaces, I think you can drop the isTopLevelApplication var and just pass !caller, which is what it did before (though keeping the var makes the code a bit more self-documenting).

BTW, I still want to introduce the top-level Match<startRule> thing like we discussed, and this code will probably go away once I do that.

Yes, I think that leaving that variable name there is nice b/c it's self-commenting, and (i) I agree that it still makes sense to introduce the Match<startRule> thing. Thanks!


clang: enable support for BPF target

Signed-off-by: Daniel Díaz<EMAIL_ADDRESS>

Isn't this a DISTRO setting instead of a MACHINE setting?

agreed with @koenkooi , glibc and clang changes should be submitted in meta-rpb.

This specific bit about Clang is now in https://github.com/96boards/meta-rpb/pull/151.


Make "from" a moduleKeyword

Ref: https://github.com/codemirror/codemirror.next/issues/665
Ref: https://github.com/codemirror/codemirror.next/issues/284
Ref: https://github.com/codemirror/highlight/commit/e87b97803c0114442c13134d4516b92602ab304c
Ref: https://github.com/codemirror/lang-javascript/commit/bb28a637dc6568f4fb2a6b8eb91742df3e934295

I guess it is only used in import/export statements for now, so sure, this works.

Great, thanks for the merge!  🙌


Added new ERT face alignment GTX model

Added the paper reference in README and the ERT GTX model version to the repository explained in this video:

https://www.youtube.com/watch?v=U3jx43uuAGg.

More information can be found in the next Gitlab repository:

https://gitlab.com/visualhealth/vhpapers/real-time-facealignment

Sweet :)


Password Reset ignores redundant VR status when saving new password

ISSUE TYPE

Bug Report

COMPONENT NAME

Management Server

CLOUDSTACK VERSION

Verified on 4.8 and 4.11.2

CONFIGURATION

Advanced Network, Redundant Virtual Routers
OS / ENVIRONMENT

n/a
SUMMARY

When you use the password reset feature, the password is always saved to the first running VR, not the master.  The code in VirtualRouterElement.savePassword appears to iterate over the output of routerDao.listByNetworkOnRole, and returns after the first running router.  This has the outcome that password resets don't work if the first VR on a network is backup.
STEPS TO REPRODUCE

Deploy Isolated Network using DefaultIsolatedNetworkOfferingWithSourceNatService
Restart Network with "Make Redundant" ticked, wait for network to complete so that there is one VR as BACKUP and another as MASTER.
Deploy a VM on new network with password-enabled template, Stop it
Ensure second VR (one with highest r-XXX-VM number) is MASTER.  If not, restart the current master and wait for CS status to update.
Issue password reset for VM.

EXPECTED RESULTS

CloudStack should've saved the password to the MASTER VR
ACTUAL RESULTS

CloudStack saved the password to the BACKUP (first) VR.
The problem can be fixed by sorting the list of routers by redundant status, with MASTER first.  If there are no MASTER routers on a redundant network, I would expect the password reset to fail.

Related/previous old PR https://github.com/apache/cloudstack/pull/1965

@davidjumani @weizhouapache can you check if this is still applicable? cc @nvazquez - sorry changing the milestone until we determine if it's a bug, there is an old PR https://github.com/apache/cloudstack/pull/1965 that can be used as a reference to fix the issue.

Issue still exists, will create a PR based on #1965 to fix it

Issue is fixed, the password & ssh key get sent to both the master and backup VR

No problem @rhtyd - thanks @davidjumani I'll close after your remark


Add support Ionic 2/3

Hi! It would be great if there would be support for Ionic 2/3.

@sergeyrolich Good point.. really love to have this feature. Learning ionic.. hope I will add this soon.


Fix: Use correct scope for Entra authentication

Fixes #197
Also cleans up the file based on lint

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.55%. Comparing base (b3a8513) to head (7c6b410).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #198      +/-   ##
==========================================
- Coverage   74.70%   74.55%   -0.15%
==========================================
  Files          32       32
  Lines        6344     6344
==========================================
- Hits         4739     4730       -9
- Misses       1323     1329       +6
- Partials      282      285       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@shueybubbles - do you want me to open an issue in the sqlcmd project to track bumping this dependency over there?

sure


Added PostgreSQL bindings for Windows

Requires .dll to work, wasn't sure if it should be included or not.

Thank you! I don’t know about the DLL. libpq is a system library on Linux/macOS, so haven’t added the binaries there. I guess it’s consistent to also not add them on Windows then?


x/tools/gopls: no diagnostic about missing go.sum entry if module already downloaded

I created a module that had no go.sum file, and the go command reported go<EMAIL_ADDRESS>missing go.sum entry; try 'go mod download github.com/sergi/go-diff' to add it, but I saw no diagnostic.

Duplicate of https://github.com/golang/go/issues/42815


Files missing/Error when using appfairy command

I keep getting this error message when running the appfairy command:
TypeError: Cannot read property 'replace' of undefined     at replace (/usr/local/lib/node_modules/appfairy/build/webpack:/src/utils/index.js:6:13)     at escape (/usr/local/lib/node_modules/appfairy/build/webpack:/src/writers/view-writer.js:347:31)     at Array.map (<anonymous>)     at ViewWriter.map (/usr/local/lib/node_modules/appfairy/build/webpack:/src/writers/view-writer.js:344:28)     at ViewWriter.composeScriptsDeclerations (/usr/local/lib/node_modules/appfairy/build/webpack:/src/writers/view-writer.js:275:22)     at compose (/usr/local/lib/node_modules/appfairy/build/webpack:/src/writers/view-writer.js:258:77)     at Generator.next (<anonymous>)     at step (/usr/local/lib/node_modules/appfairy/build/appfairy.js:604:191)     at /usr/local/lib/node_modules/appfairy/build/appfairy.js:604:437     at new Promise (<anonymous>)
Although it is an Error I still get all of my view files except the home IndexView.js.
I tried installing previous versions with no avail.. Is there something I might need to configure? Let me know if you need me to include my index html file. Thanks!

Hey @jayb967, yes please send me the index.html file contents, I might need the other files but let's start with that. If you don't feel comfortable sharing it publicly you can send it to me via email.

Appreciate the help! I don't mind if it's a bug that can help someone else. Here is the index.html:
`

title

HOMEshopMEMBershipAboutContactCart(0)become a member

New Collection
Shop the latest fashionShop Now

New Collection
Shop the latest fashionShop Now

New Collection
Premium Delivery ServiceShop Now

New Collection
Shop fashionShop Now

THE COLLECTION
HeadingGET STARTED NOWLEARN MORE

How it works

Answer a few brief questions about your interests
 Our personal designer will use your preferences to send your monthly subscription box and even make new designs!

Join Us!
Find a Membership thats perfect for you. Doesn't get much sweeter than that..

Shop!
Find fashion that you want to wear!

MEMBER PERKS: You're guaranteed to feel more confident in wear! & Everyone knows that the better you look and feel the more money you attract and make! Not to mention the freebie in your Birthday Shipment + Surprise Accessories EVERY MONTH  Oh yea & It's all delivered to your doorstep!Mic Drop*

Our Pricing is simple

Option a - $25/month

25% off outfits
10% off accessories
15% custom outfits
free shipping
free access to all events
Sign up now

option b - $85/month
2 outfits + 1 money bag

+ all essentials to secure the bag ( dry hands, body wipeskds nail glue, hair ties, etc..)
+ everything from option a
$280/month savings
Sign up now

Full Outfits

Tops

shop

join now

Wear
Whether you're grinding hard at work or going out to a rave, has a unique mix of clothing! You'll be looking hot in our daring selection.  We want every visit to our custom shop to feel like you are exploring your most sultry yet stylish inner self! It's Simple: We Ship Monthly Concierge Subscription Boxes Right to your doorstep!  Anywhere In The Continental US For FREE. No Kidding.

WEAR

festival wear

bottle service & waitress attire

custom designs

24/7 Email Support
If you have any issues, we will always contact you within 24 hours. get support now

Start Your journey today!
Receiving custom tailored monthly is so much better at up to 25% off!

SIGN UP TODAY   ❯

COMPANY

Home
About
Shop
Membership

get help

Contact Us
Shipping & Returns
Terms & Conditions

We send about 1-2 emails a month

Thank you! You'll be receiving some awesome emails!

Oops! Something went wrong while submitting the form :(

`

Hey @jayb967, may I ask for the entire zip file? It would be much easier for me this way. You can send it to me via email and I'll keep complete secrecy over your project.

ok email sent. Thanks!

@jayb967 Fixed! There were inline script tags which weren't JavaScript related and I didn't handle that. Accordingly I have released a new version 0.7.2. Enjoy!

Hello @DAB0mB! I am not sure if you will see this, but thank you for making this program. I just found it in the Webflow forums as I've been learning React. I am getting the following error that seems really similar to the issue in this ticket, but slightly different. Below is the error I am getting when I try to run the appfairy command after getting everything set up.
Could you help me out? I really want to use your program as it will save me a lot of time.


Removed duplicate link

I removed a duplicate link for the spooky-bat page in the footer of the home page.

Great :)


Cache bounded CPU ID in register for global scratch buffers

This PR implements CPU ID caching based on discussion in https://github.com/bpftrace/bpftrace/pull/3483
Background: When using scratch buffers, we need to fetch the CPU ID via BPF helper bpf_get_smp_processor_id to find out which slot the CPU should use. That's all well and good except on older kernels (e.g 5.2) where the BPF verifier is not smart enough to bound bpf_get_smp_processor_id <= MAX_CPU_ID. So the verifier will throw errors unless we explicitly bound bpf_get_smp_processor_id. To do that, we use LLVM's select instruction which essentially does min(bpf_get_smp_processor_id, MAX_CPU_ID).
Unfortunately, if we do enough scratch lookups, this causes too many jumps >= 8192 kernel limit. This can be seen when migrating map values to scratch buffers in the above PR for bpfsnake.
To avoid this problem, we cache the bounded CPU ID in a register at the beginning of each probe, subprogram and bpf_for_each_map_cb. We need to do it at function level since registers are changed upon calling functions. Luckily, there aren't too many other than probes/subprogs and map callbacks, so this should be fairly future proof. Note we cannot cache the CPU ID in memory since memory is shared by all CPUs.
To deal with for loop nesting, we need to implement a stack s.t. we reference the correct CPU ID on the top of the stack (aka within the function call)
I tested this on 5.2 and 6.9 and verified standard test cases and stress test cases for tuples and fmt strings still pass.

Is there any perf issue in dedicating a register for the CPU ID - are we more likely to run out of these?

This doesn’t necessarily dedicate a register - llvm is allowed to spill it to stack

This doesn’t necessarily dedicate a register - llvm is allowed to spill it to stack

@danobi Ah interesting. I suppose the reason this works is bpftrace programs/probes are non-preemptible so another CPU won't read the stack variable while the probe is executing.
We would probably have to revisit this if bpftrace supports preemptible programs

This doesn’t necessarily dedicate a register - llvm is allowed to spill it to stack

@danobi Ah interesting. I suppose the reason this works is bpftrace programs/probes are non-preemptible so another CPU won't read the stack variable while the probe is executing.
We would probably have to revisit this if bpftrace supports preemptible programs

Each bpf program gets its own stack (provided by kernel). It's unique to each invocation of the program. So no worries about preemption. The reason we are going through the whole exercise of off-stack allocations is b/c the kernel-provided stack is too small (512B).


Add the dutch language.

Added the dutch language

Awesome! Thanks!

@companyou Could you go over this again? We've made some edits/additions and want to make sure it's still complete.

Yes, i'm gonna do that.

Finnished, and it's in a pull request.


docs(install) fix typo in kong universe link

Summary
Fix a link to the Kong universe in section 5 of the Kong DCOS docs.
Full changelog

Fix a link in the deployment documentation

Issues resolved
N/A

Checklist:

[x] Commit message & atomicity checked
[x] Documentation
[x] Spellchecked my updates
[x] Ready to be merged

Thanks @pxgamer much appreciated!


Add release automation workflow

Currently we are using automation based on release-drafter, to create GitHub releases.
We had some issues with this in the past, so I want to try out an alternative, that is working slightly different.
I want to try, if the approach that release-please is proposing, could be a better fit. Not only for this repository, but also as potential workflow for other repos, so that manual tasks for committers could be limted.

👍🏼  +1  approval

Closing, since there is no follow-up discussion


Not seeing candle sticks on trade page

I am not seeing any candle sticks on the Trade page /markets/btcusd. The only thing I see is a loading spinner.

Am I missing some kind of an access_key. Perhaps could be a good idea to add some instructions in the Readme file.

@Alex-Shilman It is better to use Docker since it is more stable environment. I recommend you to check this issue on devel (it will soon be merged into master). You may open the issue if bug still exists. Thanks.


Is it possible to get the NSLayoutConstraint when using SnapKit?

I know I can get SnapKit.Constraint from SnapKit by doing topConstraint = make.top.equalTo(superview).offset(padding.top).constraint.
However, is there a way to get the underlining NSLayoutConstraint? I need to get the constraint to work with AMScrollingNavbar.
For example, let's say I have
let vc = UIViewController()
let container = UIView()
vc.view = UIView(frame: CGRectMake(0, 0, 300, 300))

vc.view.addSubview(container)

container.snp_makeConstraints { (make) -> Void in
    make.top.equalTo(vc.snp_topLayoutGuideBottom) // Hopefully I can get the `NSLayoutConstraint` created by this line
    make.bottom.equalTo(vc.snp_bottomLayoutGuideTop)
}

Is it possible to get the NSLayoutConstraint for the top constraint of the container in vc?
PS.
SnapKit is awesome! It makes my life with AutoLayout so much easier. ;D
Thanks for the great work.

@NicholasTD07 you probably don't want to store the NSLayoutConstraint since SnapKit will uninstall and re-install these (sometimes creating new ones) as necessary.
Instead you want to store the SnapKit Constraint object:
self.storedConstraint = make.top.equalTo(other).constraint

You can then find methods on that constraint!

@robertjpayne Oh, right. Sorry I have only been using SnapKit for a few days so I keep forgetting SnapKit manage(install/re-install) NSLayoutConstraint.
But, in this case, when I do need to hold onto a NSLayoutConstraint, maybe I shouldn't use SnapKit for that particular constraint. Would using NSLayoutConstraint directly while using SnapKit mess up SnapKit itself? Is it possible to use them at the same time?

@NicholasTD07 what's the reasoning for needing the NSLayoutConstraint directly? If you look at the methods available on Constraint here https://github.com/SnapKit/SnapKit/blob/develop/Source/Constraint.swift it should be everything above and beyond you would need?

You can mix regular constraints into SnapKit too, no conflict so long as the constraints are still satisfiable.  I would like to use it with SnapKit. However, it seems I have to do the topConstraint myself rather than asking SnapKit's help.
By the way, SnapKit is so cool! And the code is so clean. Good job. :+1: :+1:

@NicholasTD07 ah yea, basically SnapKit automagically removes and manages any NSLayoutConstraint's it creates so it's not easy to try and get them directly. You're best creating that one specifically via the native apis!

@robertjpayne Cool. Thank you for helping me understand the internal mechanism of SnapKit and find the solution(native API).

No worries!


Null safety

Description
What your Pull Request change ?
Checklist
Before creating any Pull Request, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).

[ ] 📕 I read the Contributing page.
[ ] 🤝 I match the actual coding style.
[ ] ✅ I ran flutter analyse without any issues.

Breaking Change

[ ] 🛠 My feature contain breaking change.

If your feature break something, please detail it

Could you explain more what you made on this PR?
Thank you 👍


refactor: JSON logic into import_from_dict

SUMMARY

Refactors the helper method import_from_dict to convert dictionary values into JSON sting as per the TODO's given
https://github.com/apache/superset/blob/ac509611b6ca950bf373c065012414020dd224b7/superset/dashboards/commands/importers/v1/utils.py#L145-L155
https://github.com/apache/superset/blob/ac509611b6ca950bf373c065012414020dd224b7/superset/databases/commands/importers/v1/utils.py#L35-L38
https://github.com/apache/superset/blob/ac509611b6ca950bf373c065012414020dd224b7/superset/charts/commands/importers/v1/utils.py#L36-L39
TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

Thanks for the contribution @1nF0rmed ! This PR needs a rebase, happy to take a look when that's done!

@villebro I've rebased it with the current master, let me know if this works :)

Hi @1nF0rmed, I left a comment + it appears some tests are failing


Hide Binary from contract writers

This is an encoding detail, they should be able to just deal with Vec<u8>. Suggested due to feedback from @reuvenpo on contract development pain points.
One approach is to patch serde-json-wasm to base64 encode/decode &[u8] and Vec<u8>. Probably the cleanest, but not sure how much work.
The other approach is to modify the expected return values:
pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<Binary>

could return StdResult<Vec<u8>> and the wrappers in lib.rs could convert to Binary before encoding with json
The other point would be HandleResponse and MigrateResponse which take data: Option<Binary>. If we revisted https://github.com/CosmWasm/cosmwasm/pull/380 we could use a similar technique to just set the data as fn set_data<T: Into<Vec<u8>>>(&mut self, data: T) (so a vec or a slice) and then convert the input under the hood.
Both of these would remove the burden of yet another conversion to the user.

Changing the return value of query is actually quite simple and I would be happy to tackle that if you like the idea @webmaster128

The Binary type does two things:

base64 serialize/deserialize
tell the JSON Schema generator (schemars) that fields with this type are strings

So even if serde-json-wasm was changed, we don't get 2. 2. is also the reason we need it in the message types and cannot silently change encoding at some other point.
Changing serde-json-wasm is an option, but the drawback is we loose compatibility to serde_json, which serves as a reference implementation and is used in the VM.
@reuvenpo What do you think is the biggest issue with Binary? Maybe we find a better solution once the problem is fully understood and documented.

I think the complaint was the user interface. If we use it internally in types, but hide the need from the user (or maybe make it even easier to use), then this should solve the issue.

Changing query return to Vec is easy.
The result context builder removes use in handle/init/query
We have only the use in some of the CosmosMsg subtypes (like WasmMsg::Execute) - maybe we can make constructors for those?

I'd rather understand the problem better and improve the type than avoid using it in some places and keep it in other places. This would just increase inconsistency. Given https://github.com/CosmWasm/cosmwasm/issues/476#issuecomment-658567172, I don't see how we can avoid the type if we want to keep base64 encoded binary data.

About the "context" approach to hiding Binary from contract authors' code here's my thinking:
We have two main options:

have the user-defined init, 'handle, query, and migrate functions accept a context: &mut Context parameter which has the following methods:

fn log<K, V>(&mut self, key: K, value: V) where K: Into<String>, V: Into<String>;
fn add_message<T>(&mut self, message: CosmosMsg<T>) where T: Clone + fmt::Debug + PartialEq + JsonSchema;
maybe methods to clear / pop logs and messages for logic that may need to rollback messages. alternatively methods to append a vector of logs/messages that were generated by some function

and then you'd have init and migrate not return anything, while handle and query can return any Serialize type that they choose.

Have the init, migrate, and handle functions require the user return a Context object. The contract can initialize an empty one, add messages and logs to the object as described in (1.), as well as a method for setting the returned object. This last method can be generic as well so it can accept any type the user wants to return, conceptually. It is then an SdkError if init or migrate

In all these cases, we can convert things to Binary under the hood.
I support the idea of providing constructors for CosmosMsg :+1:

@webmaster128 I mentioned that doing this:
HandleResponse {
        messages: vec![],
        log: vec![],
        data: Some(Binary("banana".as_bytes().to_vec())),
}

To return a value in the data field is not ergonomic and could be simplified.

To return a value in the data field is not ergonomic and could be simplified.

Right, do
HandleResponse {
        messages: vec![],
        log: vec![],
        data: Some(b"banana".into()),
}

b"banana".into()
Nice!

Thank you for sharing your thought's @reuvenpo. What I am still missing is the motivation and as long is this is unclear, we don't need to debate solutions.
Also what you describe does not take https://github.com/CosmWasm/cosmwasm/issues/476#issuecomment-658567172 into account. The Binary type is part of the public contract interface in less cases than I thought originally, but it exists still

in every CanonicalAddr,
whenever a contract developer needs a binary field.

Hiding things that are part of the public interface seems to be a dead end. Contract state is a public interface for raw queries and we can have messages and query responses with binary fields.

hmmm... I see...
My main motivation is that i want to have an object that i can pass around to which i add logs/messages.
but i guess that can just be the usual HandleResponse sort of object, which i would initialize empty and just add on to.

Some(b"banana".into())

I have tried this, and seems not to work. Some message like Binary::into not implemented for [u8;6]
It does work if you do:
let msg: &[u8] = b"banana"
HandleResponse {
  data: Some(msg.into()),
  ...
}

Some(b"banana".into())

It also doesn't work with Unicode, only with ASCII.

One proposal was query could return StdResult<Vec<u8>> and the wrappers in lib.rs could convert to Binary before encoding with json. This would keep the same API, but simplify what the user writes in contract.rs.
What is the feeling with this?
My idea is the output of lib.rs should remain the same, but we can change the types we requires from contract.rs. Before we passed in HandleMsg: Vec<u8> before I learned how to parse that in the lib.rs wrappers. And I think hiding the raw bytes has a nice Dev UX improvement.

have the user-defined init, handle, query, and migrate functions accept a context: &mut Context parameter which has the following methods:

I don't really like this. It makes calling these functions (eg. in tests) more unweildly. I do like the builder idea however. Maybe something like:
pub fn handle(...) -> StdResult<HandleResponse> {
  let mut ctx = Context::new();
  // ... do some work
  ctx.send_action(BankMsg::Send{ to, from, amount });
  ctx.emit("recipient", from);
  ctx.emit("amount", amount);
  // ... more work
  ctx.result(b"banana");
  ctx.try_into()
}

In fact, this could be completely opt-in without changing HandleResponse or the handle function signature at all. It would just be a builder (maybe in another package? maybe in cosmwasm-std?) that would produce a more ergonomic interface to devs. I do see the motivation to keep the types like HandleResponse consistent with the json output. And also the idea to provide something simpler to contract writers

I have tried this, and seems not to work. Some message like Binary::into not implemented for [u8;6]

Thanks for reporting this. The problem is fixed in https://github.com/CosmWasm/cosmwasm/pull/477 to the point where Binary supports all fixed size conversions that Vec does as well.

It also doesn't work with Unicode, only with ASCII.

This has nothing to do with the Binary type.  From there you can convert .into() Binary.

Maybe something like:

Yes, this is what I wanted to suggest as well. Conversion to HandleResponse and MigrateResponse can always succeed. Conversion to InitResponse should fail if a response data is set that would otherwise be lost.

Yes, this is what I wanted to suggest as well. Conversion to HandleResponse and MigrateResponse can always succeed. Conversion to InitResponse should fail if a response data is set that would otherwise be lost.

So, there are 3 follow up fixes. #477 (done), change query return type, and add this Context builder.
Shall I create issues for those two actionable issues and close this one? Between them all, they should cover most of the points brought up here, and if there are any other details, we can add them later.

I still don't understand how changing the query return type helps. What's the difference between
pub type QueryResponse = Binary;

pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<QueryResponse> {
    match msg {
        QueryMsg::Verifier {} => to_binary(&query_verifier(deps)?),
        QueryMsg::OtherBalance { address } => to_binary(&query_other_balance(deps, address)?),
    }
}

and
pub type QueryResponse = Vec<u8>;

pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<QueryResponse> {
    match msg {
        QueryMsg::Verifier {} => to_vec(&query_verifier(deps)?),
        QueryMsg::OtherBalance { address } => to_vec(&query_other_balance(deps, address)?),
    }
}

?

The to_vec option is more familiar, but I'd argue that it's better if query returned StdResult<T> where T is a user-defined serializable type. The lib.rs wrappers can just take that value and serialize it before returning it.

It would also help enforce that users define an enumeration of all possible query responses.

I don't know how to work with TS :sweat_smile: but it looks like it's a good idea to name those various variants, so that you can expect the top-level one, and then test whether you got the variant that you expected. You should also be verifying you got anything valid in the first place, and not just forcibly cast to this type without checking that it looks like this type.

You can have an enum for QueryMsg and an enum for QueryResponse, and define query(QueryMsg) -> StdResult<QueryResponse>.
However, you cannot have a mapping such that query(msg: QueryMsg::A) -> StdResult<QueryResponse::A>, etc.  You have to know which response to expect out of bounds. This is more or less doable in Haskell using GADTs, but that is rather complex, heady stuff... and I have looked at equivalent in rust and it is very much in the ideation phase. The closest I have seen is letting you use variants as types foo(msg: QueryMsg::A) -> String or such which starts to allow this mapping.
But back to reality. In the current Rust type system (even on nightly), you cannot express which variant goes to which variant, and need out of bound info in any case. So I think keeping the QueryResponses as separate types is fine. (And easier to use. Otherwise you have to if let QueryResponse::A{...} = msg { ... } instead of just asserting it is AResponse when parsing)

The to_vec option is more familiar, but I'd argue that it's better if query returned StdResult where T is a user-defined serializable type. The lib.rs wrappers can just take that value and serialize it before returning it.

I like this ideas a lot and it mirrors a lot what we have done with handle and init, which parse the incoming bytes. I think it would take a little to play to figure out how to represent. Since we making it fully generic would require us to return one enum from query, which I find un-erognomic.
Maybe we could use something like:
impl<T> From<StdResult<T>> for StdResult<QueryResponse>
  where T: Serialize {
  // ....
}

Then we could just use:
pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<QueryResponse> {
    match msg {
        QueryMsg::Verifier {} => query_verifier(deps).into(),
        QueryMsg::OtherBalance { address } => query_other_balance(deps, address).into(),
    }
}

I didn't understand any of what you said in your previous-to-last message. Both because i don't understand the syntax and terminology you used, and because I don't understand why it should be so complicated. Maybe I'm misunderstanding something, or there's something nontrivial going on in cosmwasmjs but... I would think that you have some function/method that sends a query, and then the user has to parse the response as some type they choose. Whether or not they receive a bytestring or a parsed object from that function isn't really relevant, they should be able to just take that response, and analyze it to see if it has the shape they expect in the relevant context (aka, deserialize to a type). The user should just be able to write wrapper functions/objects for the queries they want to perform, no?

As for query inside the contract, you can just change do_query from cosmwasm-std to have this signature:
pub fn do_query<T: DeserializeOwned + JsonSchema, U: Serialize>(
    query_fn: &dyn Fn(
        &Extern<ExternalStorage, ExternalApi, ExternalQuerier>,
        T,
    ) -> StdResult<U>,
    msg_ptr: u32,
) -> u32;

So that it can accept query functions with different return types.

Yes, but if you look at query:
pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<YOUR_TYPE_HERE> {
    match msg {
        QueryMsg::Verifier {} => query_verifier(deps),
        QueryMsg::OtherBalance { address } => query_other_balance(deps, address),
    }
}

You will see there is no YOUR_TYPE_HERE that equals both VerifierResponse and BalanceResponse. We would have to pack them in an enum (which does make parsing annoying - first specify the enum to parse into, then assert it is variant X.
The into() solution allows to have each query_xyz() function return a different type, but then easily return one type in query

All the talk of GADT is a way of trying to say fn(enumA) -> enumB but actually given enumA::SomeVariant we know the result will be enumB::OtherVariant. (not just us, the compiler as well).
That would be needed to properly represent all possible queries in one function as enum to enum mapping.

Aha, i understand what you mean now.
I'd say that i don't think it's terrible If the JS side has to parse one more field, and then extract the response. It'll have to parse the entire structure anyways to make sure it has the expected format.
I don't think the GADT approach is really relevant here. On the JS side you can have one function for query_verifier and another for query_other_balance, each doing its own parsing and verification. This isn't that different from how you would write any other wrapper for a web API.
In any case, using the into() approach is probably ok as well, so it's not that big a deal.

The to_vec option is more familiar, but I'd argue that it's better if query returned StdResult where T is a user-defined serializable type. The lib.rs wrappers can just take that value and serialize it before returning it.

I tried writing the into to map StdResult<T> -> StdResult<Binary> but the compiler didn't like it...
impl<T: Serialize> From<StdResult<T>> for StdResult<Binary> {
    fn from(typed: StdResult<T>) -> StdResult<Binary> {
        typed.and_then(|obj| to_binary(&obj))
    }
}

Two complaints in fact. I think this is not worth it, but if anyone wants to dig in, check the linked PR

You don't usually implement From for this usecase, you can just write a .and_then(|obj| to_binary(&obj)) verbatim in the contract's lib.rs

You don't usually implement From for this usecase, you can just write a .and_then(|obj| to_binary(&obj)) verbatim in the contract's lib.rs

I cannot do this as each branch of the match statement returns a different type.
I would just leave it as is:
pub fn query<S: Storage, A: Api, Q: Querier>(
    deps: &Extern<S, A, Q>,
    msg: QueryMsg,
) -> StdResult<QueryResponse> {
    match msg {
        QueryMsg::Verifier {} => to_binary(&query_verifier(deps)?),
        QueryMsg::OtherBalance { address } => to_binary(&query_other_balance(deps, address)?),
    }
}

hmm... Yeah i suppose...
If we did return one type from the query function then it would be able to make it look nicer, but i see what you mean.
Technically you could have an enum that serde considers to be tagless. That would let you return one type from all cases without affecting the shape of the responses, but that would still require the small functions (query_verifier and query_other_balance in your example) to wrap their responses in some enum variant, which is even more verbose.

The context object is implemented as of 0.10.
I don't think there is much more actionable here. If you disagree, please reopen it with a clear, actionable change we can make to the API


sass variable error

for example:
@mixin transition-slow()
{
      $transition-slow: color .7s ease-out;
    -webkit-transition: $transition-slow;
       -moz-transition: $transition-slow;
         -ms-transition: $transition-slow;
            -o-transition: $transition-slow;
}

the result is:
@mixin transition-slow()
{
    -webkit-transition: $transition-slow;
       -moz-transition: $transition-slow;
         -ms-transition: $transition-slow;
            -o-transition: $transition-slow;

     $transition-slow: color .7s ease-out;
}

You should configure it so variables, extends, imports and includes are placed first .. use the following or refer to the config docs
"sort-order": [
[ "$import" ],
[ "$variable" ],
[ "$include" ],
[ ...


How do you build the mobile runtime package out of the whole openui5 release ?

Want to know if there is a separate repo for mobile runtime and how do you selectively build the mobile runtime out of the whole sapui5/openui5 package.
Actually we are using openui5-runtime-mobile for our hybrid app and the corresponding sapui5 runtime for web app but find version differences and do not get the exact macthing versions for both.
e.g. we used sapui5 1.60.1 for our webapp while openui5-runtime-mobile 1.60.3 for the hybrid appsince there was no 1.60.1 version available for openui5 mobile runtime. Here we found that there are few css related changes across these two versions which affect the inputfield lengths.
Please provide some details.

Since there is no response from the author for more than 4 weeks I'm closing the ticket.


Propose Logo

Hi @trazyn . I'm a graphic designer and an open source enthusiast. I would like to contribute to your project by proposing a logo/icon design. If you need to make some change please let me know.

Best Regard. Mirza Zulfan

Thanks

Should i create a pr @trazyn ? Thanks


Remove misleading reference to Python 2

https://github.com/mirumee/saleor/pull/1474 should have included a documentation updated.
I want to merge this change because...
... I spent far too long earlier today trying to make Saleor work in a Python 2.7 environment!
(If your changes affect the UI, providing "before" and "after" screenshots will
greatly reduce the amount of work needed to review your work.)
Pull Request Checklist
(Please keep this section. It will make maintainer's life easier.)

[ ] Privileged views and APIs are guarded by proper permission checks.
[ ] All visible strings are translated with proper context.
[ ] All data-formatting is locale-aware (dates, numbers, and so on).
[ ] Database queries are optimized and the number of queries is constant.
[ ] The changes are tested.
[X] The code is documented (docstrings, project documentation).
[ ] Python code quality checks pass: pycodestyle, pydocstyle, pylint.
[ ] JavaScript code quality checks pass: eslint.

Codecov Report

Merging #1528 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1528   +/-   ##
=======================================
  Coverage   82.75%   82.75%
=======================================
  Files         131      131
  Lines        5664     5664
  Branches      642      642
=======================================
  Hits         4687     4687
  Misses        812      812
  Partials      165      165

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0ec214a...22fb5cc. Read the comment docs.


Responsive Header and Search Area

Fixes #19
In the above pull request, I updated the header section to fit into the responsive design. Thereafter, the search box and search area results were aligned and modified to match the header section.

@jonathansick Thank you for the quick response. I've added the left padding in the header section as required. Kindly check. 😊

Thank you @BhavyaT-135 ! 🎉


Issue from website page Get Started: Install on Linux

From URL: https://flutter.io/setup-linux/
Add instructions to install Android SDK and no a full IDE like Android Studio.
Flutter would have to be tool agnostic.

Issue moved to flutter/website #1883 via ZenHub